wormhole/web/contracts/Wormhole.json

25008 lines
1.1 MiB
JSON
Raw Normal View History

2020-08-09 09:16:52 -07:00
{
"contractName": "Wormhole",
"abi": [
{
"inputs": [
{
"components": [
{
2020-08-21 03:45:24 -07:00
"internalType": "address[]",
"name": "keys",
"type": "address[]"
2020-08-09 09:16:52 -07:00
},
{
"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"
2020-08-09 12:16:18 -07:00
},
{
"internalType": "uint32",
"name": "_vaa_expiry",
"type": "uint32"
2020-08-09 09:16:52 -07:00
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
2020-08-21 03:45:24 -07:00
"indexed": false,
"internalType": "uint32",
"name": "oldGuardianIndex",
"type": "uint32"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"indexed": false,
"internalType": "uint32",
"name": "newGuardianIndex",
"type": "uint32"
2020-08-09 09:16:52 -07:00
}
],
"name": "LogGuardianSetChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "target_chain",
"type": "uint8"
},
{
"indexed": false,
"internalType": "uint8",
"name": "token_chain",
"type": "uint8"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "token",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "sender",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "recipient",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
2020-08-21 03:45:24 -07:00
},
{
"indexed": false,
"internalType": "uint32",
"name": "nonce",
"type": "uint32"
2020-08-09 09:16:52 -07:00
}
],
"name": "LogTokensLocked",
"type": "event"
},
{
2020-08-09 12:16:18 -07:00
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "guardian_set_index",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
2020-08-09 09:16:52 -07:00
"inputs": [
{
2020-08-09 12:16:18 -07:00
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"name": "guardian_sets",
"outputs": [
2020-08-09 09:16:52 -07:00
{
2020-08-09 12:16:18 -07:00
"internalType": "uint32",
"name": "expiration_time",
"type": "uint32"
2020-08-09 09:16:52 -07:00
}
],
2020-08-09 12:16:18 -07:00
"stateMutability": "view",
"type": "function"
2020-08-09 09:16:52 -07:00
},
{
2020-08-09 12:16:18 -07:00
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isWrappedAsset",
2020-08-09 09:16:52 -07:00
"outputs": [
{
2020-08-09 12:16:18 -07:00
"internalType": "bool",
2020-08-09 09:16:52 -07:00
"name": "",
2020-08-09 12:16:18 -07:00
"type": "bool"
2020-08-09 09:16:52 -07:00
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "vaa_expiry",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "wrappedAssetMaster",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
2020-08-09 12:16:18 -07:00
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "wrappedAssets",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
2020-08-09 09:16:52 -07:00
{
"stateMutability": "payable",
"type": "receive"
},
2020-08-21 03:45:24 -07:00
{
"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"
},
2020-08-09 09:16:52 -07:00
{
"inputs": [
{
"internalType": "bytes",
"name": "vaa",
"type": "bytes"
}
],
"name": "submitVAA",
"outputs": [],
"stateMutability": "nonpayable",
"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"
2020-08-21 03:45:24 -07:00
},
{
"internalType": "uint32",
"name": "nonce",
"type": "uint32"
2020-08-09 09:16:52 -07:00
}
],
"name": "lockAssets",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "recipient",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "target_chain",
"type": "uint8"
2020-08-21 03:45:24 -07:00
},
{
"internalType": "uint32",
"name": "nonce",
"type": "uint32"
2020-08-09 09:16:52 -07:00
}
],
"name": "lockETH",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
2020-08-21 03:45:24 -07:00
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"initial_guardian_set\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"wrapped_asset_master\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_vaa_expiry\",\"type\":\"uint32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"oldGuardianIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"newGuardianIndex\",\"type\":\"uint32\"}],\"name\":\"LogGuardianSetChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"token_chain\",\"type\":\"uint8\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"token\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"LogTokensLocked\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"idx\",\"type\":\"uint32\"}],\"name\":\"getGuardianSet\",\"outputs\":[{\"components\":[{\"internalType\":\"address[]\",\"name\":\"keys\",\"type\":\"address[]\"},{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"internalType\":\"struct Wormhole.GuardianSet\",\"name\":\"gs\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian_set_index\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"name\":\"guardian_sets\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"expiration_time\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isWrappedAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"lockAssets\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"target_chain\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"nonce\",\"type\":\"uint32\"}],\"name\":\"lockETH\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"vaa\",\"type\":\"bytes\"}],\"name\":\"submitVAA\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaa_expiry\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedAssetMaster\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"i
"bytecode": "0x60806040526002600160146101000a81548160ff021916908360ff1602179055503480156200002d57600080fd5b506040516200370b3803806200370b83398181016040528101906200005391906200033e565b600160008190555082600260008063ffffffff1681526020019081526020016000206000820151816000019080519060200190620000939291906200014b565b5060208201518160010160006101000a81548163ffffffff021916908363ffffffff1602179055509050506000600360006101000a81548163ffffffff021916908363ffffffff16021790555080600360046101000a81548163ffffffff021916908363ffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506200047c565b828054828255906000526020600020908101928215620001c7579160200282015b82811115620001c65782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200016c565b5b509050620001d69190620001da565b5090565b5b808211156200021357600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101620001db565b5090565b600081519050620002288162000448565b92915050565b600082601f8301126200024057600080fd5b8151620002576200025182620003db565b620003ad565b915081818352602084019350602081019050838560208402820111156200027d57600080fd5b60005b83811015620002b1578162000296888262000217565b84526020840193506020830192505060018101905062000280565b5050505092915050565b600060408284031215620002ce57600080fd5b620002da6040620003ad565b9050600082015167ffffffffffffffff811115620002f757600080fd5b62000305848285016200022e565b60008301525060206200031b8482850162000327565b60208301525092915050565b600081519050620003388162000462565b92915050565b6000806000606084860312156200035457600080fd5b600084015167ffffffffffffffff8111156200036f57600080fd5b6200037d86828701620002bb565b9350506020620003908682870162000217565b9250506040620003a38682870162000327565b9150509250925092565b6000604051905081810181811067ffffffffffffffff82111715620003d157600080fd5b8060405250919050565b600067ffffffffffffffff821115620003f357600080fd5b602082029050602081019050919050565b6000620004118262000418565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600063ffffffff82169050919050565b620004538162000404565b81146200045f57600080fd5b50565b6200046d8162000438565b81146200047957600080fd5b50565b61327f806200048c6000396000f3fe6080604052600436106100955760003560e01c80637f04d9e6116100595780637f04d9e6146101f8578063822d82b31461022357806399da1d3c1461024e578063b6694c2a14610279578063f951975a146102b6576100d5565b806313cca1a9146101105780631a2be4da146101395780633bc0aee61461017657806342b0aefa1461019f57806358d62e46146101dc576100d5565b366100d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90612da0565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790612da0565b60405180910390fd5b34801561011c57600080fd5b5061013760048036038101906101329190612371565b6102f3565b005b34801561014557600080fd5b50610160600480360381019061015b9190612348565b610745565b60405161016d9190612cde565b60405180910390f35b34801561018257600080fd5b5061019d600480360381019061019891906124b2565b610765565b005b3480156101ab57600080fd5b506101c660048036038101906101c19190612520565b611091565b6040516101d39190612f82565b60405180910390f35b6101f660048036038101906101f19190612463565b6110bf565b005b34801561020457600080fd5b5061020d611269565b60405161021a9190612f82565b60405180910390f35b34801561022f57600080fd5b5061023861127f565b6040516102459190612f82565b60405180910390f35b34801561025a57600080fd5b50610263611295565b6040516102709190612c1f565b60405180910390f35b34801561028557600080fd5b506102a0600480360381019061029b9190612411565b6112bb565b6040516102ad9190612c1f565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190612520565b6112ee565b6040516102ea9190612f60565b60405180910390f35b60026000541415610339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033090612f40565b60405180910390fd5b60026000819055506000841415610385576040517f08c379a0000000000000000000000000000000000000000000000000
"deployedBytecode": "0x6080604052600436106100955760003560e01c80637f04d9e6116100595780637f04d9e6146101f8578063822d82b31461022357806399da1d3c1461024e578063b6694c2a14610279578063f951975a146102b6576100d5565b806313cca1a9146101105780631a2be4da146101395780633bc0aee61461017657806342b0aefa1461019f57806358d62e46146101dc576100d5565b366100d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100cc90612da0565b60405180910390fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161010790612da0565b60405180910390fd5b34801561011c57600080fd5b5061013760048036038101906101329190612371565b6102f3565b005b34801561014557600080fd5b50610160600480360381019061015b9190612348565b610745565b60405161016d9190612cde565b60405180910390f35b34801561018257600080fd5b5061019d600480360381019061019891906124b2565b610765565b005b3480156101ab57600080fd5b506101c660048036038101906101c19190612520565b611091565b6040516101d39190612f82565b60405180910390f35b6101f660048036038101906101f19190612463565b6110bf565b005b34801561020457600080fd5b5061020d611269565b60405161021a9190612f82565b60405180910390f35b34801561022f57600080fd5b5061023861127f565b6040516102459190612f82565b60405180910390f35b34801561025a57600080fd5b50610263611295565b6040516102709190612c1f565b60405180910390f35b34801561028557600080fd5b506102a0600480360381019061029b9190612411565b6112bb565b6040516102ad9190612c1f565b60405180910390f35b3480156102c257600080fd5b506102dd60048036038101906102d89190612520565b6112ee565b6040516102ea9190612f60565b60405180910390f35b60026000541415610339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161033090612f40565b60405180910390fd5b60026000819055506000841415610385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037c90612e80565b60405180910390fd5b6000600160149054906101000a900460ff1690506000600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561055f578673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33886040518363ffffffff1660e01b8152600401610428929190612c55565b600060405180830381600087803b15801561044257600080fd5b505af1158015610456573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff1663026b05396040518163ffffffff1660e01b815260040160206040518083038186803b1580156104a057600080fd5b505afa1580156104b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d89190612549565b91508673ffffffffffffffffffffffffffffffffffffffff16631ba46cfd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561052057600080fd5b505afa158015610534573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610558919061243a565b90506106da565b60008773ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161059a9190612c3a565b60206040518083038186803b1580156105b257600080fd5b505afa1580156105c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ea91906124f7565b90506106193330898b73ffffffffffffffffffffffffffffffffffffffff166113db909392919063ffffffff16565b60008873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106549190612c3a565b60206040518083038186803b15801561066c57600080fd5b505afa158015610680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a491906124f7565b90506106b9828261146490919063ffffffff16565b97508873ffffffffffffffffffffffffffffffffffffffff1660001b925050505b3373ffffffffffffffffffffffffffffffffffffffff1660001b817f5742f26a345471409566883d5cac5a7d295eee7092e5be3a7d6c60bc2a3e24208685898b8960405161072c959493929190612fef565b60405180910390a3505060016000819055505050505050565b60066020528060005260406000206000915054906101000a900460ff1681565b600260005414156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a290612f40565b60405180910390fd5b6002600081905550600061080d600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116
2020-08-09 09:16:52 -07:00
"immutableReferences": {},
2020-08-21 03:45:24 -07:00
"sourceMap": "446:8753:1:-:0;;;714:1;697:18;;;;;;;;;;;;;;;;;;;;1770:327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1628:1:8;1743:7;:22;;;;1909:20:1;1890:13;:16;1904:1;1890:16;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2003:1;1982:18;;:22;;;;;;;;;;;;;;;;;;2027:11;2014:10;;:24;;;;;;;;;;;;;;;;;;2070:20;2049:18;;:41;;;;;;;;;;;;;;;;;;1770:327;;;446:8753;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:134:-1:-;;89:6;83:13;74:22;;101:33;128:5;101:33;:::i;:::-;68:71;;;;:::o;164:722::-;;292:3;285:4;277:6;273:17;269:27;259:2;;310:1;307;300:12;259:2;340:6;334:13;362:80;377:64;434:6;377:64;:::i;:::-;362:80;:::i;:::-;353:89;;459:5;484:6;477:5;470:21;514:4;506:6;502:17;492:27;;536:4;531:3;527:14;520:21;;589:6;636:3;628:4;620:6;616:17;611:3;607:27;604:36;601:2;;;653:1;650;643:12;601:2;678:1;663:217;688:6;685:1;682:13;663:217;;;746:3;768:48;812:3;800:10;768:48;:::i;:::-;763:3;756:61;840:4;835:3;831:14;824:21;;868:4;863:3;859:14;852:21;;720:160;710:1;707;703:9;698:14;;663:217;;;667:14;252:634;;;;;;;:::o;928:617::-;;1056:4;1044:9;1039:3;1035:19;1031:30;1028:2;;;1074:1;1071;1064:12;1028:2;1092:20;1107:4;1092:20;:::i;:::-;1083:29;;1183:1;1172:9;1168:17;1162:24;1206:18;1198:6;1195:30;1192:2;;;1238:1;1235;1228:12;1192:2;1273:85;1354:3;1345:6;1334:9;1330:22;1273:85;:::i;:::-;1266:4;1259:5;1255:16;1248:111;1122:248;1431:2;1464:59;1519:3;1510:6;1499:9;1495:22;1464:59;:::i;:::-;1457:4;1450:5;1446:16;1439:85;1380:155;1022:523;;;;:::o;1552:132::-;;1635:6;1629:13;1620:22;;1647:32;1673:5;1647:32;:::i;:::-;1614:70;;;;:::o;1691:668::-;;;;1867:2;1855:9;1846:7;1842:23;1838:32;1835:2;;;1883:1;1880;1873:12;1835:2;1939:1;1928:9;1924:17;1918:24;1962:18;1954:6;1951:30;1948:2;;;1994:1;1991;1984:12;1948:2;2014:92;2098:7;2089:6;2078:9;2074:22;2014:92;:::i;:::-;2004:102;;1897:215;2143:2;2161:64;2217:7;2208:6;2197:9;2193:22;2161:64;:::i;:::-;2151:74;;2122:109;2262:2;2280:63;2335:7;2326:6;2315:9;2311:22;2280:63;:::i;:::-;2270:73;;2241:108;1829:530;;;;;:::o;2366:256::-;;2428:2;2422:9;2412:19;;2466:4;2458:6;2454:17;2565:6;2553:10;2550:22;2529:18;2517:10;2514:34;2511:62;2508:2;;;2586:1;2583;2576:12;2508:2;2606:10;2602:2;2595:22;2406:216;;;;:::o;2629:304::-;;2788:18;2780:6;2777:30;2774:2;;;2820:1;2817;2810:12;2774:2;2855:4;2847:6;2843:17;2835:25;;2918:4;2912;2908:15;2900:23;;2711:222;;;:::o;2940:91::-;;3002:24;3020:5;3002:24;:::i;:::-;2991:35;;2985:46;;;:::o;3038:121::-;;3111:42;3104:5;3100:54;3089:65;;3083:76;;;:::o;3166:88::-;;3238:10;3231:5;3227:22;3216:33;;3210:44;;;:::o;3261:117::-;3330:24;3348:5;3330:24;:::i;:::-;3323:5;3320:35;3310:2;;3369:1;3366;3359:12;3310:2;3304:74;:::o;3385:115::-;3453:23;3470:5;3453:23;:::i;:::-;3446:5;3443:34;3433:2;;3491:1;3488;3481:12;3433:2;3427:73;:::o;446:8753:1:-;;;;;;;",
"deployedSourceMap": "446:8753:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9141:54;;;;;;;;;;:::i;:::-;;;;;;;;446:8753;9056:54;;;;;;;;;;:::i;:::-;;;;;;;;7356:1204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1717:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2231:1993;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1319:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8566:458;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1501:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1411:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;629:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1663:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2103:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7356:1204;1671:1:8;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;7554:1:1::1;7544:6;:11;;7536:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;7591:17;7611:8;;;;;;;;;;;7591:28;;7629:21;7664:14;:21;7679:5;7664:21;;;;;;;;;;;;;;;;;;;;;;;;;7660:765;;;7714:5;7701:24;;;7726:10;7738:6;7701:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7786:5;7773:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7759:46;;7848:5;7835:32;;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7819:50;;7660:765;;;7900:21;7931:5;7924:23;;;7956:4;7924:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7900:62;;7976:65;8007:10;8027:4;8034:6;7983:5;7976:30;;;;:65;;;;;;:::i;:::-;8055:20;8085:5;8078:23;;;8110:4;8078:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8055:61;;8330:31;8347:13;8330:12;:16;;:31;;;;:::i;:::-;8321:40;;8407:5;8399:14;;8391:23;;8375:39;;7660:765;;;8514:10;8506:19;;8498:28;;8483:13;8440:113;8456:12;8470:11;8528:9;8539:6;8547:5;8440:113;;;;;;;;;;:::i;:::-;;;;;;;;2419:1:8;;1628::::0;2563:7;:22;;;;7356:1204:1;;;;;:::o;1717:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;2231:1993::-;1671:1:8;2260:7;;:19;;2252:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;1671:1;2390:7;:18;;;;2314:13:1::1;2330:14;2342:1;2330:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2314:30;;2373:1;2362:7;:12;;;2354:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2460:29;2492:15;2505:1;2492:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;;;;:::i;:::-;2460:47;;2518:19;2540:14;2552:1;2540:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;;;:::i;:::-;2518:36;;;;2564:11;2587;2582:2;:16;2578:1;:20;2564:34;;2643:16;2662:20;2675:6;2662:3;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;2643:39;;2772:15;2759:10;;;;;;;;;;;2747:9;:22;:40;;;2739:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2843:12;2868:38;2878:6;2899;2886:3;;:10;;:19;2868:3;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;;;:::i;:::-;2858:49;;;;;;2843:64;;2926:12;:18;2939:4;2926:18;;;;;;;;;;;;;;;;;;;;;2925:19;2917:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2984:31;;:::i;:::-;3018:13;:37;3032:22;3018:37;;;;;;;;;;;;;;;2984:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;3105:1;3073:12;:28;;;:33;;;:83;;;;3141:15;3110:12;:28;;;:46;;;3073:83;3065:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;3243:11;3238:1;3234;3230;3203:12;:17;;;:24;:28;:32;;;;;;:36;:51;;3195:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3284:6;3279:373;3300:11;3296:1;:15;3279:373;;;3332:11;3346:23;3366:2;3362:1;:6;3358:1;:10;3346:3;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;3332:37;;3383:9;3395:25;3417:2;3413:1;:6;3409:1;:10;3395:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;:::i;:::-;3383:37;;3434:9;3446:26;3469:2;3465:1;:6;3460:2;:11;3446:3;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;3434:38;;3486:7;3496:24;3517:2;3513:1;:6;3508:2;:11;3496:3;;:11;;;;;;;;;;;;
"source": "// contracts/Wormhole.sol\n// SPDX-License-Identifier: Apache 2\n\n// TODO(hendrik): switch-over feature\n\npragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/SafeERC20.sol\";\nimport \"@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"@openzeppelin/contracts/utils/ReentrancyGuard.sol\";\nimport \"./BytesLib.sol\";\nimport \"./WrappedAsset.sol\";\n\ncontract Wormhole is ReentrancyGuard {\n using SafeERC20 for IERC20;\n using BytesLib for bytes;\n using SafeMath for uint256;\n\n // Address of the Wrapped asset template\n address public wrappedAssetMaster;\n\n // Chain ID of Ethereum\n uint8 CHAIN_ID = 2;\n\n // Address of the official WETH contract\n address constant WETHAddress = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;\n\n struct GuardianSet {\n address[] keys;\n uint32 expiration_time;\n }\n\n event LogGuardianSetChanged(\n uint32 oldGuardianIndex,\n uint32 newGuardianIndex\n );\n\n event LogTokensLocked(\n uint8 target_chain,\n uint8 token_chain,\n bytes32 indexed token,\n bytes32 indexed sender,\n bytes32 recipient,\n uint256 amount,\n uint32 nonce\n );\n\n // Mapping of guardian_set_index => guardian set\n mapping(uint32 => GuardianSet) public guardian_sets;\n // Current active guardian set\n uint32 public guardian_set_index;\n\n // Period for which an vaa is valid in seconds\n uint32 public vaa_expiry;\n\n // Mapping of already consumedVAAs\n mapping(bytes32 => bool) consumedVAAs;\n\n // Mapping of wrapped asset ERC20 contracts\n mapping(bytes32 => address) public wrappedAssets;\n mapping(address => bool) public isWrappedAsset;\n\n constructor(GuardianSet memory initial_guardian_set, address wrapped_asset_master, uint32 _vaa_expiry) public {\n guardian_sets[0] = initial_guardian_set;\n // Explicitly set for doc purposes\n guardian_set_index = 0;\n vaa_expiry = _vaa_expiry;\n\n wrappedAssetMaster = wrapped_asset_master;\n }\n\n function getGuardianSet(uint32 idx) view public returns (GuardianSet memory gs) {\n return guardian_sets[idx];\n }\n\n function submitVAA(\n bytes calldata vaa\n ) public nonReentrant {\n uint8 version = vaa.toUint8(0);\n require(version == 1, \"VAA version incompatible\");\n\n // Load 4 bytes starting from index 1\n uint32 vaa_guardian_set_index = vaa.toUint32(1);\n\n uint256 len_signers = vaa.toUint8(5);\n uint offset = 6 + 66 * len_signers;\n\n // Load 4 bytes timestamp\n uint32 timestamp = vaa.toUint32(offset);\n\n // Verify that the VAA is still valid\n require(timestamp + vaa_expiry > block.timestamp, \"VAA has expired\");\n\n // Hash the body\n bytes32 hash = keccak256(vaa.slice(offset, vaa.length - offset));\n require(!consumedVAAs[hash], \"VAA was already executed\");\n\n GuardianSet memory guardian_set = guardian_sets[vaa_guardian_set_index];\n require(guardian_set.expiration_time == 0 || guardian_set.expiration_time > block.timestamp, \"guardian set has expired\");\n require(guardian_set.keys.length * 3 / 4 + 1 <= len_signers, \"no quorum\");\n\n for (uint i = 0; i < len_signers; i++) {\n uint8 index = vaa.toUint8(6 + i * 66);\n bytes32 r = vaa.toBytes32(7 + i * 66);\n bytes32 s = vaa.toBytes32(39 + i * 66);\n uint8 v = vaa.toUint8(71 + i * 66);\n v += 27;\n require(ecrecover(hash, v, r, s) == guardian_set.keys[index], \"VAA signature invalid\");\n }\n\n uint8 action = vaa.toUint8(offset + 4);\n bytes memory payload = vaa.slice(offset + 5, vaa.length - (offset + 5));\n\n // Process VAA\n if (action == 0x01) {\n require(vaa_guardian_set_index == guardian_set_index, \"only the current guardian set can ch
2020-08-09 09:16:52 -07:00
"sourcePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol",
"ast": {
"absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol",
"exportedSymbols": {
"WETH": [
2020-08-21 03:45:24 -07:00
1181
2020-08-09 09:16:52 -07:00
],
"Wormhole": [
2020-08-21 03:45:24 -07:00
1170
2020-08-09 09:16:52 -07:00
]
},
2020-08-21 03:45:24 -07:00
"id": 1182,
2020-08-09 09:16:52 -07:00
"license": "Apache 2",
"nodeType": "SourceUnit",
"nodes": [
{
2020-08-21 03:45:24 -07:00
"id": 335,
2020-08-09 09:16:52 -07:00
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
2020-08-21 03:45:24 -07:00
"src": "103:23:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"id": 336,
2020-08-09 09:16:52 -07:00
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
2020-08-21 03:45:24 -07:00
"src": "127:33:1"
2020-08-09 09:16:52 -07:00
},
{
"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
2020-08-21 03:45:24 -07:00
"id": 337,
2020-08-09 09:16:52 -07:00
"nodeType": "ImportDirective",
2020-08-21 03:45:24 -07:00
"scope": 1182,
"sourceUnit": 2023,
"src": "162:56:1",
2020-08-09 09:16:52 -07:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
2020-08-21 03:45:24 -07:00
"id": 338,
2020-08-09 09:16:52 -07:00
"nodeType": "ImportDirective",
2020-08-21 03:45:24 -07:00
"scope": 1182,
"sourceUnit": 2236,
"src": "219:59:1",
2020-08-09 09:16:52 -07:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
"file": "@openzeppelin/contracts/math/SafeMath.sol",
2020-08-21 03:45:24 -07:00
"id": 339,
2020-08-09 09:16:52 -07:00
"nodeType": "ImportDirective",
2020-08-21 03:45:24 -07:00
"scope": 1182,
"sourceUnit": 1945,
"src": "279:51:1",
2020-08-09 09:16:52 -07:00
"symbolAliases": [],
"unitAlias": ""
},
{
2020-08-21 03:45:24 -07:00
"absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
"file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
"id": 340,
2020-08-09 09:16:52 -07:00
"nodeType": "ImportDirective",
2020-08-21 03:45:24 -07:00
"scope": 1182,
"sourceUnit": 2480,
"src": "331:59:1",
2020-08-09 09:16:52 -07:00
"symbolAliases": [],
"unitAlias": ""
},
{
2020-08-21 03:45:24 -07:00
"absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/BytesLib.sol",
"file": "./BytesLib.sol",
"id": 341,
2020-08-09 09:16:52 -07:00
"nodeType": "ImportDirective",
2020-08-21 03:45:24 -07:00
"scope": 1182,
"sourceUnit": 334,
"src": "391:24:1",
2020-08-09 09:16:52 -07:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/WrappedAsset.sol",
"file": "./WrappedAsset.sol",
2020-08-21 03:45:24 -07:00
"id": 342,
2020-08-09 09:16:52 -07:00
"nodeType": "ImportDirective",
2020-08-21 03:45:24 -07:00
"scope": 1182,
"sourceUnit": 1726,
"src": "416:28:1",
2020-08-09 09:16:52 -07:00
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
2020-08-21 03:45:24 -07:00
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 343,
"name": "ReentrancyGuard",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2479,
"src": "467:15:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ReentrancyGuard_$2479",
"typeString": "contract ReentrancyGuard"
}
},
"id": 344,
"nodeType": "InheritanceSpecifier",
"src": "467:15:1"
}
],
"contractDependencies": [
2479
],
2020-08-09 09:16:52 -07:00
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
2020-08-21 03:45:24 -07:00
"id": 1170,
2020-08-09 09:16:52 -07:00
"linearizedBaseContracts": [
2020-08-21 03:45:24 -07:00
1170,
2479
2020-08-09 09:16:52 -07:00
],
"name": "Wormhole",
"nodeType": "ContractDefinition",
"nodes": [
{
2020-08-21 03:45:24 -07:00
"id": 347,
2020-08-09 09:16:52 -07:00
"libraryName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 345,
2020-08-09 09:16:52 -07:00
"name": "SafeERC20",
"nodeType": "UserDefinedTypeName",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2235,
"src": "495:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_SafeERC20_$2235",
2020-08-09 09:16:52 -07:00
"typeString": "library SafeERC20"
}
},
"nodeType": "UsingForDirective",
2020-08-21 03:45:24 -07:00
"src": "489:27:1",
2020-08-09 09:16:52 -07:00
"typeName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 346,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "UserDefinedTypeName",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "509:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
}
},
{
2020-08-21 03:45:24 -07:00
"id": 350,
2020-08-09 09:16:52 -07:00
"libraryName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 348,
2020-08-09 09:16:52 -07:00
"name": "BytesLib",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 333,
2020-08-21 03:45:24 -07:00
"src": "527:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_contract$_BytesLib_$333",
"typeString": "library BytesLib"
}
},
"nodeType": "UsingForDirective",
2020-08-21 03:45:24 -07:00
"src": "521:25:1",
2020-08-09 09:16:52 -07:00
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 349,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "540:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
{
2020-08-21 03:45:24 -07:00
"id": 353,
2020-08-09 09:16:52 -07:00
"libraryName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 351,
2020-08-09 09:16:52 -07:00
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1944,
"src": "557:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_SafeMath_$1944",
2020-08-09 09:16:52 -07:00
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
2020-08-21 03:45:24 -07:00
"src": "551:27:1",
2020-08-09 09:16:52 -07:00
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 352,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "570:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"constant": false,
"functionSelector": "99da1d3c",
2020-08-21 03:45:24 -07:00
"id": 355,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "wrappedAssetMaster",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "629:33:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 354,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "629:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 358,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "CHAIN_ID",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "697:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 356,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "697:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"argumentTypes": null,
"hexValue": "32",
2020-08-21 03:45:24 -07:00
"id": 357,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "714:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"visibility": "internal"
},
{
"constant": true,
2020-08-21 03:45:24 -07:00
"id": 361,
2020-08-09 09:16:52 -07:00
"mutability": "constant",
"name": "WETHAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "767:73:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 359,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "767:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332",
2020-08-21 03:45:24 -07:00
"id": 360,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "798:42:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
},
"visibility": "internal"
},
{
"canonicalName": "Wormhole.GuardianSet",
2020-08-21 03:45:24 -07:00
"id": 367,
2020-08-09 09:16:52 -07:00
"members": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 364,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "keys",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 367,
"src": "876:14:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"baseType": {
"id": 362,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "876:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 363,
"length": null,
"nodeType": "ArrayTypeName",
"src": "876:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 366,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "expiration_time",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 367,
"src": "900:22:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 365,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "900:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "GuardianSet",
"nodeType": "StructDefinition",
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "847:82:1",
2020-08-09 09:16:52 -07:00
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 373,
2020-08-09 09:16:52 -07:00
"name": "LogGuardianSetChanged",
"nodeType": "EventDefinition",
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 372,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 369,
"indexed": false,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "oldGuardianIndex",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 373,
"src": "972:23:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 368,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "972:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 371,
"indexed": false,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "newGuardianIndex",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 373,
"src": "1005:23:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 370,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "1005:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "962:72:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "935:100:1"
2020-08-09 09:16:52 -07:00
},
{
"anonymous": false,
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 389,
2020-08-09 09:16:52 -07:00
"name": "LogTokensLocked",
"nodeType": "EventDefinition",
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 388,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 375,
2020-08-09 09:16:52 -07:00
"indexed": false,
"mutability": "mutable",
"name": "target_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 389,
"src": "1072:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 374,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1072:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 377,
2020-08-09 09:16:52 -07:00
"indexed": false,
"mutability": "mutable",
"name": "token_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 389,
"src": "1100:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 376,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1100:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 379,
2020-08-09 09:16:52 -07:00
"indexed": true,
"mutability": "mutable",
"name": "token",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 389,
"src": "1127:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 378,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1127:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 381,
2020-08-09 09:16:52 -07:00
"indexed": true,
"mutability": "mutable",
"name": "sender",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 389,
"src": "1158:22:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 380,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1158:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 383,
2020-08-09 09:16:52 -07:00
"indexed": false,
"mutability": "mutable",
"name": "recipient",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 389,
"src": "1190:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 382,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1190:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 385,
2020-08-09 09:16:52 -07:00
"indexed": false,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 389,
"src": "1217:14:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 384,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1217:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
2020-08-21 03:45:24 -07:00
},
{
"constant": false,
"id": 387,
"indexed": false,
"mutability": "mutable",
"name": "nonce",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 389,
"src": "1241:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 386,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "1241:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"src": "1062:197:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "1041:219:1"
2020-08-09 09:16:52 -07:00
},
{
"constant": false,
2020-08-09 12:16:18 -07:00
"functionSelector": "42b0aefa",
2020-08-21 03:45:24 -07:00
"id": 393,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "guardian_sets",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1319:51:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
2020-08-09 09:16:52 -07:00
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 392,
2020-08-09 09:16:52 -07:00
"keyType": {
2020-08-21 03:45:24 -07:00
"id": 390,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1327:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Mapping",
2020-08-21 03:45:24 -07:00
"src": "1319:30:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
2020-08-09 09:16:52 -07:00
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet)"
},
"valueType": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 391,
2020-08-09 09:16:52 -07:00
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 367,
"src": "1337:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet"
}
}
},
"value": null,
2020-08-09 12:16:18 -07:00
"visibility": "public"
2020-08-09 09:16:52 -07:00
},
{
"constant": false,
"functionSelector": "822d82b3",
2020-08-21 03:45:24 -07:00
"id": 395,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "guardian_set_index",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1411:32:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 394,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1411:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"functionSelector": "7f04d9e6",
2020-08-21 03:45:24 -07:00
"id": 397,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "vaa_expiry",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1501:24:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 396,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1501:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 401,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "consumedVAAs",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1571:37:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 400,
2020-08-09 09:16:52 -07:00
"keyType": {
2020-08-21 03:45:24 -07:00
"id": 398,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1579:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
2020-08-21 03:45:24 -07:00
"src": "1571:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
},
"valueType": {
2020-08-21 03:45:24 -07:00
"id": 399,
2020-08-09 09:16:52 -07:00
"name": "bool",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1590:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-09 12:16:18 -07:00
"functionSelector": "b6694c2a",
2020-08-21 03:45:24 -07:00
"id": 405,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "wrappedAssets",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1663:48:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 404,
2020-08-09 09:16:52 -07:00
"keyType": {
2020-08-21 03:45:24 -07:00
"id": 402,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1671:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
2020-08-21 03:45:24 -07:00
"src": "1663:27:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
},
"valueType": {
2020-08-21 03:45:24 -07:00
"id": 403,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1682:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
"value": null,
2020-08-09 12:16:18 -07:00
"visibility": "public"
2020-08-09 09:16:52 -07:00
},
{
"constant": false,
2020-08-09 12:16:18 -07:00
"functionSelector": "1a2be4da",
2020-08-21 03:45:24 -07:00
"id": 409,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "isWrappedAsset",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1717:46:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
"typeString": "mapping(address => bool)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 408,
2020-08-09 09:16:52 -07:00
"keyType": {
2020-08-21 03:45:24 -07:00
"id": 406,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1725:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
2020-08-21 03:45:24 -07:00
"src": "1717:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
"typeString": "mapping(address => bool)"
},
"valueType": {
2020-08-21 03:45:24 -07:00
"id": 407,
2020-08-09 09:16:52 -07:00
"name": "bool",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1736:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
},
"value": null,
2020-08-09 12:16:18 -07:00
"visibility": "public"
2020-08-09 09:16:52 -07:00
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 436,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "1880:217:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 422,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 418,
2020-08-09 09:16:52 -07:00
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 393,
"src": "1890:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
2020-08-09 09:16:52 -07:00
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
}
},
2020-08-21 03:45:24 -07:00
"id": 420,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 419,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "1904:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "1890:16:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 421,
2020-08-09 09:16:52 -07:00
"name": "initial_guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 411,
"src": "1909:20:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet memory"
}
},
2020-08-21 03:45:24 -07:00
"src": "1890:39:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
2020-08-21 03:45:24 -07:00
"id": 423,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "1890:39:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 426,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 424,
2020-08-09 09:16:52 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "1982:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 425,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2003:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
2020-08-21 03:45:24 -07:00
"src": "1982:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"id": 427,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "1982:22:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 430,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 428,
2020-08-09 12:16:18 -07:00
"name": "vaa_expiry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 397,
"src": "2014:10:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 429,
2020-08-09 12:16:18 -07:00
"name": "_vaa_expiry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 415,
"src": "2027:11:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "2014:24:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"id": 431,
2020-08-09 12:16:18 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "2014:24:1"
2020-08-09 12:16:18 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 434,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 432,
2020-08-09 09:16:52 -07:00
"name": "wrappedAssetMaster",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 355,
"src": "2049:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 433,
2020-08-09 09:16:52 -07:00
"name": "wrapped_asset_master",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 413,
"src": "2070:20:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"src": "2049:41:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"id": 435,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "2049:41:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 437,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 416,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 411,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "initial_guardian_set",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 437,
"src": "1782:39:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet"
},
"typeName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 410,
2020-08-09 09:16:52 -07:00
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 367,
"src": "1782:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 413,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "wrapped_asset_master",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 437,
"src": "1823:28:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 412,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1823:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
2020-08-09 12:16:18 -07:00
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 415,
2020-08-09 12:16:18 -07:00
"mutability": "mutable",
"name": "_vaa_expiry",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 437,
"src": "1853:18:1",
2020-08-09 12:16:18 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 414,
2020-08-09 12:16:18 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1853:6:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"src": "1781:91:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 417,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "1880:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1770:327:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 448,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "2183:42:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
2020-08-21 03:45:24 -07:00
"expression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"baseExpression": {
"argumentTypes": null,
"id": 444,
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 393,
"src": "2200:13:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
"id": 446,
"indexExpression": {
"argumentTypes": null,
"id": 445,
"name": "idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 439,
"src": "2214:3:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2200:18:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
"functionReturnParameters": 443,
"id": 447,
"nodeType": "Return",
"src": "2193:25:1"
}
]
},
"documentation": null,
"functionSelector": "f951975a",
"id": 449,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGuardianSet",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 439,
"mutability": "mutable",
"name": "idx",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "2127:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 438,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "2127:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2126:12:1"
},
"returnParameters": {
"id": 443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 442,
"mutability": "mutable",
"name": "gs",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "2160:21:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet"
},
"typeName": {
"contractScope": null,
"id": 441,
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 367,
"src": "2160:11:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
"typeString": "struct Wormhole.GuardianSet"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2159:23:1"
},
"scope": 1170,
"src": "2103:122:1",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 701,
"nodeType": "Block",
"src": "2304:1920:1",
"statements": [
{
"assignments": [
457
],
"declarations": [
{
"constant": false,
"id": 457,
"mutability": "mutable",
"name": "version",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 701,
"src": "2314:13:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 456,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "2314:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 462,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 460,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2342:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
2020-08-09 09:16:52 -07:00
"typeString": "int_const 0"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 458,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "2330:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 459,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "2330:11:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 461,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2330:14:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2314:30:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 466,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 464,
2020-08-09 09:16:52 -07:00
"name": "version",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 457,
"src": "2362:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
2020-08-21 03:45:24 -07:00
"id": 465,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2373:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
2020-08-21 03:45:24 -07:00
"src": "2362:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "5641412076657273696f6e20696e636f6d70617469626c65",
2020-08-21 03:45:24 -07:00
"id": 467,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2376:26:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
"typeString": "literal_string \"VAA version incompatible\""
},
"value": "VAA version incompatible"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
"typeString": "literal_string \"VAA version incompatible\""
}
],
2020-08-21 03:45:24 -07:00
"id": 463,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "2354:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 468,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2354:49:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 469,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "2354:49:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
471
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 471,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "vaa_guardian_set_index",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2460:29:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 470,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2460:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 476,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
2020-08-21 03:45:24 -07:00
"id": 474,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2505:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 472,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "2492:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 473,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint32",
"nodeType": "MemberAccess",
"referencedDeclaration": 163,
2020-08-21 03:45:24 -07:00
"src": "2492:12:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 475,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2492:15:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2460:47:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
478
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 478,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "len_signers",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2518:19:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 477,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2518:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 483,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "35",
2020-08-21 03:45:24 -07:00
"id": 481,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2552:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 479,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "2540:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 480,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "toUint8",
2020-08-09 09:16:52 -07:00
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 109,
"src": "2540:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 482,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2540:14:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2518:36:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
485
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 485,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "offset",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2564:11:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 484,
"name": "uint",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2564:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 491,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 490,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "36",
"id": 486,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2578:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_6_by_1",
"typeString": "int_const 6"
},
"value": "6"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 489,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "3636",
"id": 487,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2582:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "66"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 488,
"name": "len_signers",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 478,
"src": "2587:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"src": "2582:16:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"src": "2578:20:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2564:34:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
493
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 493,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "timestamp",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2643:16:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 492,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2643:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 498,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 496,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "2675:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 494,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "2662:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 495,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint32",
"nodeType": "MemberAccess",
"referencedDeclaration": 163,
2020-08-21 03:45:24 -07:00
"src": "2662:12:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 497,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2662:20:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2643:39:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 505,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
2020-08-21 03:45:24 -07:00
"id": 502,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 500,
2020-08-09 09:16:52 -07:00
"name": "timestamp",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 493,
"src": "2747:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 501,
2020-08-09 09:16:52 -07:00
"name": "vaa_expiry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 397,
"src": "2759:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "2747:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
2020-08-09 12:16:18 -07:00
"operator": ">",
2020-08-09 09:16:52 -07:00
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 503,
2020-08-09 09:16:52 -07:00
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
2020-08-21 03:45:24 -07:00
"src": "2772:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
2020-08-21 03:45:24 -07:00
"id": 504,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "2772:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"src": "2747:40:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "564141206861732065787069726564",
2020-08-21 03:45:24 -07:00
"id": 506,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2789:17:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_716b6a367d262f21a121968c96e61557fe9c6281596966426b955d4c8c65cb86",
"typeString": "literal_string \"VAA has expired\""
},
"value": "VAA has expired"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_716b6a367d262f21a121968c96e61557fe9c6281596966426b955d4c8c65cb86",
"typeString": "literal_string \"VAA has expired\""
}
],
2020-08-21 03:45:24 -07:00
"id": 499,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "2739:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 507,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2739:68:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 508,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "2739:68:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
510
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 510,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "hash",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2843:12:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 509,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2843:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 521,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 514,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "2878:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
},
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 518,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 515,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "2886:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 516,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "2886:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 517,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "2899:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "2886:19:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 512,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "2868:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 513,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "slice",
"nodeType": "MemberAccess",
"referencedDeclaration": 55,
2020-08-21 03:45:24 -07:00
"src": "2868:9:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 519,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2868:38:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2020-08-21 03:45:24 -07:00
"id": 511,
2020-08-09 09:16:52 -07:00
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
2020-08-21 03:45:24 -07:00
"src": "2858:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
2020-08-21 03:45:24 -07:00
"id": 520,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2858:49:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2843:64:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 526,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
2020-08-21 03:45:24 -07:00
"src": "2925:19:1",
2020-08-09 09:16:52 -07:00
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 523,
2020-08-09 09:16:52 -07:00
"name": "consumedVAAs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 401,
"src": "2926:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
2020-08-21 03:45:24 -07:00
"id": 525,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 524,
2020-08-09 09:16:52 -07:00
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 510,
"src": "2939:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "2926:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "5641412077617320616c7265616479206578656375746564",
2020-08-21 03:45:24 -07:00
"id": 527,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2946:26:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
"typeString": "literal_string \"VAA was already executed\""
},
"value": "VAA was already executed"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
"typeString": "literal_string \"VAA was already executed\""
}
],
2020-08-21 03:45:24 -07:00
"id": 522,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "2917:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 528,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2917:56:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 529,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "2917:56:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
531
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 531,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "guardian_set",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2984:31:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet"
},
"typeName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 530,
2020-08-09 09:16:52 -07:00
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 367,
"src": "2984:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 535,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 532,
2020-08-09 09:16:52 -07:00
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 393,
"src": "3018:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
2020-08-09 09:16:52 -07:00
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
}
},
2020-08-21 03:45:24 -07:00
"id": 534,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 533,
2020-08-09 09:16:52 -07:00
"name": "vaa_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 471,
"src": "3032:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "3018:37:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2984:71:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
2020-08-21 03:45:24 -07:00
"id": 546,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
2020-08-21 03:45:24 -07:00
"id": 540,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 537,
2020-08-09 09:16:52 -07:00
"name": "guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 531,
"src": "3073:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 538,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "expiration_time",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 366,
"src": "3073:28:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 539,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3105:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
2020-08-21 03:45:24 -07:00
"src": "3073:33:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "BinaryOperation",
"operator": "||",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 545,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 541,
2020-08-09 09:16:52 -07:00
"name": "guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 531,
"src": "3110:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 542,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "expiration_time",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 366,
"src": "3110:28:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 543,
2020-08-09 09:16:52 -07:00
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
2020-08-21 03:45:24 -07:00
"src": "3141:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
2020-08-21 03:45:24 -07:00
"id": 544,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "3141:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"src": "3110:46:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2020-08-21 03:45:24 -07:00
"src": "3073:83:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "677561726469616e20736574206861732065787069726564",
2020-08-21 03:45:24 -07:00
"id": 547,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3158:26:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
"typeString": "literal_string \"guardian set has expired\""
},
"value": "guardian set has expired"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
"typeString": "literal_string \"guardian set has expired\""
}
],
2020-08-21 03:45:24 -07:00
"id": 536,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "3065:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 548,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3065:120:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 549,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "3065:120:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 559,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
2020-08-09 09:16:52 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 557,
2020-08-09 09:16:52 -07:00
"isConstant": false,
2020-08-21 03:45:24 -07:00
"isLValue": false,
2020-08-09 09:16:52 -07:00
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 555,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 551,
"name": "guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "3203:12:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"id": 552,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 364,
"src": "3203:17:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"id": 553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3203:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "33",
"id": 554,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3230:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_3_by_1",
"typeString": "int_const 3"
},
"value": "3"
},
"src": "3203:28:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "34",
"id": 556,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
2020-08-21 03:45:24 -07:00
"kind": "number",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"nodeType": "Literal",
"src": "3234:1:1",
"subdenomination": null,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "4"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "3203:32:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "31",
"id": 558,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3238:1:1",
"subdenomination": null,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "3203:36:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"id": 560,
"name": "len_signers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 478,
"src": "3243:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3203:51:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
2020-08-09 09:16:52 -07:00
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "6e6f2071756f72756d",
"id": 562,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3256:11:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
"typeString": "literal_string \"no quorum\""
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "no quorum"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
"typeString": "literal_string \"no quorum\""
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 550,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "3195:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 563,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3195:73:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 564,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "3195:73:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"body": {
"id": 638,
"nodeType": "Block",
"src": "3318:334:1",
"statements": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"assignments": [
576
],
"declarations": [
{
"constant": false,
"id": 576,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 638,
"src": "3332:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 575,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "3332:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 585,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 583,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "36",
"id": 579,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3358:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_6_by_1",
"typeString": "int_const 6"
},
"value": "6"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 582,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 580,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3362:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 581,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3366:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"src": "3362:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3358:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 577,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "3346:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 578,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
"src": "3346:11:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (uint8)"
}
},
"id": 584,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3346:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"nodeType": "VariableDeclarationStatement",
"src": "3332:37:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"assignments": [
587
],
"declarations": [
{
"constant": false,
"id": 587,
"mutability": "mutable",
"name": "r",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 638,
"src": "3383:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 586,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3383:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 596,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 594,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "37",
"id": 590,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3409:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_7_by_1",
"typeString": "int_const 7"
},
"value": "7"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 593,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 591,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3413:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 592,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3417:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"src": "3413:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3409:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 588,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "3395:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 589,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toBytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 298,
"src": "3395:13:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (bytes32)"
}
},
"id": 595,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3395:25:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3383:37:1"
},
{
"assignments": [
598
],
"declarations": [
{
"constant": false,
"id": 598,
"mutability": "mutable",
"name": "s",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 638,
"src": "3434:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 597,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3434:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 607,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 605,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3339",
"id": 601,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3460:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_39_by_1",
"typeString": "int_const 39"
},
"value": "39"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 604,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 602,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3465:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 603,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3469:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"src": "3465:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3460:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 599,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "3446:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 600,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toBytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 298,
"src": "3446:13:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (bytes32)"
}
},
"id": 606,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3446:26:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3434:38:1"
},
{
"assignments": [
609
],
"declarations": [
{
"constant": false,
"id": 609,
"mutability": "mutable",
"name": "v",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 638,
"src": "3486:7:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 608,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "3486:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 618,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 616,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3731",
"id": 612,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3508:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_71_by_1",
"typeString": "int_const 71"
},
"value": "71"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 615,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 613,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3513:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 614,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3517:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"src": "3513:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3508:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 610,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "3496:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 611,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
"src": "3496:11:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (uint8)"
}
},
"id": 617,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3496:24:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3486:34:1"
},
{
"expression": {
"argumentTypes": null,
"id": 621,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 619,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 609,
"src": "3534:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3237",
"id": 620,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3539:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_27_by_1",
"typeString": "int_const 27"
},
"value": "27"
},
"src": "3534:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"id": 622,
"nodeType": "ExpressionStatement",
"src": "3534:7:1"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 634,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 625,
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 510,
"src": "3573:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 626,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 609,
"src": "3579:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
"id": 627,
"name": "r",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 587,
"src": "3582:1:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 628,
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 598,
"src": "3585:1:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 624,
"name": "ecrecover",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -6,
"src": "3563:9:1",
"typeDescriptions": {
"typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
}
},
"id": 629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3563:24:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 630,
"name": "guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "3591:12:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"id": 631,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 364,
"src": "3591:17:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"id": 633,
"indexExpression": {
"argumentTypes": null,
"id": 632,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 576,
"src": "3609:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3591:24:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3563:52:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "564141207369676e617475726520696e76616c6964",
"id": 635,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3617:23:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
"typeString": "literal_string \"VAA signature invalid\""
},
"value": "VAA signature invalid"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
"typeString": "literal_string \"VAA signature invalid\""
}
],
"id": 623,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3555:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 636,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3555:86:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 637,
"nodeType": "ExpressionStatement",
"src": "3555:86:1"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 571,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 569,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3296:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"id": 570,
"name": "len_signers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 478,
"src": "3300:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3296:15:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 639,
"initializationExpression": {
"assignments": [
566
],
"declarations": [
{
"constant": false,
"id": 566,
"mutability": "mutable",
"name": "i",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 639,
"src": "3284:6:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 565,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3284:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 568,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 567,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3293:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "3284:10:1"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 573,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "3313:3:1",
"subExpression": {
"argumentTypes": null,
"id": 572,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3313:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 574,
"nodeType": "ExpressionStatement",
"src": "3313:3:1"
},
"nodeType": "ForStatement",
"src": "3279:373:1"
},
{
"assignments": [
641
],
"declarations": [
{
"constant": false,
"id": 641,
"mutability": "mutable",
"name": "action",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 701,
"src": "3662:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 640,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "3662:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 648,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 646,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 644,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "3689:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "34",
"id": 645,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3698:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "3689:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 642,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "3677:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 643,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "3677:11:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 647,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3677:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "3662:38:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
650
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 650,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "payload",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "3710:20:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 649,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "3710:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 664,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 655,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
2020-08-21 03:45:24 -07:00
"isPure": false,
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"id": 653,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "3743:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "35",
"id": 654,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3752:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
},
"src": "3743:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 662,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 656,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "3755:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 657,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3755:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 660,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 658,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "3769:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "35",
"id": 659,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3778:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
},
"src": "3769:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 661,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3768:12:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3755:25:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 651,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "3733:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 652,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "slice",
"nodeType": "MemberAccess",
"referencedDeclaration": 55,
2020-08-21 03:45:24 -07:00
"src": "3733:9:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 663,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3733:48:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "3710:71:1"
2020-08-09 09:16:52 -07:00
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 667,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 665,
2020-08-09 09:16:52 -07:00
"name": "action",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 641,
"src": "3819:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30783031",
2020-08-21 03:45:24 -07:00
"id": 666,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3829:4:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "0x01"
},
2020-08-21 03:45:24 -07:00
"src": "3819:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 682,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 680,
2020-08-09 09:16:52 -07:00
"name": "action",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 641,
"src": "4027:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30783130",
2020-08-21 03:45:24 -07:00
"id": 681,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4037:4:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_16_by_1",
"typeString": "int_const 16"
},
"value": "0x10"
},
2020-08-21 03:45:24 -07:00
"src": "4027:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
2020-08-21 03:45:24 -07:00
"id": 692,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "4094:53:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "696e76616c69642056414120616374696f6e",
2020-08-21 03:45:24 -07:00
"id": 689,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4115:20:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
"typeString": "literal_string \"invalid VAA action\""
},
"value": "invalid VAA action"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
"typeString": "literal_string \"invalid VAA action\""
}
],
2020-08-21 03:45:24 -07:00
"id": 688,
2020-08-09 09:16:52 -07:00
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
2020-08-21 03:45:24 -07:00
"src": "4108:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 690,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4108:28:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 691,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4108:28:1"
2020-08-09 09:16:52 -07:00
}
]
},
2020-08-21 03:45:24 -07:00
"id": 693,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "4023:124:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 687,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "4043:45:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 684,
2020-08-09 09:16:52 -07:00
"name": "payload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 650,
"src": "4069:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2020-08-21 03:45:24 -07:00
"id": 683,
2020-08-09 09:16:52 -07:00
"name": "vaaTransfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 928,
"src": "4057:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
2020-08-21 03:45:24 -07:00
"id": 685,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4057:20:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 686,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4057:20:1"
2020-08-09 09:16:52 -07:00
}
]
}
},
2020-08-21 03:45:24 -07:00
"id": 694,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "3815:332:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 679,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "3835:182:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-09 12:16:18 -07:00
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
2020-08-21 03:45:24 -07:00
"id": 671,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 669,
2020-08-09 12:16:18 -07:00
"name": "vaa_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 471,
"src": "3857:22:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 670,
2020-08-09 12:16:18 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "3883:18:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "3857:44:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574",
2020-08-21 03:45:24 -07:00
"id": 672,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3903:59:1",
2020-08-09 12:16:18 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
"typeString": "literal_string \"only the current guardian set can change the guardian set\""
},
"value": "only the current guardian set can change the guardian set"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
"typeString": "literal_string \"only the current guardian set can change the guardian set\""
}
],
2020-08-21 03:45:24 -07:00
"id": 668,
2020-08-09 12:16:18 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "3849:7:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 673,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3849:114:1",
2020-08-09 12:16:18 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 674,
2020-08-09 12:16:18 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "3849:114:1"
2020-08-09 12:16:18 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 676,
2020-08-09 09:16:52 -07:00
"name": "payload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 650,
"src": "3998:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2020-08-21 03:45:24 -07:00
"id": 675,
2020-08-09 09:16:52 -07:00
"name": "vaaUpdateGuardianSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 801,
"src": "3977:20:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
2020-08-21 03:45:24 -07:00
"id": 677,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3977:29:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 678,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "3977:29:1"
2020-08-09 09:16:52 -07:00
}
]
}
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 699,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 695,
2020-08-09 09:16:52 -07:00
"name": "consumedVAAs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 401,
"src": "4192:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
2020-08-21 03:45:24 -07:00
"id": 697,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 696,
2020-08-09 09:16:52 -07:00
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 510,
"src": "4205:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "4192:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
2020-08-21 03:45:24 -07:00
"id": 698,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4213:4:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
2020-08-21 03:45:24 -07:00
"src": "4192:25:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2020-08-21 03:45:24 -07:00
"id": 700,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4192:25:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
"functionSelector": "3bc0aee6",
2020-08-21 03:45:24 -07:00
"id": 702,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
2020-08-21 03:45:24 -07:00
"modifiers": [
{
"arguments": null,
"id": 454,
"modifierName": {
"argumentTypes": null,
"id": 453,
"name": "nonReentrant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2478,
"src": "2291:12:1",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "2291:12:1"
}
],
2020-08-09 09:16:52 -07:00
"name": "submitVAA",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 452,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 451,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "vaa",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 702,
"src": "2259:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 450,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2259:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "2249:34:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 455,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "2304:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "2231:1993:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 800,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "4287:744:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
708
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 708,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "new_guardian_set_index",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4297:29:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 707,
"name": "uint32",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4297:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 713,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 711,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4343:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 709,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 704,
"src": "4329:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 710,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "toUint32",
2020-08-09 09:16:52 -07:00
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 163,
"src": "4329:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 712,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4329:16:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "4297:48:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
715
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 715,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "len",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4355:9:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 714,
"name": "uint8",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4355:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 720,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "34",
"id": 718,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4380:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "4"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 716,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 704,
"src": "4367:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 717,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-09 12:16:18 -07:00
"memberName": "toUint8",
2020-08-09 09:16:52 -07:00
"nodeType": "MemberAccess",
2020-08-09 12:16:18 -07:00
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "4367:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-09 12:16:18 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 719,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4367:15:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-09 12:16:18 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "4355:27:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
725
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 725,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "new_guardians",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4393:30:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
2020-08-21 03:45:24 -07:00
"storageLocation": "memory",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"baseType": {
"id": 723,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4393:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_address",
"typeString": "address"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 724,
"length": null,
"nodeType": "ArrayTypeName",
"src": "4393:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"value": null,
"visibility": "internal"
}
],
"id": 731,
"initialValue": {
"argumentTypes": null,
"arguments": [
2020-08-09 09:16:52 -07:00
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 729,
"name": "len",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 715,
"src": "4440:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 728,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "4426:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
"typeString": "function (uint256) pure returns (address[] memory)"
},
"typeName": {
"baseType": {
"id": 726,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4430:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 727,
"length": null,
"nodeType": "ArrayTypeName",
"src": "4430:9:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 730,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4426:18:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "VariableDeclarationStatement",
"src": "4393:51:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"body": {
"id": 759,
"nodeType": "Block",
"src": "4485:103:1",
"statements": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"assignments": [
743
],
"declarations": [
{
"constant": false,
"id": 743,
"mutability": "mutable",
"name": "addr",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 759,
"src": "4499:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 742,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4499:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
],
"id": 752,
"initialValue": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "35",
"id": 746,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4529:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 749,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 747,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 733,
"src": "4533:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3230",
"id": 748,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4537:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_20_by_1",
"typeString": "int_const 20"
},
"value": "20"
},
"src": "4533:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4529:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
2020-08-09 09:16:52 -07:00
"expression": {
2020-08-21 03:45:24 -07:00
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 744,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 704,
"src": "4514:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 745,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 82,
"src": "4514:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 751,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
2020-08-21 03:45:24 -07:00
"kind": "functionCall",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"names": [],
"nodeType": "FunctionCall",
"src": "4514:26:1",
"tryCall": false,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_address",
"typeString": "address"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "VariableDeclarationStatement",
"src": "4499:41:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"id": 757,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 753,
"name": "new_guardians",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 725,
"src": "4554:13:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"id": 755,
"indexExpression": {
"argumentTypes": null,
"id": 754,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 733,
"src": "4568:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4554:16:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 756,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 743,
"src": "4573:4:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "4554:23:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 758,
"nodeType": "ExpressionStatement",
"src": "4554:23:1"
2020-08-09 12:16:18 -07:00
}
2020-08-21 03:45:24 -07:00
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 12:16:18 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 738,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"id": 736,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 733,
"src": "4471:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"id": 737,
"name": "len",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 715,
"src": "4475:3:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"src": "4471:7:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
2020-08-09 12:16:18 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 760,
"initializationExpression": {
"assignments": [
733
],
"declarations": [
2020-08-09 12:16:18 -07:00
{
2020-08-21 03:45:24 -07:00
"constant": false,
"id": 733,
"mutability": "mutable",
"name": "i",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 760,
"src": "4459:6:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-09 12:16:18 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"typeName": {
"id": 732,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4459:4:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"value": null,
"visibility": "internal"
2020-08-09 12:16:18 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 735,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 734,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4468:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "4459:10:1"
},
"loopExpression": {
2020-08-09 12:16:18 -07:00
"expression": {
2020-08-21 03:45:24 -07:00
"argumentTypes": null,
"id": 740,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "4480:3:1",
"subExpression": {
"argumentTypes": null,
"id": 739,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 733,
"src": "4480:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 12:16:18 -07:00
}
2020-08-21 03:45:24 -07:00
},
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 741,
"nodeType": "ExpressionStatement",
"src": "4480:3:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"nodeType": "ForStatement",
"src": "4454:134:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
762
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 762,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "old_guardian_set_index",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4598:29:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 761,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4598:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 764,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 763,
2020-08-09 09:16:52 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "4630:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "4598:50:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 767,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 765,
2020-08-09 09:16:52 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "4658:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 766,
2020-08-09 09:16:52 -07:00
"name": "new_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 708,
"src": "4679:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "4658:43:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"id": 768,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4658:43:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
770
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 770,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "new_guardian_set",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4712:35:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet"
},
"typeName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 769,
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 367,
"src": "4712:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
"typeString": "struct Wormhole.GuardianSet"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 775,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 772,
"name": "new_guardians",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 725,
"src": "4762:13:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
2020-08-09 09:16:52 -07:00
}
},
{
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 773,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4777:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
2020-08-09 09:16:52 -07:00
},
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
2020-08-21 03:45:24 -07:00
"id": 771,
2020-08-09 09:16:52 -07:00
"name": "GuardianSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 367,
"src": "4750:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_struct$_GuardianSet_$367_storage_ptr_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(struct Wormhole.GuardianSet storage pointer)"
}
},
2020-08-21 03:45:24 -07:00
"id": 774,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4750:29:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "4712:67:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 780,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 776,
2020-08-09 09:16:52 -07:00
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 393,
"src": "4789:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
2020-08-09 09:16:52 -07:00
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
}
},
2020-08-21 03:45:24 -07:00
"id": 778,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 777,
2020-08-09 09:16:52 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "4803:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "4789:33:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 779,
2020-08-09 09:16:52 -07:00
"name": "new_guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 770,
"src": "4825:16:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet memory"
}
},
2020-08-21 03:45:24 -07:00
"src": "4789:52:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
2020-08-21 03:45:24 -07:00
"id": 781,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4789:52:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 793,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 782,
2020-08-09 09:16:52 -07:00
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 393,
"src": "4851:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
2020-08-09 09:16:52 -07:00
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
}
},
2020-08-21 03:45:24 -07:00
"id": 784,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 783,
2020-08-09 09:16:52 -07:00
"name": "old_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 762,
"src": "4865:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "4851:37:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
2020-08-21 03:45:24 -07:00
"id": 785,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "expiration_time",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 366,
"src": "4851:53:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
2020-08-21 03:45:24 -07:00
"id": 792,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 788,
2020-08-09 09:16:52 -07:00
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
2020-08-21 03:45:24 -07:00
"src": "4914:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
2020-08-21 03:45:24 -07:00
"id": 789,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "4914:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 787,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "4907:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint32_$",
"typeString": "type(uint32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 786,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4907:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 790,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4907:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 791,
2020-08-09 09:16:52 -07:00
"name": "vaa_expiry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 397,
"src": "4933:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "4907:36:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "4851:92:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"id": 794,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4851:92:1"
2020-08-09 09:16:52 -07:00
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 796,
"name": "old_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 762,
"src": "4981:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 797,
"name": "guardian_set_index",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "5005:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 795,
2020-08-09 09:16:52 -07:00
"name": "LogGuardianSetChanged",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 373,
"src": "4959:21:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$",
"typeString": "function (uint32,uint32)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 798,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4959:65:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 799,
2020-08-09 09:16:52 -07:00
"nodeType": "EmitStatement",
2020-08-21 03:45:24 -07:00
"src": "4954:70:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 801,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "vaaUpdateGuardianSet",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 705,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 704,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 801,
"src": "4260:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 703,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4260:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "4259:19:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 706,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "4287:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "4230:801:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 927,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "5085:1325:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
807
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 807,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "source_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5138:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 806,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5138:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 812,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "34",
2020-08-21 03:45:24 -07:00
"id": 810,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5172:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 808,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5159:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 809,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "5159:12:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 811,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5159:15:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5138:36:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
814
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 814,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "target_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5185:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 813,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5185:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 819,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "35",
2020-08-21 03:45:24 -07:00
"id": 817,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5219:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 815,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5206:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 816,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "5206:12:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 818,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5206:15:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5185:36:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
821
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 821,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "target_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5340:22:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 820,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5340:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 828,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_50_by_1",
"typeString": "int_const 50"
},
2020-08-21 03:45:24 -07:00
"id": 826,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3338",
2020-08-21 03:45:24 -07:00
"id": 824,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5380:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_38_by_1",
"typeString": "int_const 38"
},
"value": "38"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3132",
2020-08-21 03:45:24 -07:00
"id": 825,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5385:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_12_by_1",
"typeString": "int_const 12"
},
"value": "12"
},
2020-08-21 03:45:24 -07:00
"src": "5380:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_rational_50_by_1",
"typeString": "int_const 50"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_50_by_1",
"typeString": "int_const 50"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 822,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5365:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 823,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 82,
2020-08-21 03:45:24 -07:00
"src": "5365:14:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 827,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5365:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5340:48:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
830
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 830,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5399:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 829,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5399:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 835,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "3730",
2020-08-21 03:45:24 -07:00
"id": 833,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5432:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_70_by_1",
"typeString": "int_const 70"
},
"value": "70"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_70_by_1",
"typeString": "int_const 70"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 831,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5419:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 832,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "5419:12:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 834,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5419:16:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5399:36:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
837
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 837,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5499:14:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 836,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5499:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 842,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "313033",
2020-08-21 03:45:24 -07:00
"id": 840,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5531:3:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_103_by_1",
"typeString": "int_const 103"
},
"value": "103"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_103_by_1",
"typeString": "int_const 103"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 838,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5516:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 839,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint256",
"nodeType": "MemberAccess",
"referencedDeclaration": 271,
2020-08-21 03:45:24 -07:00
"src": "5516:14:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 841,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5516:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5499:36:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 846,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 844,
2020-08-09 09:16:52 -07:00
"name": "source_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 807,
"src": "5554:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 845,
2020-08-09 09:16:52 -07:00
"name": "target_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 814,
"src": "5570:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"src": "5554:28:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564",
2020-08-21 03:45:24 -07:00
"id": 847,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5584:40:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
"typeString": "literal_string \"same chain transfers are not supported\""
},
"value": "same chain transfers are not supported"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
"typeString": "literal_string \"same chain transfers are not supported\""
}
],
2020-08-21 03:45:24 -07:00
"id": 843,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "5546:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 848,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5546:79:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 849,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "5546:79:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 853,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 851,
2020-08-09 09:16:52 -07:00
"name": "target_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 814,
"src": "5643:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 852,
2020-08-09 09:16:52 -07:00
"name": "CHAIN_ID",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 358,
"src": "5659:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"src": "5643:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "7472616e73666572206d75737420626520696e636f6d696e67",
2020-08-21 03:45:24 -07:00
"id": 854,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5669:27:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
"typeString": "literal_string \"transfer must be incoming\""
},
"value": "transfer must be incoming"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
"typeString": "literal_string \"transfer must be incoming\""
}
],
2020-08-21 03:45:24 -07:00
"id": 850,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "5635:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 855,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5635:62:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 856,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "5635:62:1"
2020-08-09 09:16:52 -07:00
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 859,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 857,
2020-08-09 09:16:52 -07:00
"name": "token_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 830,
"src": "5712:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 858,
2020-08-09 09:16:52 -07:00
"name": "CHAIN_ID",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 358,
"src": "5727:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"src": "5712:23:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
2020-08-21 03:45:24 -07:00
"id": 925,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "6259:145:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
909
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 909,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 925,
"src": "6273:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 908,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6273:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 916,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_83_by_1",
"typeString": "int_const 83"
},
2020-08-21 03:45:24 -07:00
"id": 914,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3731",
2020-08-21 03:45:24 -07:00
"id": 912,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "6312:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_71_by_1",
"typeString": "int_const 71"
},
"value": "71"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3132",
2020-08-21 03:45:24 -07:00
"id": 913,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "6317:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_12_by_1",
"typeString": "int_const 12"
},
"value": "12"
},
2020-08-21 03:45:24 -07:00
"src": "6312:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_rational_83_by_1",
"typeString": "int_const 83"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_83_by_1",
"typeString": "int_const 83"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 910,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "6297:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 911,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 82,
2020-08-21 03:45:24 -07:00
"src": "6297:14:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 915,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6297:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "6273:47:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 921,
2020-08-09 09:16:52 -07:00
"name": "target_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 821,
"src": "6370:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 922,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 837,
"src": "6386:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 918,
2020-08-09 09:16:52 -07:00
"name": "token_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 909,
"src": "6342:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 917,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "6335:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract IERC20)"
}
},
2020-08-21 03:45:24 -07:00
"id": 919,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6335:21:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 920,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "safeTransfer",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2056,
"src": "6335:34:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2022_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "function (contract IERC20,address,uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 923,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6335:58:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 924,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6335:58:1"
2020-08-09 09:16:52 -07:00
}
]
},
2020-08-21 03:45:24 -07:00
"id": 926,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "5708:696:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 907,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "5737:516:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
861
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 861,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 907,
"src": "5751:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 860,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5751:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 866,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "3731",
2020-08-21 03:45:24 -07:00
"id": 864,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5790:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_71_by_1",
"typeString": "int_const 71"
},
"value": "71"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_71_by_1",
"typeString": "int_const 71"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 862,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5775:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 863,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toBytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 298,
2020-08-21 03:45:24 -07:00
"src": "5775:14:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 865,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5775:18:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5751:42:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
868
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 868,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset_id",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 907,
"src": "5807:16:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 867,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5807:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 876,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 872,
2020-08-09 09:16:52 -07:00
"name": "token_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 830,
"src": "5853:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 873,
2020-08-09 09:16:52 -07:00
"name": "token_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 861,
"src": "5866:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 870,
2020-08-09 09:16:52 -07:00
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
2020-08-21 03:45:24 -07:00
"src": "5836:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
2020-08-21 03:45:24 -07:00
"id": 871,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "5836:16:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
2020-08-21 03:45:24 -07:00
"id": 874,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5836:44:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2020-08-21 03:45:24 -07:00
"id": 869,
2020-08-09 09:16:52 -07:00
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
2020-08-21 03:45:24 -07:00
"src": "5826:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
2020-08-21 03:45:24 -07:00
"id": 875,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5826:55:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5807:74:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
878
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 878,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "wrapped_asset",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 907,
"src": "5973:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 877,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5973:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 882,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 879,
2020-08-09 09:16:52 -07:00
"name": "wrappedAssets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 405,
"src": "5997:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
2020-08-21 03:45:24 -07:00
"id": 881,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 880,
2020-08-09 09:16:52 -07:00
"name": "asset_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 868,
"src": "6011:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "5997:23:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5973:47:1"
2020-08-09 09:16:52 -07:00
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
2020-08-21 03:45:24 -07:00
"id": 888,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 883,
2020-08-09 09:16:52 -07:00
"name": "wrapped_asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 878,
"src": "6038:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 886,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "6063:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
2020-08-21 03:45:24 -07:00
"id": 885,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "6055:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 884,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6055:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 887,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6055:10:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
2020-08-21 03:45:24 -07:00
"src": "6038:27:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
2020-08-21 03:45:24 -07:00
"id": 898,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "6034:138:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 897,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "6067:105:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 895,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 889,
2020-08-09 09:16:52 -07:00
"name": "wrapped_asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 878,
"src": "6085:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 891,
2020-08-09 09:16:52 -07:00
"name": "asset_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 868,
"src": "6120:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 892,
2020-08-09 09:16:52 -07:00
"name": "token_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 830,
"src": "6130:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 893,
2020-08-09 09:16:52 -07:00
"name": "token_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 861,
"src": "6143:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
2020-08-21 03:45:24 -07:00
"id": 890,
2020-08-09 09:16:52 -07:00
"name": "deployWrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 968,
"src": "6101:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32,uint8,bytes32) returns (address)"
}
},
2020-08-21 03:45:24 -07:00
"id": 894,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6101:56:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"src": "6085:72:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"id": 896,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6085:72:1"
2020-08-09 09:16:52 -07:00
}
]
}
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 903,
2020-08-09 09:16:52 -07:00
"name": "target_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 821,
"src": "6219:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 904,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 837,
"src": "6235:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 900,
2020-08-09 09:16:52 -07:00
"name": "wrapped_asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 878,
"src": "6199:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 899,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "6186:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 901,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6186:27:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 902,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "mint",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1263,
"src": "6186:32:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
2020-08-21 03:45:24 -07:00
"id": 905,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6186:56:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 906,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6186:56:1"
2020-08-09 09:16:52 -07:00
}
]
}
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 928,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "vaaTransfer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 804,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 803,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 928,
"src": "5058:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 802,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5058:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "5057:19:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 805,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "5085:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "5037:1373:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 967,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "6531:791:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
940
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 940,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "targetBytes",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 967,
"src": "6709:19:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes20",
"typeString": "bytes20"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 939,
2020-08-09 09:16:52 -07:00
"name": "bytes20",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6709:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes20",
"typeString": "bytes20"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 945,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 943,
2020-08-09 09:16:52 -07:00
"name": "wrappedAssetMaster",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 355,
"src": "6739:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 942,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "6731:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes20_$",
"typeString": "type(bytes20)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 941,
2020-08-09 09:16:52 -07:00
"name": "bytes20",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6731:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 944,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6731:27:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes20",
"typeString": "bytes20"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "6709:49:1"
2020-08-09 09:16:52 -07:00
},
{
"AST": {
"nodeType": "YulBlock",
2020-08-21 03:45:24 -07:00
"src": "6777:341:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"nodeType": "YulVariableDeclaration",
2020-08-21 03:45:24 -07:00
"src": "6791:24:1",
2020-08-09 09:16:52 -07:00
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6810:4:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6804:5:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6804:11:1"
2020-08-09 09:16:52 -07:00
},
"variables": [
{
"name": "clone",
"nodeType": "YulTypedName",
2020-08-21 03:45:24 -07:00
"src": "6795:5:1",
2020-08-09 09:16:52 -07:00
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "clone",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6835:5:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6842:66:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6828:6:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6828:81:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6828:81:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "clone",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6933:5:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6940:4:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x14"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6929:3:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6929:16:1"
2020-08-09 09:16:52 -07:00
},
{
"name": "targetBytes",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6947:11:1"
2020-08-09 09:16:52 -07:00
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6922:6:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6922:37:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6922:37:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "clone",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6983:5:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6990:4:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x28"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6979:3:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6979:16:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6997:66:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6972:6:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6972:92:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6972:92:1"
2020-08-09 09:16:52 -07:00
},
{
"nodeType": "YulAssignment",
2020-08-21 03:45:24 -07:00
"src": "7077:31:1",
2020-08-09 09:16:52 -07:00
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "7093:1:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0"
},
{
"name": "clone",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "7096:5:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "7103:4:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x37"
}
],
"functionName": {
"name": "create",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "7086:6:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7086:22:1"
2020-08-09 09:16:52 -07:00
},
"variableNames": [
{
"name": "asset",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "7077:5:1"
2020-08-09 09:16:52 -07:00
}
]
}
]
},
"evmVersion": "istanbul",
"externalReferences": [
{
2020-08-21 03:45:24 -07:00
"declaration": 937,
2020-08-09 09:16:52 -07:00
"isOffset": false,
"isSlot": false,
2020-08-21 03:45:24 -07:00
"src": "7077:5:1",
2020-08-09 09:16:52 -07:00
"valueSize": 1
},
{
2020-08-21 03:45:24 -07:00
"declaration": 940,
2020-08-09 09:16:52 -07:00
"isOffset": false,
"isSlot": false,
2020-08-21 03:45:24 -07:00
"src": "6947:11:1",
2020-08-09 09:16:52 -07:00
"valueSize": 1
}
],
2020-08-21 03:45:24 -07:00
"id": 946,
2020-08-09 09:16:52 -07:00
"nodeType": "InlineAssembly",
2020-08-21 03:45:24 -07:00
"src": "6768:350:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 951,
2020-08-09 09:16:52 -07:00
"name": "token_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 932,
"src": "7187:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 952,
2020-08-09 09:16:52 -07:00
"name": "token_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 934,
"src": "7200:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 948,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 937,
"src": "7169:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 947,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "7156:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 949,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7156:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 950,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1242,
"src": "7156:30:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$returns$__$",
"typeString": "function (uint8,bytes32) external"
}
},
2020-08-21 03:45:24 -07:00
"id": 953,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7156:58:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 954,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7156:58:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 959,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 955,
2020-08-09 09:16:52 -07:00
"name": "wrappedAssets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 405,
"src": "7250:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
2020-08-21 03:45:24 -07:00
"id": 957,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 956,
2020-08-09 09:16:52 -07:00
"name": "seed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 930,
"src": "7264:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "7250:19:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 958,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 937,
"src": "7272:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"src": "7250:27:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"id": 960,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7250:27:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 965,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 961,
2020-08-09 09:16:52 -07:00
"name": "isWrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 409,
"src": "7287:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
"typeString": "mapping(address => bool)"
}
},
2020-08-21 03:45:24 -07:00
"id": 963,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 962,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 937,
"src": "7302:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "7287:21:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
2020-08-21 03:45:24 -07:00
"id": 964,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "7311:4:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
2020-08-21 03:45:24 -07:00
"src": "7287:28:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2020-08-21 03:45:24 -07:00
"id": 966,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7287:28:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 968,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deployWrappedAsset",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 935,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 930,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "seed",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 968,
"src": "6444:12:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 929,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6444:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 932,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 968,
"src": "6458:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 931,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6458:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 934,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 968,
"src": "6477:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 933,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6477:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "6443:56:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 938,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 937,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 968,
"src": "6517:13:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 936,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6517:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "6516:15:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "6416:906:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 1099,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "7526:1034:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 986,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 984,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "7544:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 985,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "7554:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
2020-08-21 03:45:24 -07:00
"src": "7544:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "616d6f756e74206d757374206e6f742062652030",
2020-08-21 03:45:24 -07:00
"id": 987,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "7557:22:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3",
"typeString": "literal_string \"amount must not be 0\""
},
"value": "amount must not be 0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3",
"typeString": "literal_string \"amount must not be 0\""
}
],
2020-08-21 03:45:24 -07:00
"id": 983,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "7536:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 988,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7536:44:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 989,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7536:44:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
991
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 991,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1099,
"src": "7591:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 990,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7591:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 993,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 992,
2020-08-09 09:16:52 -07:00
"name": "CHAIN_ID",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 358,
"src": "7611:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "7591:28:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
995
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 995,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1099,
"src": "7629:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 994,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7629:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 996,
2020-08-09 09:16:52 -07:00
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "7629:21:1"
2020-08-09 09:16:52 -07:00
},
{
"condition": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 997,
2020-08-09 09:16:52 -07:00
"name": "isWrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 409,
"src": "7664:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
"typeString": "mapping(address => bool)"
}
},
2020-08-21 03:45:24 -07:00
"id": 999,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 998,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7679:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "7664:21:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
2020-08-21 03:45:24 -07:00
"id": 1080,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "7886:539:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
1027
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 1027,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "balanceBefore",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1080,
"src": "7900:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1026,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7900:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 1037,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1034,
2020-08-09 09:16:52 -07:00
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
2020-08-21 03:45:24 -07:00
"src": "7956:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
],
2020-08-21 03:45:24 -07:00
"id": 1033,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "7948:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1032,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7948:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1035,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7948:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1029,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7931:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1028,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "7924:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract IERC20)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1030,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7924:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 1031,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balanceOf",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1961,
"src": "7924:23:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view external returns (uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1036,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7924:38:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "7900:62:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1042,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8007:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1043,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8007:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1046,
2020-08-09 09:16:52 -07:00
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
2020-08-21 03:45:24 -07:00
"src": "8027:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
],
2020-08-21 03:45:24 -07:00
"id": 1045,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8019:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1044,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8019:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1047,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8019:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1048,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "8034:6:1",
2020-08-09 09:16:52 -07:00
"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,
2020-08-21 03:45:24 -07:00
"id": 1039,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7983:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1038,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "7976:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract IERC20)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1040,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7976:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 1041,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "safeTransferFrom",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2081,
"src": "7976:30:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2022_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "function (contract IERC20,address,address,uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1049,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7976:65:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1050,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7976:65:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
1052
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 1052,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "balanceAfter",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1080,
"src": "8055:20:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1051,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8055:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 1062,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1059,
2020-08-09 09:16:52 -07:00
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
2020-08-21 03:45:24 -07:00
"src": "8110:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
],
2020-08-21 03:45:24 -07:00
"id": 1058,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8102:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1057,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8102:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1060,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8102:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1054,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "8085:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1053,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "8078:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract IERC20)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1055,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8078:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 1056,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balanceOf",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1961,
"src": "8078:23:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view external returns (uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1061,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8078:38:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "8055:61:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1068,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1063,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "8321:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1066,
2020-08-09 09:16:52 -07:00
"name": "balanceBefore",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1027,
"src": "8347:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1064,
2020-08-09 09:16:52 -07:00
"name": "balanceAfter",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1052,
"src": "8330:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"id": 1065,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1794,
"src": "8330:16:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1067,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8330:31:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"src": "8321:40:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"id": 1069,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "8321:40:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1078,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1070,
2020-08-09 09:16:52 -07:00
"name": "asset_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 995,
"src": "8375:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1075,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "8407:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1074,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8399:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1073,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8399:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1076,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8399:14:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 1072,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8391:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1071,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8391:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1077,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8391:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-21 03:45:24 -07:00
"src": "8375:39:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-21 03:45:24 -07:00
"id": 1079,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "8375:39:1"
2020-08-09 09:16:52 -07:00
}
]
},
2020-08-21 03:45:24 -07:00
"id": 1081,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "7660:765:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 1025,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "7687:193:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1004,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "7726:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1005,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "7726:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1006,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "7738:6:1",
2020-08-09 09:16:52 -07:00
"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,
2020-08-21 03:45:24 -07:00
"id": 1001,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7714:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1000,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "7701:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1002,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7701:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 1003,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "burn",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1284,
"src": "7701:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
2020-08-21 03:45:24 -07:00
"id": 1007,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7701:44:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1008,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7701:44:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1015,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1009,
2020-08-09 09:16:52 -07:00
"name": "asset_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 991,
"src": "7759:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1011,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7786:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1010,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "7773:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1012,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7773:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 1013,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "assetChain",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1193,
"src": "7773:30:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
"typeString": "function () view external returns (uint8)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1014,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7773:32:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"src": "7759:46:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"id": 1016,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7759:46:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1023,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1017,
2020-08-09 09:16:52 -07:00
"name": "asset_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 995,
"src": "7819:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1019,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7848:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1018,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "7835:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1020,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7835:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 1021,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "assetAddress",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1195,
"src": "7835:32:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
"typeString": "function () view external returns (bytes32)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1022,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7835:34:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-21 03:45:24 -07:00
"src": "7819:50:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-21 03:45:24 -07:00
"id": 1024,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7819:50:1"
2020-08-09 09:16:52 -07:00
}
]
}
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1083,
2020-08-09 09:16:52 -07:00
"name": "target_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 976,
"src": "8456:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1084,
2020-08-09 09:16:52 -07:00
"name": "asset_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 991,
"src": "8470:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-09 12:16:18 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1085,
2020-08-09 12:16:18 -07:00
"name": "asset_address",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 995,
"src": "8483:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1090,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8514:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1091,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8514:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
2020-08-21 03:45:24 -07:00
"id": 1089,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8506:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1088,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8506:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1092,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8506:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 1087,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8498:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1086,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8498:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1093,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8498:28:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1094,
2020-08-09 12:16:18 -07:00
"name": "recipient",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 974,
"src": "8528:9:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1095,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "8539:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-21 03:45:24 -07:00
},
{
"argumentTypes": null,
"id": 1096,
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 978,
"src": "8547:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-21 03:45:24 -07:00
},
{
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 1082,
2020-08-09 09:16:52 -07:00
"name": "LogTokensLocked",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 389,
"src": "8440:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$",
"typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 1097,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8440:113:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1098,
2020-08-09 09:16:52 -07:00
"nodeType": "EmitStatement",
2020-08-21 03:45:24 -07:00
"src": "8435:118:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"functionSelector": "13cca1a9",
"id": 1100,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
2020-08-21 03:45:24 -07:00
"modifiers": [
{
"arguments": null,
"id": 981,
"modifierName": {
"argumentTypes": null,
"id": 980,
"name": "nonReentrant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2478,
"src": "7513:12:1",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "7513:12:1"
}
],
2020-08-09 09:16:52 -07:00
"name": "lockAssets",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 979,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 970,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1100,
"src": "7385:13:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 969,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7385:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 972,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1100,
"src": "7408:14:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 971,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7408:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 974,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "recipient",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1100,
"src": "7432:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 973,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7432:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 976,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "target_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1100,
"src": "7459:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 975,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7459:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
2020-08-21 03:45:24 -07:00
},
{
"constant": false,
"id": 978,
"mutability": "mutable",
"name": "nonce",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1100,
"src": "7487:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 977,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "7487:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"src": "7375:130:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 982,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "7526:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "7356:1204:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 1152,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "8694:330:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 1115,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1112,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8712:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1113,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8712:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 1114,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "8725:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
2020-08-21 03:45:24 -07:00
"src": "8712:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "616d6f756e74206d757374206e6f742062652030",
2020-08-21 03:45:24 -07:00
"id": 1116,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "8728:22:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3",
"typeString": "literal_string \"amount must not be 0\""
},
"value": "amount must not be 0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3",
"typeString": "literal_string \"amount must not be 0\""
}
],
2020-08-21 03:45:24 -07:00
"id": 1111,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "8704:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 1117,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8704:47:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1118,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "8704:47:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1120,
2020-08-09 09:16:52 -07:00
"name": "WETHAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 361,
"src": "8800:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1119,
2020-08-09 09:16:52 -07:00
"name": "WETH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1181,
"src": "8795:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WETH_$1181_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WETH)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1121,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8795:17:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WETH_$1181",
2020-08-09 09:16:52 -07:00
"typeString": "contract WETH"
}
},
2020-08-21 03:45:24 -07:00
"id": 1122,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "deposit",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1175,
"src": "8795:25:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_payable$__$returns$__$",
"typeString": "function () payable external"
}
},
2020-08-21 03:45:24 -07:00
"id": 1125,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"names": [
"value"
],
"nodeType": "FunctionCallOptions",
"options": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1123,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8829:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1124,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8829:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
2020-08-21 03:45:24 -07:00
"src": "8795:44:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_payable$__$returns$__$value",
"typeString": "function () payable external"
}
},
2020-08-21 03:45:24 -07:00
"id": 1126,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8795:46:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1127,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "8795:46:1"
2020-08-09 09:16:52 -07:00
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1129,
2020-08-09 09:16:52 -07:00
"name": "target_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1104,
"src": "8904:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1130,
2020-08-09 09:16:52 -07:00
"name": "CHAIN_ID",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 358,
"src": "8918:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1135,
2020-08-09 09:16:52 -07:00
"name": "WETHAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 361,
"src": "8944:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1134,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8936:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1133,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8936:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1136,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8936:20:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 1132,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8928:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1131,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8928:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1137,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8928:29:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1142,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8975:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1143,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8975:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
2020-08-21 03:45:24 -07:00
"id": 1141,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8967:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1140,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8967:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1144,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8967:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 1139,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8959:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1138,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8959:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1145,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"names": [],
"nodeType": "FunctionCall",
"src": "8959:28:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 1146,
"name": "recipient",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1102,
"src": "8989:9:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1147,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "9000:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 1148,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "9000:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-09 12:16:18 -07:00
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1149,
"name": "nonce",
2020-08-09 12:16:18 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1106,
"src": "9011:5:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
2020-08-09 12:16:18 -07:00
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
2020-08-21 03:45:24 -07:00
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 12:16:18 -07:00
}
2020-08-21 03:45:24 -07:00
],
"id": 1128,
"name": "LogTokensLocked",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 389,
"src": "8888:15:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$",
"typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)"
}
},
"id": 1150,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "8888:129:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1151,
"nodeType": "EmitStatement",
"src": "8883:134:1"
}
]
},
"documentation": null,
"functionSelector": "58d62e46",
"id": 1153,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 1109,
"modifierName": {
"argumentTypes": null,
"id": 1108,
"name": "nonReentrant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2478,
"src": "8681:12:1",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "8681:12:1"
}
],
"name": "lockETH",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1107,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1102,
"mutability": "mutable",
"name": "recipient",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1153,
"src": "8592:17:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 1101,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "8592:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1104,
"mutability": "mutable",
"name": "target_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1153,
"src": "8619:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 1103,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "8619:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1106,
"mutability": "mutable",
"name": "nonce",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1153,
"src": "8647:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 1105,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "8647:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "8582:83:1"
},
"returnParameters": {
"id": 1110,
"nodeType": "ParameterList",
"parameters": [],
"src": "8694:0:1"
},
"scope": 1170,
"src": "8566:458:1",
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 1160,
"nodeType": "Block",
"src": "9055:57:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
2020-08-09 09:16:52 -07:00
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
"id": 1157,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "9063:46:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
"typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "please use lockETH to transfer ETH to Solana"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
"typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
}
],
"id": 1156,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
"src": "9056:6:1",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
"id": 1158,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "9056:54:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1159,
"nodeType": "ExpressionStatement",
"src": "9056:54:1"
}
]
},
"documentation": null,
"id": 1161,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1154,
"nodeType": "ParameterList",
"parameters": [],
"src": "9035:2:1"
},
"returnParameters": {
"id": 1155,
"nodeType": "ParameterList",
"parameters": [],
"src": "9055:0:1"
},
"scope": 1170,
"src": "9027:85:1",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 1168,
"nodeType": "Block",
"src": "9140:57:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
"id": 1165,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
2020-08-21 03:45:24 -07:00
"isPure": true,
"kind": "string",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"nodeType": "Literal",
"src": "9148:46:1",
"subdenomination": null,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
"typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
},
"value": "please use lockETH to transfer ETH to Solana"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
"typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 1164,
"name": "revert",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
2020-08-21 03:45:24 -07:00
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
"src": "9141:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 1166,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "9141:54:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1167,
"nodeType": "ExpressionStatement",
"src": "9141:54:1"
}
]
},
"documentation": null,
"id": 1169,
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1162,
"nodeType": "ParameterList",
"parameters": [],
"src": "9120:2:1"
},
"returnParameters": {
"id": 1163,
"nodeType": "ParameterList",
"parameters": [],
"src": "9140:0:1"
},
"scope": 1170,
"src": "9113:84:1",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
}
],
"scope": 1182,
"src": "446:8753:1"
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1171,
"name": "IERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2022,
"src": "9220:6:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC20_$2022",
"typeString": "contract IERC20"
}
},
"id": 1172,
"nodeType": "InheritanceSpecifier",
"src": "9220:6:1"
}
],
"contractDependencies": [
2022
],
"contractKind": "interface",
"documentation": null,
"fullyImplemented": false,
"id": 1181,
"linearizedBaseContracts": [
1181,
2022
],
"name": "WETH",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"functionSelector": "d0e30db0",
"id": 1175,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "deposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1173,
"nodeType": "ParameterList",
"parameters": [],
"src": "9245:2:1"
},
"returnParameters": {
"id": 1174,
"nodeType": "ParameterList",
"parameters": [],
"src": "9264:0:1"
},
"scope": 1181,
"src": "9229:36:1",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"functionSelector": "2e1a7d4d",
"id": 1180,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 1178,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1177,
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1180,
"src": "9285:14:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1176,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "9285:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "9284:16:1"
},
"returnParameters": {
"id": 1179,
"nodeType": "ParameterList",
"parameters": [],
"src": "9309:0:1"
},
"scope": 1181,
"src": "9267:43:1",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 1182,
"src": "9202:110:1"
}
],
"src": "103:9210:1"
},
"legacyAST": {
"absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/Wormhole.sol",
"exportedSymbols": {
"WETH": [
1181
],
"Wormhole": [
1170
]
},
"id": 1182,
"license": "Apache 2",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 335,
"literals": [
"solidity",
"^",
"0.6",
".0"
],
"nodeType": "PragmaDirective",
"src": "103:23:1"
},
{
"id": 336,
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
"src": "127:33:1"
},
{
"absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
"id": 337,
"nodeType": "ImportDirective",
"scope": 1182,
"sourceUnit": 2023,
"src": "162:56:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
"file": "@openzeppelin/contracts/token/ERC20/SafeERC20.sol",
"id": 338,
"nodeType": "ImportDirective",
"scope": 1182,
"sourceUnit": 2236,
"src": "219:59:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/math/SafeMath.sol",
"file": "@openzeppelin/contracts/math/SafeMath.sol",
"id": 339,
"nodeType": "ImportDirective",
"scope": 1182,
"sourceUnit": 1945,
"src": "279:51:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
"file": "@openzeppelin/contracts/utils/ReentrancyGuard.sol",
"id": 340,
"nodeType": "ImportDirective",
"scope": 1182,
"sourceUnit": 2480,
"src": "331:59:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/BytesLib.sol",
"file": "./BytesLib.sol",
"id": 341,
"nodeType": "ImportDirective",
"scope": 1182,
"sourceUnit": 334,
"src": "391:24:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/hhofstadt/Dev/certus/wormhole/ethereum/contracts/WrappedAsset.sol",
"file": "./WrappedAsset.sol",
"id": 342,
"nodeType": "ImportDirective",
"scope": 1182,
"sourceUnit": 1726,
"src": "416:28:1",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 343,
"name": "ReentrancyGuard",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2479,
"src": "467:15:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ReentrancyGuard_$2479",
"typeString": "contract ReentrancyGuard"
}
},
"id": 344,
"nodeType": "InheritanceSpecifier",
"src": "467:15:1"
}
],
"contractDependencies": [
2479
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 1170,
"linearizedBaseContracts": [
1170,
2479
],
"name": "Wormhole",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 347,
"libraryName": {
"contractScope": null,
"id": 345,
"name": "SafeERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2235,
"src": "495:9:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeERC20_$2235",
"typeString": "library SafeERC20"
}
},
"nodeType": "UsingForDirective",
"src": "489:27:1",
"typeName": {
"contractScope": null,
"id": 346,
"name": "IERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2022,
"src": "509:6:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC20_$2022",
"typeString": "contract IERC20"
}
}
},
{
"id": 350,
"libraryName": {
"contractScope": null,
"id": 348,
"name": "BytesLib",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 333,
"src": "527:8:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_BytesLib_$333",
"typeString": "library BytesLib"
}
},
"nodeType": "UsingForDirective",
"src": "521:25:1",
"typeName": {
"id": 349,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "540:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
}
},
{
"id": 353,
"libraryName": {
"contractScope": null,
"id": 351,
"name": "SafeMath",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1944,
"src": "557:8:1",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SafeMath_$1944",
"typeString": "library SafeMath"
}
},
"nodeType": "UsingForDirective",
"src": "551:27:1",
"typeName": {
"id": 352,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "570:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"constant": false,
"functionSelector": "99da1d3c",
"id": 355,
"mutability": "mutable",
"name": "wrappedAssetMaster",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1170,
"src": "629:33:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 354,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "629:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 358,
"mutability": "mutable",
"name": "CHAIN_ID",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1170,
"src": "697:18:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 356,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "697:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": {
"argumentTypes": null,
"hexValue": "32",
"id": 357,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "714:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"visibility": "internal"
},
{
"constant": true,
"id": 361,
"mutability": "constant",
"name": "WETHAddress",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1170,
"src": "767:73:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 359,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "767:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307843303261614133396232323346453844304130653543344632376541443930383343373536436332",
"id": 360,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "798:42:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
},
"visibility": "internal"
},
{
"canonicalName": "Wormhole.GuardianSet",
"id": 367,
"members": [
{
"constant": false,
"id": 364,
"mutability": "mutable",
"name": "keys",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 367,
"src": "876:14:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 362,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "876:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 363,
"length": null,
"nodeType": "ArrayTypeName",
"src": "876:9:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 366,
"mutability": "mutable",
"name": "expiration_time",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 367,
"src": "900:22:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 365,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "900:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "GuardianSet",
"nodeType": "StructDefinition",
"scope": 1170,
"src": "847:82:1",
"visibility": "public"
},
{
"anonymous": false,
"documentation": null,
"id": 373,
"name": "LogGuardianSetChanged",
"nodeType": "EventDefinition",
2020-08-09 09:16:52 -07:00
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 372,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 369,
"indexed": false,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "oldGuardianIndex",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 373,
"src": "972:23:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 368,
"name": "uint32",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "972:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 371,
"indexed": false,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "newGuardianIndex",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 373,
"src": "1005:23:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 370,
"name": "uint32",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1005:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
2020-08-21 03:45:24 -07:00
"visibility": "internal"
}
],
"src": "962:72:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "935:100:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"anonymous": false,
2020-08-09 09:16:52 -07:00
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 389,
"name": "LogTokensLocked",
"nodeType": "EventDefinition",
2020-08-09 09:16:52 -07:00
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 388,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 375,
"indexed": false,
"mutability": "mutable",
"name": "target_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 389,
"src": "1072:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 374,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "1072:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 377,
"indexed": false,
"mutability": "mutable",
"name": "token_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 389,
"src": "1100:17:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 376,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "1100:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 379,
"indexed": true,
"mutability": "mutable",
"name": "token",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 389,
"src": "1127:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 378,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1127:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 381,
"indexed": true,
"mutability": "mutable",
"name": "sender",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 389,
"src": "1158:22:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 380,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1158:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 383,
"indexed": false,
"mutability": "mutable",
"name": "recipient",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 389,
"src": "1190:17:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 382,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1190:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 385,
"indexed": false,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 389,
"src": "1217:14:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 384,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1217:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
2020-08-21 03:45:24 -07:00
},
{
"constant": false,
"id": 387,
"indexed": false,
"mutability": "mutable",
"name": "nonce",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 389,
"src": "1241:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 386,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "1241:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1062:197:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "1041:219:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"constant": false,
"functionSelector": "42b0aefa",
"id": 393,
"mutability": "mutable",
"name": "guardian_sets",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1170,
"src": "1319:51:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet)"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 392,
"keyType": {
"id": 390,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "1327:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Mapping",
"src": "1319:30:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet)"
},
"valueType": {
"contractScope": null,
"id": 391,
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 367,
"src": "1337:11:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
"typeString": "struct Wormhole.GuardianSet"
}
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
"value": null,
"visibility": "public"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"constant": false,
"functionSelector": "822d82b3",
"id": 395,
"mutability": "mutable",
"name": "guardian_set_index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1170,
"src": "1411:32:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 394,
"name": "uint32",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1411:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
"value": null,
"visibility": "public"
2020-08-09 09:16:52 -07:00
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"functionSelector": "7f04d9e6",
"id": 397,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "vaa_expiry",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1501:24:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 396,
"name": "uint32",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1501:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 401,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "consumedVAAs",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1571:37:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 400,
"keyType": {
"id": 398,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1579:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1571:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"valueType": {
"id": 399,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1590:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": null,
2020-08-09 09:16:52 -07:00
"visibility": "internal"
},
{
2020-08-21 03:45:24 -07:00
"constant": false,
"functionSelector": "b6694c2a",
"id": 405,
"mutability": "mutable",
"name": "wrappedAssets",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1663:48:1",
2020-08-09 09:16:52 -07:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 404,
"keyType": {
"id": 402,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "1671:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "1663:27:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"valueType": {
"id": 403,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1682:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": null,
"visibility": "public"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"constant": false,
"functionSelector": "1a2be4da",
"id": 409,
"mutability": "mutable",
"name": "isWrappedAsset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1170,
"src": "1717:46:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
"typeString": "mapping(address => bool)"
},
"typeName": {
"id": 408,
"keyType": {
"id": 406,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1725:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_address",
"typeString": "address"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"nodeType": "Mapping",
"src": "1717:24:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
"typeString": "mapping(address => bool)"
},
"valueType": {
"id": 407,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1736:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
}
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
"value": null,
2020-08-09 09:16:52 -07:00
"visibility": "public"
},
{
2020-08-21 03:45:24 -07:00
"body": {
"id": 436,
"nodeType": "Block",
"src": "1880:217:1",
"statements": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"id": 422,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 418,
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 393,
"src": "1890:13:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
}
},
"id": 420,
"indexExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 419,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1904:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1890:16:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 421,
"name": "initial_guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 411,
"src": "1909:20:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"src": "1890:39:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
"typeString": "struct Wormhole.GuardianSet storage ref"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 423,
"nodeType": "ExpressionStatement",
"src": "1890:39:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"id": 426,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 424,
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 395,
"src": "1982:18:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 425,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2003:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1982:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 427,
"nodeType": "ExpressionStatement",
"src": "1982:22:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"id": 430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 428,
"name": "vaa_expiry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 397,
"src": "2014:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 429,
"name": "_vaa_expiry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 415,
"src": "2027:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"src": "2014:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 431,
"nodeType": "ExpressionStatement",
"src": "2014:24:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"id": 434,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 432,
"name": "wrappedAssetMaster",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "2049:18:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 433,
"name": "wrapped_asset_master",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 413,
"src": "2070:20:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2049:41:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_address",
"typeString": "address"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 435,
"nodeType": "ExpressionStatement",
"src": "2049:41:1"
}
]
},
"documentation": null,
"id": 437,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 416,
"nodeType": "ParameterList",
"parameters": [
2020-08-09 09:16:52 -07:00
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 411,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "initial_guardian_set",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 437,
"src": "1782:39:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
2020-08-21 03:45:24 -07:00
"storageLocation": "memory",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"contractScope": null,
"id": 410,
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 367,
"src": "1782:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
"typeString": "struct Wormhole.GuardianSet"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 413,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "wrapped_asset_master",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 437,
"src": "1823:28:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_address",
"typeString": "address"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 412,
"name": "address",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "1823:7:1",
"stateMutability": "nonpayable",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_address",
"typeString": "address"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 415,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "_vaa_expiry",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 437,
"src": "1853:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 414,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "1853:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
],
"src": "1781:91:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"returnParameters": {
"id": 417,
"nodeType": "ParameterList",
"parameters": [],
"src": "1880:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "1770:327:1",
"stateMutability": "nonpayable",
"virtual": false,
2020-08-09 12:16:18 -07:00
"visibility": "public"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"body": {
"id": 448,
"nodeType": "Block",
"src": "2183:42:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 444,
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 393,
"src": "2200:13:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
}
},
"id": 446,
"indexExpression": {
"argumentTypes": null,
"id": 445,
"name": "idx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 439,
"src": "2214:3:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2200:18:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
"functionReturnParameters": 443,
"id": 447,
"nodeType": "Return",
"src": "2193:25:1"
}
]
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"documentation": null,
"functionSelector": "f951975a",
"id": 449,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getGuardianSet",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 439,
"mutability": "mutable",
"name": "idx",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "2127:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 438,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "2127:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
],
"src": "2126:12:1"
},
"returnParameters": {
"id": 443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 442,
"mutability": "mutable",
"name": "gs",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 449,
"src": "2160:21:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet"
},
"typeName": {
"contractScope": null,
"id": 441,
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 367,
"src": "2160:11:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
"typeString": "struct Wormhole.GuardianSet"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
],
"src": "2159:23:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "2103:122:1",
"stateMutability": "view",
"virtual": false,
2020-08-09 12:16:18 -07:00
"visibility": "public"
2020-08-09 09:16:52 -07:00
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 701,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "2304:1920:1",
2020-08-09 09:16:52 -07:00
"statements": [
2020-08-21 03:45:24 -07:00
{
"assignments": [
457
],
"declarations": [
{
"constant": false,
"id": 457,
"mutability": "mutable",
"name": "version",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 701,
"src": "2314:13:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 456,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "2314:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 462,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 460,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2342:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"expression": {
"argumentTypes": null,
"id": 458,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "2330:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 459,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
"src": "2330:11:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (uint8)"
}
},
"id": 461,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2330:14:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2314:30:1"
},
2020-08-09 09:16:52 -07:00
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"id": 466,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 464,
"name": "version",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 457,
"src": "2362:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 465,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2373:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "2362:12:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "5641412076657273696f6e20696e636f6d70617469626c65",
"id": 467,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2376:26:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
"typeString": "literal_string \"VAA version incompatible\""
},
"value": "VAA version incompatible"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_6f94df49f756ee0c4605e9c5793f0e851f28a084ddaba07c34c32ea93810236a",
"typeString": "literal_string \"VAA version incompatible\""
}
],
"id": 463,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2354:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 468,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
2020-08-21 03:45:24 -07:00
"kind": "functionCall",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"names": [],
"nodeType": "FunctionCall",
"src": "2354:49:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 469,
"nodeType": "ExpressionStatement",
"src": "2354:49:1"
},
{
"assignments": [
471
],
"declarations": [
{
"constant": false,
"id": 471,
"mutability": "mutable",
"name": "vaa_guardian_set_index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 701,
"src": "2460:29:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 470,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "2460:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 476,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "31",
"id": 474,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2505:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"argumentTypes": null,
"id": 472,
"name": "vaa",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "2492:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 473,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint32",
"nodeType": "MemberAccess",
"referencedDeclaration": 163,
"src": "2492:12:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint32_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256) pure returns (uint32)"
}
},
"id": 475,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2492:15:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2460:47:1"
},
{
"assignments": [
478
],
"declarations": [
{
"constant": false,
"id": 478,
"mutability": "mutable",
"name": "len_signers",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 701,
"src": "2518:19:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 477,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2518:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 483,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "35",
"id": 481,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2552:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
}
],
"expression": {
"argumentTypes": null,
"id": 479,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "2540:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 480,
2020-08-09 09:16:52 -07:00
"isConstant": false,
2020-08-21 03:45:24 -07:00
"isLValue": false,
2020-08-09 09:16:52 -07:00
"isPure": false,
2020-08-21 03:45:24 -07:00
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
"src": "2540:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 482,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2540:14:1",
"tryCall": false,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "VariableDeclarationStatement",
"src": "2518:36:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"assignments": [
485
],
"declarations": [
{
"constant": false,
"id": 485,
"mutability": "mutable",
"name": "offset",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 701,
"src": "2564:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 484,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "2564:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 491,
"initialValue": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 490,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "36",
"id": 486,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2578:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_6_by_1",
"typeString": "int_const 6"
2020-08-09 12:16:18 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "6"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 489,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 487,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2582:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 488,
"name": "len_signers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 478,
"src": "2587:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2582:16:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2578:20:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "VariableDeclarationStatement",
"src": "2564:34:1"
2020-08-09 12:16:18 -07:00
},
2020-08-09 09:16:52 -07:00
{
"assignments": [
2020-08-21 03:45:24 -07:00
493
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 493,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "timestamp",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2643:16:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 492,
"name": "uint32",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2643:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 498,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 496,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "2675:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 494,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "2662:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 495,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "toUint32",
2020-08-09 09:16:52 -07:00
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 163,
"src": "2662:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 497,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2662:20:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2643:39:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 505,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"id": 502,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 500,
"name": "timestamp",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 493,
"src": "2747:9:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 501,
"name": "vaa_expiry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 397,
"src": "2759:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"src": "2747:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "BinaryOperation",
2020-08-21 03:45:24 -07:00
"operator": ">",
2020-08-09 09:16:52 -07:00
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"id": 503,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
"src": "2772:5:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 504,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
2020-08-21 03:45:24 -07:00
"isPure": false,
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2772:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "2747:40:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "564141206861732065787069726564",
"id": 506,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
2020-08-21 03:45:24 -07:00
"kind": "string",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2789:17:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_716b6a367d262f21a121968c96e61557fe9c6281596966426b955d4c8c65cb86",
"typeString": "literal_string \"VAA has expired\""
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "VAA has expired"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_716b6a367d262f21a121968c96e61557fe9c6281596966426b955d4c8c65cb86",
"typeString": "literal_string \"VAA has expired\""
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 499,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2739:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 507,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2739:68:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 508,
"nodeType": "ExpressionStatement",
"src": "2739:68:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
510
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 510,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "hash",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2843:12:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 509,
"name": "bytes32",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2843:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 521,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"arguments": [
{
"argumentTypes": null,
"id": 514,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "2878:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 518,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 515,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "2886:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 516,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2886:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"id": 517,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "2899:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2886:19:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 512,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "2868:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 513,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "slice",
"nodeType": "MemberAccess",
"referencedDeclaration": 55,
"src": "2868:9:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
}
},
"id": 519,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
2020-08-21 03:45:24 -07:00
"isPure": false,
"kind": "functionCall",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"names": [],
"nodeType": "FunctionCall",
"src": "2868:38:1",
"tryCall": false,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 511,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
"src": "2858:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 520,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2858:49:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2843:64:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 526,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "2925:19:1",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 523,
"name": "consumedVAAs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 401,
"src": "2926:12:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
"id": 525,
"indexExpression": {
"argumentTypes": null,
"id": 524,
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 510,
"src": "2939:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2926:18:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
2020-08-09 09:16:52 -07:00
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "5641412077617320616c7265616479206578656375746564",
"id": 527,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
2020-08-21 03:45:24 -07:00
"kind": "string",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "2946:26:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
"typeString": "literal_string \"VAA was already executed\""
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "VAA was already executed"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_2c9f12104d534b328038b37a96c0a685f6c00604447c9f6b300f1a21a9a56028",
"typeString": "literal_string \"VAA was already executed\""
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 522,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2917:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 528,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "2917:56:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 529,
"nodeType": "ExpressionStatement",
"src": "2917:56:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
531
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 531,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "guardian_set",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "2984:31:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
2020-08-21 03:45:24 -07:00
"storageLocation": "memory",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"contractScope": null,
"id": 530,
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 367,
"src": "2984:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
"typeString": "struct Wormhole.GuardianSet"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 535,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"baseExpression": {
"argumentTypes": null,
"id": 532,
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 393,
"src": "3018:13:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
"id": 534,
"indexExpression": {
"argumentTypes": null,
"id": 533,
"name": "vaa_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 471,
"src": "3032:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"isConstant": false,
2020-08-21 03:45:24 -07:00
"isLValue": true,
2020-08-09 09:16:52 -07:00
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"nodeType": "IndexAccess",
"src": "3018:37:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
"typeString": "struct Wormhole.GuardianSet storage ref"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "2984:71:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 546,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
2020-08-21 03:45:24 -07:00
"id": 540,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"id": 537,
"name": "guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "3073:12:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"id": 538,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "expiration_time",
"nodeType": "MemberAccess",
"referencedDeclaration": 366,
"src": "3073:28:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
2020-08-21 03:45:24 -07:00
"operator": "==",
2020-08-09 09:16:52 -07:00
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "30",
"id": 539,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3105:1:1",
"subdenomination": null,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "3073:33:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "BinaryOperation",
2020-08-21 03:45:24 -07:00
"operator": "||",
2020-08-09 09:16:52 -07:00
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 545,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 541,
"name": "guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "3110:12:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"id": 542,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "expiration_time",
"nodeType": "MemberAccess",
"referencedDeclaration": 366,
"src": "3110:28:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 543,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
"src": "3141:5:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 544,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3141:15:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3110:46:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"src": "3073:83:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "677561726469616e20736574206861732065787069726564",
"id": 547,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3158:26:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
"typeString": "literal_string \"guardian set has expired\""
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "guardian set has expired"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_cbe80c778d9be5c7f6d0de415ae854de0cf9a58da1d3e65a9d672ad42a10aaf1",
"typeString": "literal_string \"guardian set has expired\""
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 536,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "3065:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 548,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3065:120:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 549,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "3065:120:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"expression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 559,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 557,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 555,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 551,
"name": "guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "3203:12:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"id": 552,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 364,
"src": "3203:17:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"id": 553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3203:24:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "33",
"id": 554,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3230:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_3_by_1",
"typeString": "int_const 3"
},
"value": "3"
},
"src": "3203:28:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
2020-08-21 03:45:24 -07:00
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"hexValue": "34",
"id": 556,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3234:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
},
"src": "3203:32:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "31",
"id": 558,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3238:1:1",
"subdenomination": null,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "3203:36:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"id": 560,
"name": "len_signers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 478,
"src": "3243:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"src": "3203:51:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "6e6f2071756f72756d",
"id": 562,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3256:11:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
"typeString": "literal_string \"no quorum\""
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "no quorum"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_stringliteral_b18d2210a58b70fe2b7fd0e0f29d90614b1c4f3f5d8dbb518559998f90306fcb",
"typeString": "literal_string \"no quorum\""
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 550,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "3195:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 563,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3195:73:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 564,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "3195:73:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"body": {
"id": 638,
"nodeType": "Block",
"src": "3318:334:1",
"statements": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"assignments": [
576
],
"declarations": [
{
"constant": false,
"id": 576,
"mutability": "mutable",
"name": "index",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 638,
"src": "3332:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 575,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "3332:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 585,
"initialValue": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 583,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "36",
"id": 579,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3358:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_6_by_1",
"typeString": "int_const 6"
},
"value": "6"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 582,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 580,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3362:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 581,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3366:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"src": "3362:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3358:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-09 09:16:52 -07:00
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 577,
"name": "vaa",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "3346:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
"id": 578,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
2020-08-21 03:45:24 -07:00
"isPure": false,
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
"src": "3346:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 584,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
2020-08-21 03:45:24 -07:00
"kind": "functionCall",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"names": [],
"nodeType": "FunctionCall",
"src": "3346:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3332:37:1"
},
{
"assignments": [
587
],
"declarations": [
{
"constant": false,
"id": 587,
"mutability": "mutable",
"name": "r",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 638,
"src": "3383:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 586,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3383:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 596,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 594,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "37",
"id": 590,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3409:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_7_by_1",
"typeString": "int_const 7"
},
"value": "7"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 593,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 591,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3413:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 592,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3417:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"src": "3413:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3409:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-09 09:16:52 -07:00
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 588,
"name": "vaa",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "3395:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 589,
2020-08-09 09:16:52 -07:00
"isConstant": false,
2020-08-21 03:45:24 -07:00
"isLValue": false,
2020-08-09 09:16:52 -07:00
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "toBytes32",
2020-08-09 09:16:52 -07:00
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 298,
"src": "3395:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 595,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3395:25:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3383:37:1"
},
{
"assignments": [
598
],
"declarations": [
{
"constant": false,
"id": 598,
"mutability": "mutable",
"name": "s",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 638,
"src": "3434:9:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 597,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "3434:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 607,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 605,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3339",
"id": 601,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3460:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_39_by_1",
"typeString": "int_const 39"
},
"value": "39"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 604,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 602,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3465:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 603,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3469:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"src": "3465:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3460:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-09 09:16:52 -07:00
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 599,
"name": "vaa",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "3446:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 600,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "toBytes32",
2020-08-09 09:16:52 -07:00
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 298,
"src": "3446:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 606,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3446:26:1",
"tryCall": false,
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "VariableDeclarationStatement",
"src": "3434:38:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"assignments": [
609
],
"declarations": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"constant": false,
"id": 609,
"mutability": "mutable",
"name": "v",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 638,
"src": "3486:7:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 608,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "3486:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"value": null,
"visibility": "internal"
}
],
"id": 618,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 616,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3731",
"id": 612,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3508:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_71_by_1",
"typeString": "int_const 71"
},
"value": "71"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 615,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 613,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3513:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3636",
"id": 614,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3517:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_66_by_1",
"typeString": "int_const 66"
},
"value": "66"
},
"src": "3513:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3508:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
}
2020-08-21 03:45:24 -07:00
],
"expression": {
"argumentTypes": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
2020-08-21 03:45:24 -07:00
"argumentTypes": null,
"id": 610,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "3496:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 611,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
"src": "3496:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 617,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3496:24:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3486:34:1"
},
{
"expression": {
"argumentTypes": null,
"id": 621,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 619,
"name": "v",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 609,
"src": "3534:1:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-21 03:45:24 -07:00
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "3237",
"id": 620,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3539:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_27_by_1",
"typeString": "int_const 27"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "27"
},
"src": "3534:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"id": 622,
"nodeType": "ExpressionStatement",
"src": "3534:7:1"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 634,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 625,
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 510,
"src": "3573:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 626,
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 609,
"src": "3579:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
"id": 627,
"name": "r",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 587,
"src": "3582:1:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 628,
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 598,
"src": "3585:1:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 624,
"name": "ecrecover",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -6,
"src": "3563:9:1",
"typeDescriptions": {
"typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)"
}
},
"id": 629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3563:24:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 630,
"name": "guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "3591:12:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"id": 631,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "keys",
"nodeType": "MemberAccess",
"referencedDeclaration": 364,
"src": "3591:17:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"id": 633,
"indexExpression": {
"argumentTypes": null,
"id": 632,
"name": "index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 576,
"src": "3609:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3591:24:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3563:52:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"argumentTypes": null,
"hexValue": "564141207369676e617475726520696e76616c6964",
"id": 635,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3617:23:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
"typeString": "literal_string \"VAA signature invalid\""
},
"value": "VAA signature invalid"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
2020-08-21 03:45:24 -07:00
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_862afa71aa5d7cd3e53f61178438850df5cce8f1009ff0681521493b85052621",
"typeString": "literal_string \"VAA signature invalid\""
}
],
"id": 623,
"name": "require",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
2020-08-21 03:45:24 -07:00
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "3555:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 636,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
2020-08-21 03:45:24 -07:00
"kind": "functionCall",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"names": [],
"nodeType": "FunctionCall",
"src": "3555:86:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 637,
"nodeType": "ExpressionStatement",
"src": "3555:86:1"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 571,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"id": 569,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 566,
"src": "3296:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"id": 570,
"name": "len_signers",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 478,
"src": "3300:11:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3296:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 639,
"initializationExpression": {
"assignments": [
566
],
"declarations": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"constant": false,
"id": 566,
"mutability": "mutable",
"name": "i",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 639,
"src": "3284:6:1",
"stateVariable": false,
"storageLocation": "default",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 565,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "3284:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 568,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 567,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3293:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "3284:10:1"
},
"loopExpression": {
2020-08-09 09:16:52 -07:00
"expression": {
2020-08-21 03:45:24 -07:00
"argumentTypes": null,
"id": 573,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "3313:3:1",
"subExpression": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 572,
"name": "i",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 566,
"src": "3313:1:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 574,
"nodeType": "ExpressionStatement",
"src": "3313:3:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"nodeType": "ForStatement",
"src": "3279:373:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
641
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 641,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "action",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "3662:12:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 640,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "3662:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 648,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 646,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
2020-08-21 03:45:24 -07:00
"isPure": false,
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"id": 644,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "3689:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "34",
"id": 645,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3698:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"src": "3689:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 642,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "3677:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 643,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "3677:11:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 647,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3677:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "3662:38:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
650
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 650,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "payload",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 701,
"src": "3710:20:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 649,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "3710:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 664,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 655,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
2020-08-21 03:45:24 -07:00
"isPure": false,
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"id": 653,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "3743:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "35",
"id": 654,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3752:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
},
"src": "3743:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 662,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 656,
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 451,
"src": "3755:3:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
"id": 657,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "3755:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"components": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 660,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 658,
"name": "offset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "3769:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "35",
"id": 659,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3778:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
},
"src": "3769:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 661,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "3768:12:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3755:25:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 651,
2020-08-09 09:16:52 -07:00
"name": "vaa",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 451,
"src": "3733:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes calldata"
}
},
2020-08-21 03:45:24 -07:00
"id": 652,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "slice",
"nodeType": "MemberAccess",
"referencedDeclaration": 55,
2020-08-21 03:45:24 -07:00
"src": "3733:9:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 663,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3733:48:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "3710:71:1"
2020-08-09 09:16:52 -07:00
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 667,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 665,
2020-08-09 09:16:52 -07:00
"name": "action",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 641,
"src": "3819:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30783031",
2020-08-21 03:45:24 -07:00
"id": 666,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3829:4:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "0x01"
},
2020-08-21 03:45:24 -07:00
"src": "3819:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 682,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 680,
2020-08-09 09:16:52 -07:00
"name": "action",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 641,
"src": "4027:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30783130",
2020-08-21 03:45:24 -07:00
"id": 681,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4037:4:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_16_by_1",
"typeString": "int_const 16"
},
"value": "0x10"
},
2020-08-21 03:45:24 -07:00
"src": "4027:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
2020-08-21 03:45:24 -07:00
"id": 692,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "4094:53:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "696e76616c69642056414120616374696f6e",
2020-08-21 03:45:24 -07:00
"id": 689,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4115:20:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
"typeString": "literal_string \"invalid VAA action\""
},
"value": "invalid VAA action"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_27b2ea60c72d322d8c69062a768962688555c44551176a8b0389f506128d4a66",
"typeString": "literal_string \"invalid VAA action\""
}
],
2020-08-21 03:45:24 -07:00
"id": 688,
2020-08-09 09:16:52 -07:00
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
2020-08-21 03:45:24 -07:00
"src": "4108:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 690,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4108:28:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 691,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4108:28:1"
2020-08-09 09:16:52 -07:00
}
]
},
2020-08-21 03:45:24 -07:00
"id": 693,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "4023:124:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 687,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "4043:45:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 684,
2020-08-09 09:16:52 -07:00
"name": "payload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 650,
"src": "4069:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2020-08-21 03:45:24 -07:00
"id": 683,
2020-08-09 09:16:52 -07:00
"name": "vaaTransfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 928,
"src": "4057:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
2020-08-21 03:45:24 -07:00
"id": 685,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4057:20:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 686,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4057:20:1"
2020-08-09 09:16:52 -07:00
}
]
}
},
2020-08-21 03:45:24 -07:00
"id": 694,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "3815:332:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 679,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "3835:182:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-09 12:16:18 -07:00
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
2020-08-21 03:45:24 -07:00
"id": 671,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 669,
2020-08-09 12:16:18 -07:00
"name": "vaa_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 471,
"src": "3857:22:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 670,
2020-08-09 12:16:18 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "3883:18:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "3857:44:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6f6e6c79207468652063757272656e7420677561726469616e207365742063616e206368616e67652074686520677561726469616e20736574",
2020-08-21 03:45:24 -07:00
"id": 672,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "3903:59:1",
2020-08-09 12:16:18 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
"typeString": "literal_string \"only the current guardian set can change the guardian set\""
},
"value": "only the current guardian set can change the guardian set"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_57f82f54015302e10ddc5f5b0f8eebea6891c2be815aa07f38e9301457bc8c6a",
"typeString": "literal_string \"only the current guardian set can change the guardian set\""
}
],
2020-08-21 03:45:24 -07:00
"id": 668,
2020-08-09 12:16:18 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "3849:7:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 673,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3849:114:1",
2020-08-09 12:16:18 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 674,
2020-08-09 12:16:18 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "3849:114:1"
2020-08-09 12:16:18 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 676,
2020-08-09 09:16:52 -07:00
"name": "payload",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 650,
"src": "3998:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2020-08-21 03:45:24 -07:00
"id": 675,
2020-08-09 09:16:52 -07:00
"name": "vaaUpdateGuardianSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 801,
"src": "3977:20:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (bytes memory)"
}
},
2020-08-21 03:45:24 -07:00
"id": 677,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "3977:29:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 678,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "3977:29:1"
2020-08-09 09:16:52 -07:00
}
]
}
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 699,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 695,
2020-08-09 09:16:52 -07:00
"name": "consumedVAAs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 401,
"src": "4192:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
"typeString": "mapping(bytes32 => bool)"
}
},
2020-08-21 03:45:24 -07:00
"id": 697,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 696,
2020-08-09 09:16:52 -07:00
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 510,
"src": "4205:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "4192:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
2020-08-21 03:45:24 -07:00
"id": 698,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4213:4:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
2020-08-21 03:45:24 -07:00
"src": "4192:25:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2020-08-21 03:45:24 -07:00
"id": 700,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4192:25:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
"functionSelector": "3bc0aee6",
2020-08-21 03:45:24 -07:00
"id": 702,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
2020-08-21 03:45:24 -07:00
"modifiers": [
{
"arguments": null,
"id": 454,
"modifierName": {
"argumentTypes": null,
"id": 453,
"name": "nonReentrant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2478,
"src": "2291:12:1",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "2291:12:1"
}
],
2020-08-09 09:16:52 -07:00
"name": "submitVAA",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 452,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 451,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "vaa",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 702,
"src": "2259:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 450,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "2259:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "2249:34:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 455,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "2304:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "2231:1993:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 800,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "4287:744:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
708
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 708,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "new_guardian_set_index",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4297:29:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 707,
"name": "uint32",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4297:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 713,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 711,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4343:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 709,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 704,
"src": "4329:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 710,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"memberName": "toUint32",
2020-08-09 09:16:52 -07:00
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 163,
"src": "4329:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 712,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4329:16:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "4297:48:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
715
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 715,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "len",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4355:9:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 714,
"name": "uint8",
2020-08-09 09:16:52 -07:00
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4355:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 720,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"hexValue": "34",
"id": 718,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4380:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"value": "4"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 716,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 704,
"src": "4367:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 717,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-09 12:16:18 -07:00
"memberName": "toUint8",
2020-08-09 09:16:52 -07:00
"nodeType": "MemberAccess",
2020-08-09 12:16:18 -07:00
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "4367:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-09 12:16:18 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 719,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4367:15:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-09 12:16:18 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "4355:27:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
725
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 725,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
2020-08-21 03:45:24 -07:00
"name": "new_guardians",
2020-08-09 09:16:52 -07:00
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4393:30:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
2020-08-21 03:45:24 -07:00
"storageLocation": "memory",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
2020-08-09 09:16:52 -07:00
},
"typeName": {
2020-08-21 03:45:24 -07:00
"baseType": {
"id": 723,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4393:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_address",
"typeString": "address"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 724,
"length": null,
"nodeType": "ArrayTypeName",
"src": "4393:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"value": null,
"visibility": "internal"
}
],
"id": 731,
"initialValue": {
"argumentTypes": null,
"arguments": [
2020-08-09 09:16:52 -07:00
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 729,
"name": "len",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 715,
"src": "4440:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint8",
"typeString": "uint8"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 728,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "4426:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
"typeString": "function (uint256) pure returns (address[] memory)"
},
"typeName": {
"baseType": {
"id": 726,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4430:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 727,
"length": null,
"nodeType": "ArrayTypeName",
"src": "4430:9:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 730,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4426:18:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "VariableDeclarationStatement",
"src": "4393:51:1"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"body": {
"id": 759,
"nodeType": "Block",
"src": "4485:103:1",
"statements": [
2020-08-09 09:16:52 -07:00
{
2020-08-21 03:45:24 -07:00
"assignments": [
743
],
"declarations": [
{
"constant": false,
"id": 743,
"mutability": "mutable",
"name": "addr",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 759,
"src": "4499:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 742,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4499:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
],
"id": 752,
"initialValue": {
2020-08-09 09:16:52 -07:00
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 750,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "35",
"id": 746,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4529:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 749,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 747,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 733,
"src": "4533:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3230",
"id": 748,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4537:2:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_20_by_1",
"typeString": "int_const 20"
},
"value": "20"
},
"src": "4533:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4529:10:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
2020-08-09 09:16:52 -07:00
"expression": {
2020-08-21 03:45:24 -07:00
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 744,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 704,
"src": "4514:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 745,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 82,
"src": "4514:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"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)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 751,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
2020-08-21 03:45:24 -07:00
"kind": "functionCall",
2020-08-09 09:16:52 -07:00
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"names": [],
"nodeType": "FunctionCall",
"src": "4514:26:1",
"tryCall": false,
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_address",
"typeString": "address"
2020-08-09 12:16:18 -07:00
}
},
2020-08-21 03:45:24 -07:00
"nodeType": "VariableDeclarationStatement",
"src": "4499:41:1"
2020-08-09 12:16:18 -07:00
},
{
2020-08-21 03:45:24 -07:00
"expression": {
"argumentTypes": null,
"id": 757,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 753,
"name": "new_guardians",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 725,
"src": "4554:13:1",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"id": 755,
"indexExpression": {
"argumentTypes": null,
"id": 754,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 733,
"src": "4568:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4554:16:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 756,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 743,
"src": "4573:4:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "4554:23:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
2020-08-09 12:16:18 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 758,
"nodeType": "ExpressionStatement",
"src": "4554:23:1"
2020-08-09 12:16:18 -07:00
}
2020-08-21 03:45:24 -07:00
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 12:16:18 -07:00
},
2020-08-21 03:45:24 -07:00
"id": 738,
2020-08-09 12:16:18 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
2020-08-21 03:45:24 -07:00
"leftExpression": {
"argumentTypes": null,
"id": 736,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 733,
"src": "4471:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"id": 737,
"name": "len",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 715,
"src": "4475:3:1",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"src": "4471:7:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_bool",
"typeString": "bool"
2020-08-09 12:16:18 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 760,
"initializationExpression": {
"assignments": [
733
],
"declarations": [
2020-08-09 12:16:18 -07:00
{
2020-08-21 03:45:24 -07:00
"constant": false,
"id": 733,
"mutability": "mutable",
"name": "i",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 760,
"src": "4459:6:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2020-08-09 12:16:18 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"typeName": {
"id": 732,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "4459:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 735,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 734,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4468:1:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "4459:10:1"
},
"loopExpression": {
2020-08-09 09:16:52 -07:00
"expression": {
2020-08-21 03:45:24 -07:00
"argumentTypes": null,
"id": 740,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "4480:3:1",
"subExpression": {
"argumentTypes": null,
"id": 739,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 733,
"src": "4480:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
2020-08-21 03:45:24 -07:00
},
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 741,
"nodeType": "ExpressionStatement",
"src": "4480:3:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"nodeType": "ForStatement",
"src": "4454:134:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
762
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 762,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "old_guardian_set_index",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4598:29:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 761,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4598:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 764,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 763,
2020-08-09 09:16:52 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "4630:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "4598:50:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 767,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 765,
2020-08-09 09:16:52 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "4658:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 766,
2020-08-09 09:16:52 -07:00
"name": "new_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 708,
"src": "4679:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "4658:43:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"id": 768,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4658:43:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
770
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 770,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "new_guardian_set",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 800,
"src": "4712:35:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet"
},
"typeName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 769,
2020-08-09 09:16:52 -07:00
"name": "GuardianSet",
"nodeType": "UserDefinedTypeName",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 367,
"src": "4712:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 775,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 772,
"name": "new_guardians",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 725,
"src": "4762:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
2020-08-09 09:16:52 -07:00
}
},
{
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 773,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "4777:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
2020-08-09 09:16:52 -07:00
},
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
2020-08-21 03:45:24 -07:00
"id": 771,
2020-08-09 09:16:52 -07:00
"name": "GuardianSet",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 367,
"src": "4750:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_struct$_GuardianSet_$367_storage_ptr_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(struct Wormhole.GuardianSet storage pointer)"
}
},
2020-08-21 03:45:24 -07:00
"id": 774,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4750:29:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet memory"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "4712:67:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 780,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 776,
2020-08-09 09:16:52 -07:00
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 393,
"src": "4789:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
2020-08-09 09:16:52 -07:00
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
}
},
2020-08-21 03:45:24 -07:00
"id": 778,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 777,
2020-08-09 09:16:52 -07:00
"name": "guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "4803:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "4789:33:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 779,
2020-08-09 09:16:52 -07:00
"name": "new_guardian_set",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 770,
"src": "4825:16:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_memory_ptr",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet memory"
}
},
2020-08-21 03:45:24 -07:00
"src": "4789:52:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
2020-08-21 03:45:24 -07:00
"id": 781,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4789:52:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 793,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 782,
2020-08-09 09:16:52 -07:00
"name": "guardian_sets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 393,
"src": "4851:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_mapping$_t_uint32_$_t_struct$_GuardianSet_$367_storage_$",
2020-08-09 09:16:52 -07:00
"typeString": "mapping(uint32 => struct Wormhole.GuardianSet storage ref)"
}
},
2020-08-21 03:45:24 -07:00
"id": 784,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 783,
2020-08-09 09:16:52 -07:00
"name": "old_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 762,
"src": "4865:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "4851:37:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_struct$_GuardianSet_$367_storage",
2020-08-09 09:16:52 -07:00
"typeString": "struct Wormhole.GuardianSet storage ref"
}
},
2020-08-21 03:45:24 -07:00
"id": 785,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "expiration_time",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 366,
"src": "4851:53:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
2020-08-21 03:45:24 -07:00
"id": 792,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 788,
2020-08-09 09:16:52 -07:00
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
2020-08-21 03:45:24 -07:00
"src": "4914:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
2020-08-21 03:45:24 -07:00
"id": 789,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "timestamp",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "4914:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 787,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "4907:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint32_$",
"typeString": "type(uint32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 786,
2020-08-09 09:16:52 -07:00
"name": "uint32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4907:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 790,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4907:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 791,
2020-08-09 09:16:52 -07:00
"name": "vaa_expiry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 397,
"src": "4933:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "4907:36:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"src": "4851:92:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
2020-08-21 03:45:24 -07:00
"id": 794,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "4851:92:1"
2020-08-09 09:16:52 -07:00
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 796,
"name": "old_guardian_set_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 762,
"src": "4981:22:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 797,
"name": "guardian_set_index",
2020-08-09 09:16:52 -07:00
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 395,
"src": "5005:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
},
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 795,
2020-08-09 09:16:52 -07:00
"name": "LogGuardianSetChanged",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 373,
"src": "4959:21:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_event_nonpayable$_t_uint32_$_t_uint32_$returns$__$",
"typeString": "function (uint32,uint32)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 798,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "4959:65:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 799,
2020-08-09 09:16:52 -07:00
"nodeType": "EmitStatement",
2020-08-21 03:45:24 -07:00
"src": "4954:70:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 801,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "vaaUpdateGuardianSet",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 705,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 704,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 801,
"src": "4260:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 703,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "4260:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "4259:19:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 706,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "4287:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "4230:801:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 927,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "5085:1325:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
807
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 807,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "source_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5138:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 806,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5138:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 812,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "34",
2020-08-21 03:45:24 -07:00
"id": 810,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5172:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
},
"value": "4"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_4_by_1",
"typeString": "int_const 4"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 808,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5159:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 809,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "5159:12:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 811,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5159:15:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5138:36:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
814
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 814,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "target_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5185:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 813,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5185:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 819,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "35",
2020-08-21 03:45:24 -07:00
"id": 817,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5219:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
},
"value": "5"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_5_by_1",
"typeString": "int_const 5"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 815,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5206:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 816,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "5206:12:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 818,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5206:15:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5185:36:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
821
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 821,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "target_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5340:22:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 820,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5340:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 828,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_50_by_1",
"typeString": "int_const 50"
},
2020-08-21 03:45:24 -07:00
"id": 826,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3338",
2020-08-21 03:45:24 -07:00
"id": 824,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5380:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_38_by_1",
"typeString": "int_const 38"
},
"value": "38"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3132",
2020-08-21 03:45:24 -07:00
"id": 825,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5385:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_12_by_1",
"typeString": "int_const 12"
},
"value": "12"
},
2020-08-21 03:45:24 -07:00
"src": "5380:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_rational_50_by_1",
"typeString": "int_const 50"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_50_by_1",
"typeString": "int_const 50"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 822,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5365:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 823,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 82,
2020-08-21 03:45:24 -07:00
"src": "5365:14:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 827,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5365:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5340:48:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
830
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 830,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5399:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 829,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5399:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 835,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "3730",
2020-08-21 03:45:24 -07:00
"id": 833,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5432:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_70_by_1",
"typeString": "int_const 70"
},
"value": "70"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_70_by_1",
"typeString": "int_const 70"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 831,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5419:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 832,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint8",
"nodeType": "MemberAccess",
"referencedDeclaration": 109,
2020-08-21 03:45:24 -07:00
"src": "5419:12:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 834,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5419:16:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5399:36:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
837
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 837,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 927,
"src": "5499:14:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 836,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5499:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 842,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "313033",
2020-08-21 03:45:24 -07:00
"id": 840,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5531:3:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_103_by_1",
"typeString": "int_const 103"
},
"value": "103"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_103_by_1",
"typeString": "int_const 103"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 838,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5516:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 839,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toUint256",
"nodeType": "MemberAccess",
"referencedDeclaration": 271,
2020-08-21 03:45:24 -07:00
"src": "5516:14:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 841,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5516:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5499:36:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 846,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 844,
2020-08-09 09:16:52 -07:00
"name": "source_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 807,
"src": "5554:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 845,
2020-08-09 09:16:52 -07:00
"name": "target_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 814,
"src": "5570:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"src": "5554:28:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "73616d6520636861696e207472616e736665727320617265206e6f7420737570706f72746564",
2020-08-21 03:45:24 -07:00
"id": 847,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5584:40:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
"typeString": "literal_string \"same chain transfers are not supported\""
},
"value": "same chain transfers are not supported"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_e4bc00dc2f1f687d1ecd0a604d39e62ed5081a3cef70cb858e5f565f9bb7da23",
"typeString": "literal_string \"same chain transfers are not supported\""
}
],
2020-08-21 03:45:24 -07:00
"id": 843,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "5546:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 848,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5546:79:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 849,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "5546:79:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 853,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 851,
2020-08-09 09:16:52 -07:00
"name": "target_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 814,
"src": "5643:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 852,
2020-08-09 09:16:52 -07:00
"name": "CHAIN_ID",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 358,
"src": "5659:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"src": "5643:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "7472616e73666572206d75737420626520696e636f6d696e67",
2020-08-21 03:45:24 -07:00
"id": 854,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5669:27:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
"typeString": "literal_string \"transfer must be incoming\""
},
"value": "transfer must be incoming"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_cbd36b1271ec4677f9b6b0ce3c590e298ab53454b431f3898527107beeed1a5a",
"typeString": "literal_string \"transfer must be incoming\""
}
],
2020-08-21 03:45:24 -07:00
"id": 850,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "5635:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 855,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5635:62:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 856,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "5635:62:1"
2020-08-09 09:16:52 -07:00
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
2020-08-21 03:45:24 -07:00
"id": 859,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 857,
2020-08-09 09:16:52 -07:00
"name": "token_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 830,
"src": "5712:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 858,
2020-08-09 09:16:52 -07:00
"name": "CHAIN_ID",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 358,
"src": "5727:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"src": "5712:23:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
2020-08-21 03:45:24 -07:00
"id": 925,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "6259:145:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
909
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 909,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 925,
"src": "6273:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 908,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6273:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 916,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_83_by_1",
"typeString": "int_const 83"
},
2020-08-21 03:45:24 -07:00
"id": 914,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"hexValue": "3731",
2020-08-21 03:45:24 -07:00
"id": 912,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "6312:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_71_by_1",
"typeString": "int_const 71"
},
"value": "71"
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3132",
2020-08-21 03:45:24 -07:00
"id": 913,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "6317:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_12_by_1",
"typeString": "int_const 12"
},
"value": "12"
},
2020-08-21 03:45:24 -07:00
"src": "6312:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_rational_83_by_1",
"typeString": "int_const 83"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_83_by_1",
"typeString": "int_const 83"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 910,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "6297:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 911,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toAddress",
"nodeType": "MemberAccess",
"referencedDeclaration": 82,
2020-08-21 03:45:24 -07:00
"src": "6297:14:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 915,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6297:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "6273:47:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 921,
2020-08-09 09:16:52 -07:00
"name": "target_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 821,
"src": "6370:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 922,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 837,
"src": "6386:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 918,
2020-08-09 09:16:52 -07:00
"name": "token_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 909,
"src": "6342:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 917,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "6335:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract IERC20)"
}
},
2020-08-21 03:45:24 -07:00
"id": 919,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6335:21:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 920,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "safeTransfer",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2056,
"src": "6335:34:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2022_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "function (contract IERC20,address,uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 923,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6335:58:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 924,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6335:58:1"
2020-08-09 09:16:52 -07:00
}
]
},
2020-08-21 03:45:24 -07:00
"id": 926,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "5708:696:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 907,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "5737:516:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
861
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 861,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 907,
"src": "5751:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 860,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5751:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 866,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "3731",
2020-08-21 03:45:24 -07:00
"id": 864,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "5790:2:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_71_by_1",
"typeString": "int_const 71"
},
"value": "71"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_71_by_1",
"typeString": "int_const 71"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 862,
2020-08-09 09:16:52 -07:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 803,
"src": "5775:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
2020-08-21 03:45:24 -07:00
"id": 863,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "toBytes32",
"nodeType": "MemberAccess",
"referencedDeclaration": 298,
2020-08-21 03:45:24 -07:00
"src": "5775:14:1",
2020-08-09 09:16:52 -07:00
"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)"
}
},
2020-08-21 03:45:24 -07:00
"id": 865,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5775:18:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5751:42:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
868
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 868,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset_id",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 907,
"src": "5807:16:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 867,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5807:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 876,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 872,
2020-08-09 09:16:52 -07:00
"name": "token_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 830,
"src": "5853:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 873,
2020-08-09 09:16:52 -07:00
"name": "token_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 861,
"src": "5866:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 870,
2020-08-09 09:16:52 -07:00
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
2020-08-21 03:45:24 -07:00
"src": "5836:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
2020-08-21 03:45:24 -07:00
"id": 871,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "5836:16:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
2020-08-21 03:45:24 -07:00
"id": 874,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5836:44:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2020-08-21 03:45:24 -07:00
"id": 869,
2020-08-09 09:16:52 -07:00
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -8,
2020-08-21 03:45:24 -07:00
"src": "5826:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
2020-08-21 03:45:24 -07:00
"id": 875,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "5826:55:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5807:74:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
878
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 878,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "wrapped_asset",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 907,
"src": "5973:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 877,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5973:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 882,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 879,
2020-08-09 09:16:52 -07:00
"name": "wrappedAssets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 405,
"src": "5997:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
2020-08-21 03:45:24 -07:00
"id": 881,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 880,
2020-08-09 09:16:52 -07:00
"name": "asset_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 868,
"src": "6011:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "5997:23:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "5973:47:1"
2020-08-09 09:16:52 -07:00
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
2020-08-21 03:45:24 -07:00
"id": 888,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 883,
2020-08-09 09:16:52 -07:00
"name": "wrapped_asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 878,
"src": "6038:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 886,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "6063:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
2020-08-21 03:45:24 -07:00
"id": 885,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "6055:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 884,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6055:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 887,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6055:10:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
2020-08-21 03:45:24 -07:00
"src": "6038:27:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
2020-08-21 03:45:24 -07:00
"id": 898,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "6034:138:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 897,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "6067:105:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 895,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 889,
2020-08-09 09:16:52 -07:00
"name": "wrapped_asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 878,
"src": "6085:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 891,
2020-08-09 09:16:52 -07:00
"name": "asset_id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 868,
"src": "6120:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 892,
2020-08-09 09:16:52 -07:00
"name": "token_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 830,
"src": "6130:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 893,
2020-08-09 09:16:52 -07:00
"name": "token_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 861,
"src": "6143:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
2020-08-21 03:45:24 -07:00
"id": 890,
2020-08-09 09:16:52 -07:00
"name": "deployWrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 968,
"src": "6101:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint8_$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32,uint8,bytes32) returns (address)"
}
},
2020-08-21 03:45:24 -07:00
"id": 894,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6101:56:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"src": "6085:72:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"id": 896,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6085:72:1"
2020-08-09 09:16:52 -07:00
}
]
}
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 903,
2020-08-09 09:16:52 -07:00
"name": "target_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 821,
"src": "6219:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 904,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 837,
"src": "6235:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 900,
2020-08-09 09:16:52 -07:00
"name": "wrapped_asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 878,
"src": "6199:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 899,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "6186:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 901,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6186:27:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 902,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "mint",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1263,
"src": "6186:32:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
2020-08-21 03:45:24 -07:00
"id": 905,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6186:56:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 906,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6186:56:1"
2020-08-09 09:16:52 -07:00
}
]
}
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 928,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "vaaTransfer",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 804,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 803,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 928,
"src": "5058:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 802,
2020-08-09 09:16:52 -07:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "5058:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "5057:19:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 805,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "5085:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "5037:1373:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 967,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "6531:791:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
940
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 940,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "targetBytes",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 967,
"src": "6709:19:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes20",
"typeString": "bytes20"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 939,
2020-08-09 09:16:52 -07:00
"name": "bytes20",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6709:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes20",
"typeString": "bytes20"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 945,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 943,
2020-08-09 09:16:52 -07:00
"name": "wrappedAssetMaster",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 355,
"src": "6739:18:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 942,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "6731:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes20_$",
"typeString": "type(bytes20)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 941,
2020-08-09 09:16:52 -07:00
"name": "bytes20",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6731:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 944,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6731:27:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes20",
"typeString": "bytes20"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "6709:49:1"
2020-08-09 09:16:52 -07:00
},
{
"AST": {
"nodeType": "YulBlock",
2020-08-21 03:45:24 -07:00
"src": "6777:341:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"nodeType": "YulVariableDeclaration",
2020-08-21 03:45:24 -07:00
"src": "6791:24:1",
2020-08-09 09:16:52 -07:00
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6810:4:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6804:5:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6804:11:1"
2020-08-09 09:16:52 -07:00
},
"variables": [
{
"name": "clone",
"nodeType": "YulTypedName",
2020-08-21 03:45:24 -07:00
"src": "6795:5:1",
2020-08-09 09:16:52 -07:00
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "clone",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6835:5:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6842:66:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6828:6:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6828:81:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6828:81:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "clone",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6933:5:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6940:4:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x14"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6929:3:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6929:16:1"
2020-08-09 09:16:52 -07:00
},
{
"name": "targetBytes",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6947:11:1"
2020-08-09 09:16:52 -07:00
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6922:6:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6922:37:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6922:37:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "clone",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6983:5:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6990:4:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x28"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6979:3:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6979:16:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "6997:66:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "6972:6:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "6972:92:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "6972:92:1"
2020-08-09 09:16:52 -07:00
},
{
"nodeType": "YulAssignment",
2020-08-21 03:45:24 -07:00
"src": "7077:31:1",
2020-08-09 09:16:52 -07:00
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "7093:1:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0"
},
{
"name": "clone",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "7096:5:1"
2020-08-09 09:16:52 -07:00
},
{
"kind": "number",
"nodeType": "YulLiteral",
2020-08-21 03:45:24 -07:00
"src": "7103:4:1",
2020-08-09 09:16:52 -07:00
"type": "",
"value": "0x37"
}
],
"functionName": {
"name": "create",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "7086:6:1"
2020-08-09 09:16:52 -07:00
},
"nodeType": "YulFunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7086:22:1"
2020-08-09 09:16:52 -07:00
},
"variableNames": [
{
"name": "asset",
"nodeType": "YulIdentifier",
2020-08-21 03:45:24 -07:00
"src": "7077:5:1"
2020-08-09 09:16:52 -07:00
}
]
}
]
},
"evmVersion": "istanbul",
"externalReferences": [
{
2020-08-21 03:45:24 -07:00
"declaration": 937,
2020-08-09 09:16:52 -07:00
"isOffset": false,
"isSlot": false,
2020-08-21 03:45:24 -07:00
"src": "7077:5:1",
2020-08-09 09:16:52 -07:00
"valueSize": 1
},
{
2020-08-21 03:45:24 -07:00
"declaration": 940,
2020-08-09 09:16:52 -07:00
"isOffset": false,
"isSlot": false,
2020-08-21 03:45:24 -07:00
"src": "6947:11:1",
2020-08-09 09:16:52 -07:00
"valueSize": 1
}
],
2020-08-21 03:45:24 -07:00
"id": 946,
2020-08-09 09:16:52 -07:00
"nodeType": "InlineAssembly",
2020-08-21 03:45:24 -07:00
"src": "6768:350:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 951,
2020-08-09 09:16:52 -07:00
"name": "token_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 932,
"src": "7187:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 952,
2020-08-09 09:16:52 -07:00
"name": "token_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 934,
"src": "7200:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 948,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 937,
"src": "7169:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 947,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "7156:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 949,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7156:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 950,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "initialize",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1242,
"src": "7156:30:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_uint8_$_t_bytes32_$returns$__$",
"typeString": "function (uint8,bytes32) external"
}
},
2020-08-21 03:45:24 -07:00
"id": 953,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7156:58:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 954,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7156:58:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 959,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 955,
2020-08-09 09:16:52 -07:00
"name": "wrappedAssets",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 405,
"src": "7250:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
"typeString": "mapping(bytes32 => address)"
}
},
2020-08-21 03:45:24 -07:00
"id": 957,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 956,
2020-08-09 09:16:52 -07:00
"name": "seed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 930,
"src": "7264:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "7250:19:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 958,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 937,
"src": "7272:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"src": "7250:27:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2020-08-21 03:45:24 -07:00
"id": 960,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7250:27:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 965,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 961,
2020-08-09 09:16:52 -07:00
"name": "isWrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 409,
"src": "7287:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
"typeString": "mapping(address => bool)"
}
},
2020-08-21 03:45:24 -07:00
"id": 963,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 962,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 937,
"src": "7302:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "7287:21:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "74727565",
2020-08-21 03:45:24 -07:00
"id": 964,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "7311:4:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
2020-08-21 03:45:24 -07:00
"src": "7287:28:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2020-08-21 03:45:24 -07:00
"id": 966,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7287:28:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 968,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "deployWrappedAsset",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 935,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 930,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "seed",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 968,
"src": "6444:12:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 929,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6444:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 932,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 968,
"src": "6458:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 931,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6458:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 934,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "token_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 968,
"src": "6477:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 933,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6477:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "6443:56:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 938,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 937,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 968,
"src": "6517:13:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 936,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "6517:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "6516:15:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "6416:906:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "private"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 1099,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "7526:1034:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 986,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 984,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "7544:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 985,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "7554:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
2020-08-21 03:45:24 -07:00
"src": "7544:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "616d6f756e74206d757374206e6f742062652030",
2020-08-21 03:45:24 -07:00
"id": 987,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "7557:22:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3",
"typeString": "literal_string \"amount must not be 0\""
},
"value": "amount must not be 0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3",
"typeString": "literal_string \"amount must not be 0\""
}
],
2020-08-21 03:45:24 -07:00
"id": 983,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "7536:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 988,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7536:44:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 989,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7536:44:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
991
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 991,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1099,
"src": "7591:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 990,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7591:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 993,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 992,
2020-08-09 09:16:52 -07:00
"name": "CHAIN_ID",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 358,
"src": "7611:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "7591:28:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
995
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 995,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset_address",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1099,
"src": "7629:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 994,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7629:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 996,
2020-08-09 09:16:52 -07:00
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "7629:21:1"
2020-08-09 09:16:52 -07:00
},
{
"condition": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 997,
2020-08-09 09:16:52 -07:00
"name": "isWrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 409,
"src": "7664:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
"typeString": "mapping(address => bool)"
}
},
2020-08-21 03:45:24 -07:00
"id": 999,
2020-08-09 09:16:52 -07:00
"indexExpression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 998,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7679:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2020-08-21 03:45:24 -07:00
"src": "7664:21:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
2020-08-21 03:45:24 -07:00
"id": 1080,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "7886:539:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"assignments": [
2020-08-21 03:45:24 -07:00
1027
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 1027,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "balanceBefore",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1080,
"src": "7900:21:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1026,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7900:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 1037,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1034,
2020-08-09 09:16:52 -07:00
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
2020-08-21 03:45:24 -07:00
"src": "7956:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
],
2020-08-21 03:45:24 -07:00
"id": 1033,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "7948:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1032,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7948:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1035,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7948:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1029,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7931:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1028,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "7924:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract IERC20)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1030,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7924:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 1031,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balanceOf",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1961,
"src": "7924:23:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view external returns (uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1036,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7924:38:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "7900:62:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1042,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8007:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1043,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8007:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1046,
2020-08-09 09:16:52 -07:00
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
2020-08-21 03:45:24 -07:00
"src": "8027:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
],
2020-08-21 03:45:24 -07:00
"id": 1045,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8019:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1044,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8019:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1047,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8019:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1048,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "8034:6:1",
2020-08-09 09:16:52 -07:00
"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,
2020-08-21 03:45:24 -07:00
"id": 1039,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7983:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1038,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "7976:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract IERC20)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1040,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7976:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 1041,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "safeTransferFrom",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2081,
"src": "7976:30:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$2022_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "function (contract IERC20,address,address,uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1049,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7976:65:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1050,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7976:65:1"
2020-08-09 09:16:52 -07:00
},
{
"assignments": [
2020-08-21 03:45:24 -07:00
1052
2020-08-09 09:16:52 -07:00
],
"declarations": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 1052,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "balanceAfter",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1080,
"src": "8055:20:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1051,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8055:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"id": 1062,
2020-08-09 09:16:52 -07:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1059,
2020-08-09 09:16:52 -07:00
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
2020-08-21 03:45:24 -07:00
"src": "8110:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
}
],
"expression": {
"argumentTypes": [
{
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_Wormhole_$1170",
2020-08-09 09:16:52 -07:00
"typeString": "contract Wormhole"
}
],
2020-08-21 03:45:24 -07:00
"id": 1058,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8102:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1057,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8102:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1060,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8102:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1054,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "8085:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1053,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "8078:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_IERC20_$2022_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract IERC20)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1055,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8078:13:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 1056,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balanceOf",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1961,
"src": "8078:23:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view external returns (uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1061,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8078:38:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2020-08-21 03:45:24 -07:00
"src": "8055:61:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1068,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1063,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "8321:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1066,
2020-08-09 09:16:52 -07:00
"name": "balanceBefore",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1027,
"src": "8347:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1064,
2020-08-09 09:16:52 -07:00
"name": "balanceAfter",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1052,
"src": "8330:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"id": 1065,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1794,
"src": "8330:16:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1067,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8330:31:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"src": "8321:40:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2020-08-21 03:45:24 -07:00
"id": 1069,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "8321:40:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1078,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1070,
2020-08-09 09:16:52 -07:00
"name": "asset_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 995,
"src": "8375:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1075,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "8407:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1074,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8399:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1073,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8399:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1076,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8399:14:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 1072,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8391:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1071,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8391:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1077,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8391:23:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-21 03:45:24 -07:00
"src": "8375:39:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-21 03:45:24 -07:00
"id": 1079,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "8375:39:1"
2020-08-09 09:16:52 -07:00
}
]
},
2020-08-21 03:45:24 -07:00
"id": 1081,
2020-08-09 09:16:52 -07:00
"nodeType": "IfStatement",
2020-08-21 03:45:24 -07:00
"src": "7660:765:1",
2020-08-09 09:16:52 -07:00
"trueBody": {
2020-08-21 03:45:24 -07:00
"id": 1025,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "7687:193:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1004,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "7726:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1005,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "7726:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1006,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "7738:6:1",
2020-08-09 09:16:52 -07:00
"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,
2020-08-21 03:45:24 -07:00
"id": 1001,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7714:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1000,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "7701:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1002,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7701:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 1003,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "burn",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1284,
"src": "7701:24:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256) external"
}
},
2020-08-21 03:45:24 -07:00
"id": 1007,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7701:44:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1008,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7701:44:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1015,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1009,
2020-08-09 09:16:52 -07:00
"name": "asset_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 991,
"src": "7759:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1011,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7786:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1010,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "7773:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1012,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7773:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 1013,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "assetChain",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1193,
"src": "7773:30:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
"typeString": "function () view external returns (uint8)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1014,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7773:32:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"src": "7759:46:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2020-08-21 03:45:24 -07:00
"id": 1016,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7759:46:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1023,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1017,
2020-08-09 09:16:52 -07:00
"name": "asset_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 995,
"src": "7819:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1019,
2020-08-09 09:16:52 -07:00
"name": "asset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 970,
"src": "7848:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1018,
2020-08-09 09:16:52 -07:00
"name": "WrappedAsset",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1725,
"src": "7835:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WrappedAsset_$1725_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WrappedAsset)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1020,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7835:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WrappedAsset_$1725",
2020-08-09 09:16:52 -07:00
"typeString": "contract WrappedAsset"
}
},
2020-08-21 03:45:24 -07:00
"id": 1021,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "assetAddress",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1195,
"src": "7835:32:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
"typeString": "function () view external returns (bytes32)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1022,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "7835:34:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-21 03:45:24 -07:00
"src": "7819:50:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-21 03:45:24 -07:00
"id": 1024,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "7819:50:1"
2020-08-09 09:16:52 -07:00
}
]
}
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1083,
2020-08-09 09:16:52 -07:00
"name": "target_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 976,
"src": "8456:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1084,
2020-08-09 09:16:52 -07:00
"name": "asset_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 991,
"src": "8470:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1085,
2020-08-09 09:16:52 -07:00
"name": "asset_address",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 995,
"src": "8483:13:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1090,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8514:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1091,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8514:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
2020-08-21 03:45:24 -07:00
"id": 1089,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8506:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1088,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8506:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1092,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8506:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 1087,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8498:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1086,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8498:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1093,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8498:28:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1094,
2020-08-09 12:16:18 -07:00
"name": "recipient",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 974,
"src": "8528:9:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1095,
2020-08-09 09:16:52 -07:00
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 972,
"src": "8539:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-21 03:45:24 -07:00
},
{
"argumentTypes": null,
"id": 1096,
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 978,
"src": "8547:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-21 03:45:24 -07:00
},
{
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 1082,
2020-08-09 09:16:52 -07:00
"name": "LogTokensLocked",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 389,
"src": "8440:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$",
"typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 1097,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8440:113:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1098,
2020-08-09 09:16:52 -07:00
"nodeType": "EmitStatement",
2020-08-21 03:45:24 -07:00
"src": "8435:118:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"functionSelector": "13cca1a9",
"id": 1100,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
2020-08-21 03:45:24 -07:00
"modifiers": [
{
"arguments": null,
"id": 981,
"modifierName": {
"argumentTypes": null,
"id": 980,
"name": "nonReentrant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2478,
"src": "7513:12:1",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "7513:12:1"
}
],
2020-08-09 09:16:52 -07:00
"name": "lockAssets",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 979,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 970,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "asset",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1100,
"src": "7385:13:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 969,
2020-08-09 09:16:52 -07:00
"name": "address",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7385:7:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 972,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1100,
"src": "7408:14:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 971,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7408:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 974,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "recipient",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1100,
"src": "7432:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 973,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7432:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 976,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "target_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1100,
"src": "7459:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 975,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "7459:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
2020-08-21 03:45:24 -07:00
},
{
"constant": false,
"id": 978,
"mutability": "mutable",
"name": "nonce",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1100,
"src": "7487:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 977,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "7487:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"src": "7375:130:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 982,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "7526:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "7356:1204:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 1152,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "8694:330:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2020-08-21 03:45:24 -07:00
"id": 1115,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1112,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8712:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1113,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8712:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
2020-08-21 03:45:24 -07:00
"id": 1114,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "8725:1:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
2020-08-21 03:45:24 -07:00
"src": "8712:14:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "616d6f756e74206d757374206e6f742062652030",
2020-08-21 03:45:24 -07:00
"id": 1116,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "8728:22:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3",
"typeString": "literal_string \"amount must not be 0\""
},
"value": "amount must not be 0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c3143f59cb0e580c5873dd9b2860385487237680573a0afd40e8c0860e76a5d3",
"typeString": "literal_string \"amount must not be 0\""
}
],
2020-08-21 03:45:24 -07:00
"id": 1111,
2020-08-09 09:16:52 -07:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
2020-08-21 03:45:24 -07:00
"src": "8704:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 1117,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8704:47:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1118,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "8704:47:1"
2020-08-09 09:16:52 -07:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1120,
2020-08-09 09:16:52 -07:00
"name": "WETHAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 361,
"src": "8800:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1119,
2020-08-09 09:16:52 -07:00
"name": "WETH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1181,
"src": "8795:4:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_type$_t_contract$_WETH_$1181_$",
2020-08-09 09:16:52 -07:00
"typeString": "type(contract WETH)"
}
},
2020-08-21 03:45:24 -07:00
"id": 1121,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8795:17:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_WETH_$1181",
2020-08-09 09:16:52 -07:00
"typeString": "contract WETH"
}
},
2020-08-21 03:45:24 -07:00
"id": 1122,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "deposit",
"nodeType": "MemberAccess",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1175,
"src": "8795:25:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_payable$__$returns$__$",
"typeString": "function () payable external"
}
},
2020-08-21 03:45:24 -07:00
"id": 1125,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"names": [
"value"
],
"nodeType": "FunctionCallOptions",
"options": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1123,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8829:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1124,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8829:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
2020-08-21 03:45:24 -07:00
"src": "8795:44:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_external_payable$__$returns$__$value",
"typeString": "function () payable external"
}
},
2020-08-21 03:45:24 -07:00
"id": 1126,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8795:46:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1127,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "8795:46:1"
2020-08-09 09:16:52 -07:00
},
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1129,
2020-08-09 09:16:52 -07:00
"name": "target_chain",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1104,
"src": "8904:12:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1130,
2020-08-09 09:16:52 -07:00
"name": "CHAIN_ID",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 358,
"src": "8918:8:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1135,
2020-08-09 09:16:52 -07:00
"name": "WETHAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 361,
"src": "8944:11:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
2020-08-21 03:45:24 -07:00
"id": 1134,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8936:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1133,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8936:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1136,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8936:20:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 1132,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8928:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1131,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8928:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1137,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8928:29:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1142,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "8975:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1143,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "8975:10:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
],
2020-08-21 03:45:24 -07:00
"id": 1141,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8967:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1140,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8967:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1144,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8967:19:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2020-08-21 03:45:24 -07:00
"id": 1139,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2020-08-21 03:45:24 -07:00
"src": "8959:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1138,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8959:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": null,
"typeString": null
}
}
},
2020-08-21 03:45:24 -07:00
"id": 1145,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8959:28:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-09 12:16:18 -07:00
{
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1146,
2020-08-09 12:16:18 -07:00
"name": "recipient",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 1102,
"src": "8989:9:1",
2020-08-09 12:16:18 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2020-08-09 09:16:52 -07:00
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2020-08-21 03:45:24 -07:00
"id": 1147,
2020-08-09 09:16:52 -07:00
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
2020-08-21 03:45:24 -07:00
"src": "9000:3:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
2020-08-21 03:45:24 -07:00
"id": 1148,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2020-08-21 03:45:24 -07:00
"src": "9000:9:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
2020-08-21 03:45:24 -07:00
},
{
"argumentTypes": null,
"id": 1149,
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1106,
"src": "9011:5:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
2020-08-09 09:16:52 -07:00
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2020-08-21 03:45:24 -07:00
},
{
"typeIdentifier": "t_uint32",
"typeString": "uint32"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"id": 1128,
2020-08-09 09:16:52 -07:00
"name": "LogTokensLocked",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 389,
"src": "8888:15:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_function_event_nonpayable$_t_uint8_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint32_$returns$__$",
"typeString": "function (uint8,uint8,bytes32,bytes32,bytes32,uint256,uint32)"
2020-08-09 09:16:52 -07:00
}
},
2020-08-21 03:45:24 -07:00
"id": 1150,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "8888:129:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1151,
2020-08-09 09:16:52 -07:00
"nodeType": "EmitStatement",
2020-08-21 03:45:24 -07:00
"src": "8883:134:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"functionSelector": "58d62e46",
"id": 1153,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "function",
2020-08-21 03:45:24 -07:00
"modifiers": [
{
"arguments": null,
"id": 1109,
"modifierName": {
"argumentTypes": null,
"id": 1108,
"name": "nonReentrant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2478,
"src": "8681:12:1",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "8681:12:1"
}
],
2020-08-09 09:16:52 -07:00
"name": "lockETH",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 1107,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 1102,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "recipient",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1153,
"src": "8592:17:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1101,
2020-08-09 09:16:52 -07:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8592:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 1104,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "target_chain",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1153,
"src": "8619:18:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1103,
2020-08-09 09:16:52 -07:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "8619:5:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
2020-08-21 03:45:24 -07:00
},
{
"constant": false,
"id": 1106,
"mutability": "mutable",
"name": "nonce",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 1153,
"src": "8647:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 1105,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "8647:6:1",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"src": "8582:83:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 1110,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "8694:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "8566:458:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 1160,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "9055:57:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
2020-08-21 03:45:24 -07:00
"id": 1157,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "9063:46:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
"typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
},
"value": "please use lockETH to transfer ETH to Solana"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
"typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
}
],
2020-08-21 03:45:24 -07:00
"id": 1156,
2020-08-09 09:16:52 -07:00
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
2020-08-21 03:45:24 -07:00
"src": "9056:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 1158,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "9056:54:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1159,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "9056:54:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 1161,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 1154,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "9035:2:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 1155,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "9055:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "9027:85:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
2020-08-21 03:45:24 -07:00
"id": 1168,
2020-08-09 09:16:52 -07:00
"nodeType": "Block",
2020-08-21 03:45:24 -07:00
"src": "9140:57:1",
2020-08-09 09:16:52 -07:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "706c6561736520757365206c6f636b45544820746f207472616e736665722045544820746f20536f6c616e61",
2020-08-21 03:45:24 -07:00
"id": 1165,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2020-08-21 03:45:24 -07:00
"src": "9148:46:1",
2020-08-09 09:16:52 -07:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
"typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
},
"value": "please use lockETH to transfer ETH to Solana"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_414957345d33678f377f3c67303c55f683553546e00bb5a8689e656385e6efb2",
"typeString": "literal_string \"please use lockETH to transfer ETH to Solana\""
}
],
2020-08-21 03:45:24 -07:00
"id": 1164,
2020-08-09 09:16:52 -07:00
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
-19,
-19
],
"referencedDeclaration": -19,
2020-08-21 03:45:24 -07:00
"src": "9141:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory) pure"
}
},
2020-08-21 03:45:24 -07:00
"id": 1166,
2020-08-09 09:16:52 -07:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2020-08-21 03:45:24 -07:00
"src": "9141:54:1",
2020-08-09 09:16:52 -07:00
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2020-08-21 03:45:24 -07:00
"id": 1167,
2020-08-09 09:16:52 -07:00
"nodeType": "ExpressionStatement",
2020-08-21 03:45:24 -07:00
"src": "9141:54:1"
2020-08-09 09:16:52 -07:00
}
]
},
"documentation": null,
2020-08-21 03:45:24 -07:00
"id": 1169,
2020-08-09 09:16:52 -07:00
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 1162,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "9120:2:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 1163,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "9140:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1170,
"src": "9113:84:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
}
],
2020-08-21 03:45:24 -07:00
"scope": 1182,
"src": "446:8753:1"
2020-08-09 09:16:52 -07:00
},
{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
2020-08-21 03:45:24 -07:00
"id": 1171,
2020-08-09 09:16:52 -07:00
"name": "IERC20",
"nodeType": "UserDefinedTypeName",
2020-08-21 03:45:24 -07:00
"referencedDeclaration": 2022,
"src": "9220:6:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
2020-08-21 03:45:24 -07:00
"typeIdentifier": "t_contract$_IERC20_$2022",
2020-08-09 09:16:52 -07:00
"typeString": "contract IERC20"
}
},
2020-08-21 03:45:24 -07:00
"id": 1172,
2020-08-09 09:16:52 -07:00
"nodeType": "InheritanceSpecifier",
2020-08-21 03:45:24 -07:00
"src": "9220:6:1"
2020-08-09 09:16:52 -07:00
}
],
"contractDependencies": [
2020-08-21 03:45:24 -07:00
2022
2020-08-09 09:16:52 -07:00
],
"contractKind": "interface",
"documentation": null,
"fullyImplemented": false,
2020-08-21 03:45:24 -07:00
"id": 1181,
2020-08-09 09:16:52 -07:00
"linearizedBaseContracts": [
2020-08-21 03:45:24 -07:00
1181,
2022
2020-08-09 09:16:52 -07:00
],
"name": "WETH",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"functionSelector": "d0e30db0",
2020-08-21 03:45:24 -07:00
"id": 1175,
2020-08-09 09:16:52 -07:00
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "deposit",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 1173,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "9245:2:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 1174,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "9264:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1181,
"src": "9229:36:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": null,
"documentation": null,
"functionSelector": "2e1a7d4d",
2020-08-21 03:45:24 -07:00
"id": 1180,
2020-08-09 09:16:52 -07:00
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
2020-08-21 03:45:24 -07:00
"id": 1178,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2020-08-21 03:45:24 -07:00
"id": 1177,
2020-08-09 09:16:52 -07:00
"mutability": "mutable",
"name": "amount",
"nodeType": "VariableDeclaration",
"overrides": null,
2020-08-21 03:45:24 -07:00
"scope": 1180,
"src": "9285:14:1",
2020-08-09 09:16:52 -07:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2020-08-21 03:45:24 -07:00
"id": 1176,
2020-08-09 09:16:52 -07:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2020-08-21 03:45:24 -07:00
"src": "9285:7:1",
2020-08-09 09:16:52 -07:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2020-08-21 03:45:24 -07:00
"src": "9284:16:1"
2020-08-09 09:16:52 -07:00
},
"returnParameters": {
2020-08-21 03:45:24 -07:00
"id": 1179,
2020-08-09 09:16:52 -07:00
"nodeType": "ParameterList",
"parameters": [],
2020-08-21 03:45:24 -07:00
"src": "9309:0:1"
2020-08-09 09:16:52 -07:00
},
2020-08-21 03:45:24 -07:00
"scope": 1181,
"src": "9267:43:1",
2020-08-09 09:16:52 -07:00
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
2020-08-21 03:45:24 -07:00
"scope": 1182,
"src": "9202:110:1"
2020-08-09 09:16:52 -07:00
}
],
2020-08-21 03:45:24 -07:00
"src": "103:9210:1"
2020-08-09 09:16:52 -07:00
},
"compiler": {
"name": "solc",
"version": "0.6.12+commit.27d51765.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.2.3",
2020-08-21 03:45:24 -07:00
"updatedAt": "2020-08-20T18:32:51.829Z",
2020-08-09 09:16:52 -07:00
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
2020-08-21 03:45:24 -07:00
}