diff --git a/broadcast/116-upgrade_engenbadges.s.sol/7887/run-1735578465.json b/broadcast/116-upgrade_engenbadges.s.sol/7887/run-1735578465.json new file mode 100644 index 000000000..0a9090c01 --- /dev/null +++ b/broadcast/116-upgrade_engenbadges.s.sol/7887/run-1735578465.json @@ -0,0 +1,131 @@ +{ + "transactions": [ + { + "hash": "0xe8832dd1d38eb89485d5c48b569fefad2ff234dd6940e7bd9b1f237d3ba419d4", + "transactionType": "CREATE2", + "contractName": "EngenBadges", + "contractAddress": "0x0b1ccf9bc0fff49b0fe3ee4541bf71253c54de14", + "function": null, + "arguments": null, + "transaction": { + "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "value": "0x0", + "input": "0x936a052e832d05db833c1fb152ee9d04cb963f54db694a4cc58e037932bdbf6160a06040523060805234801561001457600080fd5b5060805161329661004c6000396000818161097b015281816109bb01528181610d2001528181610d600152610def01526132966000f3fe6080604052600436106101c15760003560e01c806352d1902d116100f7578063a22cb46511610095578063f242432a11610064578063f242432a14610563578063f2fde38b14610583578063f62d1888146105a3578063f72c0d8b146105c357600080fd5b8063a22cb465146104b8578063d5391393146104d8578063d547741f146104fa578063e985e9c51461051a57600080fd5b80638da5cb5b116100d15780638da5cb5b1461042a57806391d148541461045357806395d89b4114610473578063a217fddf146104a357600080fd5b806352d1902d146103e0578063715018a6146103f557806382009ec01461040a57600080fd5b80632f2ff15d1161016457806336cb63bb1161013e57806336cb63bb146103605780634ca6f3f5146103805780634e1273f4146103a05780634f1ef286146103cd57600080fd5b80632f2ff15d1461030057806336568abe146103205780633659cfe61461034057600080fd5b80630e89341c116101a05780630e89341c1461026e578063248a9ca31461028e5780632906cb9e146102be5780632eb2c2d6146102e057600080fd5b8062fdd58e146101c657806301ffc9a7146101f957806306fdde0314610229575b600080fd5b3480156101d257600080fd5b506101e66101e136600461245f565b6105f7565b6040519081526020015b60405180910390f35b34801561020557600080fd5b5061021961021436600461249f565b610692565b60405190151581526020016101f0565b34801561023557600080fd5b506102616040518060400160405280600c81526020016b456e67656e2042616467657360a01b81525081565b6040516101f0919061250c565b34801561027a57600080fd5b5061026161028936600461251f565b61069d565b34801561029a57600080fd5b506101e66102a936600461251f565b60009081526097602052604090206001015490565b3480156102ca57600080fd5b506102de6102d936600461270f565b610731565b005b3480156102ec57600080fd5b506102de6102fb366004612813565b610884565b34801561030c57600080fd5b506102de61031b3660046128bc565b6108c9565b34801561032c57600080fd5b506102de61033b3660046128bc565b6108f3565b34801561034c57600080fd5b506102de61035b3660046128e8565b610971565b34801561036c57600080fd5b506102de61037b366004612903565b610a50565b34801561038c57600080fd5b506102de61039b366004612966565b610b25565b3480156103ac57600080fd5b506103c06103bb3660046129a9565b610bf5565b6040516101f09190612a3e565b6102de6103db366004612a51565b610d16565b3480156103ec57600080fd5b506101e6610de2565b34801561040157600080fd5b506102de610e96565b34801561041657600080fd5b506103c061042536600461245f565b610eaa565b34801561043657600080fd5b5061012d546040516001600160a01b0390911681526020016101f0565b34801561045f57600080fd5b5061021961046e3660046128bc565b610f3f565b34801561047f57600080fd5b506102616040518060400160405280600481526020016322a723a160e11b81525081565b3480156104af57600080fd5b506101e6600081565b3480156104c457600080fd5b506102de6104d3366004612a94565b610f6a565b3480156104e457600080fd5b506101e660008051602061324183398151915281565b34801561050657600080fd5b506102de6105153660046128bc565b610f75565b34801561052657600080fd5b50610219610535366004612ad0565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561056f57600080fd5b506102de61057e366004612afa565b610f9a565b34801561058f57600080fd5b506102de61059e3660046128e8565b610fdf565b3480156105af57600080fd5b506102de6105be366004612b5e565b611055565b3480156105cf57600080fd5b506101e67f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b60006001600160a01b0383166106675760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061068c826111c4565b6060606780546106ac90612ba6565b80601f01602080910402602001604051908101604052809291908181526020018280546106d890612ba6565b80156107255780601f106106fa57610100808354040283529160200191610725565b820191906000526020600020905b81548152906001019060200180831161070857829003601f168201915b50505050509050919050565b600080516020613241833981519152610749816111e9565b8251845114158061075c57508151845114155b1561077a5760405163a0b1d72d60e01b815260040160405180910390fd5b60fa8451111561079d5760405163bbaefd2960e01b815260040160405180910390fd5b82516000036107bf5760405163ceb7371d60e01b815260040160405180910390fd5b60005b845181101561087d578281815181106107dd576107dd612be0565b6020026020010151518482815181106107f8576107f8612be0565b6020026020010151511461081f5760405163a0b1d72d60e01b815260040160405180910390fd5b61087585828151811061083457610834612be0565b602002602001015185838151811061084e5761084e612be0565b602002602001015185848151811061086857610868612be0565b60200260200101516111f3565b6001016107c2565b5050505050565b6001600160a01b0385163314806108a057506108a08533610535565b6108bc5760405162461bcd60e51b815260040161065e90612bf6565b61087d8585858585611400565b6000828152609760205260409020600101546108e4816111e9565b6108ee83836115a6565b505050565b6001600160a01b03811633146109635760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161065e565b61096d828261162c565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109b95760405162461bcd60e51b815260040161065e90612c44565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a026000805160206131fa833981519152546001600160a01b031690565b6001600160a01b031614610a285760405162461bcd60e51b815260040161065e90612c90565b610a3181611693565b60408051600080825260208201909252610a4d918391906116bd565b50565b600080516020613241833981519152610a68816111e9565b8151835114610a8a5760405163a0b1d72d60e01b815260040160405180910390fd5b60fa83511115610aad5760405163a13df50b60e01b815260040160405180910390fd5b8151600003610acf5760405163ceb7371d60e01b815260040160405180910390fd5b60005b8351811015610b1f57610b17848281518110610af057610af0612be0565b6020026020010151848381518110610b0a57610b0a612be0565b6020026020010151610b25565b600101610ad2565b50505050565b600080516020613241833981519152610b3d816111e9565b8151600003610b5f5760405163ceb7371d60e01b815260040160405180910390fd5b600082516001600160401b03811115610b7a57610b7a612538565b604051908082528060200260200182016040528015610ba3578160200160208202803683370190505b50905060005b8351811015610bd9576001828281518110610bc657610bc6612be0565b6020908102919091010152600101610ba9565b50610b1f84848360405180602001604052806000815250611828565b60608151835114610c5a5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161065e565b600083516001600160401b03811115610c7557610c75612538565b604051908082528060200260200182016040528015610c9e578160200160208202803683370190505b50905060005b8451811015610d0e57610ce9858281518110610cc257610cc2612be0565b6020026020010151858381518110610cdc57610cdc612be0565b60200260200101516105f7565b828281518110610cfb57610cfb612be0565b6020908102919091010152600101610ca4565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d5e5760405162461bcd60e51b815260040161065e90612c44565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610da76000805160206131fa833981519152546001600160a01b031690565b6001600160a01b031614610dcd5760405162461bcd60e51b815260040161065e90612c90565b610dd682611693565b61096d828260016116bd565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161065e565b506000805160206131fa8339815191525b90565b610e9e6119b2565b610ea86000611a0d565b565b60606000610eb9836001612cf2565b6001600160401b03811115610ed057610ed0612538565b604051908082528060200260200182016040528015610ef9578160200160208202803683370190505b50905060005b838111610d0e57610f1085826105f7565b828281518110610f2257610f22612be0565b602090810291909101015280610f3781612d05565b915050610eff565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61096d338383611a60565b600082815260976020526040902060010154610f90816111e9565b6108ee838361162c565b6001600160a01b038516331480610fb65750610fb68533610535565b610fd25760405162461bcd60e51b815260040161065e90612bf6565b61087d8585858585611b40565b610fe76119b2565b6001600160a01b03811661104c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065e565b610a4d81611a0d565b600054610100900460ff16158080156110755750600054600160ff909116105b8061108f5750303b15801561108f575060005460ff166001145b6110f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161065e565b6000805460ff191660011790558015611115576000805461ff0019166101001790555b61111e82611c7c565b611126611cac565b61112e611cac565b6111396000336115a6565b611151600080516020613241833981519152336115a6565b61117b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3336115a6565b801561096d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60006001600160e01b03198216637965db0b60e01b148061068c575061068c82611cd3565b610a4d8133611d23565b6001600160a01b0383166112555760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161065e565b80518251146112765760405162461bcd60e51b815260040161065e90612d1e565b600033905061129981856000868660405180602001604052806000815250611d7c565b60005b83518110156113935760008482815181106112b9576112b9612be0565b6020026020010151905060008483815181106112d7576112d7612be0565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156113645760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161065e565b60009283526065602090815260408085206001600160a01b038b1686529091529092209103905560010161129c565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113e4929190612d66565b60405180910390a4604080516020810190915260009052610b1f565b81518351146114215760405162461bcd60e51b815260040161065e90612d1e565b6001600160a01b0384166114475760405162461bcd60e51b815260040161065e90612d94565b33611456818787878787611d7c565b60005b845181101561153857600085828151811061147657611476612be0565b60200260200101519050600085838151811061149457611494612be0565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156114e55760405162461bcd60e51b815260040161065e90612dd9565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611524908490612cf2565b909155505060019093019250611459915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611588929190612d66565b60405180910390a461159e818787878787611dba565b505050505050565b6115b08282610f3f565b61096d5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556115e83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6116368282610f3f565b1561096d5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361096d816111e9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116f0576108ee83611f1e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561174a575060408051601f3d908101601f1916820190925261174791810190612e23565b60015b6117ad5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161065e565b6000805160206131fa833981519152811461181c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161065e565b506108ee838383611fba565b6001600160a01b0384166118885760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161065e565b81518351146118a95760405162461bcd60e51b815260040161065e90612d1e565b336118b981600087878787611d7c565b60005b845181101561194a578381815181106118d7576118d7612be0565b6020026020010151606560008784815181106118f5576118f5612be0565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461193d9190612cf2565b90915550506001016118bc565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161199b929190612d66565b60405180910390a461087d81600087878787611dba565b61012d546001600160a01b03163314610ea85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065e565b61012d80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603611ad35760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161065e565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416611b665760405162461bcd60e51b815260040161065e90612d94565b336000611b7285611fdf565b90506000611b7f85611fdf565b9050611b8f838989858589611d7c565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015611bd25760405162461bcd60e51b815260040161065e90612dd9565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611c11908490612cf2565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611c71848a8a8a8a8a61202a565b505050505050505050565b600054610100900460ff16611ca35760405162461bcd60e51b815260040161065e90612e3c565b610a4d816120e5565b600054610100900460ff16610ea85760405162461bcd60e51b815260040161065e90612e3c565b60006001600160e01b03198216636cdb3d1360e11b1480611d0457506001600160e01b031982166303a24d0760e21b145b8061068c57506301ffc9a760e01b6001600160e01b031983161461068c565b611d2d8282610f3f565b61096d57611d3a81612115565b611d45836020612127565b604051602001611d56929190612e87565b60408051601f198184030181529082905262461bcd60e51b825261065e9160040161250c565b6001600160a01b03851615801590611d9c57506001600160a01b03841615155b1561159e57604051638cd22d1960e01b815260040160405180910390fd5b6001600160a01b0384163b1561159e5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611dfe9089908990889088908890600401612efc565b6020604051808303816000875af1925050508015611e39575060408051601f3d908101601f19168201909252611e3691810190612f5a565b60015b611ee557611e45612f77565b806308c379a003611e7e5750611e59612f92565b80611e645750611e80565b8060405162461bcd60e51b815260040161065e919061250c565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161065e565b6001600160e01b0319811663bc197c8160e01b14611f155760405162461bcd60e51b815260040161065e9061301b565b50505050505050565b6001600160a01b0381163b611f8b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161065e565b6000805160206131fa83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611fc3836122c9565b600082511180611fd05750805b156108ee57610b1f8383612309565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061201957612019612be0565b602090810291909101015292915050565b6001600160a01b0384163b1561159e5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061206e9089908990889088908890600401613063565b6020604051808303816000875af19250505080156120a9575060408051601f3d908101601f191682019092526120a691810190612f5a565b60015b6120b557611e45612f77565b6001600160e01b0319811663f23a6e6160e01b14611f155760405162461bcd60e51b815260040161065e9061301b565b600054610100900460ff1661210c5760405162461bcd60e51b815260040161065e90612e3c565b610a4d8161232e565b606061068c6001600160a01b03831660145b606060006121368360026130a8565b612141906002612cf2565b6001600160401b0381111561215857612158612538565b6040519080825280601f01601f191660200182016040528015612182576020820181803683370190505b509050600360fc1b8160008151811061219d5761219d612be0565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106121cc576121cc612be0565b60200101906001600160f81b031916908160001a90535060006121f08460026130a8565b6121fb906001612cf2565b90505b6001811115612273576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061222f5761222f612be0565b1a60f81b82828151811061224557612245612be0565b60200101906001600160f81b031916908160001a90535060049490941c9361226c816130bf565b90506121fe565b5083156122c25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161065e565b9392505050565b6122d281611f1e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606122c2838360405180606001604052806027815260200161321a6027913961233a565b606761096d828261311e565b6060600080856001600160a01b03168560405161235791906131dd565b600060405180830381855af49150503d8060008114612392576040519150601f19603f3d011682016040523d82523d6000602084013e612397565b606091505b50915091506123a8868383876123b2565b9695505050505050565b6060831561242157825160000361241a576001600160a01b0385163b61241a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161065e565b508161242b565b61242b8383612433565b949350505050565b815115611e645781518083602001fd5b80356001600160a01b038116811461245a57600080fd5b919050565b6000806040838503121561247257600080fd5b61247b83612443565b946020939093013593505050565b6001600160e01b031981168114610a4d57600080fd5b6000602082840312156124b157600080fd5b81356122c281612489565b60005b838110156124d75781810151838201526020016124bf565b50506000910152565b600081518084526124f88160208601602086016124bc565b601f01601f19169290920160200192915050565b6020815260006122c260208301846124e0565b60006020828403121561253157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b038111828210171561257357612573612538565b6040525050565b60006001600160401b0382111561259357612593612538565b5060051b60200190565b600082601f8301126125ae57600080fd5b813560206125bb8261257a565b6040516125c8828261254e565b80915083815260208101915060208460051b8701019350868411156125ec57600080fd5b602086015b8481101561260f5761260281612443565b83529183019183016125f1565b509695505050505050565b600082601f83011261262b57600080fd5b813560206126388261257a565b604051612645828261254e565b80915083815260208101915060208460051b87010193508684111561266957600080fd5b602086015b8481101561260f578035835291830191830161266e565b600082601f83011261269657600080fd5b813560206126a38261257a565b6040516126b0828261254e565b83815260059390931b85018201928281019150868411156126d057600080fd5b8286015b8481101561260f5780356001600160401b038111156126f35760008081fd5b6127018986838b010161261a565b8452509183019183016126d4565b60008060006060848603121561272457600080fd5b83356001600160401b038082111561273b57600080fd5b6127478783880161259d565b9450602086013591508082111561275d57600080fd5b61276987838801612685565b9350604086013591508082111561277f57600080fd5b5061278c86828701612685565b9150509250925092565b60006001600160401b038311156127af576127af612538565b6040516127c6601f8501601f19166020018261254e565b8091508381528484840111156127db57600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261280457600080fd5b6122c283833560208501612796565b600080600080600060a0868803121561282b57600080fd5b61283486612443565b945061284260208701612443565b935060408601356001600160401b038082111561285e57600080fd5b61286a89838a0161261a565b9450606088013591508082111561288057600080fd5b61288c89838a0161261a565b935060808801359150808211156128a257600080fd5b506128af888289016127f3565b9150509295509295909350565b600080604083850312156128cf57600080fd5b823591506128df60208401612443565b90509250929050565b6000602082840312156128fa57600080fd5b6122c282612443565b6000806040838503121561291657600080fd5b82356001600160401b038082111561292d57600080fd5b6129398683870161259d565b9350602085013591508082111561294f57600080fd5b5061295c85828601612685565b9150509250929050565b6000806040838503121561297957600080fd5b61298283612443565b915060208301356001600160401b0381111561299d57600080fd5b61295c8582860161261a565b600080604083850312156129bc57600080fd5b82356001600160401b03808211156129d357600080fd5b6129df8683870161259d565b935060208501359150808211156129f557600080fd5b5061295c8582860161261a565b60008151808452602080850194506020840160005b83811015612a3357815187529582019590820190600101612a17565b509495945050505050565b6020815260006122c26020830184612a02565b60008060408385031215612a6457600080fd5b612a6d83612443565b915060208301356001600160401b03811115612a8857600080fd5b61295c858286016127f3565b60008060408385031215612aa757600080fd5b612ab083612443565b915060208301358015158114612ac557600080fd5b809150509250929050565b60008060408385031215612ae357600080fd5b612aec83612443565b91506128df60208401612443565b600080600080600060a08688031215612b1257600080fd5b612b1b86612443565b9450612b2960208701612443565b9350604086013592506060860135915060808601356001600160401b03811115612b5257600080fd5b6128af888289016127f3565b600060208284031215612b7057600080fd5b81356001600160401b03811115612b8657600080fd5b8201601f81018413612b9757600080fd5b61242b84823560208401612796565b600181811c90821680612bba57607f821691505b602082108103612bda57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561068c5761068c612cdc565b600060018201612d1757612d17612cdc565b5060010190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b604081526000612d796040830185612a02565b8281036020840152612d8b8185612a02565b95945050505050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b600060208284031215612e3557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612ebf8160178501602088016124bc565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612ef08160288401602088016124bc565b01602801949350505050565b6001600160a01b0386811682528516602082015260a060408201819052600090612f2890830186612a02565b8281036060840152612f3a8186612a02565b90508281036080840152612f4e81856124e0565b98975050505050505050565b600060208284031215612f6c57600080fd5b81516122c281612489565b600060033d1115610e935760046000803e5060005160e01c90565b600060443d1015612fa05790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612fcf57505050505090565b8285019150815181811115612fe75750505050505090565b843d87010160208285010111156130015750505050505090565b6130106020828601018761254e565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061309d908301846124e0565b979650505050505050565b808202811582820484141761068c5761068c612cdc565b6000816130ce576130ce612cdc565b506000190190565b601f8211156108ee576000816000526020600020601f850160051c810160208610156130ff5750805b601f850160051c820191505b8181101561159e5782815560010161310b565b81516001600160401b0381111561313757613137612538565b61314b816131458454612ba6565b846130d6565b602080601f83116001811461318057600084156131685750858301515b600019600386901b1c1916600185901b17855561159e565b600085815260208120601f198616915b828110156131af57888601518255948401946001909101908401613190565b50858210156131cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516131ef8184602087016124bc565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a26469706673582212207ff6a95385b42e630742e361a802a0e41157f9784d4722c15b1d089e1186632d64736f6c63430008180033", + "nonce": "0x4b94e", + "chainId": "0x1ecf" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "function": "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)", + "arguments": [ + "[(0x2e2B1c42E38f5af81771e65D87729E57ABD1337a, 3924, 0x, 0xb61d27f60000000000000000000000001d950ea52e436854b8d343134863b214544990250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe60000000000000000000000000b1ccf9bc0fff49b0fe3ee4541bf71253c54de1400000000000000000000000000000000000000000000000000000000, 4000000, 210000, 21000, 1, 1000000000, 0x0000000000000000000000000000000000000000, 0x588af90e4f19efd5bef3f055a736331fe217dcc67eea22b88b1110b0d00465205acb77d38c14060388c8b1b0a37d2b3aa5f2e8c7abde96a6c0dfa01cfe34d1681c3cecd7718394d7f4e0ff0c317d72f9df5c481a9139fdf2511f15c273bbfbf3e37236fcfd11526ff3d4a28588d372279d50417d7af3981ad64d7159a4947022e21c)]", + "0x660ad4B5A74130a4796B4d54BC6750Ae93C86e6c" + ], + "transaction": { + "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", + "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "value": "0x0", + "input": "0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000660ad4b5a74130a4796b4d54bc6750ae93c86e6c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a0000000000000000000000000000000000000000000000000000000000000f540000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000003345000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4b61d27f60000000000000000000000001d950ea52e436854b8d343134863b214544990250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe60000000000000000000000000b1ccf9bc0fff49b0fe3ee4541bf71253c54de140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082588af90e4f19efd5bef3f055a736331fe217dcc67eea22b88b1110b0d00465205acb77d38c14060388c8b1b0a37d2b3aa5f2e8c7abde96a6c0dfa01cfe34d1681c3cecd7718394d7f4e0ff0c317d72f9df5c481a9139fdf2511f15c273bbfbf3e37236fcfd11526ff3d4a28588d372279d50417d7af3981ad64d7159a4947022e21c000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x4b94f", + "chainId": "0x1ecf" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x7f016c", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe8832dd1d38eb89485d5c48b569fefad2ff234dd6940e7bd9b1f237d3ba419d4", + "transactionIndex": "0x1", + "blockHash": "0x45eb88f14bd4fc4506710ed7622b2c9ec3f4b3c10140a38327f9529df712a746", + "blockNumber": "0xa8e83", + "gasUsed": "0x7f016c", + "effectiveGasPrice": "0x5f5e100", + "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null, + "gasUsedForL1": "0x536ecf", + "l1BlockNumber": "0x1485188" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x92c2b", + "logs": [ + { + "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "topics": [ + "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" + ], + "data": "0x", + "blockHash": "0xd1f90ebcdbb6e0ab9d52e3d791cb541bbf1d52ffdf495d4eafd9ef0cb87a4ee2", + "blockNumber": "0xa8e84", + "transactionHash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0x1d950ea52e436854b8d343134863b21454499025", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000000b1ccf9bc0fff49b0fe3ee4541bf71253c54de14" + ], + "data": "0x", + "blockHash": "0xd1f90ebcdbb6e0ab9d52e3d791cb541bbf1d52ffdf495d4eafd9ef0cb87a4ee2", + "blockNumber": "0xa8e84", + "transactionHash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", + "transactionIndex": "0x1", + "logIndex": "0x1", + "removed": false + }, + { + "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "topics": [ + "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", + "0xb91891c09e3a82e342c1480ac8255529d2e54afd9c06e1708699e80c177fdd3d", + "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000f54000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000854340000000000000000000000000000000000000000000000000000000000085434", + "blockHash": "0xd1f90ebcdbb6e0ab9d52e3d791cb541bbf1d52ffdf495d4eafd9ef0cb87a4ee2", + "blockNumber": "0xa8e84", + "transactionHash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", + "transactionIndex": "0x1", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000400000000000000000000000000400000000000000000000000000000000008000000000000000000010000000000000000000000000000020080080000000000000000000000000000000002000000000000000000000000008000000800000000020000000000000000000800802000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000400000000000000400000000000000000000000000000000002000040000000000020000000100001000000000000000000000008000000000000000020000000000000010000000000000000000000000000000000200000000000000000", + "type": "0x2", + "transactionHash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", + "transactionIndex": "0x1", + "blockHash": "0xd1f90ebcdbb6e0ab9d52e3d791cb541bbf1d52ffdf495d4eafd9ef0cb87a4ee2", + "blockNumber": "0xa8e84", + "gasUsed": "0x92c2b", + "effectiveGasPrice": "0x5f5e100", + "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", + "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "contractAddress": null, + "gasUsedForL1": "0x67c1a", + "l1BlockNumber": "0x1485188" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1735578465, + "chain": 7887, + "commit": "1416edf" +} \ No newline at end of file diff --git a/broadcast/116-upgrade_engenbadges.s.sol/7887/run-latest.json b/broadcast/116-upgrade_engenbadges.s.sol/7887/run-latest.json index efa18bf01..0a9090c01 100644 --- a/broadcast/116-upgrade_engenbadges.s.sol/7887/run-latest.json +++ b/broadcast/116-upgrade_engenbadges.s.sol/7887/run-latest.json @@ -1,36 +1,39 @@ { "transactions": [ { - "hash": "0x3248b97104a2e7d604486280d75a8e13d37a30b17b06b94e73ff08fa98d43fa9", - "transactionType": "CALL", - "contractName": null, - "contractAddress": null, + "hash": "0xe8832dd1d38eb89485d5c48b569fefad2ff234dd6940e7bd9b1f237d3ba419d4", + "transactionType": "CREATE2", + "contractName": "EngenBadges", + "contractAddress": "0x0b1ccf9bc0fff49b0fe3ee4541bf71253c54de14", "function": null, "arguments": null, "transaction": { "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", "value": "0x0", - "input": "0x4ade54ca82b345967b61d43a7b6e1c256d140cceb65202e7117104371c17959c60a06040523060805234801561001457600080fd5b5060805161321b61004c6000396000818161097b015281816109bb01528181610d2001528181610d600152610def015261321b6000f3fe6080604052600436106101c15760003560e01c806352d1902d116100f7578063a22cb46511610095578063f242432a11610064578063f242432a14610563578063f2fde38b14610583578063f62d1888146105a3578063f72c0d8b146105c357600080fd5b8063a22cb465146104b8578063d5391393146104d8578063d547741f146104fa578063e985e9c51461051a57600080fd5b80638da5cb5b116100d15780638da5cb5b1461042a57806391d148541461045357806395d89b4114610473578063a217fddf146104a357600080fd5b806352d1902d146103e0578063715018a6146103f557806382009ec01461040a57600080fd5b80632f2ff15d1161016457806336cb63bb1161013e57806336cb63bb146103605780634ca6f3f5146103805780634e1273f4146103a05780634f1ef286146103cd57600080fd5b80632f2ff15d1461030057806336568abe146103205780633659cfe61461034057600080fd5b80630e89341c116101a05780630e89341c1461026e578063248a9ca31461028e5780632906cb9e146102be5780632eb2c2d6146102e057600080fd5b8062fdd58e146101c657806301ffc9a7146101f957806306fdde0314610229575b600080fd5b3480156101d257600080fd5b506101e66101e13660046123e4565b6105f7565b6040519081526020015b60405180910390f35b34801561020557600080fd5b50610219610214366004612424565b610692565b60405190151581526020016101f0565b34801561023557600080fd5b506102616040518060400160405280600c81526020016b456e67656e2042616467657360a01b81525081565b6040516101f09190612491565b34801561027a57600080fd5b506102616102893660046124a4565b61069d565b34801561029a57600080fd5b506101e66102a93660046124a4565b60009081526097602052604090206001015490565b3480156102ca57600080fd5b506102de6102d9366004612694565b610731565b005b3480156102ec57600080fd5b506102de6102fb366004612798565b610884565b34801561030c57600080fd5b506102de61031b366004612841565b6108c9565b34801561032c57600080fd5b506102de61033b366004612841565b6108f3565b34801561034c57600080fd5b506102de61035b36600461286d565b610971565b34801561036c57600080fd5b506102de61037b366004612888565b610a50565b34801561038c57600080fd5b506102de61039b3660046128eb565b610b25565b3480156103ac57600080fd5b506103c06103bb36600461292e565b610bf5565b6040516101f091906129c3565b6102de6103db3660046129d6565b610d16565b3480156103ec57600080fd5b506101e6610de2565b34801561040157600080fd5b506102de610e96565b34801561041657600080fd5b506103c06104253660046123e4565b610eaa565b34801561043657600080fd5b5061012d546040516001600160a01b0390911681526020016101f0565b34801561045f57600080fd5b5061021961046e366004612841565b610f3f565b34801561047f57600080fd5b506102616040518060400160405280600481526020016322a723a160e11b81525081565b3480156104af57600080fd5b506101e6600081565b3480156104c457600080fd5b506102de6104d3366004612a19565b610f6a565b3480156104e457600080fd5b506101e66000805160206131c683398151915281565b34801561050657600080fd5b506102de610515366004612841565b610f75565b34801561052657600080fd5b50610219610535366004612a55565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561056f57600080fd5b506102de61057e366004612a7f565b610f9a565b34801561058f57600080fd5b506102de61059e36600461286d565b610fdf565b3480156105af57600080fd5b506102de6105be366004612ae3565b611055565b3480156105cf57600080fd5b506101e67f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b60006001600160a01b0383166106675760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061068c826111c4565b6060606780546106ac90612b2b565b80601f01602080910402602001604051908101604052809291908181526020018280546106d890612b2b565b80156107255780601f106106fa57610100808354040283529160200191610725565b820191906000526020600020905b81548152906001019060200180831161070857829003601f168201915b50505050509050919050565b6000805160206131c6833981519152610749816111e9565b8251845114158061075c57508151845114155b1561077a5760405163a0b1d72d60e01b815260040160405180910390fd5b60fa8451111561079d5760405163bbaefd2960e01b815260040160405180910390fd5b82516000036107bf5760405163ceb7371d60e01b815260040160405180910390fd5b60005b845181101561087d578281815181106107dd576107dd612b65565b6020026020010151518482815181106107f8576107f8612b65565b6020026020010151511461081f5760405163a0b1d72d60e01b815260040160405180910390fd5b61087585828151811061083457610834612b65565b602002602001015185838151811061084e5761084e612b65565b602002602001015185848151811061086857610868612b65565b60200260200101516111f3565b6001016107c2565b5050505050565b6001600160a01b0385163314806108a057506108a08533610535565b6108bc5760405162461bcd60e51b815260040161065e90612b7b565b61087d85858585856113ee565b6000828152609760205260409020600101546108e4816111e9565b6108ee8383611586565b505050565b6001600160a01b03811633146109635760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161065e565b61096d828261160c565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109b95760405162461bcd60e51b815260040161065e90612bc9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a0260008051602061317f833981519152546001600160a01b031690565b6001600160a01b031614610a285760405162461bcd60e51b815260040161065e90612c15565b610a3181611673565b60408051600080825260208201909252610a4d9183919061169d565b50565b6000805160206131c6833981519152610a68816111e9565b8151835114610a8a5760405163a0b1d72d60e01b815260040160405180910390fd5b60fa83511115610aad5760405163a13df50b60e01b815260040160405180910390fd5b8151600003610acf5760405163ceb7371d60e01b815260040160405180910390fd5b60005b8351811015610b1f57610b17848281518110610af057610af0612b65565b6020026020010151848381518110610b0a57610b0a612b65565b6020026020010151610b25565b600101610ad2565b50505050565b6000805160206131c6833981519152610b3d816111e9565b8151600003610b5f5760405163ceb7371d60e01b815260040160405180910390fd5b600082516001600160401b03811115610b7a57610b7a6124bd565b604051908082528060200260200182016040528015610ba3578160200160208202803683370190505b50905060005b8351811015610bd9576001828281518110610bc657610bc6612b65565b6020908102919091010152600101610ba9565b50610b1f84848360405180602001604052806000815250611808565b60608151835114610c5a5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161065e565b600083516001600160401b03811115610c7557610c756124bd565b604051908082528060200260200182016040528015610c9e578160200160208202803683370190505b50905060005b8451811015610d0e57610ce9858281518110610cc257610cc2612b65565b6020026020010151858381518110610cdc57610cdc612b65565b60200260200101516105f7565b828281518110610cfb57610cfb612b65565b6020908102919091010152600101610ca4565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d5e5760405162461bcd60e51b815260040161065e90612bc9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610da760008051602061317f833981519152546001600160a01b031690565b6001600160a01b031614610dcd5760405162461bcd60e51b815260040161065e90612c15565b610dd682611673565b61096d8282600161169d565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161065e565b5060008051602061317f8339815191525b90565b610e9e611983565b610ea860006119de565b565b60606000610eb9836001612c77565b6001600160401b03811115610ed057610ed06124bd565b604051908082528060200260200182016040528015610ef9578160200160208202803683370190505b50905060005b838111610d0e57610f1085826105f7565b828281518110610f2257610f22612b65565b602090810291909101015280610f3781612c8a565b915050610eff565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61096d338383611a31565b600082815260976020526040902060010154610f90816111e9565b6108ee838361160c565b6001600160a01b038516331480610fb65750610fb68533610535565b610fd25760405162461bcd60e51b815260040161065e90612b7b565b61087d8585858585611b11565b610fe7611983565b6001600160a01b03811661104c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065e565b610a4d816119de565b600054610100900460ff16158080156110755750600054600160ff909116105b8061108f5750303b15801561108f575060005460ff166001145b6110f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161065e565b6000805460ff191660011790558015611115576000805461ff0019166101001790555b61111e82611c3f565b611126611c6f565b61112e611c6f565b611139600033611586565b6111516000805160206131c683398151915233611586565b61117b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e333611586565b801561096d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60006001600160e01b03198216637965db0b60e01b148061068c575061068c82611c96565b610a4d8133611ce6565b6001600160a01b0383166112555760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161065e565b80518251146112765760405162461bcd60e51b815260040161065e90612ca3565b604080516020810190915260009081905233905b83518110156113815760008482815181106112a7576112a7612b65565b6020026020010151905060008483815181106112c5576112c5612b65565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156113525760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161065e565b60009283526065602090815260408085206001600160a01b038b1686529091529092209103905560010161128a565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113d2929190612ceb565b60405180910390a4604080516020810190915260009052610b1f565b815183511461140f5760405162461bcd60e51b815260040161065e90612ca3565b6001600160a01b0384166114355760405162461bcd60e51b815260040161065e90612d19565b3360005b845181101561151857600085828151811061145657611456612b65565b60200260200101519050600085838151811061147457611474612b65565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156114c55760405162461bcd60e51b815260040161065e90612d5e565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611504908490612c77565b909155505060019093019250611439915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611568929190612ceb565b60405180910390a461157e818787878787611d3f565b505050505050565b6115908282610f3f565b61096d5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556115c83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6116168282610f3f565b1561096d5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361096d816111e9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116d0576108ee83611ea3565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561172a575060408051601f3d908101601f1916820190925261172791810190612da8565b60015b61178d5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161065e565b60008051602061317f83398151915281146117fc5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161065e565b506108ee838383611f3f565b6001600160a01b0384166118685760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161065e565b81518351146118895760405162461bcd60e51b815260040161065e90612ca3565b3360005b845181101561191b578381815181106118a8576118a8612b65565b6020026020010151606560008784815181106118c6576118c6612b65565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461190e9190612c77565b909155505060010161188d565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161196c929190612ceb565b60405180910390a461087d81600087878787611d3f565b61012d546001600160a01b03163314610ea85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065e565b61012d80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603611aa45760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161065e565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416611b375760405162461bcd60e51b815260040161065e90612d19565b336000611b4385611f64565b90506000611b5085611f64565b905060008681526065602090815260408083206001600160a01b038c16845290915290205485811015611b955760405162461bcd60e51b815260040161065e90612d5e565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611bd4908490612c77565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611c34848a8a8a8a8a611faf565b505050505050505050565b600054610100900460ff16611c665760405162461bcd60e51b815260040161065e90612dc1565b610a4d8161206a565b600054610100900460ff16610ea85760405162461bcd60e51b815260040161065e90612dc1565b60006001600160e01b03198216636cdb3d1360e11b1480611cc757506001600160e01b031982166303a24d0760e21b145b8061068c57506301ffc9a760e01b6001600160e01b031983161461068c565b611cf08282610f3f565b61096d57611cfd8161209a565b611d088360206120ac565b604051602001611d19929190612e0c565b60408051601f198184030181529082905262461bcd60e51b825261065e91600401612491565b6001600160a01b0384163b1561157e5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611d839089908990889088908890600401612e81565b6020604051808303816000875af1925050508015611dbe575060408051601f3d908101601f19168201909252611dbb91810190612edf565b60015b611e6a57611dca612efc565b806308c379a003611e035750611dde612f17565b80611de95750611e05565b8060405162461bcd60e51b815260040161065e9190612491565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161065e565b6001600160e01b0319811663bc197c8160e01b14611e9a5760405162461bcd60e51b815260040161065e90612fa0565b50505050505050565b6001600160a01b0381163b611f105760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161065e565b60008051602061317f83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611f488361224e565b600082511180611f555750805b156108ee57610b1f838361228e565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611f9e57611f9e612b65565b602090810291909101015292915050565b6001600160a01b0384163b1561157e5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611ff39089908990889088908890600401612fe8565b6020604051808303816000875af192505050801561202e575060408051601f3d908101601f1916820190925261202b91810190612edf565b60015b61203a57611dca612efc565b6001600160e01b0319811663f23a6e6160e01b14611e9a5760405162461bcd60e51b815260040161065e90612fa0565b600054610100900460ff166120915760405162461bcd60e51b815260040161065e90612dc1565b610a4d816122b3565b606061068c6001600160a01b03831660145b606060006120bb83600261302d565b6120c6906002612c77565b6001600160401b038111156120dd576120dd6124bd565b6040519080825280601f01601f191660200182016040528015612107576020820181803683370190505b509050600360fc1b8160008151811061212257612122612b65565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061215157612151612b65565b60200101906001600160f81b031916908160001a905350600061217584600261302d565b612180906001612c77565b90505b60018111156121f8576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106121b4576121b4612b65565b1a60f81b8282815181106121ca576121ca612b65565b60200101906001600160f81b031916908160001a90535060049490941c936121f181613044565b9050612183565b5083156122475760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161065e565b9392505050565b61225781611ea3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612247838360405180606001604052806027815260200161319f602791396122bf565b606761096d82826130a3565b6060600080856001600160a01b0316856040516122dc9190613162565b600060405180830381855af49150503d8060008114612317576040519150601f19603f3d011682016040523d82523d6000602084013e61231c565b606091505b509150915061232d86838387612337565b9695505050505050565b606083156123a657825160000361239f576001600160a01b0385163b61239f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161065e565b50816123b0565b6123b083836123b8565b949350505050565b815115611de95781518083602001fd5b80356001600160a01b03811681146123df57600080fd5b919050565b600080604083850312156123f757600080fd5b612400836123c8565b946020939093013593505050565b6001600160e01b031981168114610a4d57600080fd5b60006020828403121561243657600080fd5b81356122478161240e565b60005b8381101561245c578181015183820152602001612444565b50506000910152565b6000815180845261247d816020860160208601612441565b601f01601f19169290920160200192915050565b6020815260006122476020830184612465565b6000602082840312156124b657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156124f8576124f86124bd565b6040525050565b60006001600160401b03821115612518576125186124bd565b5060051b60200190565b600082601f83011261253357600080fd5b81356020612540826124ff565b60405161254d82826124d3565b80915083815260208101915060208460051b87010193508684111561257157600080fd5b602086015b8481101561259457612587816123c8565b8352918301918301612576565b509695505050505050565b600082601f8301126125b057600080fd5b813560206125bd826124ff565b6040516125ca82826124d3565b80915083815260208101915060208460051b8701019350868411156125ee57600080fd5b602086015b8481101561259457803583529183019183016125f3565b600082601f83011261261b57600080fd5b81356020612628826124ff565b60405161263582826124d3565b83815260059390931b850182019282810191508684111561265557600080fd5b8286015b848110156125945780356001600160401b038111156126785760008081fd5b6126868986838b010161259f565b845250918301918301612659565b6000806000606084860312156126a957600080fd5b83356001600160401b03808211156126c057600080fd5b6126cc87838801612522565b945060208601359150808211156126e257600080fd5b6126ee8783880161260a565b9350604086013591508082111561270457600080fd5b506127118682870161260a565b9150509250925092565b60006001600160401b03831115612734576127346124bd565b60405161274b601f8501601f1916602001826124d3565b80915083815284848401111561276057600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261278957600080fd5b6122478383356020850161271b565b600080600080600060a086880312156127b057600080fd5b6127b9866123c8565b94506127c7602087016123c8565b935060408601356001600160401b03808211156127e357600080fd5b6127ef89838a0161259f565b9450606088013591508082111561280557600080fd5b61281189838a0161259f565b9350608088013591508082111561282757600080fd5b5061283488828901612778565b9150509295509295909350565b6000806040838503121561285457600080fd5b82359150612864602084016123c8565b90509250929050565b60006020828403121561287f57600080fd5b612247826123c8565b6000806040838503121561289b57600080fd5b82356001600160401b03808211156128b257600080fd5b6128be86838701612522565b935060208501359150808211156128d457600080fd5b506128e18582860161260a565b9150509250929050565b600080604083850312156128fe57600080fd5b612907836123c8565b915060208301356001600160401b0381111561292257600080fd5b6128e18582860161259f565b6000806040838503121561294157600080fd5b82356001600160401b038082111561295857600080fd5b61296486838701612522565b9350602085013591508082111561297a57600080fd5b506128e18582860161259f565b60008151808452602080850194506020840160005b838110156129b85781518752958201959082019060010161299c565b509495945050505050565b6020815260006122476020830184612987565b600080604083850312156129e957600080fd5b6129f2836123c8565b915060208301356001600160401b03811115612a0d57600080fd5b6128e185828601612778565b60008060408385031215612a2c57600080fd5b612a35836123c8565b915060208301358015158114612a4a57600080fd5b809150509250929050565b60008060408385031215612a6857600080fd5b612a71836123c8565b9150612864602084016123c8565b600080600080600060a08688031215612a9757600080fd5b612aa0866123c8565b9450612aae602087016123c8565b9350604086013592506060860135915060808601356001600160401b03811115612ad757600080fd5b61283488828901612778565b600060208284031215612af557600080fd5b81356001600160401b03811115612b0b57600080fd5b8201601f81018413612b1c57600080fd5b6123b08482356020840161271b565b600181811c90821680612b3f57607f821691505b602082108103612b5f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561068c5761068c612c61565b600060018201612c9c57612c9c612c61565b5060010190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b604081526000612cfe6040830185612987565b8281036020840152612d108185612987565b95945050505050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b600060208284031215612dba57600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612e44816017850160208801612441565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612e75816028840160208801612441565b01602801949350505050565b6001600160a01b0386811682528516602082015260a060408201819052600090612ead90830186612987565b8281036060840152612ebf8186612987565b90508281036080840152612ed38185612465565b98975050505050505050565b600060208284031215612ef157600080fd5b81516122478161240e565b600060033d1115610e935760046000803e5060005160e01c90565b600060443d1015612f255790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612f5457505050505090565b8285019150815181811115612f6c5750505050505090565b843d8701016020828501011115612f865750505050505090565b612f95602082860101876124d3565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061302290830184612465565b979650505050505050565b808202811582820484141761068c5761068c612c61565b60008161305357613053612c61565b506000190190565b601f8211156108ee576000816000526020600020601f850160051c810160208610156130845750805b601f850160051c820191505b8181101561157e57828155600101613090565b81516001600160401b038111156130bc576130bc6124bd565b6130d0816130ca8454612b2b565b8461305b565b602080601f83116001811461310557600084156130ed5750858301515b600019600386901b1c1916600185901b17855561157e565b600085815260208120601f198616915b8281101561313457888601518255948401946001909101908401613115565b50858210156131525787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251613174818460208701612441565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a26469706673582212206e7dcb53250fbacbfc88a8ba23ce46194530570e6cb666e6380e6ef50767c7e664736f6c63430008180033", - "nonce": "0x4ae2", + "input": "0x936a052e832d05db833c1fb152ee9d04cb963f54db694a4cc58e037932bdbf6160a06040523060805234801561001457600080fd5b5060805161329661004c6000396000818161097b015281816109bb01528181610d2001528181610d600152610def01526132966000f3fe6080604052600436106101c15760003560e01c806352d1902d116100f7578063a22cb46511610095578063f242432a11610064578063f242432a14610563578063f2fde38b14610583578063f62d1888146105a3578063f72c0d8b146105c357600080fd5b8063a22cb465146104b8578063d5391393146104d8578063d547741f146104fa578063e985e9c51461051a57600080fd5b80638da5cb5b116100d15780638da5cb5b1461042a57806391d148541461045357806395d89b4114610473578063a217fddf146104a357600080fd5b806352d1902d146103e0578063715018a6146103f557806382009ec01461040a57600080fd5b80632f2ff15d1161016457806336cb63bb1161013e57806336cb63bb146103605780634ca6f3f5146103805780634e1273f4146103a05780634f1ef286146103cd57600080fd5b80632f2ff15d1461030057806336568abe146103205780633659cfe61461034057600080fd5b80630e89341c116101a05780630e89341c1461026e578063248a9ca31461028e5780632906cb9e146102be5780632eb2c2d6146102e057600080fd5b8062fdd58e146101c657806301ffc9a7146101f957806306fdde0314610229575b600080fd5b3480156101d257600080fd5b506101e66101e136600461245f565b6105f7565b6040519081526020015b60405180910390f35b34801561020557600080fd5b5061021961021436600461249f565b610692565b60405190151581526020016101f0565b34801561023557600080fd5b506102616040518060400160405280600c81526020016b456e67656e2042616467657360a01b81525081565b6040516101f0919061250c565b34801561027a57600080fd5b5061026161028936600461251f565b61069d565b34801561029a57600080fd5b506101e66102a936600461251f565b60009081526097602052604090206001015490565b3480156102ca57600080fd5b506102de6102d936600461270f565b610731565b005b3480156102ec57600080fd5b506102de6102fb366004612813565b610884565b34801561030c57600080fd5b506102de61031b3660046128bc565b6108c9565b34801561032c57600080fd5b506102de61033b3660046128bc565b6108f3565b34801561034c57600080fd5b506102de61035b3660046128e8565b610971565b34801561036c57600080fd5b506102de61037b366004612903565b610a50565b34801561038c57600080fd5b506102de61039b366004612966565b610b25565b3480156103ac57600080fd5b506103c06103bb3660046129a9565b610bf5565b6040516101f09190612a3e565b6102de6103db366004612a51565b610d16565b3480156103ec57600080fd5b506101e6610de2565b34801561040157600080fd5b506102de610e96565b34801561041657600080fd5b506103c061042536600461245f565b610eaa565b34801561043657600080fd5b5061012d546040516001600160a01b0390911681526020016101f0565b34801561045f57600080fd5b5061021961046e3660046128bc565b610f3f565b34801561047f57600080fd5b506102616040518060400160405280600481526020016322a723a160e11b81525081565b3480156104af57600080fd5b506101e6600081565b3480156104c457600080fd5b506102de6104d3366004612a94565b610f6a565b3480156104e457600080fd5b506101e660008051602061324183398151915281565b34801561050657600080fd5b506102de6105153660046128bc565b610f75565b34801561052657600080fd5b50610219610535366004612ad0565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205460ff1690565b34801561056f57600080fd5b506102de61057e366004612afa565b610f9a565b34801561058f57600080fd5b506102de61059e3660046128e8565b610fdf565b3480156105af57600080fd5b506102de6105be366004612b5e565b611055565b3480156105cf57600080fd5b506101e67f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e381565b60006001600160a01b0383166106675760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526065602090815260408083206001600160a01b03861684529091529020545b92915050565b600061068c826111c4565b6060606780546106ac90612ba6565b80601f01602080910402602001604051908101604052809291908181526020018280546106d890612ba6565b80156107255780601f106106fa57610100808354040283529160200191610725565b820191906000526020600020905b81548152906001019060200180831161070857829003601f168201915b50505050509050919050565b600080516020613241833981519152610749816111e9565b8251845114158061075c57508151845114155b1561077a5760405163a0b1d72d60e01b815260040160405180910390fd5b60fa8451111561079d5760405163bbaefd2960e01b815260040160405180910390fd5b82516000036107bf5760405163ceb7371d60e01b815260040160405180910390fd5b60005b845181101561087d578281815181106107dd576107dd612be0565b6020026020010151518482815181106107f8576107f8612be0565b6020026020010151511461081f5760405163a0b1d72d60e01b815260040160405180910390fd5b61087585828151811061083457610834612be0565b602002602001015185838151811061084e5761084e612be0565b602002602001015185848151811061086857610868612be0565b60200260200101516111f3565b6001016107c2565b5050505050565b6001600160a01b0385163314806108a057506108a08533610535565b6108bc5760405162461bcd60e51b815260040161065e90612bf6565b61087d8585858585611400565b6000828152609760205260409020600101546108e4816111e9565b6108ee83836115a6565b505050565b6001600160a01b03811633146109635760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161065e565b61096d828261162c565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109b95760405162461bcd60e51b815260040161065e90612c44565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a026000805160206131fa833981519152546001600160a01b031690565b6001600160a01b031614610a285760405162461bcd60e51b815260040161065e90612c90565b610a3181611693565b60408051600080825260208201909252610a4d918391906116bd565b50565b600080516020613241833981519152610a68816111e9565b8151835114610a8a5760405163a0b1d72d60e01b815260040160405180910390fd5b60fa83511115610aad5760405163a13df50b60e01b815260040160405180910390fd5b8151600003610acf5760405163ceb7371d60e01b815260040160405180910390fd5b60005b8351811015610b1f57610b17848281518110610af057610af0612be0565b6020026020010151848381518110610b0a57610b0a612be0565b6020026020010151610b25565b600101610ad2565b50505050565b600080516020613241833981519152610b3d816111e9565b8151600003610b5f5760405163ceb7371d60e01b815260040160405180910390fd5b600082516001600160401b03811115610b7a57610b7a612538565b604051908082528060200260200182016040528015610ba3578160200160208202803683370190505b50905060005b8351811015610bd9576001828281518110610bc657610bc6612be0565b6020908102919091010152600101610ba9565b50610b1f84848360405180602001604052806000815250611828565b60608151835114610c5a5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b606482015260840161065e565b600083516001600160401b03811115610c7557610c75612538565b604051908082528060200260200182016040528015610c9e578160200160208202803683370190505b50905060005b8451811015610d0e57610ce9858281518110610cc257610cc2612be0565b6020026020010151858381518110610cdc57610cdc612be0565b60200260200101516105f7565b828281518110610cfb57610cfb612be0565b6020908102919091010152600101610ca4565b509392505050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610d5e5760405162461bcd60e51b815260040161065e90612c44565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610da76000805160206131fa833981519152546001600160a01b031690565b6001600160a01b031614610dcd5760405162461bcd60e51b815260040161065e90612c90565b610dd682611693565b61096d828260016116bd565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e825760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161065e565b506000805160206131fa8339815191525b90565b610e9e6119b2565b610ea86000611a0d565b565b60606000610eb9836001612cf2565b6001600160401b03811115610ed057610ed0612538565b604051908082528060200260200182016040528015610ef9578160200160208202803683370190505b50905060005b838111610d0e57610f1085826105f7565b828281518110610f2257610f22612be0565b602090810291909101015280610f3781612d05565b915050610eff565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61096d338383611a60565b600082815260976020526040902060010154610f90816111e9565b6108ee838361162c565b6001600160a01b038516331480610fb65750610fb68533610535565b610fd25760405162461bcd60e51b815260040161065e90612bf6565b61087d8585858585611b40565b610fe76119b2565b6001600160a01b03811661104c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161065e565b610a4d81611a0d565b600054610100900460ff16158080156110755750600054600160ff909116105b8061108f5750303b15801561108f575060005460ff166001145b6110f25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161065e565b6000805460ff191660011790558015611115576000805461ff0019166101001790555b61111e82611c7c565b611126611cac565b61112e611cac565b6111396000336115a6565b611151600080516020613241833981519152336115a6565b61117b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3336115a6565b801561096d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60006001600160e01b03198216637965db0b60e01b148061068c575061068c82611cd3565b610a4d8133611d23565b6001600160a01b0383166112555760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b606482015260840161065e565b80518251146112765760405162461bcd60e51b815260040161065e90612d1e565b600033905061129981856000868660405180602001604052806000815250611d7c565b60005b83518110156113935760008482815181106112b9576112b9612be0565b6020026020010151905060008483815181106112d7576112d7612be0565b60209081029190910181015160008481526065835260408082206001600160a01b038c1683529093529190912054909150818110156113645760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260840161065e565b60009283526065602090815260408085206001600160a01b038b1686529091529092209103905560010161129c565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113e4929190612d66565b60405180910390a4604080516020810190915260009052610b1f565b81518351146114215760405162461bcd60e51b815260040161065e90612d1e565b6001600160a01b0384166114475760405162461bcd60e51b815260040161065e90612d94565b33611456818787878787611d7c565b60005b845181101561153857600085828151811061147657611476612be0565b60200260200101519050600085838151811061149457611494612be0565b60209081029190910181015160008481526065835260408082206001600160a01b038e1683529093529190912054909150818110156114e55760405162461bcd60e51b815260040161065e90612dd9565b60008381526065602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611524908490612cf2565b909155505060019093019250611459915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611588929190612d66565b60405180910390a461159e818787878787611dba565b505050505050565b6115b08282610f3f565b61096d5760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556115e83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6116368282610f3f565b1561096d5760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361096d816111e9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116f0576108ee83611f1e565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561174a575060408051601f3d908101601f1916820190925261174791810190612e23565b60015b6117ad5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161065e565b6000805160206131fa833981519152811461181c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161065e565b506108ee838383611fba565b6001600160a01b0384166118885760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b606482015260840161065e565b81518351146118a95760405162461bcd60e51b815260040161065e90612d1e565b336118b981600087878787611d7c565b60005b845181101561194a578381815181106118d7576118d7612be0565b6020026020010151606560008784815181106118f5576118f5612be0565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020600082825461193d9190612cf2565b90915550506001016118bc565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161199b929190612d66565b60405180910390a461087d81600087878787611dba565b61012d546001600160a01b03163314610ea85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161065e565b61012d80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b031603611ad35760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b606482015260840161065e565b6001600160a01b03838116600081815260666020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416611b665760405162461bcd60e51b815260040161065e90612d94565b336000611b7285611fdf565b90506000611b7f85611fdf565b9050611b8f838989858589611d7c565b60008681526065602090815260408083206001600160a01b038c16845290915290205485811015611bd25760405162461bcd60e51b815260040161065e90612dd9565b60008781526065602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611c11908490612cf2565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611c71848a8a8a8a8a61202a565b505050505050505050565b600054610100900460ff16611ca35760405162461bcd60e51b815260040161065e90612e3c565b610a4d816120e5565b600054610100900460ff16610ea85760405162461bcd60e51b815260040161065e90612e3c565b60006001600160e01b03198216636cdb3d1360e11b1480611d0457506001600160e01b031982166303a24d0760e21b145b8061068c57506301ffc9a760e01b6001600160e01b031983161461068c565b611d2d8282610f3f565b61096d57611d3a81612115565b611d45836020612127565b604051602001611d56929190612e87565b60408051601f198184030181529082905262461bcd60e51b825261065e9160040161250c565b6001600160a01b03851615801590611d9c57506001600160a01b03841615155b1561159e57604051638cd22d1960e01b815260040160405180910390fd5b6001600160a01b0384163b1561159e5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611dfe9089908990889088908890600401612efc565b6020604051808303816000875af1925050508015611e39575060408051601f3d908101601f19168201909252611e3691810190612f5a565b60015b611ee557611e45612f77565b806308c379a003611e7e5750611e59612f92565b80611e645750611e80565b8060405162461bcd60e51b815260040161065e919061250c565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b606482015260840161065e565b6001600160e01b0319811663bc197c8160e01b14611f155760405162461bcd60e51b815260040161065e9061301b565b50505050505050565b6001600160a01b0381163b611f8b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161065e565b6000805160206131fa83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611fc3836122c9565b600082511180611fd05750805b156108ee57610b1f8383612309565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061201957612019612be0565b602090810291909101015292915050565b6001600160a01b0384163b1561159e5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061206e9089908990889088908890600401613063565b6020604051808303816000875af19250505080156120a9575060408051601f3d908101601f191682019092526120a691810190612f5a565b60015b6120b557611e45612f77565b6001600160e01b0319811663f23a6e6160e01b14611f155760405162461bcd60e51b815260040161065e9061301b565b600054610100900460ff1661210c5760405162461bcd60e51b815260040161065e90612e3c565b610a4d8161232e565b606061068c6001600160a01b03831660145b606060006121368360026130a8565b612141906002612cf2565b6001600160401b0381111561215857612158612538565b6040519080825280601f01601f191660200182016040528015612182576020820181803683370190505b509050600360fc1b8160008151811061219d5761219d612be0565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106121cc576121cc612be0565b60200101906001600160f81b031916908160001a90535060006121f08460026130a8565b6121fb906001612cf2565b90505b6001811115612273576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061222f5761222f612be0565b1a60f81b82828151811061224557612245612be0565b60200101906001600160f81b031916908160001a90535060049490941c9361226c816130bf565b90506121fe565b5083156122c25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161065e565b9392505050565b6122d281611f1e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606122c2838360405180606001604052806027815260200161321a6027913961233a565b606761096d828261311e565b6060600080856001600160a01b03168560405161235791906131dd565b600060405180830381855af49150503d8060008114612392576040519150601f19603f3d011682016040523d82523d6000602084013e612397565b606091505b50915091506123a8868383876123b2565b9695505050505050565b6060831561242157825160000361241a576001600160a01b0385163b61241a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161065e565b508161242b565b61242b8383612433565b949350505050565b815115611e645781518083602001fd5b80356001600160a01b038116811461245a57600080fd5b919050565b6000806040838503121561247257600080fd5b61247b83612443565b946020939093013593505050565b6001600160e01b031981168114610a4d57600080fd5b6000602082840312156124b157600080fd5b81356122c281612489565b60005b838110156124d75781810151838201526020016124bf565b50506000910152565b600081518084526124f88160208601602086016124bc565b601f01601f19169290920160200192915050565b6020815260006122c260208301846124e0565b60006020828403121561253157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b038111828210171561257357612573612538565b6040525050565b60006001600160401b0382111561259357612593612538565b5060051b60200190565b600082601f8301126125ae57600080fd5b813560206125bb8261257a565b6040516125c8828261254e565b80915083815260208101915060208460051b8701019350868411156125ec57600080fd5b602086015b8481101561260f5761260281612443565b83529183019183016125f1565b509695505050505050565b600082601f83011261262b57600080fd5b813560206126388261257a565b604051612645828261254e565b80915083815260208101915060208460051b87010193508684111561266957600080fd5b602086015b8481101561260f578035835291830191830161266e565b600082601f83011261269657600080fd5b813560206126a38261257a565b6040516126b0828261254e565b83815260059390931b85018201928281019150868411156126d057600080fd5b8286015b8481101561260f5780356001600160401b038111156126f35760008081fd5b6127018986838b010161261a565b8452509183019183016126d4565b60008060006060848603121561272457600080fd5b83356001600160401b038082111561273b57600080fd5b6127478783880161259d565b9450602086013591508082111561275d57600080fd5b61276987838801612685565b9350604086013591508082111561277f57600080fd5b5061278c86828701612685565b9150509250925092565b60006001600160401b038311156127af576127af612538565b6040516127c6601f8501601f19166020018261254e565b8091508381528484840111156127db57600080fd5b83836020830137600060208583010152509392505050565b600082601f83011261280457600080fd5b6122c283833560208501612796565b600080600080600060a0868803121561282b57600080fd5b61283486612443565b945061284260208701612443565b935060408601356001600160401b038082111561285e57600080fd5b61286a89838a0161261a565b9450606088013591508082111561288057600080fd5b61288c89838a0161261a565b935060808801359150808211156128a257600080fd5b506128af888289016127f3565b9150509295509295909350565b600080604083850312156128cf57600080fd5b823591506128df60208401612443565b90509250929050565b6000602082840312156128fa57600080fd5b6122c282612443565b6000806040838503121561291657600080fd5b82356001600160401b038082111561292d57600080fd5b6129398683870161259d565b9350602085013591508082111561294f57600080fd5b5061295c85828601612685565b9150509250929050565b6000806040838503121561297957600080fd5b61298283612443565b915060208301356001600160401b0381111561299d57600080fd5b61295c8582860161261a565b600080604083850312156129bc57600080fd5b82356001600160401b03808211156129d357600080fd5b6129df8683870161259d565b935060208501359150808211156129f557600080fd5b5061295c8582860161261a565b60008151808452602080850194506020840160005b83811015612a3357815187529582019590820190600101612a17565b509495945050505050565b6020815260006122c26020830184612a02565b60008060408385031215612a6457600080fd5b612a6d83612443565b915060208301356001600160401b03811115612a8857600080fd5b61295c858286016127f3565b60008060408385031215612aa757600080fd5b612ab083612443565b915060208301358015158114612ac557600080fd5b809150509250929050565b60008060408385031215612ae357600080fd5b612aec83612443565b91506128df60208401612443565b600080600080600060a08688031215612b1257600080fd5b612b1b86612443565b9450612b2960208701612443565b9350604086013592506060860135915060808601356001600160401b03811115612b5257600080fd5b6128af888289016127f3565b600060208284031215612b7057600080fd5b81356001600160401b03811115612b8657600080fd5b8201601f81018413612b9757600080fd5b61242b84823560208401612796565b600181811c90821680612bba57607f821691505b602082108103612bda57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561068c5761068c612cdc565b600060018201612d1757612d17612cdc565b5060010190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b604081526000612d796040830185612a02565b8281036020840152612d8b8185612a02565b95945050505050565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b600060208284031215612e3557600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612ebf8160178501602088016124bc565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612ef08160288401602088016124bc565b01602801949350505050565b6001600160a01b0386811682528516602082015260a060408201819052600090612f2890830186612a02565b8281036060840152612f3a8186612a02565b90508281036080840152612f4e81856124e0565b98975050505050505050565b600060208284031215612f6c57600080fd5b81516122c281612489565b600060033d1115610e935760046000803e5060005160e01c90565b600060443d1015612fa05790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612fcf57505050505090565b8285019150815181811115612fe75750505050505090565b843d87010160208285010111156130015750505050505090565b6130106020828601018761254e565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061309d908301846124e0565b979650505050505050565b808202811582820484141761068c5761068c612cdc565b6000816130ce576130ce612cdc565b506000190190565b601f8211156108ee576000816000526020600020601f850160051c810160208610156130ff5750805b601f850160051c820191505b8181101561159e5782815560010161310b565b81516001600160401b0381111561313757613137612538565b61314b816131458454612ba6565b846130d6565b602080601f83116001811461318057600084156131685750858301515b600019600386901b1c1916600185901b17855561159e565b600085815260208120601f198616915b828110156131af57888601518255948401946001909101908401613190565b50858210156131cd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082516131ef8184602087016124bc565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a26469706673582212207ff6a95385b42e630742e361a802a0e41157f9784d4722c15b1d089e1186632d64736f6c63430008180033", + "nonce": "0x4b94e", "chainId": "0x1ecf" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0x091ebd11a55ad49977a315edd9810b12ad5e25fbaa4a04f9a17ec6880a069b65", + "hash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", "transactionType": "CALL", "contractName": null, - "contractAddress": null, - "function": null, - "arguments": null, + "contractAddress": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", + "function": "handleOps((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address)", + "arguments": [ + "[(0x2e2B1c42E38f5af81771e65D87729E57ABD1337a, 3924, 0x, 0xb61d27f60000000000000000000000001d950ea52e436854b8d343134863b214544990250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe60000000000000000000000000b1ccf9bc0fff49b0fe3ee4541bf71253c54de1400000000000000000000000000000000000000000000000000000000, 4000000, 210000, 21000, 1, 1000000000, 0x0000000000000000000000000000000000000000, 0x588af90e4f19efd5bef3f055a736331fe217dcc67eea22b88b1110b0d00465205acb77d38c14060388c8b1b0a37d2b3aa5f2e8c7abde96a6c0dfa01cfe34d1681c3cecd7718394d7f4e0ff0c317d72f9df5c481a9139fdf2511f15c273bbfbf3e37236fcfd11526ff3d4a28588d372279d50417d7af3981ad64d7159a4947022e21c)]", + "0x660ad4B5A74130a4796B4d54BC6750Ae93C86e6c" + ], "transaction": { "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", "value": "0x0", - "input": "0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000660ad4b5a74130a4796b4d54bc6750ae93c86e6c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a00000000000000000000000000000000000000000000000000000000000009510000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000003345000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4b61d27f60000000000000000000000001d950ea52e436854b8d343134863b214544990250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe6000000000000000000000000696876efa8e2beadc533aba249f512ac8707f641000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008225c1f16f58d5b18d809dd6e1e8361ee41c215760230b516a4d070f3e858d57784d7c3d794c09fa8ff00c770d11d36b34d0027ddb6d7dd24a3cef1c8e51b740ba1c89d3ae1825608991184b256bef5d0ed75fe3c298004362c3bd423f878faff1a8759732f973084349181351709fbd5bb54f40b0eaa762a5e39b884e4bf859588f1c000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x4ae3", + "input": "0x1fad948c0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000660ad4b5a74130a4796b4d54bc6750ae93c86e6c000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a0000000000000000000000000000000000000000000000000000000000000f540000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000003d0900000000000000000000000000000000000000000000000000000000000003345000000000000000000000000000000000000000000000000000000000000052080000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c4b61d27f60000000000000000000000001d950ea52e436854b8d343134863b214544990250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000243659cfe60000000000000000000000000b1ccf9bc0fff49b0fe3ee4541bf71253c54de140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000082588af90e4f19efd5bef3f055a736331fe217dcc67eea22b88b1110b0d00465205acb77d38c14060388c8b1b0a37d2b3aa5f2e8c7abde96a6c0dfa01cfe34d1681c3cecd7718394d7f4e0ff0c317d72f9df5c481a9139fdf2511f15c273bbfbf3e37236fcfd11526ff3d4a28588d372279d50417d7af3981ad64d7159a4947022e21c000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x4b94f", "chainId": "0x1ecf" }, "additionalContracts": [], @@ -40,25 +43,25 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x4d6686", + "cumulativeGasUsed": "0x7f016c", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x3248b97104a2e7d604486280d75a8e13d37a30b17b06b94e73ff08fa98d43fa9", + "transactionHash": "0xe8832dd1d38eb89485d5c48b569fefad2ff234dd6940e7bd9b1f237d3ba419d4", "transactionIndex": "0x1", - "blockHash": "0x7da8ec298220477dcdbb3308a5445314387f3d1cd9c6f6000d35ee2c8c018b57", - "blockNumber": "0x35d09", - "gasUsed": "0x4d6686", + "blockHash": "0x45eb88f14bd4fc4506710ed7622b2c9ec3f4b3c10140a38327f9529df712a746", + "blockNumber": "0xa8e83", + "gasUsed": "0x7f016c", "effectiveGasPrice": "0x5f5e100", "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", "contractAddress": null, - "gasUsedForL1": "0x223bde", - "l1BlockNumber": "0x13a8fbc" + "gasUsedForL1": "0x536ecf", + "l1BlockNumber": "0x1485188" }, { "status": "0x1", - "cumulativeGasUsed": "0x5643b", + "cumulativeGasUsed": "0x92c2b", "logs": [ { "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", @@ -66,9 +69,9 @@ "0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972" ], "data": "0x", - "blockHash": "0x45ace82a9a892971a9c22be62ee975e78de979e6fbc9809f5952131ee6a7a768", - "blockNumber": "0x35d0a", - "transactionHash": "0x091ebd11a55ad49977a315edd9810b12ad5e25fbaa4a04f9a17ec6880a069b65", + "blockHash": "0xd1f90ebcdbb6e0ab9d52e3d791cb541bbf1d52ffdf495d4eafd9ef0cb87a4ee2", + "blockNumber": "0xa8e84", + "transactionHash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", "transactionIndex": "0x1", "logIndex": "0x0", "removed": false @@ -77,12 +80,12 @@ "address": "0x1d950ea52e436854b8d343134863b21454499025", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000696876efa8e2beadc533aba249f512ac8707f641" + "0x0000000000000000000000000b1ccf9bc0fff49b0fe3ee4541bf71253c54de14" ], "data": "0x", - "blockHash": "0x45ace82a9a892971a9c22be62ee975e78de979e6fbc9809f5952131ee6a7a768", - "blockNumber": "0x35d0a", - "transactionHash": "0x091ebd11a55ad49977a315edd9810b12ad5e25fbaa4a04f9a17ec6880a069b65", + "blockHash": "0xd1f90ebcdbb6e0ab9d52e3d791cb541bbf1d52ffdf495d4eafd9ef0cb87a4ee2", + "blockNumber": "0xa8e84", + "transactionHash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", "transactionIndex": "0x1", "logIndex": "0x1", "removed": false @@ -91,38 +94,38 @@ "address": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", "topics": [ "0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f", - "0xa7322bca41b1a554ae119141c0c6e641441cc9f6e1adbec593ccc733f367c73b", + "0xb91891c09e3a82e342c1480ac8255529d2e54afd9c06e1708699e80c177fdd3d", "0x0000000000000000000000002e2b1c42e38f5af81771e65d87729e57abd1337a", "0x0000000000000000000000000000000000000000000000000000000000000000" ], - "data": "0x000000000000000000000000000000000000000000000000000000000000095100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000084eeb0000000000000000000000000000000000000000000000000000000000084eeb", - "blockHash": "0x45ace82a9a892971a9c22be62ee975e78de979e6fbc9809f5952131ee6a7a768", - "blockNumber": "0x35d0a", - "transactionHash": "0x091ebd11a55ad49977a315edd9810b12ad5e25fbaa4a04f9a17ec6880a069b65", + "data": "0x0000000000000000000000000000000000000000000000000000000000000f54000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000854340000000000000000000000000000000000000000000000000000000000085434", + "blockHash": "0xd1f90ebcdbb6e0ab9d52e3d791cb541bbf1d52ffdf495d4eafd9ef0cb87a4ee2", + "blockNumber": "0xa8e84", + "transactionHash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", "transactionIndex": "0x1", "logIndex": "0x2", "removed": false } ], - "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000008000000000000000000010000000000000000000200000000020080000000000000000000000000000000020002000000000000000000000000008000000800000000020000000000000000000800002000000000000000000000000000000000000000000000000080000000800000000000000000000000000000000000000400000000000000400000000000000000000000000000000002000008000000000020000000100001000000000000000004000008000000000000000020000000004000010000000000000000000000000000000000000000000000000000", + "logsBloom": "0x00000400000000000000000000000000400000000000000000000000000000000008000000000000000000010000000000000000000000000000020080080000000000000000000000000000000002000000000000000000000000008000000800000000020000000000000000000800802000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000400000000000000400000000000000000000000000000000002000040000000000020000000100001000000000000000000000008000000000000000020000000000000010000000000000000000000000000000000200000000000000000", "type": "0x2", - "transactionHash": "0x091ebd11a55ad49977a315edd9810b12ad5e25fbaa4a04f9a17ec6880a069b65", + "transactionHash": "0xc89330132e022a1947c701f36c75bb8a7e977271b34d2d694b4a63d0d9bca5f0", "transactionIndex": "0x1", - "blockHash": "0x45ace82a9a892971a9c22be62ee975e78de979e6fbc9809f5952131ee6a7a768", - "blockNumber": "0x35d0a", - "gasUsed": "0x5643b", + "blockHash": "0xd1f90ebcdbb6e0ab9d52e3d791cb541bbf1d52ffdf495d4eafd9ef0cb87a4ee2", + "blockNumber": "0xa8e84", + "gasUsed": "0x92c2b", "effectiveGasPrice": "0x5f5e100", "from": "0x660ad4b5a74130a4796b4d54bc6750ae93c86e6c", "to": "0x2843c269d2a64ecfa63548e8b3fc0fd23b7f70cb", "contractAddress": null, - "gasUsedForL1": "0x2ba10", - "l1BlockNumber": "0x13a8fbc" + "gasUsedForL1": "0x67c1a", + "l1BlockNumber": "0x1485188" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1724703459, + "timestamp": 1735578465, "chain": 7887, - "commit": "c9313eb" + "commit": "1416edf" } \ No newline at end of file diff --git a/script/migrations/116-upgrade_engenbadges.s.sol b/script/migrations/116-upgrade_engenbadges.s.sol index e36a722e9..0c947610e 100644 --- a/script/migrations/116-upgrade_engenbadges.s.sol +++ b/script/migrations/116-upgrade_engenbadges.s.sol @@ -10,7 +10,7 @@ contract Script is MigrationHelper { super.run(); bytes memory bytecode = abi.encodePacked(type(EngenBadges).creationCode); - address impl = _deployImplementationAndUpgrade("EngenBadges", "V3", bytecode, keccak256("V3")); + address impl = _deployImplementationAndUpgrade("EngenBadges", "V4", bytecode, keccak256("V4")); EngenBadges engenBadges = EngenBadges(_getChainDeployment("EngenBadges")); uint256[] memory balances = engenBadges.getAllBadges(_getChainDeployment("KintoWallet-admin"), 10); @@ -20,6 +20,6 @@ contract Script is MigrationHelper { assertEq(engenBadges.uri(1), "https://kinto.xyz/api/v1/get-badge-nft/{id}"); assertEq(engenBadges.name(), "Engen Badges"); - saveContractAddress("EngenBadgesV3-impl", impl); + saveContractAddress("EngenBadgesV4-impl", impl); } } diff --git a/src/tokens/EngenBadges.sol b/src/tokens/EngenBadges.sol index c5d0b65ca..ef781e0ac 100644 --- a/src/tokens/EngenBadges.sol +++ b/src/tokens/EngenBadges.sol @@ -24,6 +24,7 @@ contract EngenBadges is error MismatchedInputLengths(); error MintToManyAddresses(); error BurnTooManyAddresses(); + error TransferNotAllowed(); string public constant name = "Engen Badges"; string public constant symbol = "ENGB"; @@ -132,6 +133,25 @@ contract EngenBadges is { return super.supportsInterface(interfaceId); } + + /** + * @dev Hook that is called before any token transfer. Allow only minting and burning operations. + */ + function _beforeTokenTransfer( + address operator, + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) internal virtual override { + super._beforeTokenTransfer(operator, from, to, ids, amounts, data); + + // Allow minting (from = 0) and burning (to = 0) + if (from != address(0) && to != address(0)) { + revert TransferNotAllowed(); + } + } } contract EngenBadgesV3 is EngenBadges { diff --git a/test/artifacts/7887/addresses.json b/test/artifacts/7887/addresses.json index fd12e0659..e1f07c186 100644 --- a/test/artifacts/7887/addresses.json +++ b/test/artifacts/7887/addresses.json @@ -248,5 +248,6 @@ "KintoIDV10-impl": "0xaa0726829d41E3C70B84Bc5390cce82afC56871A", "RewardsDistributorV8-impl": "0xF3D955B4cF3489A37027f0F3484E87328dBdBB39", "KV4-impl": "0xDd11ab74e0e8B042F843447F5754376f2F303492", - "KV5-impl": "0xAf968044D5DE68fE01B5a6517d0DbeE3caD8563a" + "KV5-impl": "0xAf968044D5DE68fE01B5a6517d0DbeE3caD8563a", + "EngenBadgesV4-impl": "0x0b1CcF9bc0ffF49b0fE3Ee4541BF71253C54DE14" } \ No newline at end of file diff --git a/test/unit/tokens/EngenBadges.t.sol b/test/unit/tokens/EngenBadges.t.sol index fe787e9ad..0b40b089c 100644 --- a/test/unit/tokens/EngenBadges.t.sol +++ b/test/unit/tokens/EngenBadges.t.sol @@ -344,4 +344,61 @@ contract EngenBadgesTest is SharedSetup { vm.expectRevert(abi.encodeWithSelector(EngenBadges.BurnTooManyAddresses.selector)); _engenBadges.burnBadgesBatch(accounts, ids, amounts); } + + function testTransfer_RevertWhen_SingleTransfer() public { + // First mint a badge to alice + uint256[] memory ids = new uint256[](1); + ids[0] = 1; + + UserOperation[] memory userOps = new UserOperation[](1); + userOps[0] = _createUserOperation( + address(_kintoWallet), + address(_engenBadges), + _kintoWallet.getNonce(), + privateKeys, + abi.encodeWithSignature("mintBadges(address,uint256[])", alice, ids), + address(_paymaster) + ); + + _entryPoint.handleOps(userOps, payable(_owner)); + assertEq(_engenBadges.balanceOf(alice, 1), 1); + + // Try to transfer from alice to bob + vm.prank(alice); + vm.expectRevert(EngenBadges.TransferNotAllowed.selector); + _engenBadges.safeTransferFrom(alice, bob, 1, 1, ""); + } + + function testTransfer_RevertWhen_BatchTransfer() public { + // First mint multiple badges to alice + uint256[] memory ids = new uint256[](2); + ids[0] = 1; + ids[1] = 2; + + UserOperation[] memory userOps = new UserOperation[](1); + userOps[0] = _createUserOperation( + address(_kintoWallet), + address(_engenBadges), + _kintoWallet.getNonce(), + privateKeys, + abi.encodeWithSignature("mintBadges(address,uint256[])", alice, ids), + address(_paymaster) + ); + + _entryPoint.handleOps(userOps, payable(_owner)); + assertEq(_engenBadges.balanceOf(alice, 1), 1); + assertEq(_engenBadges.balanceOf(alice, 2), 1); + + // Try to batch transfer from alice to bob + uint256[] memory transferIds = new uint256[](2); + transferIds[0] = 1; + transferIds[1] = 2; + uint256[] memory amounts = new uint256[](2); + amounts[0] = 1; + amounts[1] = 1; + + vm.prank(alice); + vm.expectRevert(EngenBadges.TransferNotAllowed.selector); + _engenBadges.safeBatchTransferFrom(alice, bob, transferIds, amounts, ""); + } }