diff --git a/solidity/broadcast/Upgrade.s.sol/42161/run-1728824221.json b/solidity/broadcast/Upgrade.s.sol/42161/run-1728824221.json new file mode 100644 index 0000000..ee931b0 --- /dev/null +++ b/solidity/broadcast/Upgrade.s.sol/42161/run-1728824221.json @@ -0,0 +1,117 @@ +{ + "transactions": [ + { + "hash": "0x7aa117544b90ce9ed72d068e27fd521170de93735710a254eb14b15b7cf85175", + "transactionType": "CREATE", + "contractName": "FastTransferGateway", + "contractAddress": "0x03ff7957db9adfbf437760cda03ba553250a708c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56ca414d41cd3c1188a4939b0d56417da7bb6da2", + "gas": "0x811f92", + "value": "0x0", + "input": "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612f9b6100fd600039600081816118db015281816119040152611a4a0152612f9b6000f3fe6080604052600436106101815760003560e01c806395d7325d116100d1578063f13a89b41161008a578063f2fde38b11610064578063f2fde38b146104fb578063f3c61d6b1461051b578063f7213db61461053b578063fc0c546a146105b057600080fd5b8063f13a89b41461049b578063f23517ee146104bb578063f2c20924146104db57600080fd5b806395d7325d146103c0578063ad3cb1cc146103e0578063affed0e01461041e578063d5438eae1461043b578063e5dc84961461045b578063e88787c21461047b57600080fd5b806356d5d4751161013e5780637f665ee5116101185780637f665ee51461029657806385cf3f93146102d35780638d3638f41461034a5780638da5cb5b1461038357600080fd5b806356d5d475146102365780636afdd85014610249578063715018a61461028157600080fd5b806313d9c7f9146101865780631cabc26f1461019b5780631ea9e2e3146101ce57806330c5b926146101fb5780634f1ef2861461020e57806352d1902d14610221575b600080fd5b610199610194366004612607565b6105d0565b005b3480156101a757600080fd5b506101bb6101b6366004612643565b61083c565b6040519081526020015b60405180910390f35b3480156101da57600080fd5b506101bb6101e9366004612690565b60036020526000908152604090205481565b6101996102093660046126ab565b610972565b61019961021c3660046126fe565b610a94565b34801561022d57600080fd5b506101bb610ab3565b61019961024436600461277d565b610ad0565b34801561025557600080fd5b50600054610269906001600160a01b031681565b6040516001600160a01b0390911681526020016101c5565b34801561028d57600080fd5b50610199610d67565b3480156102a257600080fd5b506102c66102b13660046127d6565b60066020526000908152604090205460ff1681565b6040516101c59190612805565b3480156102df57600080fd5b5061031e6102ee3660046127d6565b60056020526000908152604090208054600182015460028301546003909301549192909163ffffffff9091169084565b6040516101c59493929190938452602084019290925263ffffffff166040830152606082015260800190565b34801561035657600080fd5b5060025461036e90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c5565b34801561038f57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610269565b3480156103cc57600080fd5b506101996103db36600461282d565b610d7b565b3480156103ec57600080fd5b50610411604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c591906128c0565b34801561042a57600080fd5b5060045461036e9063ffffffff1681565b34801561044757600080fd5b50600254610269906001600160a01b031681565b34801561046757600080fd5b506101996104763660046128d3565b611179565b34801561048757600080fd5b506101bb6104963660046128fd565b61119a565b3480156104a757600080fd5b506101bb6104b6366004612953565b611274565b3480156104c757600080fd5b506101bb6104d63660046129d6565b611457565b3480156104e757600080fd5b506101996104f6366004612a98565b611633565b34801561050757600080fd5b50610199610516366004612afd565b6117a5565b34801561052757600080fd5b50610199610536366004612afd565b6117e3565b34801561054757600080fd5b506105876105563660046127d6565b600760205260009081526040902080546001909101546001600160a01b03811690600160a01b900463ffffffff1683565b604080519384526001600160a01b03909216602084015263ffffffff16908201526060016101c5565b3480156105bc57600080fd5b50600154610269906001600160a01b031681565b60606000805b83518110156107625760008482815181106105f3576105f3612b18565b6020026020010151905060006106088261180d565b60008181526006602052604090205460e084015191925060ff169042116106875760405162461bcd60e51b815260206004820152602860248201527f466173745472616e73666572476174657761793a206f72646572206e6f7420746044820152671a5b5959081bdd5d60c21b60648201526084015b60405180910390fd5b600081600281111561069b5761069b6127ef565b146106f25760405162461bcd60e51b815260206004820152602160248201527f466173745472616e73666572476174657761793a206f726465722066696c6c656044820152601960fa1b606482015260840161067e565b8315610727578463ffffffff168360a0015163ffffffff16146107275760405162461bcd60e51b815260040161067e90612b2e565b858260405160200161073a929190612b7c565b60405160208183030381529060405295508260a00151945050505080806001019150506105d6565b5063ffffffff8116600090815260036020526040902054806107965760405162461bcd60e51b815260040161067e90612b9e565b60006001846040516020016107ac929190612be8565b60408051601f198184030181529082905260025463fa31de0160e01b83529092506001600160a01b03169063fa31de019034906107f190879087908790600401612c17565b60206040518083038185885af115801561080f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108349190612c3c565b505050505050565b63ffffffff82166000908152600360205260408120548061086f5760405162461bcd60e51b815260040161067e90612b9e565b606060005b84518110156108cb57816108a086838151811061089357610893612b18565b602002602001015161180d565b6040516020016108b1929190612b7c565b60408051601f198184030181529190529150600101610874565b5060006001826040516020016108e2929190612be8565b60408051601f198184030181529082905260025463138857a360e31b83529092506001600160a01b031690639c42bd189061092590899087908690600401612c17565b602060405180830381865afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612c3c565b93505050505b92915050565b6000805b8251811015610a495782810160200151600061099182611818565b60208101519091506001600160a01b031633146109fa5760405162461bcd60e51b815260206004820152602160248201527f466173745472616e73666572476174657761793a20556e617574686f72697a656044820152601960fa1b606482015260840161067e565b8215610a2f578363ffffffff16816040015163ffffffff1614610a2f5760405162461bcd60e51b815260040161067e90612b2e565b604001519250610a429050602082612c6b565b9050610976565b5063ffffffff811660009081526003602052604090205480610a7d5760405162461bcd60e51b815260040161067e90612b9e565b60008085856040516020016107ac93929190612c7e565b610a9c6118d0565b610aa582611975565b610aaf828261197d565b5050565b6000610abd611a3f565b50600080516020612f4683398151915290565b6002546001600160a01b03163314610b3a5760405162461bcd60e51b815260206004820152602760248201527f466173745472616e73666572476174657761793a2073656e646572206e6f74206044820152660dac2d2d8c4def60cb1b606482015260840161067e565b63ffffffff841660009081526003602052604090205480610bb25760405162461bcd60e51b815260206004820152602c60248201527f466173745472616e73666572476174657761793a206f726967696e20646f6d6160448201526b1a5b881b9bdd08199bdd5b9960a21b606482015260840161067e565b808414610c0d5760405162461bcd60e51b815260206004820152602360248201527f466173745472616e73666572476174657761793a20696e76616c69642073656e6044820152623232b960e91b606482015260840161067e565b600083836000818110610c2257610c22612b18565b919091013560f81c90506001811115610c3d57610c3d6127ef565b90506000816001811115610c5357610c536127ef565b03610cef57366000610c688560018189612cb4565b90925090506000610c7c6020828486612cb4565b610c8591612cde565b90506000610c968360208187612cb4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939450610cd89250859150611a889050565b9050610ce581838d611a8b565b5050505050610834565b6001816001811115610d0357610d036127ef565b0361083457366000610d188560018189612cb4565b91509150610d5d82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250611c65915050565b5050505050505050565b610d6f611c95565b610d796000611cf0565b565b610d83611d61565b428160e0015111610de15760405162461bcd60e51b815260206004820152602260248201527f466173745472616e73666572476174657761793a206f72646572206578706972604482015261195960f21b606482015260840161067e565b60a081015163ffffffff16600090815260036020526040902054610e5c5760405162461bcd60e51b815260206004820152602c60248201527f466173745472616e73666572476174657761793a20736f7572636520646f6d6160448201526b1a5b881b9bdd08199bdd5b9960a21b606482015260840161067e565b60025460c082015163ffffffff908116600160a01b9092041614610ee85760405162461bcd60e51b815260206004820152603b60248201527f466173745472616e73666572476174657761793a20696e636f7272656374206460448201527f657374696e6174696f6e20646f6d61696e20666f72206f726465720000000000606482015260840161067e565b6000610ef38261180d565b90506000808281526006602052604090205460ff166002811115610f1957610f196127ef565b14610f785760405162461bcd60e51b815260206004820152602960248201527f466173745472616e73666572476174657761793a206f7264657220616c726561604482015268191e48199a5b1b195960ba1b606482015260840161067e565b6000610f85836020015190565b60008381526006602090815260408083208054600160ff19909116811790915581516060810183528781526001600160a01b038a811682860190815260a08b015163ffffffff9081168487019081528b8952600790975294909620915182559451910180549351909216600160a01b026001600160c01b0319909316931692909217179055610100840151519091501561112f576001546060840151611038916001600160a01b03169033903090611dab565b600154606084015160405163095ea7b360e01b81526001600160a01b038481166004830152602482019290925291169063095ea7b3906044016020604051808303816000875af1158015611090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b49190612cfc565b506000816001600160a01b03168461010001516040516110d49190612d1e565b6000604051808303816000865af19150503d8060008114611111576040519150601f19603f3d011682016040523d82523d6000602084013e611116565b606091505b5050905080611129573d6000803e3d6000fd5b5061114e565b600154606084015161114e916001600160a01b03169033908490611dab565b5050610aaf60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611181611c95565b63ffffffff909116600090815260036020526040902055565b63ffffffff8316600090815260036020526040812054806111cd5760405162461bcd60e51b815260040161067e90612b9e565b60008085856040516020016111e493929190612c7e565b60408051601f198184030181529082905260025463138857a360e31b83529092506001600160a01b031690639c42bd189061122790899086908690600401612c17565b602060405180830381865afa158015611244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112689190612c3c565b925050505b9392505050565b604080516101208101825289815260208082018a90528183018990526060820188905260045463ffffffff9081166080840152600254600160a01b9004811660a0840152871660c083015260e082018690528251601f850182900482028101820190935283835260009283929161010083019190879087908190840183828082843760009201829052509390945250929350915061131390508261180d565b63ffffffff88166000908152600360205260409020549091506113485760405162461bcd60e51b815260040161067e90612d3a565b600480546001919060009061136490849063ffffffff16612d8b565b82546101009290920a63ffffffff818102199093169183160217909155604080516080808201835286518252860151602080830191825260c088015185168385019081528885015160608501908152600089815260059093529490912092518355905160018301555160028201805463ffffffff191691909416179092555160039091015550807f59f858504f8d8ad967dd7453df850e265270474e364b7e2fbd3333e06efdbfc061141584611e12565b60405161142291906128c0565b60405180910390a26001546040830151611449916001600160a01b03169033903090611dab565b9a9950505050505050505050565b60408051610120810182528c815260208082018d90528183018c9052606082018b905260045463ffffffff9081166080840152600254600160a01b9004811660a08401528a1660c083015260e082018990528251601f87018290048202810182019093528583526000928392916101008301919089908990819084018382808284376000920182905250939094525092935091506114f690508261180d565b63ffffffff8b1660009081526003602052604090205490915061152b5760405162461bcd60e51b815260040161067e90612d3a565b600480546001919060009061154790849063ffffffff16612d8b565b82546101009290920a63ffffffff818102199093169183160217909155604080516080808201835286518252860151602080830191825260c088015185168385019081528885015160608501908152600089815260059093529490912092518355905160018301555160028201805463ffffffff191691909416179092555160039091015550807f59f858504f8d8ad967dd7453df850e265270474e364b7e2fbd3333e06efdbfc06115f884611e12565b60405161160591906128c0565b60405180910390a261162282604001518984608001518888611e70565b9d9c50505050505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156116785750825b90506000826001600160401b031660011480156116945750303b155b9050811580156116a2575080155b156116c05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156116ea57845460ff60401b1916600160401b1785555b6116f389611f1a565b600180546001600160a01b03808b166001600160a01b03199283161783556002805463ffffffff8f16600160a01b026001600160c01b03199091168c84161717905560008054918a16919092161790556004805463ffffffff19169091179055831561179957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6117ad611c95565b6001600160a01b0381166117d757604051631e4fbdf760e01b81526000600482015260240161067e565b6117e081611cf0565b50565b6117eb611c95565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600061096c82611f2b565b60408051606080820183526000808352602080840182905283850182905285825260078152908490208451928301855280548352600101546001600160a01b038116918301829052600160a01b900463ffffffff1693820193909352909161096c5760405162461bcd60e51b815260206004820152602560248201527f466173745472616e73666572476174657761793a206f72646572206e6f7420666044820152641a5b1b195960da1b606482015260840161067e565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061195757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661194b600080516020612f46833981519152546001600160a01b031690565b6001600160a01b031614155b15610d795760405163703e46dd60e11b815260040160405180910390fd5b6117e0611c95565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119d7575060408051601f3d908101601f191682019092526119d491810190612c3c565b60015b6119ff57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161067e565b600080516020612f468339815191528114611a3057604051632a87526960e21b81526004810182905260240161067e565b611a3a8383611f44565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d795760405163703e46dd60e11b815260040160405180910390fd5b90565b6000805b8351811015611b85576020818501810151600081815260058352604080822081516080810183528154815260018201548187015260028083015463ffffffff1682850152600390920154606082015284845260069095529082205492939260ff1690811115611b0057611b006127ef565b14611b0c575050611b73565b6000816020015111611b305760405162461bcd60e51b815260040161067e90612da7565b8463ffffffff16816040015163ffffffff1614611b5f5760405162461bcd60e51b815260040161067e90612deb565b6060810151611b6e9085612c6b565b935050505b611b7e602082612c6b565b9050611a8f565b5060005b8351811015611c4757838101602001516000808281526006602052604090205460ff166002811115611bbd57611bbd6127ef565b14611bf35760405181907f0349d9fa752b33cd4d30f97058afcf8e7b9d5c3c7a20056699a8947fedf7313890600090a250611c35565b600081815260066020526040808220805460ff191660011790555182917fd4250d6114a611e75d68b1c6f14c61e967863d8ac20bc8ebfa4e5f28f664736691a2505b611c40602082612c6b565b9050611b89565b50600154611c5f906001600160a01b03168583611f9a565b50505050565b60005b8251811015611a3a5782810160200151611c828184611fcb565b50611c8e602082612c6b565b9050611c68565b33611cc77f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610d795760405163118cdaa760e01b815233600482015260240161067e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901611da557604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6040516001600160a01b038481166024830152838116604483015260648201839052611c5f9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506120ee565b6060816000015182602001518360400151846060015185608001518660a001518760c001518860e00151896101000151604051602001611e5a99989796959493929190612e3f565b6040516020818303038152906040529050919050565b6000546040805160a0810182526001546001600160a01b0390811660608301908152608083018a905282526020808301889052828401899052835180850185523081529081018a9052925163187945bd60e11b81529316926330f28b7a92611ee19291339088908890600401612ed7565b600060405180830381600087803b158015611efb57600080fd5b505af1158015611f0f573d6000803e3d6000fd5b505050505050505050565b611f22612151565b6117e08161219a565b6000611f3682611e12565b805190602001209050919050565b611f4d826121a2565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611f9257611a3a8282612207565b610aaf61227d565b6040516001600160a01b03838116602483015260448201839052611a3a91859182169063a9059cbb90606401611de0565b6000828152600560209081526040918290208251608081018452815481526001820154928101839052600282015463ffffffff169381019390935260030154606083015261202b5760405162461bcd60e51b815260040161067e90612da7565b8163ffffffff16816040015163ffffffff161461205a5760405162461bcd60e51b815260040161067e90612deb565b60008381526006602052604081205460ff16600281111561207d5761207d6127ef565b1461208757505050565b6000838152600660205260409020805460ff19166002179055600154815160608301516120be926001600160a01b03169190611f9a565b60405183907fa60671d8537ed193e567f86ddf28cf35dc67073b5ad80a2d41359cfa78db0a1e90600090a2505050565b60006121036001600160a01b0384168361229c565b905080516000141580156121285750808060200190518101906121269190612cfc565b155b15611a3a57604051635274afe760e01b81526001600160a01b038416600482015260240161067e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610d7957604051631afcd79f60e31b815260040160405180910390fd5b6117ad612151565b806001600160a01b03163b6000036121d857604051634c9c8ce360e01b81526001600160a01b038216600482015260240161067e565b600080516020612f4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516122249190612d1e565b600060405180830381855af49150503d806000811461225f576040519150601f19603f3d011682016040523d82523d6000602084013e612264565b606091505b50915091506122748583836122aa565b95945050505050565b3415610d795760405163b398979f60e01b815260040160405180910390fd5b606061126d83836000612306565b6060826122bf576122ba82612399565b61126d565b81511580156122d657506001600160a01b0384163b155b156122ff57604051639996b31560e01b81526001600160a01b038516600482015260240161067e565b508061126d565b60608147101561232b5760405163cd78605960e01b815230600482015260240161067e565b600080856001600160a01b031684866040516123479190612d1e565b60006040518083038185875af1925050503d8060008114612384576040519150601f19603f3d011682016040523d82523d6000602084013e612389565b606091505b50915091506112688683836122aa565b8051156123a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156123fb576123fb6123c2565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612429576124296123c2565b604052919050565b803563ffffffff8116811461244557600080fd5b919050565b600082601f83011261245b57600080fd5b81356001600160401b03811115612474576124746123c2565b612487601f8201601f1916602001612401565b81815284602083860101111561249c57600080fd5b816020850160208301376000918101602001919091529392505050565b600061012082840312156124cc57600080fd5b6124d46123d8565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905061250e60a08301612431565b60a082015261251f60c08301612431565b60c082015260e082810135908201526101008201356001600160401b0381111561254857600080fd5b6125548482850161244a565b6101008301525092915050565b600082601f83011261257257600080fd5b81356001600160401b0381111561258b5761258b6123c2565b8060051b61259b60208201612401565b918252602081850181019290810190868411156125b757600080fd5b6020860192505b838310156125fd5782356001600160401b038111156125dc57600080fd5b6125eb886020838a01016124b9565b835250602092830192909101906125be565b9695505050505050565b60006020828403121561261957600080fd5b81356001600160401b0381111561262f57600080fd5b61263b84828501612561565b949350505050565b6000806040838503121561265657600080fd5b61265f83612431565b915060208301356001600160401b0381111561267a57600080fd5b61268685828601612561565b9150509250929050565b6000602082840312156126a257600080fd5b61126d82612431565b600080604083850312156126be57600080fd5b8235915060208301356001600160401b038111156126db57600080fd5b6126868582860161244a565b80356001600160a01b038116811461244557600080fd5b6000806040838503121561271157600080fd5b61271a836126e7565b915060208301356001600160401b038111156126db57600080fd5b60008083601f84011261274757600080fd5b5081356001600160401b0381111561275e57600080fd5b60208301915083602082850101111561277657600080fd5b9250929050565b6000806000806060858703121561279357600080fd5b61279c85612431565b93506020850135925060408501356001600160401b038111156127be57600080fd5b6127ca87828801612735565b95989497509550505050565b6000602082840312156127e857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b602081016003831061282757634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561284057600080fd5b612849836126e7565b915060208301356001600160401b0381111561286457600080fd5b612686858286016124b9565b60005b8381101561288b578181015183820152602001612873565b50506000910152565b600081518084526128ac816020860160208601612870565b601f01601f19169290920160200192915050565b60208152600061126d6020830184612894565b600080604083850312156128e657600080fd5b6128ef83612431565b946020939093013593505050565b60008060006060848603121561291257600080fd5b61291b84612431565b92506020840135915060408401356001600160401b0381111561293d57600080fd5b6129498682870161244a565b9150509250925092565b60008060008060008060008060e0898b03121561296f57600080fd5b8835975060208901359650604089013595506060890135945061299460808a01612431565b935060a0890135925060c08901356001600160401b038111156129b657600080fd5b6129c28b828c01612735565b999c989b5096995094979396929594505050565b60008060008060008060008060008060006101208c8e0312156129f857600080fd5b8b359a5060208c0135995060408c0135985060608c01359750612a1d60808d01612431565b965060a08c0135955060c08c0135945060e08c01356001600160401b03811115612a4657600080fd5b612a528e828f01612735565b9095509350506101008c01356001600160401b03811115612a7257600080fd5b612a7e8e828f01612735565b915080935050809150509295989b509295989b9093969950565b600080600080600060a08688031215612ab057600080fd5b612ab986612431565b9450612ac7602087016126e7565b9350612ad5604087016126e7565b9250612ae3606087016126e7565b9150612af1608087016126e7565b90509295509295909350565b600060208284031215612b0f57600080fd5b61126d826126e7565b634e487b7160e01b600052603260045260246000fd5b6020808252602e908201527f466173745472616e73666572476174657761793a20536f7572636520646f6d6160408201526d0d2dce640daeae6e840dac2e8c6d60931b606082015260800190565b60008351612b8e818460208801612870565b9190910191825250602001919050565b6020808252602a908201527f466173745472616e73666572476174657761793a20756e6b6e6f776e20736f756040820152693931b2903237b6b0b4b760b11b606082015260800190565b60ff60f81b8360f81b16815260008251612c09816001850160208701612870565b919091016001019392505050565b63ffffffff841681528260208201526060604082015260006122746060830184612894565b600060208284031215612c4e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561096c5761096c612c55565b60ff60f81b8460f81b16815282600182015260008251612ca5816021850160208701612870565b91909101602101949350505050565b60008085851115612cc457600080fd5b83861115612cd157600080fd5b5050820193919092039150565b8035602083101561096c57600019602084900360031b1b1692915050565b600060208284031215612d0e57600080fd5b8151801515811461126d57600080fd5b60008251612d30818460208701612870565b9190910192915050565b60208082526031908201527f466173745472616e73666572476174657761793a2064657374696e6174696f6e60408201527008191bdb585a5b881b9bdd08199bdd5b99607a1b606082015260800190565b63ffffffff818116838216019081111561096c5761096c612c55565b60208082526024908201527f466173745472616e73666572476174657761793a206f72646572206e6f7420666040820152631bdd5b9960e21b606082015260800190565b60208082526034908201527f466173745472616e73666572476174657761793a20696e636f727265637420646040820152731bdb585a5b88199bdc881cd95d1d1b195b595b9d60621b606082015260800190565b89815288602082015287604082015286606082015285608082015263ffffffff60e01b8560e01b1660a082015263ffffffff60e01b8460e01b1660a48201528260a882015260008251612e998160c8850160208701612870565b9190910160c8019a9950505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b855180516001600160a01b039081168352602091820151828401528188015160408085019190915288015160608401528651811660808401529086015160a0830152841660c082015261010060e08201819052600090612f3a9083018486612eae565b97965050505050505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220dbd319724a368db62c2a06b690d24bc0547faf111bcd0f75bd54fc3cc9f514c164736f6c634300081a0033", + "nonce": "0x84", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x14c6da2f48fee61224b2f9036a95c6bace3d80e9d18abde94e99338210715b7b", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xd594ff25a22416c0e9d2f8fd0a7166380f338977", + "function": "upgradeToAndCall(address,bytes)", + "arguments": [ + "0x03fF7957dB9AdFbF437760cDA03BA553250A708c", + "0x" + ], + "transaction": { + "from": "0x56ca414d41cd3c1188a4939b0d56417da7bb6da2", + "to": "0xd594ff25a22416c0e9d2f8fd0a7166380f338977", + "gas": "0xcc66", + "value": "0x0", + "input": "0x4f1ef28600000000000000000000000003ff7957db9adfbf437760cda03ba553250a708c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x85", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x5e89c4", + "logs": [ + { + "address": "0x03ff7957db9adfbf437760cda03ba553250a708c", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x2bef381f185748994093a2e9d5bfccb30d2cec374b754d663e53eb9af1d5d982", + "blockNumber": "0xfb2f696", + "transactionHash": "0x7aa117544b90ce9ed72d068e27fd521170de93735710a254eb14b15b7cf85175", + "transactionIndex": "0x2", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000400080000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x7aa117544b90ce9ed72d068e27fd521170de93735710a254eb14b15b7cf85175", + "transactionIndex": "0x2", + "blockHash": "0x2bef381f185748994093a2e9d5bfccb30d2cec374b754d663e53eb9af1d5d982", + "blockNumber": "0xfb2f696", + "gasUsed": "0x5c9558", + "effectiveGasPrice": "0x989680", + "from": "0x56ca414d41cd3c1188a4939b0d56417da7bb6da2", + "to": null, + "contractAddress": "0x03ff7957db9adfbf437760cda03ba553250a708c", + "gasUsedForL1": "0x333462", + "l1BlockNumber": "0x13fc677" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x8febf", + "logs": [ + { + "address": "0xd594ff25a22416c0e9d2f8fd0a7166380f338977", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000003ff7957db9adfbf437760cda03ba553250a708c" + ], + "data": "0x", + "blockHash": "0xb22bfb1e1f7a726827665bc4bef004c32de68e495592a2248e164aa6917f9c8c", + "blockNumber": "0xfb2f699", + "transactionHash": "0x14c6da2f48fee61224b2f9036a95c6bace3d80e9d18abde94e99338210715b7b", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000100000000000000000000000000400000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000001000000000000000000000000000000000000100000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x14c6da2f48fee61224b2f9036a95c6bace3d80e9d18abde94e99338210715b7b", + "transactionIndex": "0x2", + "blockHash": "0xb22bfb1e1f7a726827665bc4bef004c32de68e495592a2248e164aa6917f9c8c", + "blockNumber": "0xfb2f699", + "gasUsed": "0x23e2d", + "effectiveGasPrice": "0x989680", + "from": "0x56ca414d41cd3c1188a4939b0d56417da7bb6da2", + "to": "0xd594ff25a22416c0e9d2f8fd0a7166380f338977", + "contractAddress": null, + "gasUsedForL1": "0x1aa31", + "l1BlockNumber": "0x13fc677" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1728824221, + "chain": 42161, + "commit": "13fad6d" +} \ No newline at end of file diff --git a/solidity/broadcast/Upgrade.s.sol/42161/run-latest.json b/solidity/broadcast/Upgrade.s.sol/42161/run-latest.json index deb3f86..ee931b0 100644 --- a/solidity/broadcast/Upgrade.s.sol/42161/run-latest.json +++ b/solidity/broadcast/Upgrade.s.sol/42161/run-latest.json @@ -1,40 +1,40 @@ { "transactions": [ { - "hash": "0x14add299c5e4932c19c257277918aab8d39ea9bea2a13fa35ed9d07bcb0b8b42", + "hash": "0x7aa117544b90ce9ed72d068e27fd521170de93735710a254eb14b15b7cf85175", "transactionType": "CREATE", "contractName": "FastTransferGateway", - "contractAddress": "0x0902a29fd3dbd462263300c7cfe417742207df77", + "contractAddress": "0x03ff7957db9adfbf437760cda03ba553250a708c", "function": null, "arguments": null, "transaction": { "from": "0x56ca414d41cd3c1188a4939b0d56417da7bb6da2", - "gas": "0x756def", + "gas": "0x811f92", "value": "0x0", - "input": "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612f366100fd600039600081816118760152818161189f01526119e50152612f366000f3fe6080604052600436106101665760003560e01c80638da5cb5b116100d1578063e88787c21161008a578063f2c2092411610064578063f2c20924146104c0578063f2fde38b146104e0578063f7213db614610500578063fc0c546a1461057557600080fd5b8063e88787c214610460578063f13a89b414610480578063f23517ee146104a057600080fd5b80638da5cb5b1461036857806395d7325d146103a5578063ad3cb1cc146103c5578063affed0e014610403578063d5438eae14610420578063e5dc84961461044057600080fd5b806356d5d4751161012357806356d5d4751461021b5780636afdd8501461022e578063715018a6146102665780637f665ee51461027b57806385cf3f93146102b85780638d3638f41461032f57600080fd5b806313d9c7f91461016b5780631cabc26f146101805780631ea9e2e3146101b357806330c5b926146101e05780634f1ef286146101f357806352d1902d14610206575b600080fd5b61017e6101793660046125a2565b610595565b005b34801561018c57600080fd5b506101a061019b3660046125de565b610801565b6040519081526020015b60405180910390f35b3480156101bf57600080fd5b506101a06101ce36600461262b565b60036020526000908152604090205481565b61017e6101ee366004612646565b610937565b61017e610201366004612699565b610a59565b34801561021257600080fd5b506101a0610a78565b61017e610229366004612718565b610a95565b34801561023a57600080fd5b5060005461024e906001600160a01b031681565b6040516001600160a01b0390911681526020016101aa565b34801561027257600080fd5b5061017e610d2c565b34801561028757600080fd5b506102ab610296366004612771565b60066020526000908152604090205460ff1681565b6040516101aa91906127a0565b3480156102c457600080fd5b506103036102d3366004612771565b60056020526000908152604090208054600182015460028301546003909301549192909163ffffffff9091169084565b6040516101aa9493929190938452602084019290925263ffffffff166040830152606082015260800190565b34801561033b57600080fd5b5060025461035390600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101aa565b34801561037457600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661024e565b3480156103b157600080fd5b5061017e6103c03660046127c8565b610d40565b3480156103d157600080fd5b506103f6604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101aa919061285b565b34801561040f57600080fd5b506004546103539063ffffffff1681565b34801561042c57600080fd5b5060025461024e906001600160a01b031681565b34801561044c57600080fd5b5061017e61045b36600461286e565b61113e565b34801561046c57600080fd5b506101a061047b366004612898565b61115f565b34801561048c57600080fd5b506101a061049b3660046128ee565b611239565b3480156104ac57600080fd5b506101a06104bb366004612971565b61141c565b3480156104cc57600080fd5b5061017e6104db366004612a33565b6115f8565b3480156104ec57600080fd5b5061017e6104fb366004612a98565b61176a565b34801561050c57600080fd5b5061054c61051b366004612771565b600760205260009081526040902080546001909101546001600160a01b03811690600160a01b900463ffffffff1683565b604080519384526001600160a01b03909216602084015263ffffffff16908201526060016101aa565b34801561058157600080fd5b5060015461024e906001600160a01b031681565b60606000805b83518110156107275760008482815181106105b8576105b8612ab3565b6020026020010151905060006105cd826117a8565b60008181526006602052604090205460e084015191925060ff1690421161064c5760405162461bcd60e51b815260206004820152602860248201527f466173745472616e73666572476174657761793a206f72646572206e6f7420746044820152671a5b5959081bdd5d60c21b60648201526084015b60405180910390fd5b60008160028111156106605761066061278a565b146106b75760405162461bcd60e51b815260206004820152602160248201527f466173745472616e73666572476174657761793a206f726465722066696c6c656044820152601960fa1b6064820152608401610643565b83156106ec578463ffffffff168360a0015163ffffffff16146106ec5760405162461bcd60e51b815260040161064390612ac9565b85826040516020016106ff929190612b17565b60405160208183030381529060405295508260a001519450505050808060010191505061059b565b5063ffffffff81166000908152600360205260409020548061075b5760405162461bcd60e51b815260040161064390612b39565b6000600184604051602001610771929190612b83565b60408051601f198184030181529082905260025463fa31de0160e01b83529092506001600160a01b03169063fa31de019034906107b690879087908790600401612bb2565b60206040518083038185885af11580156107d4573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107f99190612bd7565b505050505050565b63ffffffff8216600090815260036020526040812054806108345760405162461bcd60e51b815260040161064390612b39565b606060005b8451811015610890578161086586838151811061085857610858612ab3565b60200260200101516117a8565b604051602001610876929190612b17565b60408051601f198184030181529190529150600101610839565b5060006001826040516020016108a7929190612b83565b60408051601f198184030181529082905260025463138857a360e31b83529092506001600160a01b031690639c42bd18906108ea90899087908690600401612bb2565b602060405180830381865afa158015610907573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092b9190612bd7565b93505050505b92915050565b6000805b8251811015610a0e57828101602001516000610956826117b3565b60208101519091506001600160a01b031633146109bf5760405162461bcd60e51b815260206004820152602160248201527f466173745472616e73666572476174657761793a20556e617574686f72697a656044820152601960fa1b6064820152608401610643565b82156109f4578363ffffffff16816040015163ffffffff16146109f45760405162461bcd60e51b815260040161064390612ac9565b604001519250610a079050602082612c06565b905061093b565b5063ffffffff811660009081526003602052604090205480610a425760405162461bcd60e51b815260040161064390612b39565b600080858560405160200161077193929190612c19565b610a6161186b565b610a6a82611910565b610a748282611918565b5050565b6000610a826119da565b50600080516020612ee183398151915290565b6002546001600160a01b03163314610aff5760405162461bcd60e51b815260206004820152602760248201527f466173745472616e73666572476174657761793a2073656e646572206e6f74206044820152660dac2d2d8c4def60cb1b6064820152608401610643565b63ffffffff841660009081526003602052604090205480610b775760405162461bcd60e51b815260206004820152602c60248201527f466173745472616e73666572476174657761793a206f726967696e20646f6d6160448201526b1a5b881b9bdd08199bdd5b9960a21b6064820152608401610643565b808414610bd25760405162461bcd60e51b815260206004820152602360248201527f466173745472616e73666572476174657761793a20696e76616c69642073656e6044820152623232b960e91b6064820152608401610643565b600083836000818110610be757610be7612ab3565b919091013560f81c90506001811115610c0257610c0261278a565b90506000816001811115610c1857610c1861278a565b03610cb457366000610c2d8560018189612c4f565b90925090506000610c416020828486612c4f565b610c4a91612c79565b90506000610c5b8360208187612c4f565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939450610c9d9250859150611a239050565b9050610caa81838d611a26565b50505050506107f9565b6001816001811115610cc857610cc861278a565b036107f957366000610cdd8560018189612c4f565b91509150610d2282828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250611c00915050565b5050505050505050565b610d34611c30565b610d3e6000611c8b565b565b610d48611cfc565b428160e0015111610da65760405162461bcd60e51b815260206004820152602260248201527f466173745472616e73666572476174657761793a206f72646572206578706972604482015261195960f21b6064820152608401610643565b60a081015163ffffffff16600090815260036020526040902054610e215760405162461bcd60e51b815260206004820152602c60248201527f466173745472616e73666572476174657761793a20736f7572636520646f6d6160448201526b1a5b881b9bdd08199bdd5b9960a21b6064820152608401610643565b60025460c082015163ffffffff908116600160a01b9092041614610ead5760405162461bcd60e51b815260206004820152603b60248201527f466173745472616e73666572476174657761793a20696e636f7272656374206460448201527f657374696e6174696f6e20646f6d61696e20666f72206f7264657200000000006064820152608401610643565b6000610eb8826117a8565b90506000808281526006602052604090205460ff166002811115610ede57610ede61278a565b14610f3d5760405162461bcd60e51b815260206004820152602960248201527f466173745472616e73666572476174657761793a206f7264657220616c726561604482015268191e48199a5b1b195960ba1b6064820152608401610643565b6000610f4a836020015190565b60008381526006602090815260408083208054600160ff19909116811790915581516060810183528781526001600160a01b038a811682860190815260a08b015163ffffffff9081168487019081528b8952600790975294909620915182559451910180549351909216600160a01b026001600160c01b031990931693169290921717905561010084015151909150156110f4576001546060840151610ffd916001600160a01b03169033903090611d46565b600154606084015160405163095ea7b360e01b81526001600160a01b038481166004830152602482019290925291169063095ea7b3906044016020604051808303816000875af1158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190612c97565b506000816001600160a01b03168461010001516040516110999190612cb9565b6000604051808303816000865af19150503d80600081146110d6576040519150601f19603f3d011682016040523d82523d6000602084013e6110db565b606091505b50509050806110ee573d6000803e3d6000fd5b50611113565b6001546060840151611113916001600160a01b03169033908490611d46565b5050610a7460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611146611c30565b63ffffffff909116600090815260036020526040902055565b63ffffffff8316600090815260036020526040812054806111925760405162461bcd60e51b815260040161064390612b39565b60008085856040516020016111a993929190612c19565b60408051601f198184030181529082905260025463138857a360e31b83529092506001600160a01b031690639c42bd18906111ec90899086908690600401612bb2565b602060405180830381865afa158015611209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122d9190612bd7565b925050505b9392505050565b604080516101208101825289815260208082018a90528183018990526060820188905260045463ffffffff9081166080840152600254600160a01b9004811660a0840152871660c083015260e082018690528251601f85018290048202810182019093528383526000928392916101008301919087908790819084018382808284376000920182905250939094525092935091506112d89050826117a8565b63ffffffff881660009081526003602052604090205490915061130d5760405162461bcd60e51b815260040161064390612cd5565b600480546001919060009061132990849063ffffffff16612d26565b82546101009290920a63ffffffff818102199093169183160217909155604080516080808201835286518252860151602080830191825260c088015185168385019081528885015160608501908152600089815260059093529490912092518355905160018301555160028201805463ffffffff191691909416179092555160039091015550807f59f858504f8d8ad967dd7453df850e265270474e364b7e2fbd3333e06efdbfc06113da84611dad565b6040516113e7919061285b565b60405180910390a2600154604083015161140e916001600160a01b03169033903090611d46565b9a9950505050505050505050565b60408051610120810182528c815260208082018d90528183018c9052606082018b905260045463ffffffff9081166080840152600254600160a01b9004811660a08401528a1660c083015260e082018990528251601f87018290048202810182019093528583526000928392916101008301919089908990819084018382808284376000920182905250939094525092935091506114bb9050826117a8565b63ffffffff8b166000908152600360205260409020549091506114f05760405162461bcd60e51b815260040161064390612cd5565b600480546001919060009061150c90849063ffffffff16612d26565b82546101009290920a63ffffffff818102199093169183160217909155604080516080808201835286518252860151602080830191825260c088015185168385019081528885015160608501908152600089815260059093529490912092518355905160018301555160028201805463ffffffff191691909416179092555160039091015550807f59f858504f8d8ad967dd7453df850e265270474e364b7e2fbd3333e06efdbfc06115bd84611dad565b6040516115ca919061285b565b60405180910390a26115e782604001518984608001518888611e0b565b9d9c50505050505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561163d5750825b90506000826001600160401b031660011480156116595750303b155b905081158015611667575080155b156116855760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156116af57845460ff60401b1916600160401b1785555b6116b889611eb5565b600180546001600160a01b03808b166001600160a01b03199283161783556002805463ffffffff8f16600160a01b026001600160c01b03199091168c84161717905560008054918a16919092161790556004805463ffffffff19169091179055831561175e57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b611772611c30565b6001600160a01b03811661179c57604051631e4fbdf760e01b815260006004820152602401610643565b6117a581611c8b565b50565b600061093182611ec6565b60408051606080820183526000808352602080840182905283850182905285825260078152908490208451928301855280548352600101546001600160a01b038116918301829052600160a01b900463ffffffff169382019390935290916109315760405162461bcd60e51b815260206004820152602560248201527f466173745472616e73666572476174657761793a206f72646572206e6f7420666044820152641a5b1b195960da1b6064820152608401610643565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806118f257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118e6600080516020612ee1833981519152546001600160a01b031690565b6001600160a01b031614155b15610d3e5760405163703e46dd60e11b815260040160405180910390fd5b6117a5611c30565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611972575060408051601f3d908101601f1916820190925261196f91810190612bd7565b60015b61199a57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610643565b600080516020612ee183398151915281146119cb57604051632a87526960e21b815260048101829052602401610643565b6119d58383611edf565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d3e5760405163703e46dd60e11b815260040160405180910390fd5b90565b6000805b8351811015611b20576020818501810151600081815260058352604080822081516080810183528154815260018201548187015260028083015463ffffffff1682850152600390920154606082015284845260069095529082205492939260ff1690811115611a9b57611a9b61278a565b14611aa7575050611b0e565b6000816020015111611acb5760405162461bcd60e51b815260040161064390612d42565b8463ffffffff16816040015163ffffffff1614611afa5760405162461bcd60e51b815260040161064390612d86565b6060810151611b099085612c06565b935050505b611b19602082612c06565b9050611a2a565b5060005b8351811015611be257838101602001516000808281526006602052604090205460ff166002811115611b5857611b5861278a565b14611b8e5760405181907f0349d9fa752b33cd4d30f97058afcf8e7b9d5c3c7a20056699a8947fedf7313890600090a250611bd0565b600081815260066020526040808220805460ff191660011790555182917fd4250d6114a611e75d68b1c6f14c61e967863d8ac20bc8ebfa4e5f28f664736691a2505b611bdb602082612c06565b9050611b24565b50600154611bfa906001600160a01b03168583611f35565b50505050565b60005b82518110156119d55782810160200151611c1d8184611f66565b50611c29602082612c06565b9050611c03565b33611c627f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610d3e5760405163118cdaa760e01b8152336004820152602401610643565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901611d4057604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6040516001600160a01b038481166024830152838116604483015260648201839052611bfa9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612089565b6060816000015182602001518360400151846060015185608001518660a001518760c001518860e00151896101000151604051602001611df599989796959493929190612dda565b6040516020818303038152906040529050919050565b6000546040805160a0810182526001546001600160a01b0390811660608301908152608083018a905282526020808301889052828401899052835180850185523081529081018a9052925163187945bd60e11b81529316926330f28b7a92611e7c9291339088908890600401612e72565b600060405180830381600087803b158015611e9657600080fd5b505af1158015611eaa573d6000803e3d6000fd5b505050505050505050565b611ebd6120ec565b6117a581612135565b6000611ed182611dad565b805190602001209050919050565b611ee88261213d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611f2d576119d582826121a2565b610a74612218565b6040516001600160a01b038381166024830152604482018390526119d591859182169063a9059cbb90606401611d7b565b6000828152600560209081526040918290208251608081018452815481526001820154928101839052600282015463ffffffff1693810193909352600301546060830152611fc65760405162461bcd60e51b815260040161064390612d42565b8163ffffffff16816040015163ffffffff1614611ff55760405162461bcd60e51b815260040161064390612d86565b60008381526006602052604081205460ff1660028111156120185761201861278a565b1461202257505050565b6000838152600660205260409020805460ff1916600217905560015481516060830151612059926001600160a01b03169190611f35565b60405183907fa60671d8537ed193e567f86ddf28cf35dc67073b5ad80a2d41359cfa78db0a1e90600090a2505050565b600061209e6001600160a01b03841683612237565b905080516000141580156120c35750808060200190518101906120c19190612c97565b155b156119d557604051635274afe760e01b81526001600160a01b0384166004820152602401610643565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610d3e57604051631afcd79f60e31b815260040160405180910390fd5b6117726120ec565b806001600160a01b03163b60000361217357604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610643565b600080516020612ee183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516121bf9190612cb9565b600060405180830381855af49150503d80600081146121fa576040519150601f19603f3d011682016040523d82523d6000602084013e6121ff565b606091505b509150915061220f858383612245565b95945050505050565b3415610d3e5760405163b398979f60e01b815260040160405180910390fd5b6060611232838360006122a1565b60608261225a5761225582612334565b611232565b815115801561227157506001600160a01b0384163b155b1561229a57604051639996b31560e01b81526001600160a01b0385166004820152602401610643565b5080611232565b6060814710156122c65760405163cd78605960e01b8152306004820152602401610643565b600080856001600160a01b031684866040516122e29190612cb9565b60006040518083038185875af1925050503d806000811461231f576040519150601f19603f3d011682016040523d82523d6000602084013e612324565b606091505b509150915061122d868383612245565b8051156123445780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156123965761239661235d565b60405290565b604051601f8201601f191681016001600160401b03811182821017156123c4576123c461235d565b604052919050565b803563ffffffff811681146123e057600080fd5b919050565b600082601f8301126123f657600080fd5b81356001600160401b0381111561240f5761240f61235d565b612422601f8201601f191660200161239c565b81815284602083860101111561243757600080fd5b816020850160208301376000918101602001919091529392505050565b6000610120828403121561246757600080fd5b61246f612373565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015290506124a960a083016123cc565b60a08201526124ba60c083016123cc565b60c082015260e082810135908201526101008201356001600160401b038111156124e357600080fd5b6124ef848285016123e5565b6101008301525092915050565b600082601f83011261250d57600080fd5b81356001600160401b038111156125265761252661235d565b8060051b6125366020820161239c565b9182526020818501810192908101908684111561255257600080fd5b6020860192505b838310156125985782356001600160401b0381111561257757600080fd5b612586886020838a0101612454565b83525060209283019290910190612559565b9695505050505050565b6000602082840312156125b457600080fd5b81356001600160401b038111156125ca57600080fd5b6125d6848285016124fc565b949350505050565b600080604083850312156125f157600080fd5b6125fa836123cc565b915060208301356001600160401b0381111561261557600080fd5b612621858286016124fc565b9150509250929050565b60006020828403121561263d57600080fd5b611232826123cc565b6000806040838503121561265957600080fd5b8235915060208301356001600160401b0381111561267657600080fd5b612621858286016123e5565b80356001600160a01b03811681146123e057600080fd5b600080604083850312156126ac57600080fd5b6126b583612682565b915060208301356001600160401b0381111561267657600080fd5b60008083601f8401126126e257600080fd5b5081356001600160401b038111156126f957600080fd5b60208301915083602082850101111561271157600080fd5b9250929050565b6000806000806060858703121561272e57600080fd5b612737856123cc565b93506020850135925060408501356001600160401b0381111561275957600080fd5b612765878288016126d0565b95989497509550505050565b60006020828403121561278357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60208101600383106127c257634e487b7160e01b600052602160045260246000fd5b91905290565b600080604083850312156127db57600080fd5b6127e483612682565b915060208301356001600160401b038111156127ff57600080fd5b61262185828601612454565b60005b8381101561282657818101518382015260200161280e565b50506000910152565b6000815180845261284781602086016020860161280b565b601f01601f19169290920160200192915050565b602081526000611232602083018461282f565b6000806040838503121561288157600080fd5b61288a836123cc565b946020939093013593505050565b6000806000606084860312156128ad57600080fd5b6128b6846123cc565b92506020840135915060408401356001600160401b038111156128d857600080fd5b6128e4868287016123e5565b9150509250925092565b60008060008060008060008060e0898b03121561290a57600080fd5b8835975060208901359650604089013595506060890135945061292f60808a016123cc565b935060a0890135925060c08901356001600160401b0381111561295157600080fd5b61295d8b828c016126d0565b999c989b5096995094979396929594505050565b60008060008060008060008060008060006101208c8e03121561299357600080fd5b8b359a5060208c0135995060408c0135985060608c013597506129b860808d016123cc565b965060a08c0135955060c08c0135945060e08c01356001600160401b038111156129e157600080fd5b6129ed8e828f016126d0565b9095509350506101008c01356001600160401b03811115612a0d57600080fd5b612a198e828f016126d0565b915080935050809150509295989b509295989b9093969950565b600080600080600060a08688031215612a4b57600080fd5b612a54866123cc565b9450612a6260208701612682565b9350612a7060408701612682565b9250612a7e60608701612682565b9150612a8c60808701612682565b90509295509295909350565b600060208284031215612aaa57600080fd5b61123282612682565b634e487b7160e01b600052603260045260246000fd5b6020808252602e908201527f466173745472616e73666572476174657761793a20536f7572636520646f6d6160408201526d0d2dce640daeae6e840dac2e8c6d60931b606082015260800190565b60008351612b2981846020880161280b565b9190910191825250602001919050565b6020808252602a908201527f466173745472616e73666572476174657761793a20756e6b6e6f776e20736f756040820152693931b2903237b6b0b4b760b11b606082015260800190565b60ff60f81b8360f81b16815260008251612ba481600185016020870161280b565b919091016001019392505050565b63ffffffff8416815282602082015260606040820152600061220f606083018461282f565b600060208284031215612be957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561093157610931612bf0565b60ff60f81b8460f81b16815282600182015260008251612c4081602185016020870161280b565b91909101602101949350505050565b60008085851115612c5f57600080fd5b83861115612c6c57600080fd5b5050820193919092039150565b8035602083101561093157600019602084900360031b1b1692915050565b600060208284031215612ca957600080fd5b8151801515811461123257600080fd5b60008251612ccb81846020870161280b565b9190910192915050565b60208082526031908201527f466173745472616e73666572476174657761793a2064657374696e6174696f6e60408201527008191bdb585a5b881b9bdd08199bdd5b99607a1b606082015260800190565b63ffffffff818116838216019081111561093157610931612bf0565b60208082526024908201527f466173745472616e73666572476174657761793a206f72646572206e6f7420666040820152631bdd5b9960e21b606082015260800190565b60208082526034908201527f466173745472616e73666572476174657761793a20696e636f727265637420646040820152731bdb585a5b88199bdc881cd95d1d1b195b595b9d60621b606082015260800190565b89815288602082015287604082015286606082015285608082015263ffffffff60e01b8560e01b1660a082015263ffffffff60e01b8460e01b1660a48201528260a882015260008251612e348160c885016020870161280b565b9190910160c8019a9950505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b855180516001600160a01b039081168352602091820151828401528188015160408085019190915288015160608401528651811660808401529086015160a0830152841660c082015261010060e08201819052600090612ed59083018486612e49565b97965050505050505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220d50dddbab3a32f50d498537eeb4cc2eefdeaded69272b2de4477b002bfa49f0164736f6c634300081a0033", - "nonce": "0x82", + "input": "0x60a06040523060805234801561001457600080fd5b5061001d610022565b6100d4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100725760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612f9b6100fd600039600081816118db015281816119040152611a4a0152612f9b6000f3fe6080604052600436106101815760003560e01c806395d7325d116100d1578063f13a89b41161008a578063f2fde38b11610064578063f2fde38b146104fb578063f3c61d6b1461051b578063f7213db61461053b578063fc0c546a146105b057600080fd5b8063f13a89b41461049b578063f23517ee146104bb578063f2c20924146104db57600080fd5b806395d7325d146103c0578063ad3cb1cc146103e0578063affed0e01461041e578063d5438eae1461043b578063e5dc84961461045b578063e88787c21461047b57600080fd5b806356d5d4751161013e5780637f665ee5116101185780637f665ee51461029657806385cf3f93146102d35780638d3638f41461034a5780638da5cb5b1461038357600080fd5b806356d5d475146102365780636afdd85014610249578063715018a61461028157600080fd5b806313d9c7f9146101865780631cabc26f1461019b5780631ea9e2e3146101ce57806330c5b926146101fb5780634f1ef2861461020e57806352d1902d14610221575b600080fd5b610199610194366004612607565b6105d0565b005b3480156101a757600080fd5b506101bb6101b6366004612643565b61083c565b6040519081526020015b60405180910390f35b3480156101da57600080fd5b506101bb6101e9366004612690565b60036020526000908152604090205481565b6101996102093660046126ab565b610972565b61019961021c3660046126fe565b610a94565b34801561022d57600080fd5b506101bb610ab3565b61019961024436600461277d565b610ad0565b34801561025557600080fd5b50600054610269906001600160a01b031681565b6040516001600160a01b0390911681526020016101c5565b34801561028d57600080fd5b50610199610d67565b3480156102a257600080fd5b506102c66102b13660046127d6565b60066020526000908152604090205460ff1681565b6040516101c59190612805565b3480156102df57600080fd5b5061031e6102ee3660046127d6565b60056020526000908152604090208054600182015460028301546003909301549192909163ffffffff9091169084565b6040516101c59493929190938452602084019290925263ffffffff166040830152606082015260800190565b34801561035657600080fd5b5060025461036e90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c5565b34801561038f57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610269565b3480156103cc57600080fd5b506101996103db36600461282d565b610d7b565b3480156103ec57600080fd5b50610411604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c591906128c0565b34801561042a57600080fd5b5060045461036e9063ffffffff1681565b34801561044757600080fd5b50600254610269906001600160a01b031681565b34801561046757600080fd5b506101996104763660046128d3565b611179565b34801561048757600080fd5b506101bb6104963660046128fd565b61119a565b3480156104a757600080fd5b506101bb6104b6366004612953565b611274565b3480156104c757600080fd5b506101bb6104d63660046129d6565b611457565b3480156104e757600080fd5b506101996104f6366004612a98565b611633565b34801561050757600080fd5b50610199610516366004612afd565b6117a5565b34801561052757600080fd5b50610199610536366004612afd565b6117e3565b34801561054757600080fd5b506105876105563660046127d6565b600760205260009081526040902080546001909101546001600160a01b03811690600160a01b900463ffffffff1683565b604080519384526001600160a01b03909216602084015263ffffffff16908201526060016101c5565b3480156105bc57600080fd5b50600154610269906001600160a01b031681565b60606000805b83518110156107625760008482815181106105f3576105f3612b18565b6020026020010151905060006106088261180d565b60008181526006602052604090205460e084015191925060ff169042116106875760405162461bcd60e51b815260206004820152602860248201527f466173745472616e73666572476174657761793a206f72646572206e6f7420746044820152671a5b5959081bdd5d60c21b60648201526084015b60405180910390fd5b600081600281111561069b5761069b6127ef565b146106f25760405162461bcd60e51b815260206004820152602160248201527f466173745472616e73666572476174657761793a206f726465722066696c6c656044820152601960fa1b606482015260840161067e565b8315610727578463ffffffff168360a0015163ffffffff16146107275760405162461bcd60e51b815260040161067e90612b2e565b858260405160200161073a929190612b7c565b60405160208183030381529060405295508260a00151945050505080806001019150506105d6565b5063ffffffff8116600090815260036020526040902054806107965760405162461bcd60e51b815260040161067e90612b9e565b60006001846040516020016107ac929190612be8565b60408051601f198184030181529082905260025463fa31de0160e01b83529092506001600160a01b03169063fa31de019034906107f190879087908790600401612c17565b60206040518083038185885af115801561080f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108349190612c3c565b505050505050565b63ffffffff82166000908152600360205260408120548061086f5760405162461bcd60e51b815260040161067e90612b9e565b606060005b84518110156108cb57816108a086838151811061089357610893612b18565b602002602001015161180d565b6040516020016108b1929190612b7c565b60408051601f198184030181529190529150600101610874565b5060006001826040516020016108e2929190612be8565b60408051601f198184030181529082905260025463138857a360e31b83529092506001600160a01b031690639c42bd189061092590899087908690600401612c17565b602060405180830381865afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190612c3c565b93505050505b92915050565b6000805b8251811015610a495782810160200151600061099182611818565b60208101519091506001600160a01b031633146109fa5760405162461bcd60e51b815260206004820152602160248201527f466173745472616e73666572476174657761793a20556e617574686f72697a656044820152601960fa1b606482015260840161067e565b8215610a2f578363ffffffff16816040015163ffffffff1614610a2f5760405162461bcd60e51b815260040161067e90612b2e565b604001519250610a429050602082612c6b565b9050610976565b5063ffffffff811660009081526003602052604090205480610a7d5760405162461bcd60e51b815260040161067e90612b9e565b60008085856040516020016107ac93929190612c7e565b610a9c6118d0565b610aa582611975565b610aaf828261197d565b5050565b6000610abd611a3f565b50600080516020612f4683398151915290565b6002546001600160a01b03163314610b3a5760405162461bcd60e51b815260206004820152602760248201527f466173745472616e73666572476174657761793a2073656e646572206e6f74206044820152660dac2d2d8c4def60cb1b606482015260840161067e565b63ffffffff841660009081526003602052604090205480610bb25760405162461bcd60e51b815260206004820152602c60248201527f466173745472616e73666572476174657761793a206f726967696e20646f6d6160448201526b1a5b881b9bdd08199bdd5b9960a21b606482015260840161067e565b808414610c0d5760405162461bcd60e51b815260206004820152602360248201527f466173745472616e73666572476174657761793a20696e76616c69642073656e6044820152623232b960e91b606482015260840161067e565b600083836000818110610c2257610c22612b18565b919091013560f81c90506001811115610c3d57610c3d6127ef565b90506000816001811115610c5357610c536127ef565b03610cef57366000610c688560018189612cb4565b90925090506000610c7c6020828486612cb4565b610c8591612cde565b90506000610c968360208187612cb4565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939450610cd89250859150611a889050565b9050610ce581838d611a8b565b5050505050610834565b6001816001811115610d0357610d036127ef565b0361083457366000610d188560018189612cb4565b91509150610d5d82828080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250611c65915050565b5050505050505050565b610d6f611c95565b610d796000611cf0565b565b610d83611d61565b428160e0015111610de15760405162461bcd60e51b815260206004820152602260248201527f466173745472616e73666572476174657761793a206f72646572206578706972604482015261195960f21b606482015260840161067e565b60a081015163ffffffff16600090815260036020526040902054610e5c5760405162461bcd60e51b815260206004820152602c60248201527f466173745472616e73666572476174657761793a20736f7572636520646f6d6160448201526b1a5b881b9bdd08199bdd5b9960a21b606482015260840161067e565b60025460c082015163ffffffff908116600160a01b9092041614610ee85760405162461bcd60e51b815260206004820152603b60248201527f466173745472616e73666572476174657761793a20696e636f7272656374206460448201527f657374696e6174696f6e20646f6d61696e20666f72206f726465720000000000606482015260840161067e565b6000610ef38261180d565b90506000808281526006602052604090205460ff166002811115610f1957610f196127ef565b14610f785760405162461bcd60e51b815260206004820152602960248201527f466173745472616e73666572476174657761793a206f7264657220616c726561604482015268191e48199a5b1b195960ba1b606482015260840161067e565b6000610f85836020015190565b60008381526006602090815260408083208054600160ff19909116811790915581516060810183528781526001600160a01b038a811682860190815260a08b015163ffffffff9081168487019081528b8952600790975294909620915182559451910180549351909216600160a01b026001600160c01b0319909316931692909217179055610100840151519091501561112f576001546060840151611038916001600160a01b03169033903090611dab565b600154606084015160405163095ea7b360e01b81526001600160a01b038481166004830152602482019290925291169063095ea7b3906044016020604051808303816000875af1158015611090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b49190612cfc565b506000816001600160a01b03168461010001516040516110d49190612d1e565b6000604051808303816000865af19150503d8060008114611111576040519150601f19603f3d011682016040523d82523d6000602084013e611116565b606091505b5050905080611129573d6000803e3d6000fd5b5061114e565b600154606084015161114e916001600160a01b03169033908490611dab565b5050610aaf60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b611181611c95565b63ffffffff909116600090815260036020526040902055565b63ffffffff8316600090815260036020526040812054806111cd5760405162461bcd60e51b815260040161067e90612b9e565b60008085856040516020016111e493929190612c7e565b60408051601f198184030181529082905260025463138857a360e31b83529092506001600160a01b031690639c42bd189061122790899086908690600401612c17565b602060405180830381865afa158015611244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112689190612c3c565b925050505b9392505050565b604080516101208101825289815260208082018a90528183018990526060820188905260045463ffffffff9081166080840152600254600160a01b9004811660a0840152871660c083015260e082018690528251601f850182900482028101820190935283835260009283929161010083019190879087908190840183828082843760009201829052509390945250929350915061131390508261180d565b63ffffffff88166000908152600360205260409020549091506113485760405162461bcd60e51b815260040161067e90612d3a565b600480546001919060009061136490849063ffffffff16612d8b565b82546101009290920a63ffffffff818102199093169183160217909155604080516080808201835286518252860151602080830191825260c088015185168385019081528885015160608501908152600089815260059093529490912092518355905160018301555160028201805463ffffffff191691909416179092555160039091015550807f59f858504f8d8ad967dd7453df850e265270474e364b7e2fbd3333e06efdbfc061141584611e12565b60405161142291906128c0565b60405180910390a26001546040830151611449916001600160a01b03169033903090611dab565b9a9950505050505050505050565b60408051610120810182528c815260208082018d90528183018c9052606082018b905260045463ffffffff9081166080840152600254600160a01b9004811660a08401528a1660c083015260e082018990528251601f87018290048202810182019093528583526000928392916101008301919089908990819084018382808284376000920182905250939094525092935091506114f690508261180d565b63ffffffff8b1660009081526003602052604090205490915061152b5760405162461bcd60e51b815260040161067e90612d3a565b600480546001919060009061154790849063ffffffff16612d8b565b82546101009290920a63ffffffff818102199093169183160217909155604080516080808201835286518252860151602080830191825260c088015185168385019081528885015160608501908152600089815260059093529490912092518355905160018301555160028201805463ffffffff191691909416179092555160039091015550807f59f858504f8d8ad967dd7453df850e265270474e364b7e2fbd3333e06efdbfc06115f884611e12565b60405161160591906128c0565b60405180910390a261162282604001518984608001518888611e70565b9d9c50505050505050505050505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156116785750825b90506000826001600160401b031660011480156116945750303b155b9050811580156116a2575080155b156116c05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156116ea57845460ff60401b1916600160401b1785555b6116f389611f1a565b600180546001600160a01b03808b166001600160a01b03199283161783556002805463ffffffff8f16600160a01b026001600160c01b03199091168c84161717905560008054918a16919092161790556004805463ffffffff19169091179055831561179957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b6117ad611c95565b6001600160a01b0381166117d757604051631e4fbdf760e01b81526000600482015260240161067e565b6117e081611cf0565b50565b6117eb611c95565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600061096c82611f2b565b60408051606080820183526000808352602080840182905283850182905285825260078152908490208451928301855280548352600101546001600160a01b038116918301829052600160a01b900463ffffffff1693820193909352909161096c5760405162461bcd60e51b815260206004820152602560248201527f466173745472616e73666572476174657761793a206f72646572206e6f7420666044820152641a5b1b195960da1b606482015260840161067e565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061195757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661194b600080516020612f46833981519152546001600160a01b031690565b6001600160a01b031614155b15610d795760405163703e46dd60e11b815260040160405180910390fd5b6117e0611c95565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156119d7575060408051601f3d908101601f191682019092526119d491810190612c3c565b60015b6119ff57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161067e565b600080516020612f468339815191528114611a3057604051632a87526960e21b81526004810182905260240161067e565b611a3a8383611f44565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d795760405163703e46dd60e11b815260040160405180910390fd5b90565b6000805b8351811015611b85576020818501810151600081815260058352604080822081516080810183528154815260018201548187015260028083015463ffffffff1682850152600390920154606082015284845260069095529082205492939260ff1690811115611b0057611b006127ef565b14611b0c575050611b73565b6000816020015111611b305760405162461bcd60e51b815260040161067e90612da7565b8463ffffffff16816040015163ffffffff1614611b5f5760405162461bcd60e51b815260040161067e90612deb565b6060810151611b6e9085612c6b565b935050505b611b7e602082612c6b565b9050611a8f565b5060005b8351811015611c4757838101602001516000808281526006602052604090205460ff166002811115611bbd57611bbd6127ef565b14611bf35760405181907f0349d9fa752b33cd4d30f97058afcf8e7b9d5c3c7a20056699a8947fedf7313890600090a250611c35565b600081815260066020526040808220805460ff191660011790555182917fd4250d6114a611e75d68b1c6f14c61e967863d8ac20bc8ebfa4e5f28f664736691a2505b611c40602082612c6b565b9050611b89565b50600154611c5f906001600160a01b03168583611f9a565b50505050565b60005b8251811015611a3a5782810160200151611c828184611fcb565b50611c8e602082612c6b565b9050611c68565b33611cc77f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610d795760405163118cdaa760e01b815233600482015260240161067e565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901611da557604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b6040516001600160a01b038481166024830152838116604483015260648201839052611c5f9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b0383818316178352505050506120ee565b6060816000015182602001518360400151846060015185608001518660a001518760c001518860e00151896101000151604051602001611e5a99989796959493929190612e3f565b6040516020818303038152906040529050919050565b6000546040805160a0810182526001546001600160a01b0390811660608301908152608083018a905282526020808301889052828401899052835180850185523081529081018a9052925163187945bd60e11b81529316926330f28b7a92611ee19291339088908890600401612ed7565b600060405180830381600087803b158015611efb57600080fd5b505af1158015611f0f573d6000803e3d6000fd5b505050505050505050565b611f22612151565b6117e08161219a565b6000611f3682611e12565b805190602001209050919050565b611f4d826121a2565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611f9257611a3a8282612207565b610aaf61227d565b6040516001600160a01b03838116602483015260448201839052611a3a91859182169063a9059cbb90606401611de0565b6000828152600560209081526040918290208251608081018452815481526001820154928101839052600282015463ffffffff169381019390935260030154606083015261202b5760405162461bcd60e51b815260040161067e90612da7565b8163ffffffff16816040015163ffffffff161461205a5760405162461bcd60e51b815260040161067e90612deb565b60008381526006602052604081205460ff16600281111561207d5761207d6127ef565b1461208757505050565b6000838152600660205260409020805460ff19166002179055600154815160608301516120be926001600160a01b03169190611f9a565b60405183907fa60671d8537ed193e567f86ddf28cf35dc67073b5ad80a2d41359cfa78db0a1e90600090a2505050565b60006121036001600160a01b0384168361229c565b905080516000141580156121285750808060200190518101906121269190612cfc565b155b15611a3a57604051635274afe760e01b81526001600160a01b038416600482015260240161067e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16610d7957604051631afcd79f60e31b815260040160405180910390fd5b6117ad612151565b806001600160a01b03163b6000036121d857604051634c9c8ce360e01b81526001600160a01b038216600482015260240161067e565b600080516020612f4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516122249190612d1e565b600060405180830381855af49150503d806000811461225f576040519150601f19603f3d011682016040523d82523d6000602084013e612264565b606091505b50915091506122748583836122aa565b95945050505050565b3415610d795760405163b398979f60e01b815260040160405180910390fd5b606061126d83836000612306565b6060826122bf576122ba82612399565b61126d565b81511580156122d657506001600160a01b0384163b155b156122ff57604051639996b31560e01b81526001600160a01b038516600482015260240161067e565b508061126d565b60608147101561232b5760405163cd78605960e01b815230600482015260240161067e565b600080856001600160a01b031684866040516123479190612d1e565b60006040518083038185875af1925050503d8060008114612384576040519150601f19603f3d011682016040523d82523d6000602084013e612389565b606091505b50915091506112688683836122aa565b8051156123a95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156123fb576123fb6123c2565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612429576124296123c2565b604052919050565b803563ffffffff8116811461244557600080fd5b919050565b600082601f83011261245b57600080fd5b81356001600160401b03811115612474576124746123c2565b612487601f8201601f1916602001612401565b81815284602083860101111561249c57600080fd5b816020850160208301376000918101602001919091529392505050565b600061012082840312156124cc57600080fd5b6124d46123d8565b8235815260208084013590820152604080840135908201526060808401359082015260808084013590820152905061250e60a08301612431565b60a082015261251f60c08301612431565b60c082015260e082810135908201526101008201356001600160401b0381111561254857600080fd5b6125548482850161244a565b6101008301525092915050565b600082601f83011261257257600080fd5b81356001600160401b0381111561258b5761258b6123c2565b8060051b61259b60208201612401565b918252602081850181019290810190868411156125b757600080fd5b6020860192505b838310156125fd5782356001600160401b038111156125dc57600080fd5b6125eb886020838a01016124b9565b835250602092830192909101906125be565b9695505050505050565b60006020828403121561261957600080fd5b81356001600160401b0381111561262f57600080fd5b61263b84828501612561565b949350505050565b6000806040838503121561265657600080fd5b61265f83612431565b915060208301356001600160401b0381111561267a57600080fd5b61268685828601612561565b9150509250929050565b6000602082840312156126a257600080fd5b61126d82612431565b600080604083850312156126be57600080fd5b8235915060208301356001600160401b038111156126db57600080fd5b6126868582860161244a565b80356001600160a01b038116811461244557600080fd5b6000806040838503121561271157600080fd5b61271a836126e7565b915060208301356001600160401b038111156126db57600080fd5b60008083601f84011261274757600080fd5b5081356001600160401b0381111561275e57600080fd5b60208301915083602082850101111561277657600080fd5b9250929050565b6000806000806060858703121561279357600080fd5b61279c85612431565b93506020850135925060408501356001600160401b038111156127be57600080fd5b6127ca87828801612735565b95989497509550505050565b6000602082840312156127e857600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b602081016003831061282757634e487b7160e01b600052602160045260246000fd5b91905290565b6000806040838503121561284057600080fd5b612849836126e7565b915060208301356001600160401b0381111561286457600080fd5b612686858286016124b9565b60005b8381101561288b578181015183820152602001612873565b50506000910152565b600081518084526128ac816020860160208601612870565b601f01601f19169290920160200192915050565b60208152600061126d6020830184612894565b600080604083850312156128e657600080fd5b6128ef83612431565b946020939093013593505050565b60008060006060848603121561291257600080fd5b61291b84612431565b92506020840135915060408401356001600160401b0381111561293d57600080fd5b6129498682870161244a565b9150509250925092565b60008060008060008060008060e0898b03121561296f57600080fd5b8835975060208901359650604089013595506060890135945061299460808a01612431565b935060a0890135925060c08901356001600160401b038111156129b657600080fd5b6129c28b828c01612735565b999c989b5096995094979396929594505050565b60008060008060008060008060008060006101208c8e0312156129f857600080fd5b8b359a5060208c0135995060408c0135985060608c01359750612a1d60808d01612431565b965060a08c0135955060c08c0135945060e08c01356001600160401b03811115612a4657600080fd5b612a528e828f01612735565b9095509350506101008c01356001600160401b03811115612a7257600080fd5b612a7e8e828f01612735565b915080935050809150509295989b509295989b9093969950565b600080600080600060a08688031215612ab057600080fd5b612ab986612431565b9450612ac7602087016126e7565b9350612ad5604087016126e7565b9250612ae3606087016126e7565b9150612af1608087016126e7565b90509295509295909350565b600060208284031215612b0f57600080fd5b61126d826126e7565b634e487b7160e01b600052603260045260246000fd5b6020808252602e908201527f466173745472616e73666572476174657761793a20536f7572636520646f6d6160408201526d0d2dce640daeae6e840dac2e8c6d60931b606082015260800190565b60008351612b8e818460208801612870565b9190910191825250602001919050565b6020808252602a908201527f466173745472616e73666572476174657761793a20756e6b6e6f776e20736f756040820152693931b2903237b6b0b4b760b11b606082015260800190565b60ff60f81b8360f81b16815260008251612c09816001850160208701612870565b919091016001019392505050565b63ffffffff841681528260208201526060604082015260006122746060830184612894565b600060208284031215612c4e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561096c5761096c612c55565b60ff60f81b8460f81b16815282600182015260008251612ca5816021850160208701612870565b91909101602101949350505050565b60008085851115612cc457600080fd5b83861115612cd157600080fd5b5050820193919092039150565b8035602083101561096c57600019602084900360031b1b1692915050565b600060208284031215612d0e57600080fd5b8151801515811461126d57600080fd5b60008251612d30818460208701612870565b9190910192915050565b60208082526031908201527f466173745472616e73666572476174657761793a2064657374696e6174696f6e60408201527008191bdb585a5b881b9bdd08199bdd5b99607a1b606082015260800190565b63ffffffff818116838216019081111561096c5761096c612c55565b60208082526024908201527f466173745472616e73666572476174657761793a206f72646572206e6f7420666040820152631bdd5b9960e21b606082015260800190565b60208082526034908201527f466173745472616e73666572476174657761793a20696e636f727265637420646040820152731bdb585a5b88199bdc881cd95d1d1b195b595b9d60621b606082015260800190565b89815288602082015287604082015286606082015285608082015263ffffffff60e01b8560e01b1660a082015263ffffffff60e01b8460e01b1660a48201528260a882015260008251612e998160c8850160208701612870565b9190910160c8019a9950505050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b855180516001600160a01b039081168352602091820151828401528188015160408085019190915288015160608401528651811660808401529086015160a0830152841660c082015261010060e08201819052600090612f3a9083018486612eae565b97965050505050505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca2646970667358221220dbd319724a368db62c2a06b690d24bc0547faf111bcd0f75bd54fc3cc9f514c164736f6c634300081a0033", + "nonce": "0x84", "chainId": "0xa4b1" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x83dfc0a708e75698dd10a56b403849182e738483c17941565f37048e85c15429", + "hash": "0x14c6da2f48fee61224b2f9036a95c6bace3d80e9d18abde94e99338210715b7b", "transactionType": "CALL", "contractName": null, "contractAddress": "0xd594ff25a22416c0e9d2f8fd0a7166380f338977", "function": "upgradeToAndCall(address,bytes)", "arguments": [ - "0x0902a29FD3dbd462263300c7CFE417742207DF77", + "0x03fF7957dB9AdFbF437760cDA03BA553250A708c", "0x" ], "transaction": { "from": "0x56ca414d41cd3c1188a4939b0d56417da7bb6da2", "to": "0xd594ff25a22416c0e9d2f8fd0a7166380f338977", - "gas": "0xcc56", + "gas": "0xcc66", "value": "0x0", - "input": "0x4f1ef2860000000000000000000000000902a29fd3dbd462263300c7cfe417742207df7700000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x83", + "input": "0x4f1ef28600000000000000000000000003ff7957db9adfbf437760cda03ba553250a708c00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x85", "chainId": "0xa4b1" }, "additionalContracts": [], @@ -44,74 +44,74 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x5e6254", + "cumulativeGasUsed": "0x5e89c4", "logs": [ { - "address": "0x0902a29fd3dbd462263300c7cfe417742207df77", + "address": "0x03ff7957db9adfbf437760cda03ba553250a708c", "topics": [ "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" ], "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xa0cac7553422f87d94e43d2580173c9e13306d8a6563eacbba98db3404f91a91", - "blockNumber": "0xfa7927f", - "transactionHash": "0x14add299c5e4932c19c257277918aab8d39ea9bea2a13fa35ed9d07bcb0b8b42", - "transactionIndex": "0x3", - "logIndex": "0xb", + "blockHash": "0x2bef381f185748994093a2e9d5bfccb30d2cec374b754d663e53eb9af1d5d982", + "blockNumber": "0xfb2f696", + "transactionHash": "0x7aa117544b90ce9ed72d068e27fd521170de93735710a254eb14b15b7cf85175", + "transactionIndex": "0x2", + "logIndex": "0x1", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000010000000000000080000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000400080000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x14add299c5e4932c19c257277918aab8d39ea9bea2a13fa35ed9d07bcb0b8b42", - "transactionIndex": "0x3", - "blockHash": "0xa0cac7553422f87d94e43d2580173c9e13306d8a6563eacbba98db3404f91a91", - "blockNumber": "0xfa7927f", - "gasUsed": "0x548b51", + "transactionHash": "0x7aa117544b90ce9ed72d068e27fd521170de93735710a254eb14b15b7cf85175", + "transactionIndex": "0x2", + "blockHash": "0x2bef381f185748994093a2e9d5bfccb30d2cec374b754d663e53eb9af1d5d982", + "blockNumber": "0xfb2f696", + "gasUsed": "0x5c9558", "effectiveGasPrice": "0x989680", "from": "0x56ca414d41cd3c1188a4939b0d56417da7bb6da2", "to": null, - "contractAddress": "0x0902a29fd3dbd462263300c7cfe417742207df77", - "gasUsedForL1": "0x2b7f97", - "l1BlockNumber": "0x13f89ef" + "contractAddress": "0x03ff7957db9adfbf437760cda03ba553250a708c", + "gasUsedForL1": "0x333462", + "l1BlockNumber": "0x13fc677" }, { "status": "0x1", - "cumulativeGasUsed": "0x2b2c73", + "cumulativeGasUsed": "0x8febf", "logs": [ { "address": "0xd594ff25a22416c0e9d2f8fd0a7166380f338977", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000000902a29fd3dbd462263300c7cfe417742207df77" + "0x00000000000000000000000003ff7957db9adfbf437760cda03ba553250a708c" ], "data": "0x", - "blockHash": "0x57d4c9d32ff6363519fd0782e2f92612a77cd9ec67f2d4191e890296af9d471d", - "blockNumber": "0xfa792ad", - "transactionHash": "0x83dfc0a708e75698dd10a56b403849182e738483c17941565f37048e85c15429", - "transactionIndex": "0x9", - "logIndex": "0x1b", + "blockHash": "0xb22bfb1e1f7a726827665bc4bef004c32de68e495592a2248e164aa6917f9c8c", + "blockNumber": "0xfb2f699", + "transactionHash": "0x14c6da2f48fee61224b2f9036a95c6bace3d80e9d18abde94e99338210715b7b", + "transactionIndex": "0x2", + "logIndex": "0x2", "removed": false } ], - "logsBloom": "0x00000100000000000000000000000000400000000000000010000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000100000000100000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000100000000000000000000000000400000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000001000000000000000000000000000000000000100000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x83dfc0a708e75698dd10a56b403849182e738483c17941565f37048e85c15429", - "transactionIndex": "0x9", - "blockHash": "0x57d4c9d32ff6363519fd0782e2f92612a77cd9ec67f2d4191e890296af9d471d", - "blockNumber": "0xfa792ad", - "gasUsed": "0x20089", + "transactionHash": "0x14c6da2f48fee61224b2f9036a95c6bace3d80e9d18abde94e99338210715b7b", + "transactionIndex": "0x2", + "blockHash": "0xb22bfb1e1f7a726827665bc4bef004c32de68e495592a2248e164aa6917f9c8c", + "blockNumber": "0xfb2f699", + "gasUsed": "0x23e2d", "effectiveGasPrice": "0x989680", "from": "0x56ca414d41cd3c1188a4939b0d56417da7bb6da2", "to": "0xd594ff25a22416c0e9d2f8fd0a7166380f338977", "contractAddress": null, - "gasUsedForL1": "0x16c99", - "l1BlockNumber": "0x13f89f0" + "gasUsedForL1": "0x1aa31", + "l1BlockNumber": "0x13fc677" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1728636625, + "timestamp": 1728824221, "chain": 42161, - "commit": "c541543" + "commit": "13fad6d" } \ No newline at end of file diff --git a/solidity/script/Deploy.s.sol b/solidity/script/Deploy.s.sol index 42abe91..a991932 100644 --- a/solidity/script/Deploy.s.sol +++ b/solidity/script/Deploy.s.sol @@ -6,28 +6,30 @@ import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.s import {FastTransferGateway} from "../src/FastTransferGateway.sol"; contract DeployScript is Script { - function setUp() public {} + address public constant USDC_ABRITRUM = 0xaf88d065e77c8cC2239327C5EDb3A432268e5831; + address public constant PERMIT2_ABRITRUM = 0x000000000022D473030F116dDEE9F6B43aC78BA3; + address public constant MAILBOX_ABRITRUM = 0xB0D479FF725668bAB83aD4F24485851927Fc56D7; + address public constant INTERCHAIN_SECURITY_MODULE_ABRITRUM = 0xb49a14568f9CC440f2c7DCf7FC6766040a5eb860; - function run() public { - vm.startBroadcast(); + address public owner = 0x56Ca414d41CD3C1188A4939b0D56417dA7Bb6DA2; - address owner = address(0x56Ca414d41CD3C1188A4939b0D56417dA7Bb6DA2); - address token = address(0xaf88d065e77c8cC2239327C5EDb3A432268e5831); // USDC - address mailbox = address(0x979Ca5202784112f4738403dBec5D0F3B9daabB9); - address permit2 = address(0x000000000022D473030F116dDEE9F6B43aC78BA3); + function run(uint32 chainID) public { + (address usdc, address permit2, address mailbox, address interchainSecurityModule) = _getInitValues(chainID); - uint32 localDomain = 1; + vm.startBroadcast(); FastTransferGateway gatewayImpl = new FastTransferGateway(); + ERC1967Proxy gatewayProxy = new ERC1967Proxy( address(gatewayImpl), abi.encodeWithSignature( - "initialize(uint32,address,address,address,address)", - localDomain, + "initialize(uint32,address,address,address,address,address)", + chainID, owner, - address(token), + usdc, mailbox, - address(permit2) + interchainSecurityModule, + permit2 ) ); @@ -35,4 +37,12 @@ contract DeployScript is Script { vm.stopBroadcast(); } + + function _getInitValues(uint32 chainID) internal pure returns (address, address, address, address) { + if (chainID == 42161) { + return (USDC_ABRITRUM, PERMIT2_ABRITRUM, MAILBOX_ABRITRUM, INTERCHAIN_SECURITY_MODULE_ABRITRUM); + } + + revert("Invalid chain ID"); + } } diff --git a/solidity/script/Deploy2.s.sol b/solidity/script/Deploy2.s.sol deleted file mode 100644 index 47ad339..0000000 --- a/solidity/script/Deploy2.s.sol +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity ^0.8.13; - -import {Script, console} from "forge-std/Script.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {FastTransferGateway} from "../src/FastTransferGateway.sol"; - -contract DeployScript is Script { - address public constant USDC_ABRITRUM = 0xaf88d065e77c8cC2239327C5EDb3A432268e5831; - address public constant PERMIT2_ABRITRUM = 0x000000000022D473030F116dDEE9F6B43aC78BA3; - address public constant MAILBOX_ABRITRUM = 0x979Ca5202784112f4738403dBec5D0F3B9daabB9; - - address public constant USDC_BASE = 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913; - address public constant PERMIT2_BASE = 0x000000000022D473030F116dDEE9F6B43aC78BA3; - address public constant MAILBOX_BASE = 0xeA87ae93Fa0019a82A727bfd3eBd1cFCa8f64f1D; - - address public owner = 0x56Ca414d41CD3C1188A4939b0D56417dA7Bb6DA2; - - function run(uint32 chainID) public { - (address usdc, address permit2, address mailbox) = _getInitValues(chainID); - - vm.startBroadcast(); - - FastTransferGateway gatewayImpl = new FastTransferGateway(); - - ERC1967Proxy gatewayProxy = new ERC1967Proxy( - address(gatewayImpl), - abi.encodeWithSignature( - "initialize(uint32,address,address,address,address)", chainID, owner, usdc, mailbox, permit2 - ) - ); - - console.log("Gateway deployed at", address(gatewayProxy)); - - vm.stopBroadcast(); - } - - function _getInitValues(uint32 chainID) internal pure returns (address, address, address) { - if (chainID == 42161) { - return (USDC_ABRITRUM, PERMIT2_ABRITRUM, MAILBOX_ABRITRUM); - } else if (chainID == 8453) { - return (USDC_BASE, PERMIT2_BASE, MAILBOX_BASE); - } - - revert("Invalid chain ID"); - } -} diff --git a/solidity/src/FastTransferGateway.sol b/solidity/src/FastTransferGateway.sol index da62b31..c245317 100644 --- a/solidity/src/FastTransferGateway.sol +++ b/solidity/src/FastTransferGateway.sol @@ -76,6 +76,7 @@ contract FastTransferGateway is Initializable, UUPSUpgradeable, OwnableUpgradeab IPermit2 public PERMIT2; address public token; address public mailbox; + address public interchainSecurityModule; // TODO: make this immutable after discussing with the team uint32 public localDomain; @@ -93,14 +94,19 @@ contract FastTransferGateway is Initializable, UUPSUpgradeable, OwnableUpgradeab _disableInitializers(); } - function initialize(uint32 _localDomain, address _owner, address _token, address _mailbox, address _permit2) - external - initializer - { + function initialize( + uint32 _localDomain, + address _owner, + address _token, + address _mailbox, + address _interchainSecurityModule, + address _permit2 + ) external initializer { __Ownable_init(_owner); token = _token; mailbox = _mailbox; + interchainSecurityModule = _interchainSecurityModule; localDomain = _localDomain; PERMIT2 = IPermit2(_permit2); nonce = 1; @@ -303,6 +309,18 @@ contract FastTransferGateway is Initializable, UUPSUpgradeable, OwnableUpgradeab IMailbox(mailbox).dispatch{value: msg.value}(sourceDomain, remoteContract, hyperlaneMessage); } + /// @dev Updates the Hyperlane mailbox address + /// @param _mailbox The new mailbox address + function setMailbox(address _mailbox) public onlyOwner { + mailbox = _mailbox; + } + + /// @dev Updates the interchain security module address + /// @param _interchainSecurityModule The new interchain security module address + function setInterchainSecurityModule(address _interchainSecurityModule) public onlyOwner { + interchainSecurityModule = _interchainSecurityModule; + } + function quoteInitiateSettlement(uint32 sourceDomain, bytes32 repaymentAddress, bytes memory orderIDs) public view diff --git a/solidity/test/ERC7683.t.sol b/solidity/test/ERC7683.t.sol index 97df37e..1abc916 100644 --- a/solidity/test/ERC7683.t.sol +++ b/solidity/test/ERC7683.t.sol @@ -59,11 +59,12 @@ contract ERC7683Test is Test { ERC1967Proxy gatewayProxy = new ERC1967Proxy( address(gatewayImpl), abi.encodeWithSignature( - "initialize(uint32,address,address,address,address)", + "initialize(uint32,address,address,address,address,address)", 1, address(this), address(usdc), mailbox, + 0x3d0BE14dFbB1Eb736303260c1724B6ea270c8Dc4, address(permit2) ) ); diff --git a/solidity/test/FastTransferGateway.t.sol b/solidity/test/FastTransferGateway.t.sol index 6c76796..e520699 100644 --- a/solidity/test/FastTransferGateway.t.sol +++ b/solidity/test/FastTransferGateway.t.sol @@ -56,11 +56,12 @@ contract FastTransferGatewayTest is Test { ERC1967Proxy gatewayProxy = new ERC1967Proxy( address(gatewayImpl), abi.encodeWithSignature( - "initialize(uint32,address,address,address,address)", + "initialize(uint32,address,address,address,address,address)", 1, address(this), address(usdc), mailbox, + 0x3d0BE14dFbB1Eb736303260c1724B6ea270c8Dc4, address(permit2) ) );