From 29536598c05aa84e7fe5c75914b5d1fff91f96f6 Mon Sep 17 00:00:00 2001 From: Igor Yalovoy Date: Wed, 11 Dec 2024 14:42:06 -0300 Subject: [PATCH] Exit Window Period for add/remove sanctions (#325) * Implement sanction expiry and exit window periods in KintoID contract, update related tests, and add new error handling for exit window period violations. * Add tests for sanction management in KintoID, including adding and removing sanctions with time warp simulation. * Add sanction expiry and exit window periods; update contract to KintoIDV10 and fix typo in IKintoID interface. * Upgrade KintoID to version V10, update contract addresses, and modify governance role assertions in migration script. --- .../7887/run-1733860818.json | 148 ++++++++++ .../7887/run-latest.json | 254 +++--------------- script/migrations/135-upgrade_faucet_id.s.sol | 26 +- src/KintoID.sol | 37 ++- src/interfaces/IKintoID.sol | 3 + test/artifacts/7887/addresses.json | 5 +- test/unit/KintoID.t.sol | 150 +++++++++-- 7 files changed, 364 insertions(+), 259 deletions(-) create mode 100644 broadcast/135-upgrade_faucet_id.s.sol/7887/run-1733860818.json diff --git a/broadcast/135-upgrade_faucet_id.s.sol/7887/run-1733860818.json b/broadcast/135-upgrade_faucet_id.s.sol/7887/run-1733860818.json new file mode 100644 index 00000000..ef88a613 --- /dev/null +++ b/broadcast/135-upgrade_faucet_id.s.sol/7887/run-1733860818.json @@ -0,0 +1,148 @@ +{ + "transactions": [ + { + "hash": "0x39a80565f32d26000864066f3d09a285965a055bafd9368ca6a52a8cdc1394d8", + "transactionType": "CREATE2", + "contractName": "KintoID", + "contractAddress": "0xaa0726829d41e3c70b84bc5390cce82afc56871a", + "function": null, + "arguments": [ + "0x8a4720488CA32f1223ccFE5A087e250fE3BC5D75", + "0x0719D47A213149E2Ef8d3f5afDaDA8a8E22dfc03" + ], + "transaction": { + "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "value": "0x0", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060e0604052306080523480156200001557600080fd5b5060405162004fe038038062004fe0833981016040819052620000389162000138565b620000426200005a565b6001600160a01b0391821660a0521660c05262000170565b600054610100900460ff1615620000c75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200013357600080fd5b919050565b600080604083850312156200014c57600080fd5b62000157836200011b565b915062000167602084016200011b565b90509250929050565b60805160a05160c051614e16620001ca60003960008181610a3b0152612f5301526000818161098e0152610c71015260008181611486015281816114c6015281816115bf015281816115ff01526117210152614e166000f3fe6080604052600436106103815760003560e01c80638129fc1c116101d1578063c87b56dd11610102578063ead15596116100a0578063f698da251161006f578063f698da2514610b71578063f72c0d8b14610b88578063fab720d214610bbc578063fb0b294014610bd357600080fd5b8063ead1559614610add578063ef3b490314610afd578063efdbfaee14610b1d578063f36c8f5c14610b3d57600080fd5b8063d9e1063d116100dc578063d9e1063d14610a07578063de5f72fd14610a29578063e42398ad14610a5d578063e985e9c514610a9457600080fd5b8063c87b56dd146109b0578063d00bb535146109d0578063d547741f146109e757600080fd5b8063a217fddf1161016f578063b61f551511610149578063b61f55151461090f578063b75a3e4e1461093c578063b88d4fde1461095c578063c5c036991461097c57600080fd5b8063a217fddf146108c3578063a22cb465146108d8578063b0a77c61146108f857600080fd5b806391d14854116101ab57806391d148541461081057806395d89b41146108305780639944f51814610860578063a0406ce21461088057600080fd5b80638129fc1c146107ad578063845b6b6c146107c257806386823a2c146107f057600080fd5b80632f745c59116102b65780634f6ccce7116102545780636d7cdf6c116102235780636d7cdf6c1461071f5780636ed1f4a31461073f57806370a082311461075f5780637ecebe001461077f57600080fd5b80634f6ccce7146106aa57806352d1902d146106ca5780636352211e146106df5780636d785f3b146106ff57600080fd5b8063390c11ae11610290578063390c11ae1461061557806342842e0e1461065757806342966c68146106775780634f1ef2861461069757600080fd5b80632f745c59146105b557806336568abe146105d55780633659cfe6146105f557600080fd5b806311c0154e1161032357806321442ec9116102fd57806321442ec91461050e57806323b872dd14610545578063248a9ca3146105655780632f2ff15d1461059557600080fd5b806311c0154e146104af57806318160ddd146104cf5780631fbd4041146104ee57600080fd5b806306fdde031161035f57806306fdde03146103fd578063081812fc14610437578063095ea7b31461046f5780630add9f7f1461048f57600080fd5b806301ffc9a71461038657806304a6238f146103bb57806305bdaabb146103dd575b600080fd5b34801561039257600080fd5b506103a66103a1366004614128565b610bf3565b60405190151581526020015b60405180910390f35b3480156103c757600080fd5b506103db6103d6366004614161565b610c04565b005b3480156103e957600080fd5b506103db6103f83660046141a6565b610d7b565b34801561040957600080fd5b5060408051808201909152600881526712da5b9d1bc8125160c21b60208201525b6040516103b29190614220565b34801561044357600080fd5b50610457610452366004614233565b610e83565b6040516001600160a01b0390911681526020016103b2565b34801561047b57600080fd5b506103db61048a36600461424c565b610eaa565b34801561049b57600080fd5b506103a66104aa366004614276565b610fbf565b3480156104bb57600080fd5b506103db6104ca3660046141a6565b61104c565b3480156104db57600080fd5b506099545b6040519081526020016103b2565b3480156104fa57600080fd5b506103db6105093660046141a6565b61114b565b34801561051a57600080fd5b506104e0610529366004614276565b6001600160a01b03166000908152610193602052604090205490565b34801561055157600080fd5b506103db610560366004614291565b611312565b34801561057157600080fd5b506104e0610580366004614233565b600090815260fb602052604090206001015490565b3480156105a157600080fd5b506103db6105b03660046142cd565b611343565b3480156105c157600080fd5b506104e06105d036600461424c565b611368565b3480156105e157600080fd5b506103db6105f03660046142cd565b6113fe565b34801561060157600080fd5b506103db610610366004614276565b61147c565b34801561062157600080fd5b506103a6610630366004614276565b6001600160a01b031660009081526101936020526040902060020154610100900460ff1690565b34801561066357600080fd5b506103db610672366004614291565b61155b565b34801561068357600080fd5b506103db610692366004614233565b611576565b6103db6106a5366004614392565b6115b5565b3480156106b657600080fd5b506104e06106c5366004614233565b611681565b3480156106d657600080fd5b506104e0611714565b3480156106eb57600080fd5b506104576106fa366004614233565b6117c7565b34801561070b57600080fd5b506103db61071a36600461443b565b611827565b34801561072b57600080fd5b506103db61073a36600461443b565b61184e565b34801561074b57600080fd5b506103db61075a3660046144a3565b611875565b34801561076b57600080fd5b506104e061077a366004614276565b611b6f565b34801561078b57600080fd5b506104e061079a366004614276565b6101946020526000908152604090205481565b3480156107b957600080fd5b506103db611bf5565b3480156107ce57600080fd5b506104e06107dd366004614276565b6101986020526000908152604090205481565b3480156107fc57600080fd5b506103a661080b3660046141a6565b611eb1565b34801561081c57600080fd5b506103a661082b3660046142cd565b611f69565b34801561083c57600080fd5b5060408051808201909152600781526612d2539513d25160ca1b602082015261042a565b34801561086c57600080fd5b506103a661087b366004614276565b611f94565b34801561088c57600080fd5b506103a661089b366004614276565b6001600160a01b031660009081526101936020526040902060020154610100900460ff161590565b3480156108cf57600080fd5b506104e0600081565b3480156108e457600080fd5b506103db6108f336600461451e565b611fb1565b34801561090457600080fd5b506104e06101925481565b34801561091b57600080fd5b5061092f61092a366004614276565b611fbc565b6040516103b29190614548565b34801561094857600080fd5b506103a66109573660046141a6565b61205e565b34801561096857600080fd5b506103db61097736600461458e565b6120a1565b34801561098857600080fd5b506104577f000000000000000000000000000000000000000000000000000000000000000081565b3480156109bc57600080fd5b5061042a6109cb366004614233565b6120d3565b3480156109dc57600080fd5b506104e0620d2f0081565b3480156109f357600080fd5b506103db610a023660046142cd565b612139565b348015610a1357600080fd5b506104e0600080516020614d5483398151915281565b348015610a3557600080fd5b506104577f000000000000000000000000000000000000000000000000000000000000000081565b348015610a6957600080fd5b50610457610a78366004614276565b610196602052600090815260409020546001600160a01b031681565b348015610aa057600080fd5b506103a6610aaf366004614161565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b348015610ae957600080fd5b506103a6610af83660046145f5565b61215e565b348015610b0957600080fd5b506103db610b183660046141a6565b612189565b348015610b2957600080fd5b506103db610b3836600461461b565b61234d565b348015610b4957600080fd5b506104e07f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb181565b348015610b7d57600080fd5b506104e06101955481565b348015610b9457600080fd5b506104e07f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc857600080fd5b506104e06203f48081565b348015610bdf57600080fd5b506103db610bee366004614276565b612673565b6000610bfe82612741565b92915050565b6000610c0f83611b6f565b118015610c225750610c2081611b6f565b155b610c665760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103a3930b739b332b960811b60448201526064015b60405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610ca35750610ca3600033611f69565b610d0a5760405162461bcd60e51b815260206004820152603260248201527f4f6e6c79207468652077616c6c657420666163746f7279206f722061646d696e604482015271732063616e2074726967676572207468697360701b6064820152608401610c5d565b6001600160a01b0382811660009081526101966020526040812080546001600160a01b03191692841692909217909155610d529083908390610d4d908390611368565b612766565b506001600160a01b031660009081526101966020526040902080546001600160a01b0319169055565b600080516020614d54833981519152610d93816128d7565b610d9c83611b6f565b600003610dbc576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b03831660009081526101936020908152604080832060ff600887901c811685526003820190935292205460019185169190911b16610e7d5760ff600884901c811660009081526003830160205260409020805460019286169290921b909117905542600182018190556101928190556040805161ffff8616815260208101929092526001600160a01b038616917f364b7a2e1762fd5d9cdeda6c0ea8e1be396892c015c5c917f4d164cd4968ac7691015b60405180910390a25b50505050565b6000610e8e826128e1565b506000908152606960205260409020546001600160a01b031690565b6000610eb5826117c7565b9050806001600160a01b0316836001600160a01b031603610f225760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610c5d565b336001600160a01b0382161480610f3e5750610f3e8133610aaf565b610fb05760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610c5d565b610fba8383612940565b505050565b6000610fcb600761215e565b8015610bfe57506001600160a01b0382166000908152610193602052604090206002015460ff161580610bfe57506001600160a01b0382166000908152610198602052604090205415801590610bfe57506001600160a01b038216600090815261019860205260409020546203f480906110459042614665565b1192915050565b600080516020614d54833981519152611064816128d7565b61106d83611b6f565b60000361108d576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b03831660009081526101936020908152604080832060ff600887901c811685526003820190935292205460019185169190911b1615610e7d5760ff600884901c811660009081526003830160205260409020805460019286169290921b19909116905542600182018190556101928190556040805161ffff8616815260208101929092526001600160a01b038616917fdaf71d6bfd7a93506c86e0e5c5725808f99fe27f13af711f321edf92511e609b9101610e74565b600080516020614d54833981519152611163816128d7565b61116c83611b6f565b60000361118c576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b0383166000908152610198602052604090205480158015906111c05750620d2f006111be8242614665565b105b156111f057604051631093e3a360e21b81526001600160a01b038516600482015260248101829052604401610c5d565b6001600160a01b03841660009081526101936020908152604080832060ff600888901c811685526004820190935292205460019186169190911b1661130b5760ff600885901c811660009081526004830160205260409020805460019287169290921b90911790556002810180546001919060009061127390849060ff16614678565b92506101000a81548160ff021916908360ff1602179055504281600101819055504261019281905550846001600160a01b03167f87d7acad3a8fb00ded1ae0aeaed871a89b621b17d6cd6ff8fd5c00b63394f94a85426040516112e692919061ffff929092168252602082015260400190565b60405180910390a26001600160a01b0385166000908152610198602052604090204290555b5050505050565b61131c33826129ae565b6113385760405162461bcd60e51b8152600401610c5d90614691565b610fba838383612766565b600082815260fb602052604090206001015461135e816128d7565b610fba8383612a2d565b600061137383611b6f565b82106113d55760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610c5d565b506001600160a01b03919091166000908152609760209081526040808320938352929052205490565b6001600160a01b038116331461146e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c5d565b6114788282612ab3565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114c45760405162461bcd60e51b8152600401610c5d906146de565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661150d600080516020614d9a833981519152546001600160a01b031690565b6001600160a01b0316146115335760405162461bcd60e51b8152600401610c5d9061472a565b61153c81612b1a565b6040805160008082526020820190925261155891839190612b44565b50565b610fba838383604051806020016040528060008152506120a1565b60405163015538b160e01b8152602060048201526013602482015272155cd948189d5c9b92d650c81a5b9cdd195859606a1b6044820152606401610c5d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115fd5760405162461bcd60e51b8152600401610c5d906146de565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611646600080516020614d9a833981519152546001600160a01b031690565b6001600160a01b03161461166c5760405162461bcd60e51b8152600401610c5d9061472a565b61167582612b1a565b61147882826001612b44565b600061168c60995490565b82106116ef5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610c5d565b6099828154811061170257611702614776565b90600052602060002001549050919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117b45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c5d565b50600080516020614d9a83398151915290565b6000818152606760205260408120546001600160a01b031680610bfe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c5d565b61019180549060006118388361478c565b9190505550610fba610191548484846001612caf565b610191805490600061185f8361478c565b9190505550610fba610191548484846000612caf565b600080516020614d5483398151915261188d816128d7565b8382146118b0576040516001621398b960e31b0319815260040160405180910390fd5b60c88411156118d25760405163a947d77f60e01b815260040160405180910390fd5b4260005b85811015611b2557600061019360008989858181106118f7576118f7614776565b905060200201602081019061190c9190614276565b6001600160a01b03166001600160a01b03168152602001908152602001600020905061195888888481811061194357611943614776565b905060200201602081019061077a9190614276565b6000036119655750611b13565b42600182015560005b86868481811061198057611980614776565b905060200281019061199291906147a5565b9050811015611b105760008787858181106119af576119af614776565b90506020028101906119c191906147a5565b838181106119d1576119d1614776565b9050606002018036038101906119e791906147ed565b805190915080156119f9575080602001515b15611a3757611a328a8a86818110611a1357611a13614776565b9050602002016020810190611a289190614276565b8260400151610d7b565b611afd565b80518015611a4757508060200151155b15611a8057611a328a8a86818110611a6157611a61614776565b9050602002016020810190611a769190614276565b826040015161104c565b8051158015611a90575080602001515b15611ac957611a328a8a86818110611aaa57611aaa614776565b9050602002016020810190611abf9190614276565b826040015161114b565b611afd8a8a86818110611ade57611ade614776565b9050602002016020810190611af39190614276565b8260400151612189565b50611b09600182614858565b905061196e565b50505b611b1e600182614858565b90506118d6565b50610192819055604080518681526020810183905233917f18fb8b1f79749f3894ec6b996ad0503b2dbcf19585865dba3df7683953fc450d910160405180910390a2505050505050565b60006001600160a01b038216611bd95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610c5d565b506001600160a01b031660009081526068602052604090205490565b600054610100900460ff1615808015611c155750600054600160ff909116105b80611c2f5750303b158015611c2f575060005460ff166001145b611c925760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c5d565b6000805460ff191660011790558015611cb5576000805461ff0019166101001790555b611cfe6040518060400160405280600881526020016712da5b9d1bc8125160c21b8152506040518060400160405280600781526020016612d2539513d25160ca1b815250612fea565b611d0661301b565b611d0e61301b565b611d1661301b565b611d1e61301b565b611d29600033612a2d565b611d41600080516020614d5483398151915233612a2d565b611d6b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333612a2d565b611d957f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb133612a2d565b4261019255604080518082018252600781526612da5b9d1bd25160ca1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff2acf2bff9f153ce27ec66ef28c5d61aaa06a6eac70c4c0de4bac7cb3bec0c54818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120610195558015611558576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000611ebd600761215e565b8015611f6257506001600160a01b038316600090815261019360205260409020611f0d9060040161ffff8416600881901c600090815260208390526040902054600160ff83161b16151592915050565b1580611f6257506001600160a01b0383166000908152610198602052604090205415801590611f6257506001600160a01b038316600090815261019860205260409020546203f48090611f609042614665565b115b9392505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080611fa083611b6f565b118015610bfe5750610bfe82610fbf565b611478338383613044565b6001600160a01b038116600090815261019360205260408082208151610100808252612020820190935260609360039092019281602001602082028036833701905050905060005b61010081101561205657600881901c600090815260208490526040902054600160ff83161b16151582828151811061203e5761203e614776565b91151560209283029190910190910152600101612004565b509392505050565b6001600160a01b03821660009081526101936020908152604080832060ff600886901c81168552600390910190925282205460019184169190911b161515611f62565b6120ab33836129ae565b6120c75760405162461bcd60e51b8152600401610c5d90614691565b610e7d84848484613112565b60606120de826128e1565b60006120e8613145565b905060008151116121085760405180602001604052806000815250611f62565b8061211284613165565b60405160200161212392919061486b565b6040516020818303038152906040529392505050565b600082815260fb6020526040902060010154612154816128d7565b610fba8383612ab3565b600061216d826201518061489a565b63ffffffff1661019254426121829190614665565b1092915050565b600080516020614d548339815191526121a1816128d7565b6121aa83611b6f565b6000036121ca576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b0383166000908152610198602052604090205480158015906121fe5750620d2f006121fc8242614665565b105b1561222e57604051631093e3a360e21b81526001600160a01b038516600482015260248101829052604401610c5d565b6001600160a01b03841660009081526101936020908152604080832060ff600888901c811685526004820190935292205460019186169190911b161561130b5760ff600885901c811660009081526004830160205260409020805460019287169290921b199091169055600281018054600191906000906122b390849060ff166148c2565b92506101000a81548160ff021916908360ff1602179055504281600101819055504261019281905550846001600160a01b03167fe307a82882b02537e8254556f85aa0ae942a060782f1f076028687f1fd7dba18854260405161232692919061ffff929092168252602082015260400190565b60405180910390a2505050506001600160a01b031660009081526101986020526040812055565b808060400135421061237257604051630819bdcd60e01b815260040160405180910390fd5b602081018035906101949060009061238a9085614276565b6001600160a01b03166001600160a01b0316815260200190815260200160002054146123c957604051633ab3447f60e11b815260040160405180910390fd5b6123e1600080516020614d5483398151915233611f69565b6123fe57604051633b136dc160e11b815260040160405180910390fd5b60008061240e6020840184614276565b803b92509050811561243357604051631bb5d42560e31b815260040160405180910390fd5b6000610195546124b585612446906148db565b805160208083015160409384015184517fce753e2ed199e3bc0c561ccacfe9f2ebd720bf99f6d0e6854d8ec36486eb18c7818501526001600160a01b039094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b60405161190160f01b60208201526022810192909252604282015260620160408051601f1981840301815291905280516020909101209050612550816124fe6060870187614960565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612540925050506020880188614276565b6001600160a01b031691906131f7565b61256d57604051632057875960e21b815260040160405180910390fd5b61257d61077a6020870187614276565b60000361259d57604051634c3215c360e11b815260040160405180910390fd5b600161019460006125b16020890189614276565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546125e09190614858565b9091555061260590506126006125f96020880188614276565b6000611368565b613258565b600061261761077a6020880188614276565b11156126365760405163493e98f360e11b815260040160405180910390fd5b6000610193816126496020890189614276565b6001600160a01b031681526020810191909152604001600090812081815560010155505050505050565b7f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb161269d816128d7565b6001600160a01b0382166000908152610193602052604081206002015460ff1690036126e757604051634d05f3e760e01b81526001600160a01b0383166004820152602401610c5d565b6001600160a01b0382166000818152610198602052604080822091909155517f8e5e87839bfd57881dc0bf377cc18550ec2476ac488bb95c3aec4792077ea79f906127359042815260200190565b60405180910390a25050565b60006001600160e01b03198216637965db0b60e01b1480610bfe5750610bfe826132fb565b826001600160a01b0316612779826117c7565b6001600160a01b03161461279f5760405162461bcd60e51b8152600401610c5d906149a6565b6001600160a01b0382166128015760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c5d565b61280e8383836001613320565b826001600160a01b0316612821826117c7565b6001600160a01b0316146128475760405162461bcd60e51b8152600401610c5d906149a6565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61155881336133d9565b6000818152606760205260409020546001600160a01b03166115585760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c5d565b600081815260696020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612975826117c7565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806129ba836117c7565b9050806001600160a01b0316846001600160a01b03161480612a0157506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b80612a255750836001600160a01b0316612a1a84610e83565b6001600160a01b0316145b949350505050565b612a378282611f69565b61147857600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a6f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612abd8282611f69565b1561147857600082815260fb602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3611478816128d7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612b7757610fba83613432565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612bd1575060408051601f3d908101601f19168201909252612bce918101906149eb565b60015b612c345760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c5d565b600080516020614d9a8339815191528114612ca35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c5d565b50610fba8383836134ce565b8380604001354210612cd457604051630819bdcd60e01b815260040160405180910390fd5b6020810180359061019490600090612cec9085614276565b6001600160a01b03166001600160a01b031681526020019081526020016000205414612d2b57604051633ab3447f60e11b815260040160405180910390fd5b612d43600080516020614d5483398151915233611f69565b612d6057604051633b136dc160e11b815260040160405180910390fd5b600080612d706020840184614276565b803b925090508115612d9557604051631bb5d42560e31b815260040160405180910390fd5b600061019554612da885612446906148db565b60405161190160f01b60208201526022810192909252604282015260620160408051601f1981840301815291905280516020909101209050612df1816124fe6060870187614960565b612e0e57604051632057875960e21b815260040160405180910390fd5b6000612e2061077a60208b018b614276565b1115612e3f5760405163493e98f360e11b815260040160405180910390fd5b600061019381612e5260208c018c614276565b6001600160a01b031681526020810191909152604001600090812042808255600182015560028101805461ff0019166101008a15150217905591505b87811015612ef357612eeb898983818110612eab57612eab614776565b9050602002016020810190612ec09190614a04565b600881901c60ff9081166000908152600386016020526040902080546001939092169290921b179055565b600101612e8e565b506101946000612f0660208c018c614276565b6001600160a01b0316815260208101919091526040016000908120805491612f2d8361478c565b90915550612f499050612f4360208b018b614276565b8b6134f3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631fa27f76612f8560208c018c614276565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015612fc657600080fd5b505af1158015612fda573d6000803e3d6000fd5b5050505050505050505050505050565b600054610100900460ff166130115760405162461bcd60e51b8152600401610c5d90614a1f565b611478828261350d565b600054610100900460ff166130425760405162461bcd60e51b8152600401610c5d90614a1f565b565b816001600160a01b0316836001600160a01b0316036130a55760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c5d565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61311d848484612766565b6131298484848461354d565b610e7d5760405162461bcd60e51b8152600401610c5d90614a6a565b6060604051806060016040528060268152602001614d7460269139905090565b606060006131728361364e565b60010190506000816001600160401b03811115613191576131916142f0565b6040519080825280601f01601f1916602001820160405280156131bb576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846131c557509392505050565b60008060006132068585613726565b9092509050600081600481111561321f5761321f614abc565b14801561323d5750856001600160a01b0316826001600160a01b0316145b8061324e575061324e86868661376b565b9695505050505050565b6000613263826117c7565b9050613273816000846001613320565b61327c826117c7565b600083815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526068845282852080546000190190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60006001600160e01b0319821663780e9d6360e01b1480610bfe5750610bfe82613857565b6001600160a01b038416158061335457506001600160a01b0384811660009081526101966020526040902054811690841614155b80613365575061336384610fbf565b155b801561338a57506001600160a01b03841615158061338a57506001600160a01b038316155b80156133af57506001600160a01b03841615806133af57506001600160a01b03831615155b156133cd57604051632a675c2b60e11b815260040160405180910390fd5b610e7d848484846138a7565b6133e38282611f69565b611478576133f0816139d4565b6133fb8360206139e6565b60405160200161340c929190614ad2565b60408051601f198184030181529082905262461bcd60e51b8252610c5d91600401614220565b6001600160a01b0381163b61349f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c5d565b600080516020614d9a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6134d783613b81565b6000825111806134e45750805b15610fba57610e7d8383613bc1565b611478828260405180602001604052806000815250613be6565b600054610100900460ff166135345760405162461bcd60e51b8152600401610c5d90614a1f565b60656135408382614bcb565b506066610fba8282614bcb565b60006001600160a01b0384163b1561364357604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613591903390899088908890600401614c8a565b6020604051808303816000875af19250505080156135cc575060408051601f3d908101601f191682019092526135c991810190614cbd565b60015b613629573d8080156135fa576040519150601f19603f3d011682016040523d82523d6000602084013e6135ff565b606091505b5080516000036136215760405162461bcd60e51b8152600401610c5d90614a6a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612a25565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061368d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106136b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106136d757662386f26fc10000830492506010015b6305f5e10083106136ef576305f5e100830492506008015b612710831061370357612710830492506004015b60648310613715576064830492506002015b600a8310610bfe5760010192915050565b600080825160410361375c5760208301516040840151606085015160001a61375087828585613c19565b94509450505050613764565b506000905060025b9250929050565b6000806000856001600160a01b0316631626ba7e60e01b8686604051602401613795929190614cda565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516137d39190614cf3565b600060405180830381855afa9150503d806000811461380e576040519150601f19603f3d011682016040523d82523d6000602084013e613813565b606091505b509150915081801561382757506020815110155b801561324e57508051630b135d3f60e11b9061384c90830160209081019084016149eb565b149695505050505050565b60006001600160e01b031982166380ac58cd60e01b148061388857506001600160e01b03198216635b5e139f60e01b145b80610bfe57506301ffc9a760e01b6001600160e01b0319831614610bfe565b60018111156139165760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610c5d565b816001600160a01b0385166139725761396d81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b613995565b836001600160a01b0316856001600160a01b031614613995576139958582613cdd565b6001600160a01b0384166139b1576139ac81613d7a565b61130b565b846001600160a01b0316846001600160a01b03161461130b5761130b8482613e29565b6060610bfe6001600160a01b03831660145b606060006139f5836002614d0f565b613a00906002614858565b6001600160401b03811115613a1757613a176142f0565b6040519080825280601f01601f191660200182016040528015613a41576020820181803683370190505b509050600360fc1b81600081518110613a5c57613a5c614776565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a8b57613a8b614776565b60200101906001600160f81b031916908160001a9053506000613aaf846002614d0f565b613aba906001614858565b90505b6001811115613b32576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613aee57613aee614776565b1a60f81b828281518110613b0457613b04614776565b60200101906001600160f81b031916908160001a90535060049490941c93613b2b81614d26565b9050613abd565b508315611f625760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c5d565b613b8a81613432565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611f628383604051806060016040528060278152602001614dba60279139613e6d565b613bf08383613edb565b613bfd600084848461354d565b610fba5760405162461bcd60e51b8152600401610c5d90614a6a565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613c505750600090506003613cd4565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613ca4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613ccd57600060019250925050613cd4565b9150600090505b94509492505050565b60006001613cea84611b6f565b613cf49190614665565b600083815260986020526040902054909150808214613d47576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b609954600090613d8c90600190614665565b6000838152609a602052604081205460998054939450909284908110613db457613db4614776565b906000526020600020015490508060998381548110613dd557613dd5614776565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480613e0d57613e0d614d3d565b6001900381819060005260206000200160009055905550505050565b6000613e3483611b6f565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b6060600080856001600160a01b031685604051613e8a9190614cf3565b600060405180830381855af49150503d8060008114613ec5576040519150601f19603f3d011682016040523d82523d6000602084013e613eca565b606091505b509150915061324e86838387614074565b6001600160a01b038216613f315760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c5d565b6000818152606760205260409020546001600160a01b031615613f965760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c5d565b613fa4600083836001613320565b6000818152606760205260409020546001600160a01b0316156140095760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c5d565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606083156140e35782516000036140dc576001600160a01b0385163b6140dc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c5d565b5081612a25565b612a2583838151156140f85781518083602001fd5b8060405162461bcd60e51b8152600401610c5d9190614220565b6001600160e01b03198116811461155857600080fd5b60006020828403121561413a57600080fd5b8135611f6281614112565b80356001600160a01b038116811461415c57600080fd5b919050565b6000806040838503121561417457600080fd5b61417d83614145565b915061418b60208401614145565b90509250929050565b803561ffff8116811461415c57600080fd5b600080604083850312156141b957600080fd5b6141c283614145565b915061418b60208401614194565b60005b838110156141eb5781810151838201526020016141d3565b50506000910152565b6000815180845261420c8160208601602086016141d0565b601f01601f19169290920160200192915050565b602081526000611f6260208301846141f4565b60006020828403121561424557600080fd5b5035919050565b6000806040838503121561425f57600080fd5b61426883614145565b946020939093013593505050565b60006020828403121561428857600080fd5b611f6282614145565b6000806000606084860312156142a657600080fd5b6142af84614145565b92506142bd60208501614145565b9150604084013590509250925092565b600080604083850312156142e057600080fd5b8235915061418b60208401614145565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261431757600080fd5b81356001600160401b0380821115614331576143316142f0565b604051601f8301601f19908116603f01168101908282118183101715614359576143596142f0565b8160405283815286602085880101111561437257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156143a557600080fd5b6143ae83614145565b915060208301356001600160401b038111156143c957600080fd5b6143d585828601614306565b9150509250929050565b6000608082840312156143f157600080fd5b50919050565b60008083601f84011261440957600080fd5b5081356001600160401b0381111561442057600080fd5b6020830191508360208260051b850101111561376457600080fd5b60008060006040848603121561445057600080fd5b83356001600160401b038082111561446757600080fd5b614473878388016143df565b9450602086013591508082111561448957600080fd5b50614496868287016143f7565b9497909650939450505050565b600080600080604085870312156144b957600080fd5b84356001600160401b03808211156144d057600080fd5b6144dc888389016143f7565b909650945060208701359150808211156144f557600080fd5b50614502878288016143f7565b95989497509550505050565b8035801515811461415c57600080fd5b6000806040838503121561453157600080fd5b61453a83614145565b915061418b6020840161450e565b6020808252825182820181905260009190848201906040850190845b81811015614582578351151583529284019291840191600101614564565b50909695505050505050565b600080600080608085870312156145a457600080fd5b6145ad85614145565b93506145bb60208601614145565b92506040850135915060608501356001600160401b038111156145dd57600080fd5b6145e987828801614306565b91505092959194509250565b60006020828403121561460757600080fd5b813563ffffffff81168114611f6257600080fd5b60006020828403121561462d57600080fd5b81356001600160401b0381111561464357600080fd5b612a25848285016143df565b634e487b7160e01b600052601160045260246000fd5b81810381811115610bfe57610bfe61464f565b60ff8181168382160190811115610bfe57610bfe61464f565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161479e5761479e61464f565b5060010190565b6000808335601e198436030181126147bc57600080fd5b8301803591506001600160401b038211156147d657600080fd5b602001915060608102360382131561376457600080fd5b6000606082840312156147ff57600080fd5b604051606081018181106001600160401b0382111715614821576148216142f0565b60405261482d8361450e565b815261483b6020840161450e565b602082015261484c60408401614194565b60408201529392505050565b80820180821115610bfe57610bfe61464f565b6000835161487d8184602088016141d0565b8351908301906148918183602088016141d0565b01949350505050565b63ffffffff8181168382160280821691908281146148ba576148ba61464f565b505092915050565b60ff8281168282160390811115610bfe57610bfe61464f565b6000608082360312156148ed57600080fd5b604051608081016001600160401b038282108183111715614910576149106142f0565b8160405261491d85614145565b83526020850135602084015260408501356040840152606085013591508082111561494757600080fd5b5061495436828601614306565b60608301525092915050565b6000808335601e1984360301811261497757600080fd5b8301803591506001600160401b0382111561499157600080fd5b60200191503681900382131561376457600080fd5b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6000602082840312156149fd57600080fd5b5051919050565b600060208284031215614a1657600080fd5b611f6282614194565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614b0a8160178501602088016141d0565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614b3b8160288401602088016141d0565b01602801949350505050565b600181811c90821680614b5b57607f821691505b6020821081036143f157634e487b7160e01b600052602260045260246000fd5b601f821115610fba576000816000526020600020601f850160051c81016020861015614ba45750805b601f850160051c820191505b81811015614bc357828155600101614bb0565b505050505050565b81516001600160401b03811115614be457614be46142f0565b614bf881614bf28454614b47565b84614b7b565b602080601f831160018114614c2d5760008415614c155750858301515b600019600386901b1c1916600185901b178555614bc3565b600085815260208120601f198616915b82811015614c5c57888601518255948401946001909101908401614c3d565b5085821015614c7a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061324e908301846141f4565b600060208284031215614ccf57600080fd5b8151611f6281614112565b828152604060208201526000612a2560408301846141f4565b60008251614d058184602087016141d0565b9190910192915050565b8082028115828204841417610bfe57610bfe61464f565b600081614d3557614d3561464f565b506000190190565b634e487b7160e01b600052603160045260246000fdfe6c4079fcac94e7142d8c209744c998efe53a188aadb7e55958f7ad3ea8a1d65268747470733a2f2f6b696e746f2e78797a2f6170692f76312f6e66742d6b696e746f2d69642f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d9a00d793a43adb7f0ef31dd46734fc563515c57584292ac5aec37236c9b4a6764736f6c634300081800330000000000000000000000008a4720488ca32f1223ccfe5a087e250fe3bc5d750000000000000000000000000719d47a213149e2ef8d3f5afdada8a8e22dfc03", + "nonce": "0x4b891", + "chainId": "0x1ecf" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "function": "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)", + "arguments": [ + "[(0x2e2B1c42E38f5af81771e65D87729E57ABD1337a, 3869, 0x, 0xb61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe6000000000000000000000000aa0726829d41e3c70b84bc5390cce82afc56871a00000000000000000000000000000000000000000000000000000000, 4000000, 210000, 21000, 1, 1000000000, 0x0000000000000000000000000000000000000000, 0xb94296c09642c3b7acdd1ec81a2ec1384197617bbefb61526bc7e9516d78013f7139a0d83d27fec0ed85d3fb67fce4ec5f2d3e27df7a2a57d0514582b19b214a1b6a170a46524db21a08fb81a8958bed4faf0ec85e45a4f1fd4ffe219f96af281b31d8e3af7b14a2d2ba1690cfa106cf9ea6b2593100def96ead0d9021a4d3bb201b)]", + "0x660ad4B5A74130a4796B4d54BC6750Ae93C86e6c" + ], + "transaction": { + "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", + "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "value": "0x0", + "input": "0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000660ad4b5a74130a4796b4d54bc6750ae93c86e6c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a0000000000000000000000000000000000000000000000000000000000000f1d0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000003345000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4b61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe6000000000000000000000000aa0726829d41e3c70b84bc5390cce82afc56871a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082b94296c09642c3b7acdd1ec81a2ec1384197617bbefb61526bc7e9516d78013f7139a0d83d27fec0ed85d3fb67fce4ec5f2d3e27df7a2a57d0514582b19b214a1b6a170a46524db21a08fb81a8958bed4faf0ec85e45a4f1fd4ffe219f96af281b31d8e3af7b14a2d2ba1690cfa106cf9ea6b2593100def96ead0d9021a4d3bb201b000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x4b892", + "chainId": "0x1ecf" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x5a4c58", + "logs": [ + { + "address": "0xaa0726829d41e3c70b84bc5390cce82afc56871a", + "topics": [ + "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x3ed1667214d9fb9c1bdcf7860d596393cbbf2851a140998bee053cb1e7e88d71", + "blockNumber": "0x98d52", + "transactionHash": "0x39a80565f32d26000864066f3d09a285965a055bafd9368ca6a52a8cdc1394d8", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000002000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x39a80565f32d26000864066f3d09a285965a055bafd9368ca6a52a8cdc1394d8", + "transactionIndex": "0x1", + "blockHash": "0x3ed1667214d9fb9c1bdcf7860d596393cbbf2851a140998bee053cb1e7e88d71", + "blockNumber": "0x98d52", + "gasUsed": "0x5a4c58", + "effectiveGasPrice": "0x5f5e100", + "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null, + "gasUsedForL1": "0x1709f0", + "l1BlockNumber": "0x146258f" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x3bef4", + "logs": [ + { + "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "topics": [ + "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" + ], + "data": "0x", + "blockHash": "0x175c525db0d122bf2898f1b19893eb9b2e9d25f97da9e178957e2edeb58bc315", + "blockNumber": "0x98d53", + "transactionHash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0xf369f78e3a0492cc4e96a90dae0728a38498e9c7", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000aa0726829d41e3c70b84bc5390cce82afc56871a" + ], + "data": "0x", + "blockHash": "0x175c525db0d122bf2898f1b19893eb9b2e9d25f97da9e178957e2edeb58bc315", + "blockNumber": "0x98d53", + "transactionHash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + }, + { + "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "topics": [ + "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", + "0xc2b6864a3f82c0ddde2802fd18c924b30b80ed978102b0f3818e95ff3b0d5054", + "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000f1d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000083bf40000000000000000000000000000000000000000000000000000000000083bf4", + "blockHash": "0x175c525db0d122bf2898f1b19893eb9b2e9d25f97da9e178957e2edeb58bc315", + "blockNumber": "0x98d53", + "transactionHash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", + "transactionIndex": "0x1", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000004000000004400001000000000000000000000000000008000000000000000000010000000000000000000000000000020000000000008000000000000000000020000002000000000000000010000000000000000800000000020000000000000040000800002000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000400000000000000400400000000000000000000000000000002000000000000000020000000100001000000000000000000000000000000000000000020000000000000010000000000000000000004000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", + "transactionIndex": "0x1", + "blockHash": "0x175c525db0d122bf2898f1b19893eb9b2e9d25f97da9e178957e2edeb58bc315", + "blockNumber": "0x98d53", + "gasUsed": "0x3bef4", + "effectiveGasPrice": "0x5f5e100", + "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", + "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "contractAddress": null, + "gasUsedForL1": "0x129e4", + "l1BlockNumber": "0x146258f" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1733860818, + "chain": 7887, + "commit": "cf4f7be" +} \ No newline at end of file diff --git a/broadcast/135-upgrade_faucet_id.s.sol/7887/run-latest.json b/broadcast/135-upgrade_faucet_id.s.sol/7887/run-latest.json index 07f648ee..ef88a613 100644 --- a/broadcast/135-upgrade_faucet_id.s.sol/7887/run-latest.json +++ b/broadcast/135-upgrade_faucet_id.s.sol/7887/run-latest.json @@ -1,10 +1,10 @@ { "transactions": [ { - "hash": "0xd17af031c598da65cd4893e4a2b3cfd74a6451b03e196950d95d42b0d6f96232", + "hash": "0x39a80565f32d26000864066f3d09a285965a055bafd9368ca6a52a8cdc1394d8", "transactionType": "CREATE2", "contractName": "KintoID", - "contractAddress": "0x7cfe474936fa50181ae7c2c43eeb8806e25bc983", + "contractAddress": "0xaa0726829d41e3c70b84bc5390cce82afc56871a", "function": null, "arguments": [ "0x8a4720488CA32f1223ccFE5A087e250fE3BC5D75", @@ -14,71 +14,29 @@ "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", "value": "0x0", - "input": "0x000000000000000000000000000000000000000000000000000000000000000060e0604052306080523480156200001557600080fd5b5060405162004eb038038062004eb0833981016040819052620000389162000138565b620000426200005a565b6001600160a01b0391821660a0521660c05262000170565b600054610100900460ff1615620000c75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200013357600080fd5b919050565b600080604083850312156200014c57600080fd5b62000157836200011b565b915062000167602084016200011b565b90509250929050565b60805160a05160c051614ce6620001ca60003960008181610a0e0152612e1c0152600081816109780152610c2d0152600081816113da0152818161141a015281816115130152818161155301526116750152614ce66000f3fe60806040526004361061036b5760003560e01c80637ecebe00116101c6578063c5c03699116100f7578063ead1559611610095578063f36c8f5c1161006f578063f36c8f5c14610b10578063f698da2514610b44578063f72c0d8b14610b5b578063fb0b294014610b8f57600080fd5b8063ead1559614610ab0578063ef3b490314610ad0578063efdbfaee14610af057600080fd5b8063d9e1063d116100d1578063d9e1063d146109da578063de5f72fd146109fc578063e42398ad14610a30578063e985e9c514610a6757600080fd5b8063c5c0369914610966578063c87b56dd1461099a578063d547741f146109ba57600080fd5b8063a0406ce211610164578063b0a77c611161013e578063b0a77c61146108e2578063b61f5515146108f9578063b75a3e4e14610926578063b88d4fde1461094657600080fd5b8063a0406ce21461086a578063a217fddf146108ad578063a22cb465146108c257600080fd5b806386823a2c116101a057806386823a2c146107da57806391d14854146107fa57806395d89b411461081a5780639944f5181461084a57600080fd5b80637ecebe00146107695780638129fc1c14610797578063845b6b6c146107ac57600080fd5b80632f745c59116102a05780634f6ccce71161023e5780636d785f3b116102185780636d785f3b146106e95780636d7cdf6c146107095780636ed1f4a31461072957806370a082311461074957600080fd5b80634f6ccce71461069457806352d1902d146106b45780636352211e146106c957600080fd5b8063390c11ae1161027a578063390c11ae146105ff57806342842e0e1461064157806342966c68146106615780634f1ef2861461068157600080fd5b80632f745c591461059f57806336568abe146105bf5780633659cfe6146105df57600080fd5b806311c0154e1161030d57806321442ec9116102e757806321442ec9146104f857806323b872dd1461052f578063248a9ca31461054f5780632f2ff15d1461057f57600080fd5b806311c0154e1461049957806318160ddd146104b95780631fbd4041146104d857600080fd5b806306fdde031161034957806306fdde03146103e7578063081812fc14610421578063095ea7b3146104595780630add9f7f1461047957600080fd5b806301ffc9a71461037057806304a6238f146103a557806305bdaabb146103c7575b600080fd5b34801561037c57600080fd5b5061039061038b366004613ff8565b610baf565b60405190151581526020015b60405180910390f35b3480156103b157600080fd5b506103c56103c0366004614031565b610bc0565b005b3480156103d357600080fd5b506103c56103e2366004614076565b610d37565b3480156103f357600080fd5b5060408051808201909152600881526712da5b9d1bc8125160c21b60208201525b60405161039c91906140f0565b34801561042d57600080fd5b5061044161043c366004614103565b610e3f565b6040516001600160a01b03909116815260200161039c565b34801561046557600080fd5b506103c561047436600461411c565b610e66565b34801561048557600080fd5b50610390610494366004614146565b610f7b565b3480156104a557600080fd5b506103c56104b4366004614076565b611008565b3480156104c557600080fd5b506099545b60405190815260200161039c565b3480156104e457600080fd5b506103c56104f3366004614076565b611107565b34801561050457600080fd5b506104ca610513366004614146565b6001600160a01b03166000908152610193602052604090205490565b34801561053b57600080fd5b506103c561054a366004614161565b611266565b34801561055b57600080fd5b506104ca61056a366004614103565b600090815260fb602052604090206001015490565b34801561058b57600080fd5b506103c561059a36600461419d565b611297565b3480156105ab57600080fd5b506104ca6105ba36600461411c565b6112bc565b3480156105cb57600080fd5b506103c56105da36600461419d565b611352565b3480156105eb57600080fd5b506103c56105fa366004614146565b6113d0565b34801561060b57600080fd5b5061039061061a366004614146565b6001600160a01b031660009081526101936020526040902060020154610100900460ff1690565b34801561064d57600080fd5b506103c561065c366004614161565b6114af565b34801561066d57600080fd5b506103c561067c366004614103565b6114ca565b6103c561068f366004614262565b611509565b3480156106a057600080fd5b506104ca6106af366004614103565b6115d5565b3480156106c057600080fd5b506104ca611668565b3480156106d557600080fd5b506104416106e4366004614103565b61171b565b3480156106f557600080fd5b506103c561070436600461430b565b61177b565b34801561071557600080fd5b506103c561072436600461430b565b6117a2565b34801561073557600080fd5b506103c5610744366004614373565b6117c9565b34801561075557600080fd5b506104ca610764366004614146565b611ac3565b34801561077557600080fd5b506104ca610784366004614146565b6101946020526000908152604090205481565b3480156107a357600080fd5b506103c5611b49565b3480156107b857600080fd5b506104ca6107c7366004614146565b6101986020526000908152604090205481565b3480156107e657600080fd5b506103906107f5366004614076565b611e05565b34801561080657600080fd5b5061039061081536600461419d565b611ebd565b34801561082657600080fd5b5060408051808201909152600781526612d2539513d25160ca1b6020820152610414565b34801561085657600080fd5b50610390610865366004614146565b611ee8565b34801561087657600080fd5b50610390610885366004614146565b6001600160a01b031660009081526101936020526040902060020154610100900460ff161590565b3480156108b957600080fd5b506104ca600081565b3480156108ce57600080fd5b506103c56108dd3660046143ee565b611f05565b3480156108ee57600080fd5b506104ca6101925481565b34801561090557600080fd5b50610919610914366004614146565b611f10565b60405161039c9190614418565b34801561093257600080fd5b50610390610941366004614076565b611fb2565b34801561095257600080fd5b506103c561096136600461445e565b611ff5565b34801561097257600080fd5b506104417f000000000000000000000000000000000000000000000000000000000000000081565b3480156109a657600080fd5b506104146109b5366004614103565b612027565b3480156109c657600080fd5b506103c56109d536600461419d565b61208d565b3480156109e657600080fd5b506104ca600080516020614c2483398151915281565b348015610a0857600080fd5b506104417f000000000000000000000000000000000000000000000000000000000000000081565b348015610a3c57600080fd5b50610441610a4b366004614146565b610196602052600090815260409020546001600160a01b031681565b348015610a7357600080fd5b50610390610a82366004614031565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b348015610abc57600080fd5b50610390610acb3660046144c5565b6120b2565b348015610adc57600080fd5b506103c5610aeb366004614076565b6120dd565b348015610afc57600080fd5b506103c5610b0b3660046144eb565b612216565b348015610b1c57600080fd5b506104ca7f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb181565b348015610b5057600080fd5b506104ca6101955481565b348015610b6757600080fd5b506104ca7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610b9b57600080fd5b506103c5610baa366004614146565b61253c565b6000610bba8261260a565b92915050565b6000610bcb83611ac3565b118015610bde5750610bdc81611ac3565b155b610c225760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103a3930b739b332b960811b60448201526064015b60405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610c5f5750610c5f600033611ebd565b610cc65760405162461bcd60e51b815260206004820152603260248201527f4f6e6c79207468652077616c6c657420666163746f7279206f722061646d696e604482015271732063616e2074726967676572207468697360701b6064820152608401610c19565b6001600160a01b0382811660009081526101966020526040812080546001600160a01b03191692841692909217909155610d0e9083908390610d099083906112bc565b61262f565b506001600160a01b031660009081526101966020526040902080546001600160a01b0319169055565b600080516020614c24833981519152610d4f816127a0565b610d5883611ac3565b600003610d78576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b03831660009081526101936020908152604080832060ff600887901c811685526003820190935292205460019185169190911b16610e395760ff600884901c811660009081526003830160205260409020805460019286169290921b909117905542600182018190556101928190556040805161ffff8616815260208101929092526001600160a01b038616917f364b7a2e1762fd5d9cdeda6c0ea8e1be396892c015c5c917f4d164cd4968ac7691015b60405180910390a25b50505050565b6000610e4a826127aa565b506000908152606960205260409020546001600160a01b031690565b6000610e718261171b565b9050806001600160a01b0316836001600160a01b031603610ede5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610c19565b336001600160a01b0382161480610efa5750610efa8133610a82565b610f6c5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610c19565b610f768383612809565b505050565b6000610f8760076120b2565b8015610bba57506001600160a01b0382166000908152610193602052604090206002015460ff161580610bba57506001600160a01b0382166000908152610198602052604090205415801590610bba57506001600160a01b038216600090815261019860205260409020546203f480906110019042614535565b1192915050565b600080516020614c24833981519152611020816127a0565b61102983611ac3565b600003611049576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b03831660009081526101936020908152604080832060ff600887901c811685526003820190935292205460019185169190911b1615610e395760ff600884901c811660009081526003830160205260409020805460019286169290921b19909116905542600182018190556101928190556040805161ffff8616815260208101929092526001600160a01b038616917fdaf71d6bfd7a93506c86e0e5c5725808f99fe27f13af711f321edf92511e609b9101610e30565b600080516020614c2483398151915261111f816127a0565b61112883611ac3565b600003611148576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b03831660009081526101936020908152604080832060ff600887901c811685526004820190935292205460019185169190911b16610e395760ff600884901c811660009081526004830160205260409020805460019286169290921b9091179055600281018054600191906000906111cb90849060ff16614548565b92506101000a81548160ff021916908360ff1602179055504281600101819055504261019281905550836001600160a01b03167f87d7acad3a8fb00ded1ae0aeaed871a89b621b17d6cd6ff8fd5c00b63394f94a844260405161123e92919061ffff929092168252602082015260400190565b60405180910390a25050506001600160a01b0316600090815261019860205260409020429055565b6112703382612877565b61128c5760405162461bcd60e51b8152600401610c1990614561565b610f7683838361262f565b600082815260fb60205260409020600101546112b2816127a0565b610f7683836128f6565b60006112c783611ac3565b82106113295760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610c19565b506001600160a01b03919091166000908152609760209081526040808320938352929052205490565b6001600160a01b03811633146113c25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c19565b6113cc828261297c565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114185760405162461bcd60e51b8152600401610c19906145ae565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611461600080516020614c6a833981519152546001600160a01b031690565b6001600160a01b0316146114875760405162461bcd60e51b8152600401610c19906145fa565b611490816129e3565b604080516000808252602082019092526114ac91839190612a0d565b50565b610f7683838360405180602001604052806000815250611ff5565b60405163015538b160e01b8152602060048201526013602482015272155cd948189d5c9b92d650c81a5b9cdd195859606a1b6044820152606401610c19565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115515760405162461bcd60e51b8152600401610c19906145ae565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661159a600080516020614c6a833981519152546001600160a01b031690565b6001600160a01b0316146115c05760405162461bcd60e51b8152600401610c19906145fa565b6115c9826129e3565b6113cc82826001612a0d565b60006115e060995490565b82106116435760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610c19565b6099828154811061165657611656614646565b90600052602060002001549050919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117085760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c19565b50600080516020614c6a83398151915290565b6000818152606760205260408120546001600160a01b031680610bba5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c19565b610191805490600061178c8361465c565b9190505550610f76610191548484846001612b78565b61019180549060006117b38361465c565b9190505550610f76610191548484846000612b78565b600080516020614c248339815191526117e1816127a0565b838214611804576040516001621398b960e31b0319815260040160405180910390fd5b60c88411156118265760405163a947d77f60e01b815260040160405180910390fd5b4260005b85811015611a79576000610193600089898581811061184b5761184b614646565b90506020020160208101906118609190614146565b6001600160a01b03166001600160a01b0316815260200190815260200160002090506118ac88888481811061189757611897614646565b90506020020160208101906107649190614146565b6000036118b95750611a67565b42600182015560005b8686848181106118d4576118d4614646565b90506020028101906118e69190614675565b9050811015611a6457600087878581811061190357611903614646565b90506020028101906119159190614675565b8381811061192557611925614646565b90506060020180360381019061193b91906146bd565b8051909150801561194d575080602001515b1561198b576119868a8a8681811061196757611967614646565b905060200201602081019061197c9190614146565b8260400151610d37565b611a51565b8051801561199b57508060200151155b156119d4576119868a8a868181106119b5576119b5614646565b90506020020160208101906119ca9190614146565b8260400151611008565b80511580156119e4575080602001515b15611a1d576119868a8a868181106119fe576119fe614646565b9050602002016020810190611a139190614146565b8260400151611107565b611a518a8a86818110611a3257611a32614646565b9050602002016020810190611a479190614146565b82604001516120dd565b50611a5d600182614728565b90506118c2565b50505b611a72600182614728565b905061182a565b50610192819055604080518681526020810183905233917f18fb8b1f79749f3894ec6b996ad0503b2dbcf19585865dba3df7683953fc450d910160405180910390a2505050505050565b60006001600160a01b038216611b2d5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610c19565b506001600160a01b031660009081526068602052604090205490565b600054610100900460ff1615808015611b695750600054600160ff909116105b80611b835750303b158015611b83575060005460ff166001145b611be65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c19565b6000805460ff191660011790558015611c09576000805461ff0019166101001790555b611c526040518060400160405280600881526020016712da5b9d1bc8125160c21b8152506040518060400160405280600781526020016612d2539513d25160ca1b815250612eb3565b611c5a612ee4565b611c62612ee4565b611c6a612ee4565b611c72612ee4565b611c7d6000336128f6565b611c95600080516020614c24833981519152336128f6565b611cbf7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3336128f6565b611ce97f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1336128f6565b4261019255604080518082018252600781526612da5b9d1bd25160ca1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff2acf2bff9f153ce27ec66ef28c5d61aaa06a6eac70c4c0de4bac7cb3bec0c54818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c090910190925281519101206101955580156114ac576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000611e1160076120b2565b8015611eb657506001600160a01b038316600090815261019360205260409020611e619060040161ffff8416600881901c600090815260208390526040902054600160ff83161b16151592915050565b1580611eb657506001600160a01b0383166000908152610198602052604090205415801590611eb657506001600160a01b038316600090815261019860205260409020546203f48090611eb49042614535565b115b9392505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080611ef483611ac3565b118015610bba5750610bba82610f7b565b6113cc338383612f0d565b6001600160a01b038116600090815261019360205260408082208151610100808252612020820190935260609360039092019281602001602082028036833701905050905060005b610100811015611faa57600881901c600090815260208490526040902054600160ff83161b161515828281518110611f9257611f92614646565b91151560209283029190910190910152600101611f58565b509392505050565b6001600160a01b03821660009081526101936020908152604080832060ff600886901c81168552600390910190925282205460019184169190911b161515611eb6565b611fff3383612877565b61201b5760405162461bcd60e51b8152600401610c1990614561565b610e3984848484612fdb565b6060612032826127aa565b600061203c61300e565b9050600081511161205c5760405180602001604052806000815250611eb6565b806120668461302e565b60405160200161207792919061473b565b6040516020818303038152906040529392505050565b600082815260fb60205260409020600101546120a8816127a0565b610f76838361297c565b60006120c1826201518061476a565b63ffffffff1661019254426120d69190614535565b1092915050565b600080516020614c248339815191526120f5816127a0565b6120fe83611ac3565b60000361211e576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b03831660009081526101936020908152604080832060ff600887901c811685526004820190935292205460019185169190911b1615610e395760ff600884901c811660009081526004830160205260409020805460019286169290921b199091169055600281018054600191906000906121a390849060ff16614792565b92506101000a81548160ff021916908360ff1602179055504281600101819055504261019281905550836001600160a01b03167fe307a82882b02537e8254556f85aa0ae942a060782f1f076028687f1fd7dba188442604051610e3092919061ffff929092168252602082015260400190565b808060400135421061223b57604051630819bdcd60e01b815260040160405180910390fd5b60208101803590610194906000906122539085614146565b6001600160a01b03166001600160a01b03168152602001908152602001600020541461229257604051633ab3447f60e11b815260040160405180910390fd5b6122aa600080516020614c2483398151915233611ebd565b6122c757604051633b136dc160e11b815260040160405180910390fd5b6000806122d76020840184614146565b803b9250905081156122fc57604051631bb5d42560e31b815260040160405180910390fd5b60006101955461237e8561230f906147ab565b805160208083015160409384015184517fce753e2ed199e3bc0c561ccacfe9f2ebd720bf99f6d0e6854d8ec36486eb18c7818501526001600160a01b039094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b60405161190160f01b60208201526022810192909252604282015260620160408051601f1981840301815291905280516020909101209050612419816123c76060870187614830565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612409925050506020880188614146565b6001600160a01b031691906130c0565b61243657604051632057875960e21b815260040160405180910390fd5b6124466107646020870187614146565b60000361246657604051634c3215c360e11b815260040160405180910390fd5b6001610194600061247a6020890189614146565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546124a99190614728565b909155506124ce90506124c96124c26020880188614146565b60006112bc565b613121565b60006124e06107646020880188614146565b11156124ff5760405163493e98f360e11b815260040160405180910390fd5b6000610193816125126020890189614146565b6001600160a01b031681526020810191909152604001600090812081815560010155505050505050565b7f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1612566816127a0565b6001600160a01b0382166000908152610193602052604081206002015460ff1690036125b057604051634d05f3e760e01b81526001600160a01b0383166004820152602401610c19565b6001600160a01b0382166000818152610198602052604080822091909155517f8e5e87839bfd57881dc0bf377cc18550ec2476ac488bb95c3aec4792077ea79f906125fe9042815260200190565b60405180910390a25050565b60006001600160e01b03198216637965db0b60e01b1480610bba5750610bba826131c4565b826001600160a01b03166126428261171b565b6001600160a01b0316146126685760405162461bcd60e51b8152600401610c1990614876565b6001600160a01b0382166126ca5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c19565b6126d783838360016131e9565b826001600160a01b03166126ea8261171b565b6001600160a01b0316146127105760405162461bcd60e51b8152600401610c1990614876565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6114ac81336132a2565b6000818152606760205260409020546001600160a01b03166114ac5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c19565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061283e8261171b565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806128838361171b565b9050806001600160a01b0316846001600160a01b031614806128ca57506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b806128ee5750836001600160a01b03166128e384610e3f565b6001600160a01b0316145b949350505050565b6129008282611ebd565b6113cc57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff191660011790556129383390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6129868282611ebd565b156113cc57600082815260fb602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e36113cc816127a0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612a4057610f76836132fb565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612a9a575060408051601f3d908101601f19168201909252612a97918101906148bb565b60015b612afd5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c19565b600080516020614c6a8339815191528114612b6c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c19565b50610f76838383613397565b8380604001354210612b9d57604051630819bdcd60e01b815260040160405180910390fd5b6020810180359061019490600090612bb59085614146565b6001600160a01b03166001600160a01b031681526020019081526020016000205414612bf457604051633ab3447f60e11b815260040160405180910390fd5b612c0c600080516020614c2483398151915233611ebd565b612c2957604051633b136dc160e11b815260040160405180910390fd5b600080612c396020840184614146565b803b925090508115612c5e57604051631bb5d42560e31b815260040160405180910390fd5b600061019554612c718561230f906147ab565b60405161190160f01b60208201526022810192909252604282015260620160408051601f1981840301815291905280516020909101209050612cba816123c76060870187614830565b612cd757604051632057875960e21b815260040160405180910390fd5b6000612ce961076460208b018b614146565b1115612d085760405163493e98f360e11b815260040160405180910390fd5b600061019381612d1b60208c018c614146565b6001600160a01b031681526020810191909152604001600090812042808255600182015560028101805461ff0019166101008a15150217905591505b87811015612dbc57612db4898983818110612d7457612d74614646565b9050602002016020810190612d8991906148d4565b600881901c60ff9081166000908152600386016020526040902080546001939092169290921b179055565b600101612d57565b506101946000612dcf60208c018c614146565b6001600160a01b0316815260208101919091526040016000908120805491612df68361465c565b90915550612e129050612e0c60208b018b614146565b8b6133bc565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631fa27f76612e4e60208c018c614146565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015612e8f57600080fd5b505af1158015612ea3573d6000803e3d6000fd5b5050505050505050505050505050565b600054610100900460ff16612eda5760405162461bcd60e51b8152600401610c19906148ef565b6113cc82826133d6565b600054610100900460ff16612f0b5760405162461bcd60e51b8152600401610c19906148ef565b565b816001600160a01b0316836001600160a01b031603612f6e5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c19565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612fe684848461262f565b612ff284848484613416565b610e395760405162461bcd60e51b8152600401610c199061493a565b6060604051806060016040528060268152602001614c4460269139905090565b6060600061303b83613517565b60010190506000816001600160401b0381111561305a5761305a6141c0565b6040519080825280601f01601f191660200182016040528015613084576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461308e57509392505050565b60008060006130cf85856135ef565b909250905060008160048111156130e8576130e861498c565b1480156131065750856001600160a01b0316826001600160a01b0316145b806131175750613117868686613634565b9695505050505050565b600061312c8261171b565b905061313c8160008460016131e9565b6131458261171b565b600083815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526068845282852080546000190190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60006001600160e01b0319821663780e9d6360e01b1480610bba5750610bba82613720565b6001600160a01b038416158061321d57506001600160a01b0384811660009081526101966020526040902054811690841614155b8061322e575061322c84610f7b565b155b801561325357506001600160a01b03841615158061325357506001600160a01b038316155b801561327857506001600160a01b038416158061327857506001600160a01b03831615155b1561329657604051632a675c2b60e11b815260040160405180910390fd5b610e3984848484613770565b6132ac8282611ebd565b6113cc576132b9816138a4565b6132c48360206138b6565b6040516020016132d59291906149a2565b60408051601f198184030181529082905262461bcd60e51b8252610c19916004016140f0565b6001600160a01b0381163b6133685760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c19565b600080516020614c6a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6133a083613a51565b6000825111806133ad5750805b15610f7657610e398383613a91565b6113cc828260405180602001604052806000815250613ab6565b600054610100900460ff166133fd5760405162461bcd60e51b8152600401610c19906148ef565b60656134098382614a9b565b506066610f768282614a9b565b60006001600160a01b0384163b1561350c57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061345a903390899088908890600401614b5a565b6020604051808303816000875af1925050508015613495575060408051601f3d908101601f1916820190925261349291810190614b8d565b60015b6134f2573d8080156134c3576040519150601f19603f3d011682016040523d82523d6000602084013e6134c8565b606091505b5080516000036134ea5760405162461bcd60e51b8152600401610c199061493a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506128ee565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106135565772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310613582576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106135a057662386f26fc10000830492506010015b6305f5e10083106135b8576305f5e100830492506008015b61271083106135cc57612710830492506004015b606483106135de576064830492506002015b600a8310610bba5760010192915050565b60008082516041036136255760208301516040840151606085015160001a61361987828585613ae9565b9450945050505061362d565b506000905060025b9250929050565b6000806000856001600160a01b0316631626ba7e60e01b868660405160240161365e929190614baa565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161369c9190614bc3565b600060405180830381855afa9150503d80600081146136d7576040519150601f19603f3d011682016040523d82523d6000602084013e6136dc565b606091505b50915091508180156136f057506020815110155b801561311757508051630b135d3f60e11b9061371590830160209081019084016148bb565b149695505050505050565b60006001600160e01b031982166380ac58cd60e01b148061375157506001600160e01b03198216635b5e139f60e01b145b80610bba57506301ffc9a760e01b6001600160e01b0319831614610bba565b60018111156137df5760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610c19565b816001600160a01b03851661383b5761383681609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b61385e565b836001600160a01b0316856001600160a01b03161461385e5761385e8582613bad565b6001600160a01b03841661387a5761387581613c4a565b61389d565b846001600160a01b0316846001600160a01b03161461389d5761389d8482613cf9565b5050505050565b6060610bba6001600160a01b03831660145b606060006138c5836002614bdf565b6138d0906002614728565b6001600160401b038111156138e7576138e76141c0565b6040519080825280601f01601f191660200182016040528015613911576020820181803683370190505b509050600360fc1b8160008151811061392c5761392c614646565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061395b5761395b614646565b60200101906001600160f81b031916908160001a905350600061397f846002614bdf565b61398a906001614728565b90505b6001811115613a02576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106139be576139be614646565b1a60f81b8282815181106139d4576139d4614646565b60200101906001600160f81b031916908160001a90535060049490941c936139fb81614bf6565b905061398d565b508315611eb65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c19565b613a5a816132fb565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611eb68383604051806060016040528060278152602001614c8a60279139613d3d565b613ac08383613dab565b613acd6000848484613416565b610f765760405162461bcd60e51b8152600401610c199061493a565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613b205750600090506003613ba4565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613b74573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613b9d57600060019250925050613ba4565b9150600090505b94509492505050565b60006001613bba84611ac3565b613bc49190614535565b600083815260986020526040902054909150808214613c17576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b609954600090613c5c90600190614535565b6000838152609a602052604081205460998054939450909284908110613c8457613c84614646565b906000526020600020015490508060998381548110613ca557613ca5614646565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480613cdd57613cdd614c0d565b6001900381819060005260206000200160009055905550505050565b6000613d0483611ac3565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b6060600080856001600160a01b031685604051613d5a9190614bc3565b600060405180830381855af49150503d8060008114613d95576040519150601f19603f3d011682016040523d82523d6000602084013e613d9a565b606091505b509150915061311786838387613f44565b6001600160a01b038216613e015760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c19565b6000818152606760205260409020546001600160a01b031615613e665760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c19565b613e746000838360016131e9565b6000818152606760205260409020546001600160a01b031615613ed95760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c19565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60608315613fb3578251600003613fac576001600160a01b0385163b613fac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c19565b50816128ee565b6128ee8383815115613fc85781518083602001fd5b8060405162461bcd60e51b8152600401610c1991906140f0565b6001600160e01b0319811681146114ac57600080fd5b60006020828403121561400a57600080fd5b8135611eb681613fe2565b80356001600160a01b038116811461402c57600080fd5b919050565b6000806040838503121561404457600080fd5b61404d83614015565b915061405b60208401614015565b90509250929050565b803561ffff8116811461402c57600080fd5b6000806040838503121561408957600080fd5b61409283614015565b915061405b60208401614064565b60005b838110156140bb5781810151838201526020016140a3565b50506000910152565b600081518084526140dc8160208601602086016140a0565b601f01601f19169290920160200192915050565b602081526000611eb660208301846140c4565b60006020828403121561411557600080fd5b5035919050565b6000806040838503121561412f57600080fd5b61413883614015565b946020939093013593505050565b60006020828403121561415857600080fd5b611eb682614015565b60008060006060848603121561417657600080fd5b61417f84614015565b925061418d60208501614015565b9150604084013590509250925092565b600080604083850312156141b057600080fd5b8235915061405b60208401614015565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126141e757600080fd5b81356001600160401b0380821115614201576142016141c0565b604051601f8301601f19908116603f01168101908282118183101715614229576142296141c0565b8160405283815286602085880101111561424257600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561427557600080fd5b61427e83614015565b915060208301356001600160401b0381111561429957600080fd5b6142a5858286016141d6565b9150509250929050565b6000608082840312156142c157600080fd5b50919050565b60008083601f8401126142d957600080fd5b5081356001600160401b038111156142f057600080fd5b6020830191508360208260051b850101111561362d57600080fd5b60008060006040848603121561432057600080fd5b83356001600160401b038082111561433757600080fd5b614343878388016142af565b9450602086013591508082111561435957600080fd5b50614366868287016142c7565b9497909650939450505050565b6000806000806040858703121561438957600080fd5b84356001600160401b03808211156143a057600080fd5b6143ac888389016142c7565b909650945060208701359150808211156143c557600080fd5b506143d2878288016142c7565b95989497509550505050565b8035801515811461402c57600080fd5b6000806040838503121561440157600080fd5b61440a83614015565b915061405b602084016143de565b6020808252825182820181905260009190848201906040850190845b81811015614452578351151583529284019291840191600101614434565b50909695505050505050565b6000806000806080858703121561447457600080fd5b61447d85614015565b935061448b60208601614015565b92506040850135915060608501356001600160401b038111156144ad57600080fd5b6144b9878288016141d6565b91505092959194509250565b6000602082840312156144d757600080fd5b813563ffffffff81168114611eb657600080fd5b6000602082840312156144fd57600080fd5b81356001600160401b0381111561451357600080fd5b6128ee848285016142af565b634e487b7160e01b600052601160045260246000fd5b81810381811115610bba57610bba61451f565b60ff8181168382160190811115610bba57610bba61451f565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161466e5761466e61451f565b5060010190565b6000808335601e1984360301811261468c57600080fd5b8301803591506001600160401b038211156146a657600080fd5b602001915060608102360382131561362d57600080fd5b6000606082840312156146cf57600080fd5b604051606081018181106001600160401b03821117156146f1576146f16141c0565b6040526146fd836143de565b815261470b602084016143de565b602082015261471c60408401614064565b60408201529392505050565b80820180821115610bba57610bba61451f565b6000835161474d8184602088016140a0565b8351908301906147618183602088016140a0565b01949350505050565b63ffffffff81811683821602808216919082811461478a5761478a61451f565b505092915050565b60ff8281168282160390811115610bba57610bba61451f565b6000608082360312156147bd57600080fd5b604051608081016001600160401b0382821081831117156147e0576147e06141c0565b816040526147ed85614015565b83526020850135602084015260408501356040840152606085013591508082111561481757600080fd5b50614824368286016141d6565b60608301525092915050565b6000808335601e1984360301811261484757600080fd5b8301803591506001600160401b0382111561486157600080fd5b60200191503681900382131561362d57600080fd5b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6000602082840312156148cd57600080fd5b5051919050565b6000602082840312156148e657600080fd5b611eb682614064565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516149da8160178501602088016140a0565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614a0b8160288401602088016140a0565b01602801949350505050565b600181811c90821680614a2b57607f821691505b6020821081036142c157634e487b7160e01b600052602260045260246000fd5b601f821115610f76576000816000526020600020601f850160051c81016020861015614a745750805b601f850160051c820191505b81811015614a9357828155600101614a80565b505050505050565b81516001600160401b03811115614ab457614ab46141c0565b614ac881614ac28454614a17565b84614a4b565b602080601f831160018114614afd5760008415614ae55750858301515b600019600386901b1c1916600185901b178555614a93565b600085815260208120601f198616915b82811015614b2c57888601518255948401946001909101908401614b0d565b5085821015614b4a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090613117908301846140c4565b600060208284031215614b9f57600080fd5b8151611eb681613fe2565b8281526040602082015260006128ee60408301846140c4565b60008251614bd58184602087016140a0565b9190910192915050565b8082028115828204841417610bba57610bba61451f565b600081614c0557614c0561451f565b506000190190565b634e487b7160e01b600052603160045260246000fdfe6c4079fcac94e7142d8c209744c998efe53a188aadb7e55958f7ad3ea8a1d65268747470733a2f2f6b696e746f2e78797a2f6170692f76312f6e66742d6b696e746f2d69642f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220356a31e8d76a6ff7a107a0b291c0e8fded16a70b0c0fcf53177a6ed3a1d0289a64736f6c634300081800330000000000000000000000008a4720488ca32f1223ccfe5a087e250fe3bc5d750000000000000000000000000719d47a213149e2ef8d3f5afdada8a8e22dfc03", - "nonce": "0x4b86c", + "input": "0x000000000000000000000000000000000000000000000000000000000000000060e0604052306080523480156200001557600080fd5b5060405162004fe038038062004fe0833981016040819052620000389162000138565b620000426200005a565b6001600160a01b0391821660a0521660c05262000170565b600054610100900460ff1615620000c75760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000119576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200013357600080fd5b919050565b600080604083850312156200014c57600080fd5b62000157836200011b565b915062000167602084016200011b565b90509250929050565b60805160a05160c051614e16620001ca60003960008181610a3b0152612f5301526000818161098e0152610c71015260008181611486015281816114c6015281816115bf015281816115ff01526117210152614e166000f3fe6080604052600436106103815760003560e01c80638129fc1c116101d1578063c87b56dd11610102578063ead15596116100a0578063f698da251161006f578063f698da2514610b71578063f72c0d8b14610b88578063fab720d214610bbc578063fb0b294014610bd357600080fd5b8063ead1559614610add578063ef3b490314610afd578063efdbfaee14610b1d578063f36c8f5c14610b3d57600080fd5b8063d9e1063d116100dc578063d9e1063d14610a07578063de5f72fd14610a29578063e42398ad14610a5d578063e985e9c514610a9457600080fd5b8063c87b56dd146109b0578063d00bb535146109d0578063d547741f146109e757600080fd5b8063a217fddf1161016f578063b61f551511610149578063b61f55151461090f578063b75a3e4e1461093c578063b88d4fde1461095c578063c5c036991461097c57600080fd5b8063a217fddf146108c3578063a22cb465146108d8578063b0a77c61146108f857600080fd5b806391d14854116101ab57806391d148541461081057806395d89b41146108305780639944f51814610860578063a0406ce21461088057600080fd5b80638129fc1c146107ad578063845b6b6c146107c257806386823a2c146107f057600080fd5b80632f745c59116102b65780634f6ccce7116102545780636d7cdf6c116102235780636d7cdf6c1461071f5780636ed1f4a31461073f57806370a082311461075f5780637ecebe001461077f57600080fd5b80634f6ccce7146106aa57806352d1902d146106ca5780636352211e146106df5780636d785f3b146106ff57600080fd5b8063390c11ae11610290578063390c11ae1461061557806342842e0e1461065757806342966c68146106775780634f1ef2861461069757600080fd5b80632f745c59146105b557806336568abe146105d55780633659cfe6146105f557600080fd5b806311c0154e1161032357806321442ec9116102fd57806321442ec91461050e57806323b872dd14610545578063248a9ca3146105655780632f2ff15d1461059557600080fd5b806311c0154e146104af57806318160ddd146104cf5780631fbd4041146104ee57600080fd5b806306fdde031161035f57806306fdde03146103fd578063081812fc14610437578063095ea7b31461046f5780630add9f7f1461048f57600080fd5b806301ffc9a71461038657806304a6238f146103bb57806305bdaabb146103dd575b600080fd5b34801561039257600080fd5b506103a66103a1366004614128565b610bf3565b60405190151581526020015b60405180910390f35b3480156103c757600080fd5b506103db6103d6366004614161565b610c04565b005b3480156103e957600080fd5b506103db6103f83660046141a6565b610d7b565b34801561040957600080fd5b5060408051808201909152600881526712da5b9d1bc8125160c21b60208201525b6040516103b29190614220565b34801561044357600080fd5b50610457610452366004614233565b610e83565b6040516001600160a01b0390911681526020016103b2565b34801561047b57600080fd5b506103db61048a36600461424c565b610eaa565b34801561049b57600080fd5b506103a66104aa366004614276565b610fbf565b3480156104bb57600080fd5b506103db6104ca3660046141a6565b61104c565b3480156104db57600080fd5b506099545b6040519081526020016103b2565b3480156104fa57600080fd5b506103db6105093660046141a6565b61114b565b34801561051a57600080fd5b506104e0610529366004614276565b6001600160a01b03166000908152610193602052604090205490565b34801561055157600080fd5b506103db610560366004614291565b611312565b34801561057157600080fd5b506104e0610580366004614233565b600090815260fb602052604090206001015490565b3480156105a157600080fd5b506103db6105b03660046142cd565b611343565b3480156105c157600080fd5b506104e06105d036600461424c565b611368565b3480156105e157600080fd5b506103db6105f03660046142cd565b6113fe565b34801561060157600080fd5b506103db610610366004614276565b61147c565b34801561062157600080fd5b506103a6610630366004614276565b6001600160a01b031660009081526101936020526040902060020154610100900460ff1690565b34801561066357600080fd5b506103db610672366004614291565b61155b565b34801561068357600080fd5b506103db610692366004614233565b611576565b6103db6106a5366004614392565b6115b5565b3480156106b657600080fd5b506104e06106c5366004614233565b611681565b3480156106d657600080fd5b506104e0611714565b3480156106eb57600080fd5b506104576106fa366004614233565b6117c7565b34801561070b57600080fd5b506103db61071a36600461443b565b611827565b34801561072b57600080fd5b506103db61073a36600461443b565b61184e565b34801561074b57600080fd5b506103db61075a3660046144a3565b611875565b34801561076b57600080fd5b506104e061077a366004614276565b611b6f565b34801561078b57600080fd5b506104e061079a366004614276565b6101946020526000908152604090205481565b3480156107b957600080fd5b506103db611bf5565b3480156107ce57600080fd5b506104e06107dd366004614276565b6101986020526000908152604090205481565b3480156107fc57600080fd5b506103a661080b3660046141a6565b611eb1565b34801561081c57600080fd5b506103a661082b3660046142cd565b611f69565b34801561083c57600080fd5b5060408051808201909152600781526612d2539513d25160ca1b602082015261042a565b34801561086c57600080fd5b506103a661087b366004614276565b611f94565b34801561088c57600080fd5b506103a661089b366004614276565b6001600160a01b031660009081526101936020526040902060020154610100900460ff161590565b3480156108cf57600080fd5b506104e0600081565b3480156108e457600080fd5b506103db6108f336600461451e565b611fb1565b34801561090457600080fd5b506104e06101925481565b34801561091b57600080fd5b5061092f61092a366004614276565b611fbc565b6040516103b29190614548565b34801561094857600080fd5b506103a66109573660046141a6565b61205e565b34801561096857600080fd5b506103db61097736600461458e565b6120a1565b34801561098857600080fd5b506104577f000000000000000000000000000000000000000000000000000000000000000081565b3480156109bc57600080fd5b5061042a6109cb366004614233565b6120d3565b3480156109dc57600080fd5b506104e0620d2f0081565b3480156109f357600080fd5b506103db610a023660046142cd565b612139565b348015610a1357600080fd5b506104e0600080516020614d5483398151915281565b348015610a3557600080fd5b506104577f000000000000000000000000000000000000000000000000000000000000000081565b348015610a6957600080fd5b50610457610a78366004614276565b610196602052600090815260409020546001600160a01b031681565b348015610aa057600080fd5b506103a6610aaf366004614161565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b348015610ae957600080fd5b506103a6610af83660046145f5565b61215e565b348015610b0957600080fd5b506103db610b183660046141a6565b612189565b348015610b2957600080fd5b506103db610b3836600461461b565b61234d565b348015610b4957600080fd5b506104e07f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb181565b348015610b7d57600080fd5b506104e06101955481565b348015610b9457600080fd5b506104e07f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b348015610bc857600080fd5b506104e06203f48081565b348015610bdf57600080fd5b506103db610bee366004614276565b612673565b6000610bfe82612741565b92915050565b6000610c0f83611b6f565b118015610c225750610c2081611b6f565b155b610c665760405162461bcd60e51b815260206004820152601060248201526f24b73b30b634b2103a3930b739b332b960811b60448201526064015b60405180910390fd5b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610ca35750610ca3600033611f69565b610d0a5760405162461bcd60e51b815260206004820152603260248201527f4f6e6c79207468652077616c6c657420666163746f7279206f722061646d696e604482015271732063616e2074726967676572207468697360701b6064820152608401610c5d565b6001600160a01b0382811660009081526101966020526040812080546001600160a01b03191692841692909217909155610d529083908390610d4d908390611368565b612766565b506001600160a01b031660009081526101966020526040902080546001600160a01b0319169055565b600080516020614d54833981519152610d93816128d7565b610d9c83611b6f565b600003610dbc576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b03831660009081526101936020908152604080832060ff600887901c811685526003820190935292205460019185169190911b16610e7d5760ff600884901c811660009081526003830160205260409020805460019286169290921b909117905542600182018190556101928190556040805161ffff8616815260208101929092526001600160a01b038616917f364b7a2e1762fd5d9cdeda6c0ea8e1be396892c015c5c917f4d164cd4968ac7691015b60405180910390a25b50505050565b6000610e8e826128e1565b506000908152606960205260409020546001600160a01b031690565b6000610eb5826117c7565b9050806001600160a01b0316836001600160a01b031603610f225760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610c5d565b336001600160a01b0382161480610f3e5750610f3e8133610aaf565b610fb05760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610c5d565b610fba8383612940565b505050565b6000610fcb600761215e565b8015610bfe57506001600160a01b0382166000908152610193602052604090206002015460ff161580610bfe57506001600160a01b0382166000908152610198602052604090205415801590610bfe57506001600160a01b038216600090815261019860205260409020546203f480906110459042614665565b1192915050565b600080516020614d54833981519152611064816128d7565b61106d83611b6f565b60000361108d576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b03831660009081526101936020908152604080832060ff600887901c811685526003820190935292205460019185169190911b1615610e7d5760ff600884901c811660009081526003830160205260409020805460019286169290921b19909116905542600182018190556101928190556040805161ffff8616815260208101929092526001600160a01b038616917fdaf71d6bfd7a93506c86e0e5c5725808f99fe27f13af711f321edf92511e609b9101610e74565b600080516020614d54833981519152611163816128d7565b61116c83611b6f565b60000361118c576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b0383166000908152610198602052604090205480158015906111c05750620d2f006111be8242614665565b105b156111f057604051631093e3a360e21b81526001600160a01b038516600482015260248101829052604401610c5d565b6001600160a01b03841660009081526101936020908152604080832060ff600888901c811685526004820190935292205460019186169190911b1661130b5760ff600885901c811660009081526004830160205260409020805460019287169290921b90911790556002810180546001919060009061127390849060ff16614678565b92506101000a81548160ff021916908360ff1602179055504281600101819055504261019281905550846001600160a01b03167f87d7acad3a8fb00ded1ae0aeaed871a89b621b17d6cd6ff8fd5c00b63394f94a85426040516112e692919061ffff929092168252602082015260400190565b60405180910390a26001600160a01b0385166000908152610198602052604090204290555b5050505050565b61131c33826129ae565b6113385760405162461bcd60e51b8152600401610c5d90614691565b610fba838383612766565b600082815260fb602052604090206001015461135e816128d7565b610fba8383612a2d565b600061137383611b6f565b82106113d55760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610c5d565b506001600160a01b03919091166000908152609760209081526040808320938352929052205490565b6001600160a01b038116331461146e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610c5d565b6114788282612ab3565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036114c45760405162461bcd60e51b8152600401610c5d906146de565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661150d600080516020614d9a833981519152546001600160a01b031690565b6001600160a01b0316146115335760405162461bcd60e51b8152600401610c5d9061472a565b61153c81612b1a565b6040805160008082526020820190925261155891839190612b44565b50565b610fba838383604051806020016040528060008152506120a1565b60405163015538b160e01b8152602060048201526013602482015272155cd948189d5c9b92d650c81a5b9cdd195859606a1b6044820152606401610c5d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036115fd5760405162461bcd60e51b8152600401610c5d906146de565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611646600080516020614d9a833981519152546001600160a01b031690565b6001600160a01b03161461166c5760405162461bcd60e51b8152600401610c5d9061472a565b61167582612b1a565b61147882826001612b44565b600061168c60995490565b82106116ef5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610c5d565b6099828154811061170257611702614776565b90600052602060002001549050919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117b45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610c5d565b50600080516020614d9a83398151915290565b6000818152606760205260408120546001600160a01b031680610bfe5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c5d565b61019180549060006118388361478c565b9190505550610fba610191548484846001612caf565b610191805490600061185f8361478c565b9190505550610fba610191548484846000612caf565b600080516020614d5483398151915261188d816128d7565b8382146118b0576040516001621398b960e31b0319815260040160405180910390fd5b60c88411156118d25760405163a947d77f60e01b815260040160405180910390fd5b4260005b85811015611b2557600061019360008989858181106118f7576118f7614776565b905060200201602081019061190c9190614276565b6001600160a01b03166001600160a01b03168152602001908152602001600020905061195888888481811061194357611943614776565b905060200201602081019061077a9190614276565b6000036119655750611b13565b42600182015560005b86868481811061198057611980614776565b905060200281019061199291906147a5565b9050811015611b105760008787858181106119af576119af614776565b90506020028101906119c191906147a5565b838181106119d1576119d1614776565b9050606002018036038101906119e791906147ed565b805190915080156119f9575080602001515b15611a3757611a328a8a86818110611a1357611a13614776565b9050602002016020810190611a289190614276565b8260400151610d7b565b611afd565b80518015611a4757508060200151155b15611a8057611a328a8a86818110611a6157611a61614776565b9050602002016020810190611a769190614276565b826040015161104c565b8051158015611a90575080602001515b15611ac957611a328a8a86818110611aaa57611aaa614776565b9050602002016020810190611abf9190614276565b826040015161114b565b611afd8a8a86818110611ade57611ade614776565b9050602002016020810190611af39190614276565b8260400151612189565b50611b09600182614858565b905061196e565b50505b611b1e600182614858565b90506118d6565b50610192819055604080518681526020810183905233917f18fb8b1f79749f3894ec6b996ad0503b2dbcf19585865dba3df7683953fc450d910160405180910390a2505050505050565b60006001600160a01b038216611bd95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610c5d565b506001600160a01b031660009081526068602052604090205490565b600054610100900460ff1615808015611c155750600054600160ff909116105b80611c2f5750303b158015611c2f575060005460ff166001145b611c925760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c5d565b6000805460ff191660011790558015611cb5576000805461ff0019166101001790555b611cfe6040518060400160405280600881526020016712da5b9d1bc8125160c21b8152506040518060400160405280600781526020016612d2539513d25160ca1b815250612fea565b611d0661301b565b611d0e61301b565b611d1661301b565b611d1e61301b565b611d29600033612a2d565b611d41600080516020614d5483398151915233612a2d565b611d6b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333612a2d565b611d957f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb133612a2d565b4261019255604080518082018252600781526612da5b9d1bd25160ca1b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527ff2acf2bff9f153ce27ec66ef28c5d61aaa06a6eac70c4c0de4bac7cb3bec0c54818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c09091019092528151910120610195558015611558576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000611ebd600761215e565b8015611f6257506001600160a01b038316600090815261019360205260409020611f0d9060040161ffff8416600881901c600090815260208390526040902054600160ff83161b16151592915050565b1580611f6257506001600160a01b0383166000908152610198602052604090205415801590611f6257506001600160a01b038316600090815261019860205260409020546203f48090611f609042614665565b115b9392505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600080611fa083611b6f565b118015610bfe5750610bfe82610fbf565b611478338383613044565b6001600160a01b038116600090815261019360205260408082208151610100808252612020820190935260609360039092019281602001602082028036833701905050905060005b61010081101561205657600881901c600090815260208490526040902054600160ff83161b16151582828151811061203e5761203e614776565b91151560209283029190910190910152600101612004565b509392505050565b6001600160a01b03821660009081526101936020908152604080832060ff600886901c81168552600390910190925282205460019184169190911b161515611f62565b6120ab33836129ae565b6120c75760405162461bcd60e51b8152600401610c5d90614691565b610e7d84848484613112565b60606120de826128e1565b60006120e8613145565b905060008151116121085760405180602001604052806000815250611f62565b8061211284613165565b60405160200161212392919061486b565b6040516020818303038152906040529392505050565b600082815260fb6020526040902060010154612154816128d7565b610fba8383612ab3565b600061216d826201518061489a565b63ffffffff1661019254426121829190614665565b1092915050565b600080516020614d548339815191526121a1816128d7565b6121aa83611b6f565b6000036121ca576040516320e155c960e21b815260040160405180910390fd5b6001600160a01b0383166000908152610198602052604090205480158015906121fe5750620d2f006121fc8242614665565b105b1561222e57604051631093e3a360e21b81526001600160a01b038516600482015260248101829052604401610c5d565b6001600160a01b03841660009081526101936020908152604080832060ff600888901c811685526004820190935292205460019186169190911b161561130b5760ff600885901c811660009081526004830160205260409020805460019287169290921b199091169055600281018054600191906000906122b390849060ff166148c2565b92506101000a81548160ff021916908360ff1602179055504281600101819055504261019281905550846001600160a01b03167fe307a82882b02537e8254556f85aa0ae942a060782f1f076028687f1fd7dba18854260405161232692919061ffff929092168252602082015260400190565b60405180910390a2505050506001600160a01b031660009081526101986020526040812055565b808060400135421061237257604051630819bdcd60e01b815260040160405180910390fd5b602081018035906101949060009061238a9085614276565b6001600160a01b03166001600160a01b0316815260200190815260200160002054146123c957604051633ab3447f60e11b815260040160405180910390fd5b6123e1600080516020614d5483398151915233611f69565b6123fe57604051633b136dc160e11b815260040160405180910390fd5b60008061240e6020840184614276565b803b92509050811561243357604051631bb5d42560e31b815260040160405180910390fd5b6000610195546124b585612446906148db565b805160208083015160409384015184517fce753e2ed199e3bc0c561ccacfe9f2ebd720bf99f6d0e6854d8ec36486eb18c7818501526001600160a01b039094168486015260608401919091526080808401919091528351808403909101815260a0909201909252805191012090565b60405161190160f01b60208201526022810192909252604282015260620160408051601f1981840301815291905280516020909101209050612550816124fe6060870187614960565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612540925050506020880188614276565b6001600160a01b031691906131f7565b61256d57604051632057875960e21b815260040160405180910390fd5b61257d61077a6020870187614276565b60000361259d57604051634c3215c360e11b815260040160405180910390fd5b600161019460006125b16020890189614276565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546125e09190614858565b9091555061260590506126006125f96020880188614276565b6000611368565b613258565b600061261761077a6020880188614276565b11156126365760405163493e98f360e11b815260040160405180910390fd5b6000610193816126496020890189614276565b6001600160a01b031681526020810191909152604001600090812081815560010155505050505050565b7f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb161269d816128d7565b6001600160a01b0382166000908152610193602052604081206002015460ff1690036126e757604051634d05f3e760e01b81526001600160a01b0383166004820152602401610c5d565b6001600160a01b0382166000818152610198602052604080822091909155517f8e5e87839bfd57881dc0bf377cc18550ec2476ac488bb95c3aec4792077ea79f906127359042815260200190565b60405180910390a25050565b60006001600160e01b03198216637965db0b60e01b1480610bfe5750610bfe826132fb565b826001600160a01b0316612779826117c7565b6001600160a01b03161461279f5760405162461bcd60e51b8152600401610c5d906149a6565b6001600160a01b0382166128015760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c5d565b61280e8383836001613320565b826001600160a01b0316612821826117c7565b6001600160a01b0316146128475760405162461bcd60e51b8152600401610c5d906149a6565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61155881336133d9565b6000818152606760205260409020546001600160a01b03166115585760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c5d565b600081815260696020526040902080546001600160a01b0319166001600160a01b0384169081179091558190612975826117c7565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806129ba836117c7565b9050806001600160a01b0316846001600160a01b03161480612a0157506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b80612a255750836001600160a01b0316612a1a84610e83565b6001600160a01b0316145b949350505050565b612a378282611f69565b61147857600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612a6f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b612abd8282611f69565b1561147857600082815260fb602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3611478816128d7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612b7757610fba83613432565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612bd1575060408051601f3d908101601f19168201909252612bce918101906149eb565b60015b612c345760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610c5d565b600080516020614d9a8339815191528114612ca35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610c5d565b50610fba8383836134ce565b8380604001354210612cd457604051630819bdcd60e01b815260040160405180910390fd5b6020810180359061019490600090612cec9085614276565b6001600160a01b03166001600160a01b031681526020019081526020016000205414612d2b57604051633ab3447f60e11b815260040160405180910390fd5b612d43600080516020614d5483398151915233611f69565b612d6057604051633b136dc160e11b815260040160405180910390fd5b600080612d706020840184614276565b803b925090508115612d9557604051631bb5d42560e31b815260040160405180910390fd5b600061019554612da885612446906148db565b60405161190160f01b60208201526022810192909252604282015260620160408051601f1981840301815291905280516020909101209050612df1816124fe6060870187614960565b612e0e57604051632057875960e21b815260040160405180910390fd5b6000612e2061077a60208b018b614276565b1115612e3f5760405163493e98f360e11b815260040160405180910390fd5b600061019381612e5260208c018c614276565b6001600160a01b031681526020810191909152604001600090812042808255600182015560028101805461ff0019166101008a15150217905591505b87811015612ef357612eeb898983818110612eab57612eab614776565b9050602002016020810190612ec09190614a04565b600881901c60ff9081166000908152600386016020526040902080546001939092169290921b179055565b600101612e8e565b506101946000612f0660208c018c614276565b6001600160a01b0316815260208101919091526040016000908120805491612f2d8361478c565b90915550612f499050612f4360208b018b614276565b8b6134f3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016631fa27f76612f8560208c018c614276565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b158015612fc657600080fd5b505af1158015612fda573d6000803e3d6000fd5b5050505050505050505050505050565b600054610100900460ff166130115760405162461bcd60e51b8152600401610c5d90614a1f565b611478828261350d565b600054610100900460ff166130425760405162461bcd60e51b8152600401610c5d90614a1f565b565b816001600160a01b0316836001600160a01b0316036130a55760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c5d565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61311d848484612766565b6131298484848461354d565b610e7d5760405162461bcd60e51b8152600401610c5d90614a6a565b6060604051806060016040528060268152602001614d7460269139905090565b606060006131728361364e565b60010190506000816001600160401b03811115613191576131916142f0565b6040519080825280601f01601f1916602001820160405280156131bb576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846131c557509392505050565b60008060006132068585613726565b9092509050600081600481111561321f5761321f614abc565b14801561323d5750856001600160a01b0316826001600160a01b0316145b8061324e575061324e86868661376b565b9695505050505050565b6000613263826117c7565b9050613273816000846001613320565b61327c826117c7565b600083815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526068845282852080546000190190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60006001600160e01b0319821663780e9d6360e01b1480610bfe5750610bfe82613857565b6001600160a01b038416158061335457506001600160a01b0384811660009081526101966020526040902054811690841614155b80613365575061336384610fbf565b155b801561338a57506001600160a01b03841615158061338a57506001600160a01b038316155b80156133af57506001600160a01b03841615806133af57506001600160a01b03831615155b156133cd57604051632a675c2b60e11b815260040160405180910390fd5b610e7d848484846138a7565b6133e38282611f69565b611478576133f0816139d4565b6133fb8360206139e6565b60405160200161340c929190614ad2565b60408051601f198184030181529082905262461bcd60e51b8252610c5d91600401614220565b6001600160a01b0381163b61349f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610c5d565b600080516020614d9a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6134d783613b81565b6000825111806134e45750805b15610fba57610e7d8383613bc1565b611478828260405180602001604052806000815250613be6565b600054610100900460ff166135345760405162461bcd60e51b8152600401610c5d90614a1f565b60656135408382614bcb565b506066610fba8282614bcb565b60006001600160a01b0384163b1561364357604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613591903390899088908890600401614c8a565b6020604051808303816000875af19250505080156135cc575060408051601f3d908101601f191682019092526135c991810190614cbd565b60015b613629573d8080156135fa576040519150601f19603f3d011682016040523d82523d6000602084013e6135ff565b606091505b5080516000036136215760405162461bcd60e51b8152600401610c5d90614a6a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612a25565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061368d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106136b9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106136d757662386f26fc10000830492506010015b6305f5e10083106136ef576305f5e100830492506008015b612710831061370357612710830492506004015b60648310613715576064830492506002015b600a8310610bfe5760010192915050565b600080825160410361375c5760208301516040840151606085015160001a61375087828585613c19565b94509450505050613764565b506000905060025b9250929050565b6000806000856001600160a01b0316631626ba7e60e01b8686604051602401613795929190614cda565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516137d39190614cf3565b600060405180830381855afa9150503d806000811461380e576040519150601f19603f3d011682016040523d82523d6000602084013e613813565b606091505b509150915081801561382757506020815110155b801561324e57508051630b135d3f60e11b9061384c90830160209081019084016149eb565b149695505050505050565b60006001600160e01b031982166380ac58cd60e01b148061388857506001600160e01b03198216635b5e139f60e01b145b80610bfe57506301ffc9a760e01b6001600160e01b0319831614610bfe565b60018111156139165760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610c5d565b816001600160a01b0385166139725761396d81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b613995565b836001600160a01b0316856001600160a01b031614613995576139958582613cdd565b6001600160a01b0384166139b1576139ac81613d7a565b61130b565b846001600160a01b0316846001600160a01b03161461130b5761130b8482613e29565b6060610bfe6001600160a01b03831660145b606060006139f5836002614d0f565b613a00906002614858565b6001600160401b03811115613a1757613a176142f0565b6040519080825280601f01601f191660200182016040528015613a41576020820181803683370190505b509050600360fc1b81600081518110613a5c57613a5c614776565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a8b57613a8b614776565b60200101906001600160f81b031916908160001a9053506000613aaf846002614d0f565b613aba906001614858565b90505b6001811115613b32576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613aee57613aee614776565b1a60f81b828281518110613b0457613b04614776565b60200101906001600160f81b031916908160001a90535060049490941c93613b2b81614d26565b9050613abd565b508315611f625760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610c5d565b613b8a81613432565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060611f628383604051806060016040528060278152602001614dba60279139613e6d565b613bf08383613edb565b613bfd600084848461354d565b610fba5760405162461bcd60e51b8152600401610c5d90614a6a565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613c505750600090506003613cd4565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613ca4573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613ccd57600060019250925050613cd4565b9150600090505b94509492505050565b60006001613cea84611b6f565b613cf49190614665565b600083815260986020526040902054909150808214613d47576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b609954600090613d8c90600190614665565b6000838152609a602052604081205460998054939450909284908110613db457613db4614776565b906000526020600020015490508060998381548110613dd557613dd5614776565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480613e0d57613e0d614d3d565b6001900381819060005260206000200160009055905550505050565b6000613e3483611b6f565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b6060600080856001600160a01b031685604051613e8a9190614cf3565b600060405180830381855af49150503d8060008114613ec5576040519150601f19603f3d011682016040523d82523d6000602084013e613eca565b606091505b509150915061324e86838387614074565b6001600160a01b038216613f315760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c5d565b6000818152606760205260409020546001600160a01b031615613f965760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c5d565b613fa4600083836001613320565b6000818152606760205260409020546001600160a01b0316156140095760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c5d565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606083156140e35782516000036140dc576001600160a01b0385163b6140dc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c5d565b5081612a25565b612a2583838151156140f85781518083602001fd5b8060405162461bcd60e51b8152600401610c5d9190614220565b6001600160e01b03198116811461155857600080fd5b60006020828403121561413a57600080fd5b8135611f6281614112565b80356001600160a01b038116811461415c57600080fd5b919050565b6000806040838503121561417457600080fd5b61417d83614145565b915061418b60208401614145565b90509250929050565b803561ffff8116811461415c57600080fd5b600080604083850312156141b957600080fd5b6141c283614145565b915061418b60208401614194565b60005b838110156141eb5781810151838201526020016141d3565b50506000910152565b6000815180845261420c8160208601602086016141d0565b601f01601f19169290920160200192915050565b602081526000611f6260208301846141f4565b60006020828403121561424557600080fd5b5035919050565b6000806040838503121561425f57600080fd5b61426883614145565b946020939093013593505050565b60006020828403121561428857600080fd5b611f6282614145565b6000806000606084860312156142a657600080fd5b6142af84614145565b92506142bd60208501614145565b9150604084013590509250925092565b600080604083850312156142e057600080fd5b8235915061418b60208401614145565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261431757600080fd5b81356001600160401b0380821115614331576143316142f0565b604051601f8301601f19908116603f01168101908282118183101715614359576143596142f0565b8160405283815286602085880101111561437257600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080604083850312156143a557600080fd5b6143ae83614145565b915060208301356001600160401b038111156143c957600080fd5b6143d585828601614306565b9150509250929050565b6000608082840312156143f157600080fd5b50919050565b60008083601f84011261440957600080fd5b5081356001600160401b0381111561442057600080fd5b6020830191508360208260051b850101111561376457600080fd5b60008060006040848603121561445057600080fd5b83356001600160401b038082111561446757600080fd5b614473878388016143df565b9450602086013591508082111561448957600080fd5b50614496868287016143f7565b9497909650939450505050565b600080600080604085870312156144b957600080fd5b84356001600160401b03808211156144d057600080fd5b6144dc888389016143f7565b909650945060208701359150808211156144f557600080fd5b50614502878288016143f7565b95989497509550505050565b8035801515811461415c57600080fd5b6000806040838503121561453157600080fd5b61453a83614145565b915061418b6020840161450e565b6020808252825182820181905260009190848201906040850190845b81811015614582578351151583529284019291840191600101614564565b50909695505050505050565b600080600080608085870312156145a457600080fd5b6145ad85614145565b93506145bb60208601614145565b92506040850135915060608501356001600160401b038111156145dd57600080fd5b6145e987828801614306565b91505092959194509250565b60006020828403121561460757600080fd5b813563ffffffff81168114611f6257600080fd5b60006020828403121561462d57600080fd5b81356001600160401b0381111561464357600080fd5b612a25848285016143df565b634e487b7160e01b600052601160045260246000fd5b81810381811115610bfe57610bfe61464f565b60ff8181168382160190811115610bfe57610bfe61464f565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161479e5761479e61464f565b5060010190565b6000808335601e198436030181126147bc57600080fd5b8301803591506001600160401b038211156147d657600080fd5b602001915060608102360382131561376457600080fd5b6000606082840312156147ff57600080fd5b604051606081018181106001600160401b0382111715614821576148216142f0565b60405261482d8361450e565b815261483b6020840161450e565b602082015261484c60408401614194565b60408201529392505050565b80820180821115610bfe57610bfe61464f565b6000835161487d8184602088016141d0565b8351908301906148918183602088016141d0565b01949350505050565b63ffffffff8181168382160280821691908281146148ba576148ba61464f565b505092915050565b60ff8281168282160390811115610bfe57610bfe61464f565b6000608082360312156148ed57600080fd5b604051608081016001600160401b038282108183111715614910576149106142f0565b8160405261491d85614145565b83526020850135602084015260408501356040840152606085013591508082111561494757600080fd5b5061495436828601614306565b60608301525092915050565b6000808335601e1984360301811261497757600080fd5b8301803591506001600160401b0382111561499157600080fd5b60200191503681900382131561376457600080fd5b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6000602082840312156149fd57600080fd5b5051919050565b600060208284031215614a1657600080fd5b611f6282614194565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351614b0a8160178501602088016141d0565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351614b3b8160288401602088016141d0565b01602801949350505050565b600181811c90821680614b5b57607f821691505b6020821081036143f157634e487b7160e01b600052602260045260246000fd5b601f821115610fba576000816000526020600020601f850160051c81016020861015614ba45750805b601f850160051c820191505b81811015614bc357828155600101614bb0565b505050505050565b81516001600160401b03811115614be457614be46142f0565b614bf881614bf28454614b47565b84614b7b565b602080601f831160018114614c2d5760008415614c155750858301515b600019600386901b1c1916600185901b178555614bc3565b600085815260208120601f198616915b82811015614c5c57888601518255948401946001909101908401614c3d565b5085821015614c7a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061324e908301846141f4565b600060208284031215614ccf57600080fd5b8151611f6281614112565b828152604060208201526000612a2560408301846141f4565b60008251614d058184602087016141d0565b9190910192915050565b8082028115828204841417610bfe57610bfe61464f565b600081614d3557614d3561464f565b506000190190565b634e487b7160e01b600052603160045260246000fdfe6c4079fcac94e7142d8c209744c998efe53a188aadb7e55958f7ad3ea8a1d65268747470733a2f2f6b696e746f2e78797a2f6170692f76312f6e66742d6b696e746f2d69642f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d9a00d793a43adb7f0ef31dd46734fc563515c57584292ac5aec37236c9b4a6764736f6c634300081800330000000000000000000000008a4720488ca32f1223ccfe5a087e250fe3bc5d750000000000000000000000000719d47a213149e2ef8d3f5afdada8a8e22dfc03", + "nonce": "0x4b891", "chainId": "0x1ecf" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x393717142a85ed552e3d455cd886d11abe37095fa7f7be1dd1db7214a65a74dd", + "hash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", "transactionType": "CALL", "contractName": null, "contractAddress": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", "function": "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)", "arguments": [ - "[(0x2e2B1c42E38f5af81771e65D87729E57ABD1337a, 3858, 0x, 0xb61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe60000000000000000000000007cfe474936fa50181ae7c2c43eeb8806e25bc98300000000000000000000000000000000000000000000000000000000, 4000000, 210000, 21000, 1, 1000000000, 0x0000000000000000000000000000000000000000, 0x4d3de4ef8e2c4121e905d8628cfd62e384db3f18dd05923051acba117396094d6bec31f3355a4700ff969127f206e2240389260aa7412a335dba0f77790381a91b86133a602cbea2d28c0bfcfb891e1c69539ea98b7a55dbce714dc5a6381244f6264c7d48517c0c11388c588a7d2bcfef95365d52811b0dd59d9294b3510ece2a1b)]", + "[(0x2e2B1c42E38f5af81771e65D87729E57ABD1337a, 3869, 0x, 0xb61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe6000000000000000000000000aa0726829d41e3c70b84bc5390cce82afc56871a00000000000000000000000000000000000000000000000000000000, 4000000, 210000, 21000, 1, 1000000000, 0x0000000000000000000000000000000000000000, 0xb94296c09642c3b7acdd1ec81a2ec1384197617bbefb61526bc7e9516d78013f7139a0d83d27fec0ed85d3fb67fce4ec5f2d3e27df7a2a57d0514582b19b214a1b6a170a46524db21a08fb81a8958bed4faf0ec85e45a4f1fd4ffe219f96af281b31d8e3af7b14a2d2ba1690cfa106cf9ea6b2593100def96ead0d9021a4d3bb201b)]", "0x660ad4B5A74130a4796B4d54BC6750Ae93C86e6c" ], "transaction": { "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", "value": "0x0", - "input": "0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000660ad4b5a74130a4796b4d54bc6750ae93c86e6c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a0000000000000000000000000000000000000000000000000000000000000f120000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000003345000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4b61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe60000000000000000000000007cfe474936fa50181ae7c2c43eeb8806e25bc98300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000824d3de4ef8e2c4121e905d8628cfd62e384db3f18dd05923051acba117396094d6bec31f3355a4700ff969127f206e2240389260aa7412a335dba0f77790381a91b86133a602cbea2d28c0bfcfb891e1c69539ea98b7a55dbce714dc5a6381244f6264c7d48517c0c11388c588a7d2bcfef95365d52811b0dd59d9294b3510ece2a1b000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x4b86d", - "chainId": "0x1ecf" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x200714fcd3cb67959d38bb4125381e014f2f27883cb8154b927eaaea97b82f18", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "function": "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)", - "arguments": [ - "[(0x2e2B1c42E38f5af81771e65D87729E57ABD1337a, 3859, 0x, 0xb61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000442f2ff15d71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb10000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a00000000000000000000000000000000000000000000000000000000, 4000000, 210000, 21000, 1, 1000000000, 0x0000000000000000000000000000000000000000, 0xcc94fd3192e2c1dabd5b8609874d88a4d27be5f407c21ce9648996b757b71f9863147aa7ab9bd98a96fa5ab4bdaa8d662aafa65ebd791d1a4a2a5a7eb1099ca11c4f7d95956b5bac7423dce8146207fafcff7d1e0f1e891c6c07134cb3dbdd66646ebb8e5bc8adfa8b6e279ecd03310f546a5abde9cc9bb07d5ea6bf17317dec351c)]", - "0x660ad4B5A74130a4796B4d54BC6750Ae93C86e6c" - ], - "transaction": { - "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", - "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "value": "0x0", - "input": "0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000660ad4b5a74130a4796b4d54bc6750ae93c86e6c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a0000000000000000000000000000000000000000000000000000000000000f130000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000003345000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e4b61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000442f2ff15d71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb10000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082cc94fd3192e2c1dabd5b8609874d88a4d27be5f407c21ce9648996b757b71f9863147aa7ab9bd98a96fa5ab4bdaa8d662aafa65ebd791d1a4a2a5a7eb1099ca11c4f7d95956b5bac7423dce8146207fafcff7d1e0f1e891c6c07134cb3dbdd66646ebb8e5bc8adfa8b6e279ecd03310f546a5abde9cc9bb07d5ea6bf17317dec351c000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x4b86e", - "chainId": "0x1ecf" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xb92881b33f7b8c3a043216dc0ddde353fe43d3d2a105c13e80c16da52a6a23ec", - "transactionType": "CALL", - "contractName": null, - "contractAddress": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "function": "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)", - "arguments": [ - "[(0x2e2B1c42E38f5af81771e65D87729E57ABD1337a, 3860, 0x, 0xb61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000442f2ff15d71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1000000000000000000000000010600ff5f36c8ef3b6aaf2a88c2de85c798594a00000000000000000000000000000000000000000000000000000000, 4000000, 210000, 21000, 1, 1000000000, 0x0000000000000000000000000000000000000000, 0xcdf1b5c5d54c1ee370e9ce0f44acbdf00d61e03a82005e786bc4153f243b28e7613c73505b805dd4d66d78b12e9a0af582652905e3547611d4453178ecbf03061b6e0d18215759d34e62650b5f7d553818392ed559e2d14e0779516fe57ca23c5b11d9719f6449b02d2bec206b2072c97bf43622153e19d86e50e47e65b94363fc1b)]", - "0x660ad4B5A74130a4796B4d54BC6750Ae93C86e6c" - ], - "transaction": { - "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", - "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "value": "0x0", - "input": "0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000660ad4b5a74130a4796b4d54bc6750ae93c86e6c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a0000000000000000000000000000000000000000000000000000000000000f140000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000003345000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e4b61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000442f2ff15d71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1000000000000000000000000010600ff5f36c8ef3b6aaf2a88c2de85c798594a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082cdf1b5c5d54c1ee370e9ce0f44acbdf00d61e03a82005e786bc4153f243b28e7613c73505b805dd4d66d78b12e9a0af582652905e3547611d4453178ecbf03061b6e0d18215759d34e62650b5f7d553818392ed559e2d14e0779516fe57ca23c5b11d9719f6449b02d2bec206b2072c97bf43622153e19d86e50e47e65b94363fc1b000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x4b86f", + "input": "0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000660ad4b5a74130a4796b4d54bc6750ae93c86e6c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a0000000000000000000000000000000000000000000000000000000000000f1d0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000003345000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4b61d27f6000000000000000000000000f369f78e3a0492cc4e96a90dae0728a38498e9c70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe6000000000000000000000000aa0726829d41e3c70b84bc5390cce82afc56871a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082b94296c09642c3b7acdd1ec81a2ec1384197617bbefb61526bc7e9516d78013f7139a0d83d27fec0ed85d3fb67fce4ec5f2d3e27df7a2a57d0514582b19b214a1b6a170a46524db21a08fb81a8958bed4faf0ec85e45a4f1fd4ffe219f96af281b31d8e3af7b14a2d2ba1690cfa106cf9ea6b2593100def96ead0d9021a4d3bb201b000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x4b892", "chainId": "0x1ecf" }, "additionalContracts": [], @@ -88,39 +46,39 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x6e0942", + "cumulativeGasUsed": "0x5a4c58", "logs": [ { - "address": "0x7cfe474936fa50181ae7c2c43eeb8806e25bc983", + "address": "0xaa0726829d41e3c70b84bc5390cce82afc56871a", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0xf3e9b3199aea422a64b3bc8564d3ae7ca609f1100928bec80e7dd147e0cddba7", - "blockNumber": "0x91593", - "transactionHash": "0xd17af031c598da65cd4893e4a2b3cfd74a6451b03e196950d95d42b0d6f96232", + "blockHash": "0x3ed1667214d9fb9c1bdcf7860d596393cbbf2851a140998bee053cb1e7e88d71", + "blockNumber": "0x98d52", + "transactionHash": "0x39a80565f32d26000864066f3d09a285965a055bafd9368ca6a52a8cdc1394d8", "transactionIndex": "0x1", "logIndex": "0x0", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000002000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000040000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000002000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0xd17af031c598da65cd4893e4a2b3cfd74a6451b03e196950d95d42b0d6f96232", + "transactionHash": "0x39a80565f32d26000864066f3d09a285965a055bafd9368ca6a52a8cdc1394d8", "transactionIndex": "0x1", - "blockHash": "0xf3e9b3199aea422a64b3bc8564d3ae7ca609f1100928bec80e7dd147e0cddba7", - "blockNumber": "0x91593", - "gasUsed": "0x6e0942", + "blockHash": "0x3ed1667214d9fb9c1bdcf7860d596393cbbf2851a140998bee053cb1e7e88d71", + "blockNumber": "0x98d52", + "gasUsed": "0x5a4c58", "effectiveGasPrice": "0x5f5e100", "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", "contractAddress": null, - "gasUsedForL1": "0x2bc7e5", - "l1BlockNumber": "0x145b7ac" + "gasUsedForL1": "0x1709f0", + "l1BlockNumber": "0x146258f" }, { "status": "0x1", - "cumulativeGasUsed": "0x4cbed", + "cumulativeGasUsed": "0x3bef4", "logs": [ { "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", @@ -128,9 +86,9 @@ "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" ], "data": "0x", - "blockHash": "0x5d003beb78a1844ed54b1ffd99a06071012801b3e7fe244ffa0e80f357251a4b", - "blockNumber": "0x91594", - "transactionHash": "0x393717142a85ed552e3d455cd886d11abe37095fa7f7be1dd1db7214a65a74dd", + "blockHash": "0x175c525db0d122bf2898f1b19893eb9b2e9d25f97da9e178957e2edeb58bc315", + "blockNumber": "0x98d53", + "transactionHash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", "transactionIndex": "0x1", "logIndex": "0x0", "removed": false @@ -139,140 +97,12 @@ "address": "0xf369f78e3a0492cc4e96a90dae0728a38498e9c7", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000007cfe474936fa50181ae7c2c43eeb8806e25bc983" - ], - "data": "0x", - "blockHash": "0x5d003beb78a1844ed54b1ffd99a06071012801b3e7fe244ffa0e80f357251a4b", - "blockNumber": "0x91594", - "transactionHash": "0x393717142a85ed552e3d455cd886d11abe37095fa7f7be1dd1db7214a65a74dd", - "transactionIndex": "0x1", - "logIndex": "0x1", - "removed": false - }, - { - "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "topics": [ - "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", - "0x9524dba06243a217462d096b861b474032e32e7c41093d2c8c78e1643bc06e57", - "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000f1200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000083bae0000000000000000000000000000000000000000000000000000000000083bae", - "blockHash": "0x5d003beb78a1844ed54b1ffd99a06071012801b3e7fe244ffa0e80f357251a4b", - "blockNumber": "0x91594", - "transactionHash": "0x393717142a85ed552e3d455cd886d11abe37095fa7f7be1dd1db7214a65a74dd", - "transactionIndex": "0x1", - "logIndex": "0x2", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000004400000000000000000004000000000000008000000000000000000010000000000000000000000000000020000000000008000000000000000000000000002000000000000000010000000000000000800000000020000000000000020000800002000000000000000000000000000800000000000000000000008000000800000000000000002000000000000000000000400000000000000400000000000000000000000000000000002000000000000000020000000100001000000000000000000000000000002000000000020000000000000010000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x393717142a85ed552e3d455cd886d11abe37095fa7f7be1dd1db7214a65a74dd", - "transactionIndex": "0x1", - "blockHash": "0x5d003beb78a1844ed54b1ffd99a06071012801b3e7fe244ffa0e80f357251a4b", - "blockNumber": "0x91594", - "gasUsed": "0x4cbed", - "effectiveGasPrice": "0x5f5e100", - "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", - "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "contractAddress": null, - "gasUsedForL1": "0x23723", - "l1BlockNumber": "0x145b7ac" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x526ae", - "logs": [ - { - "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "topics": [ - "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" - ], - "data": "0x", - "blockHash": "0x0b698a3c771b13b989d37d298bdcbeedb3ade9e8a5ff1ac934430eec032c92e9", - "blockNumber": "0x91595", - "transactionHash": "0x200714fcd3cb67959d38bb4125381e014f2f27883cb8154b927eaaea97b82f18", - "transactionIndex": "0x1", - "logIndex": "0x0", - "removed": false - }, - { - "address": "0xf369f78e3a0492cc4e96a90dae0728a38498e9c7", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1", - "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a", - "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a" - ], - "data": "0x", - "blockHash": "0x0b698a3c771b13b989d37d298bdcbeedb3ade9e8a5ff1ac934430eec032c92e9", - "blockNumber": "0x91595", - "transactionHash": "0x200714fcd3cb67959d38bb4125381e014f2f27883cb8154b927eaaea97b82f18", - "transactionIndex": "0x1", - "logIndex": "0x1", - "removed": false - }, - { - "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "topics": [ - "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", - "0xe8d37ccc129651e557c06738a29e912eb017c451583dbaff4d9225ccd98e50a8", - "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000f13000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000876370000000000000000000000000000000000000000000000000000000000087637", - "blockHash": "0x0b698a3c771b13b989d37d298bdcbeedb3ade9e8a5ff1ac934430eec032c92e9", - "blockNumber": "0x91595", - "transactionHash": "0x200714fcd3cb67959d38bb4125381e014f2f27883cb8154b927eaaea97b82f18", - "transactionIndex": "0x1", - "logIndex": "0x2", - "removed": false - } - ], - "logsBloom": "0x00000004000000000000000000000004800000001000000000000000000000000008000000000000000000010000000000000000000000000000020000000000008000000000000000000000000000000000000000000010000000000000000800000000020000000000000000000800002040000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000400000000000000400000000000000000000000000000001002000000000000000000000000302001000000000000000000000000000100000000000020000001000000010000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x200714fcd3cb67959d38bb4125381e014f2f27883cb8154b927eaaea97b82f18", - "transactionIndex": "0x1", - "blockHash": "0x0b698a3c771b13b989d37d298bdcbeedb3ade9e8a5ff1ac934430eec032c92e9", - "blockNumber": "0x91595", - "gasUsed": "0x526ae", - "effectiveGasPrice": "0x5f5e100", - "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", - "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "contractAddress": null, - "gasUsedForL1": "0x24ecf", - "l1BlockNumber": "0x145b7ac" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x53a24", - "logs": [ - { - "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", - "topics": [ - "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" - ], - "data": "0x", - "blockHash": "0xc314fcfd65e55126045c4a41beaa38a9b5633b4b0c19336061b0e182accf6ecf", - "blockNumber": "0x91596", - "transactionHash": "0xb92881b33f7b8c3a043216dc0ddde353fe43d3d2a105c13e80c16da52a6a23ec", - "transactionIndex": "0x1", - "logIndex": "0x0", - "removed": false - }, - { - "address": "0xf369f78e3a0492cc4e96a90dae0728a38498e9c7", - "topics": [ - "0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", - "0x71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb1", - "0x000000000000000000000000010600ff5f36c8ef3b6aaf2a88c2de85c798594a", - "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a" + "0x000000000000000000000000aa0726829d41e3c70b84bc5390cce82afc56871a" ], "data": "0x", - "blockHash": "0xc314fcfd65e55126045c4a41beaa38a9b5633b4b0c19336061b0e182accf6ecf", - "blockNumber": "0x91596", - "transactionHash": "0xb92881b33f7b8c3a043216dc0ddde353fe43d3d2a105c13e80c16da52a6a23ec", + "blockHash": "0x175c525db0d122bf2898f1b19893eb9b2e9d25f97da9e178957e2edeb58bc315", + "blockNumber": "0x98d53", + "transactionHash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", "transactionIndex": "0x1", "logIndex": "0x1", "removed": false @@ -281,38 +111,38 @@ "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", "topics": [ "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", - "0xc24e49c960f23590b5665c7daba685679d5afc1908e5c2580b0ea6f390369406", + "0xc2b6864a3f82c0ddde2802fd18c924b30b80ed978102b0f3818e95ff3b0d5054", "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a", "0x0000000000000000000000000000000000000000000000000000000000000000" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000f14000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000876370000000000000000000000000000000000000000000000000000000000087637", - "blockHash": "0xc314fcfd65e55126045c4a41beaa38a9b5633b4b0c19336061b0e182accf6ecf", - "blockNumber": "0x91596", - "transactionHash": "0xb92881b33f7b8c3a043216dc0ddde353fe43d3d2a105c13e80c16da52a6a23ec", + "data": "0x0000000000000000000000000000000000000000000000000000000000000f1d00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000083bf40000000000000000000000000000000000000000000000000000000000083bf4", + "blockHash": "0x175c525db0d122bf2898f1b19893eb9b2e9d25f97da9e178957e2edeb58bc315", + "blockNumber": "0x98d53", + "transactionHash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", "transactionIndex": "0x1", "logIndex": "0x2", "removed": false } ], - "logsBloom": "0x00100004000000002000000000000004800000000000000000000000000000000008000000000000000000010000000000000000000000000000020000000000008000000000000000000000000000000000000000000010000000000000000800000000020000000000000000000800002040000000000000000000000000000000000000000000000000000000800000000000000080000000020000000000000400000020000000400000000000000000000000000000001002000000000000000000000000300001000000000000000000000000000100000000000020000000000000010000000000000000000000000000000000000000000000000004", + "logsBloom": "0x00000000000000000000004000000004400001000000000000000000000000000008000000000000000000010000000000000000000000000000020000000000008000000000000000000020000002000000000000000010000000000000000800000000020000000000000040000800002000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000400000000000000400400000000000000000000000000000002000000000000000020000000100001000000000000000000000000000000000000000020000000000000010000000000000000000004000000000000000000000000000000", "type": "0x2", - "transactionHash": "0xb92881b33f7b8c3a043216dc0ddde353fe43d3d2a105c13e80c16da52a6a23ec", + "transactionHash": "0x9fa20142e6e04305e74314e6670ecbf65477f470a9251ec55dc52ddcd34940b1", "transactionIndex": "0x1", - "blockHash": "0xc314fcfd65e55126045c4a41beaa38a9b5633b4b0c19336061b0e182accf6ecf", - "blockNumber": "0x91596", - "gasUsed": "0x53a24", + "blockHash": "0x175c525db0d122bf2898f1b19893eb9b2e9d25f97da9e178957e2edeb58bc315", + "blockNumber": "0x98d53", + "gasUsed": "0x3bef4", "effectiveGasPrice": "0x5f5e100", "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", "contractAddress": null, - "gasUsedForL1": "0x2625d", - "l1BlockNumber": "0x145b7ac" + "gasUsedForL1": "0x129e4", + "l1BlockNumber": "0x146258f" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1733521441, + "timestamp": 1733860818, "chain": 7887, - "commit": "7a226c7" + "commit": "cf4f7be" } \ No newline at end of file diff --git a/script/migrations/135-upgrade_faucet_id.s.sol b/script/migrations/135-upgrade_faucet_id.s.sol index ebc07725..e1e4a3d3 100644 --- a/script/migrations/135-upgrade_faucet_id.s.sol +++ b/script/migrations/135-upgrade_faucet_id.s.sol @@ -11,32 +11,18 @@ contract UpgradeKintoIDScript is MigrationHelper { bytes memory bytecode = abi.encodePacked( type(KintoID).creationCode, - abi.encode( - _getChainDeployment("KintoWalletFactory"), - _getChainDeployment("Faucet") - ) + abi.encode(_getChainDeployment("KintoWalletFactory"), _getChainDeployment("Faucet")) ); - address impl = _deployImplementationAndUpgrade("KintoID", "V9", bytecode); - saveContractAddress("KintoIDV9-impl", impl); + address impl = _deployImplementationAndUpgrade("KintoID", "V10", bytecode); + saveContractAddress("KintoIDV10-impl", impl); KintoID kintoID = KintoID(_getChainDeployment("KintoID")); address nioGovernor = _getChainDeployment("NioGovernor"); - bytes32 governanceRole = kintoID.GOVERNANCE_ROLE(); + bytes32 governanceRole = kintoID.GOVERNANCE_ROLE(); - assertFalse(kintoID.hasRole(governanceRole, kintoAdminWallet)); - assertFalse(kintoID.hasRole(governanceRole, nioGovernor)); - - _handleOps( - abi.encodeWithSelector(IAccessControl.grantRole.selector, governanceRole, kintoAdminWallet), address(kintoID) - ); - - _handleOps( - abi.encodeWithSelector(IAccessControl.grantRole.selector, governanceRole, nioGovernor), address(kintoID) - ); - - assertTrue(kintoID.hasRole(kintoID.GOVERNANCE_ROLE(), kintoAdminWallet)); - assertTrue(kintoID.hasRole(kintoID.GOVERNANCE_ROLE(), nioGovernor)); + assertTrue(kintoID.hasRole(governanceRole, kintoAdminWallet)); + assertTrue(kintoID.hasRole(governanceRole, nioGovernor)); assertTrue(kintoID.isKYC(deployer)); } diff --git a/src/KintoID.sol b/src/KintoID.sol index e0f3dd20..df541ea1 100644 --- a/src/KintoID.sol +++ b/src/KintoID.sol @@ -92,6 +92,12 @@ contract KintoID is /// @notice Role identifier for governance actions bytes32 public constant override GOVERNANCE_ROLE = keccak256("GOVERNANCE_ROLE"); + /// @notice The period of time after which sanction is expired unless approved by governance + uint256 public constant SANCTION_EXPIRY_PERIOD = 3 days; + + /// @notice The period of time during which additional sanctions can't be applied and user can exit, unless sanctions approved by governance + uint256 public constant EXIT_WINDOW_PERIOD = 10 days; + /// @notice Address of the wallet factory contract address public immutable override walletFactory; @@ -384,6 +390,13 @@ contract KintoID is */ function addSanction(address _account, uint16 _countryId) public override onlyRole(KYC_PROVIDER_ROLE) { if (balanceOf(_account) == 0) revert KYCRequired(); + + // Check if account is in protection period (10 days from last sanction) + uint256 lastSanctionTime = sanctionedAt[_account]; + if (lastSanctionTime != 0 && block.timestamp - lastSanctionTime < EXIT_WINDOW_PERIOD) { + revert ExitWindowPeriod(_account, lastSanctionTime); + } + Metadata storage meta = _kycmetas[_account]; if (!meta.sanctions.get(_countryId)) { meta.sanctions.set(_countryId); @@ -405,6 +418,13 @@ contract KintoID is */ function removeSanction(address _account, uint16 _countryId) public override onlyRole(KYC_PROVIDER_ROLE) { if (balanceOf(_account) == 0) revert KYCRequired(); + + // Check if account is in protection period (10 days from last sanction) + uint256 lastSanctionTime = sanctionedAt[_account]; + if (lastSanctionTime != 0 && block.timestamp - lastSanctionTime < EXIT_WINDOW_PERIOD) { + revert ExitWindowPeriod(_account, lastSanctionTime); + } + Metadata storage meta = _kycmetas[_account]; if (meta.sanctions.get(_countryId)) { meta.sanctions.unset(_countryId); @@ -412,6 +432,9 @@ contract KintoID is meta.updatedAt = block.timestamp; lastMonitoredAt = block.timestamp; emit SanctionRemoved(_account, _countryId, block.timestamp); + + // Reset sanction timestamp + sanctionedAt[_account] = 0; } } @@ -438,32 +461,32 @@ contract KintoID is /** * @notice Checks if an account has active sanctions - * @dev Account is considered safe if sanctions are not confirmed within 3 days + * @dev Account is considered safe if sanctions are not confirmed within SANCTION_EXPIRY_PERIOD * @param _account Address to check * @return bool True if the account has no active sanctions */ function isSanctionsSafe(address _account) public view virtual override returns (bool) { - // If the sanction is not confirmed within 3 days, consider the account sanctions safe + // If the sanction is not confirmed within SANCTION_EXPIRY_PERIOD, consider the account sanctions safe return isSanctionsMonitored(7) && ( _kycmetas[_account].sanctionsCount == 0 - || (sanctionedAt[_account] != 0 && (block.timestamp - sanctionedAt[_account]) > 3 days) + || (sanctionedAt[_account] != 0 && (block.timestamp - sanctionedAt[_account]) > SANCTION_EXPIRY_PERIOD) ); } /** * @notice Checks if an account is sanctioned in a specific country - * @dev Account is considered safe if sanction is not confirmed within 3 days + * @dev Account is considered safe if sanction is not confirmed within SANCTION_EXPIRY_PERIOD * @param _account Address to check * @param _countryId ID of the country to check sanctions for * @return bool True if the account is not sanctioned in the specified country */ function isSanctionsSafeIn(address _account, uint16 _countryId) external view virtual override returns (bool) { - // If the sanction is not confirmed within 3 days, consider the account sanctions safe + // If the sanction is not confirmed within SANCTION_EXPIRY_PERIOD, consider the account sanctions safe return isSanctionsMonitored(7) && ( !_kycmetas[_account].sanctions.get(_countryId) - || (sanctionedAt[_account] != 0 && (block.timestamp - sanctionedAt[_account]) > 3 days) + || (sanctionedAt[_account] != 0 && (block.timestamp - sanctionedAt[_account]) > SANCTION_EXPIRY_PERIOD) ); } @@ -629,6 +652,6 @@ contract KintoID is } } -contract KintoIDV9 is KintoID { +contract KintoIDV10 is KintoID { constructor(address _walletFactory, address _faucet) KintoID(_walletFactory, _faucet) {} } diff --git a/src/interfaces/IKintoID.sol b/src/interfaces/IKintoID.sol index 51239875..7e694985 100644 --- a/src/interfaces/IKintoID.sol +++ b/src/interfaces/IKintoID.sol @@ -45,6 +45,9 @@ interface IKintoID { /// @notice Thrown when attempting unauthorized token transfers error OnlyMintBurnOrTransfer(); + /// @notice Thrown when attempting to add or removing sanctions during exit widnow period + error ExitWindowPeriod(address user, uint256 sanctionedAt); + /* ============ Structs ============ */ struct Metadata { diff --git a/test/artifacts/7887/addresses.json b/test/artifacts/7887/addresses.json index 62f05a93..5c8efc1e 100644 --- a/test/artifacts/7887/addresses.json +++ b/test/artifacts/7887/addresses.json @@ -244,5 +244,6 @@ "AAVE": "0xaa0e00F095Eb986CB65FD3FA328782c7Fe4ceFD9", "KintoAppRegistryV22": "0xb9cE6BC89b79c713f34fd15D82a70900fEFD0de1", "KintoIDV9-impl": "0x7CFe474936fA50181ae7c2C43EeB8806e25bc983", - "SponsorPaymasterV15-impl": "0x2A10b80bE8Ee546C52Fde9b58d65D089C6B929BB" -} + "SponsorPaymasterV15-impl": "0x2A10b80bE8Ee546C52Fde9b58d65D089C6B929BB", + "KintoIDV10-impl": "0xaa0726829d41E3C70B84Bc5390cce82afC56871A" +} \ No newline at end of file diff --git a/test/unit/KintoID.t.sol b/test/unit/KintoID.t.sol index d4ad9e2f..a5748de1 100644 --- a/test/unit/KintoID.t.sol +++ b/test/unit/KintoID.t.sol @@ -278,18 +278,36 @@ contract KintoIDTest is SharedSetup { updates[0] = new IKintoID.MonitorUpdateData[](4); updates[0][0] = IKintoID.MonitorUpdateData(true, true, 5); // add trait 5 updates[0][1] = IKintoID.MonitorUpdateData(true, false, 1); // remove trait 1 - updates[0][2] = IKintoID.MonitorUpdateData(false, true, 6); // add sanction 6 - updates[0][3] = IKintoID.MonitorUpdateData(false, false, 2); // remove sanction 2 + updates[0][2] = IKintoID.MonitorUpdateData(true, true, 6); // add trait 6 + updates[0][3] = IKintoID.MonitorUpdateData(true, false, 2); // remove trait 2 vm.prank(_kycProvider); _kintoID.monitor(accounts, updates); assertEq(_kintoID.hasTrait(_user, 5), true); assertEq(_kintoID.hasTrait(_user, 1), false); - assertEq(_kintoID.isSanctionsSafeIn(_user, 5), true); - assertEq(_kintoID.isSanctionsSafeIn(_user, 1), true); - assertEq(_kintoID.isSanctionsSafeIn(_user, 6), false); - assertEq(_kintoID.isSanctionsSafeIn(_user, 2), true); + assertEq(_kintoID.hasTrait(_user, 6), true); + assertEq(_kintoID.hasTrait(_user, 2), false); + + updates = new IKintoID.MonitorUpdateData[][](1); + updates[0] = new IKintoID.MonitorUpdateData[](1); + updates[0][0] = IKintoID.MonitorUpdateData(false, true, 3); // add sanction 3 + + vm.prank(_kycProvider); + _kintoID.monitor(accounts, updates); + + assertEq(_kintoID.isSanctionsSafeIn(_user, 3), false); + + vm.warp(block.timestamp + 10 days); + + updates = new IKintoID.MonitorUpdateData[][](1); + updates[0] = new IKintoID.MonitorUpdateData[](1); + updates[0][0] = IKintoID.MonitorUpdateData(false, false, 3); // remove sanction 3 + + vm.prank(_kycProvider); + _kintoID.monitor(accounts, updates); + + assertEq(_kintoID.isSanctionsSafeIn(_user, 3), true); } /* ============ Trait tests ============ */ @@ -375,11 +393,10 @@ contract KintoIDTest is SharedSetup { /* ============ Sanction tests ============ */ function testAddSanction() public { + addKYC(); + vm.startPrank(_kycProvider); - IKintoID.SignatureData memory sigdata = _auxCreateSignature(_kintoID, _user, _userPk, block.timestamp + 1000); - uint16[] memory traits = new uint16[](1); - traits[0] = 1; - _kintoID.mintIndividualKyc(sigdata, traits); + _kintoID.addSanction(_user, 1); assertEq(_kintoID.isSanctionsSafeIn(_user, 1), false); @@ -388,11 +405,10 @@ contract KintoIDTest is SharedSetup { } function testAddSanction_WhenNotConfirmed() public { + addKYC(); + vm.startPrank(_kycProvider); - IKintoID.SignatureData memory sigdata = _auxCreateSignature(_kintoID, _user, _userPk, block.timestamp + 1000); - uint16[] memory traits = new uint16[](1); - traits[0] = 1; - _kintoID.mintIndividualKyc(sigdata, traits); + _kintoID.addSanction(_user, 1); assertEq(_kintoID.isSanctionsSafeIn(_user, 1), false); @@ -410,20 +426,109 @@ contract KintoIDTest is SharedSetup { assertEq(_kintoID.sanctionedAt(_user), sanctionTime); } + function testRemoveSancion_RevertWhenInExitWindowPeriod() public { + addKYC(); + + vm.startPrank(_kycProvider); + _kintoID.addSanction(_user, 1); + assertEq(_kintoID.isSanctionsSafeIn(_user, 1), false); + + vm.expectRevert(abi.encodeWithSelector(IKintoID.ExitWindowPeriod.selector, _user, _kintoID.sanctionedAt(_user))); + _kintoID.removeSanction(_user, 1); + vm.stopPrank(); + } + function testRemoveSancion() public { + addKYC(); + vm.startPrank(_kycProvider); - IKintoID.SignatureData memory sigdata = _auxCreateSignature(_kintoID, _user, _userPk, block.timestamp + 1000); - uint16[] memory traits = new uint16[](1); - traits[0] = 1; - _kintoID.mintIndividualKyc(sigdata, traits); _kintoID.addSanction(_user, 1); assertEq(_kintoID.isSanctionsSafeIn(_user, 1), false); + + // has to wait for the exit window to be over + vm.warp(block.timestamp + 10 days); + _kintoID.removeSanction(_user, 1); + vm.stopPrank(); + assertEq(_kintoID.isSanctionsSafeIn(_user, 1), true); assertEq(_kintoID.isSanctionsSafe(_user), true); assertEq(_kintoID.lastMonitoredAt(), block.timestamp); } + function testAddSanction_BlockedDuringExitWindow() public { + addKYC(); + + vm.startPrank(_kycProvider); + + // Add initial sanction + _kintoID.addSanction(_user, 1); + uint256 sanctionTime = block.timestamp; + + // Try adding another sanction during exit window + vm.expectRevert(abi.encodeWithSelector(IKintoID.ExitWindowPeriod.selector, _user, sanctionTime)); + _kintoID.addSanction(_user, 2); + + // Try at different times during window + vm.warp(block.timestamp + 5 days); + vm.expectRevert(abi.encodeWithSelector(IKintoID.ExitWindowPeriod.selector, _user, sanctionTime)); + _kintoID.addSanction(_user, 2); + + // Should succeed after window + vm.warp(sanctionTime + 10 days + 1); + _kintoID.addSanction(_user, 2); + + vm.stopPrank(); + } + + function testRemoveSanction_BlockedDuringExitWindow() public { + addKYC(); + + vm.startPrank(_kycProvider); + + // Add sanction + _kintoID.addSanction(_user, 1); + uint256 sanctionTime = block.timestamp; + + // Try removing during exit window + vm.expectRevert(abi.encodeWithSelector(IKintoID.ExitWindowPeriod.selector, _user, sanctionTime)); + _kintoID.removeSanction(_user, 1); + + // Try halfway through window + vm.warp(block.timestamp + 5 days); + vm.expectRevert(abi.encodeWithSelector(IKintoID.ExitWindowPeriod.selector, _user, sanctionTime)); + _kintoID.removeSanction(_user, 1); + + // Should succeed after window + vm.warp(sanctionTime + 10 days + 1); + _kintoID.removeSanction(_user, 1); + + vm.stopPrank(); + } + + function testExitWindow_MultipleSanctions() public { + addKYC(); + + vm.startPrank(_kycProvider); + + // Add first sanction + _kintoID.addSanction(_user, 1); + uint256 firstSanctionTime = block.timestamp; + + // Advance past window + vm.warp(firstSanctionTime + 10 days + 1); + + // Add second sanction + _kintoID.addSanction(_user, 2); + uint256 secondSanctionTime = block.timestamp; + + // Try removing first sanction during second's window + vm.expectRevert(abi.encodeWithSelector(IKintoID.ExitWindowPeriod.selector, _user, secondSanctionTime)); + _kintoID.removeSanction(_user, 1); + + vm.stopPrank(); + } + function testAddSanction_RevertWhen_CallerIsNotKYCProvider() public { approveKYC(_kycProvider, _user, _userPk, new uint16[](1)); @@ -559,4 +664,13 @@ contract KintoIDTest is SharedSetup { assertTrue(_kintoID.supportsInterface(InterfaceERC721Upgradeable)); } + + function addKYC() public { + vm.startPrank(_kycProvider); + IKintoID.SignatureData memory sigdata = _auxCreateSignature(_kintoID, _user, _userPk, block.timestamp + 1000); + uint16[] memory traits = new uint16[](1); + traits[0] = 1; + _kintoID.mintIndividualKyc(sigdata, traits); + vm.stopPrank(); + } }