ETH Price: $3,637.45 (-1.40%)

Transaction Decoder

Block:
20813499 at Sep-23-2024 01:11:59 PM +UTC
Transaction Fee:
0.00783128436884409 ETH $28.49
Gas Used:
307,230 Gas / 25.489972883 Gwei

Emitted Events:

131 SimpleToken.Transfer( from=[Sender] 0x68715f1d1bdbbc620488a55ad0a8c382decff15d, to=ERC20Router, value=335795613393808564 )
132 SimpleToken.Approval( owner=[Sender] 0x68715f1d1bdbbc620488a55ad0a8c382decff15d, spender=[Receiver] ApprovalProxy, value=113637730962472543447 )
133 SimpleToken.Approval( owner=ERC20Router, spender=ZeroEx, value=335795613393808564 )
134 SimpleToken.Transfer( from=ERC20Router, to=FlashWallet, value=335795613393808564 )
135 SimpleToken.Approval( owner=ERC20Router, spender=ZeroEx, value=0 )
136 WETH9.Transfer( src=0xF79fC43494ce8a4613Cb0b2a67A1b1207fD05D27, dst=FlashWallet, wad=108315620744111 )
137 SimpleToken.Transfer( from=FlashWallet, to=0xF79fC43494ce8a4613Cb0b2a67A1b1207fD05D27, value=335795613393808564 )
138 SimpleToken.Approval( owner=FlashWallet, spender=0xE592427A...C05861564, value=115792089237316195423570985008687907853269984665640562793970440502376605947223 )
139 0xf79fc43494ce8a4613cb0b2a67a1b1207fd05d27.0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67( 0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67, 0x000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564, 0x00000000000000000000000022f9dcf4647084d6c31b2765f6910cd85c178c18, 00000000000000000000000000000000000000000000000004a8fc54cd78ecb4, ffffffffffffffffffffffffffffffffffffffffffffffffffff9d7ccde6e451, 0000000000000000000000000000000000000000049e592806de71d5d22adea6, 00000000000000000000000000000000000000000000000050631acb30c835d9, fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec64e )
140 FlashWallet.0xe59e71a14fe90157eedc866c4f8c767d3943d6b6b2e8cd64dddcc92ab4c55af8( 0xe59e71a14fe90157eedc866c4f8c767d3943d6b6b2e8cd64dddcc92ab4c55af8, 00000000000000000000000000000012556e6973776170563300000000000000, 0000000000000000000000004d224452801aced8b2f0aebe155379bb5d594381, 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 00000000000000000000000000000000000000000000000004a8fc54cd78ecb4, 0000000000000000000000000000000000000000000000000000628332191baf )
141 WETH9.Withdrawal( src=FlashWallet, wad=108315620744111 )
142 ZeroEx.0x0f6672f78a59ba8e5e5b5d38df3ebc67f3c792e2c9259b8d97d7f00dd78ba1b3( 0x0f6672f78a59ba8e5e5b5d38df3ebc67f3c792e2c9259b8d97d7f00dd78ba1b3, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0000000000000000000000004d224452801aced8b2f0aebe155379bb5d594381, 000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 00000000000000000000000000000000000000000000000004a8fc54cd78ecb4, 0000000000000000000000000000000000000000000000000000625dbec4c5cb )

Account State Difference:

  Address   Before After State Difference Code
0x4d224452...b5D594381
0x68715f1d...2dECFf15d
0.043990578931537133 Eth
Nonce: 126
0.036159294562693043 Eth
Nonce: 127
0.00783128436884409
0xaD01C20d...824c8fCe5 0.671291892724052713 Eth0.671292053572749517 Eth0.000000160848696804
0xC02aaA39...83C756Cc2 2,901,799.671350816375471108 Eth2,901,799.671242500754726997 Eth0.000108315620744111
(Flashbots: Builder 2)
26.268683947646656528 Eth26.269847794708024288 Eth0.00116384706136776
0xf70da978...8dfA3dbEF
(Relay: Solver)
472.560897897714625195 Eth472.561006052486672502 Eth0.000108154772047307
0xF79fC434...07fD05D27
(Uniswap V3: APE 4)

Execution Trace

ApprovalProxy.transferAndMulticall( tokens=[0x4d224452801ACEd8B2F0aebE155379bb5D594381], amounts=[335795613393808564], targets=[0x4d224452801ACEd8B2F0aebE155379bb5D594381, 0xDef1C0ded9bec7F1a1670819833240f027b25EfF], datas=[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], values=[0, 0], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000625DBEC4C5CB )
  • SimpleToken.transferFrom( sender=0x68715f1d1bdbbc620488a55AD0a8C382dECFf15d, recipient=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, amount=335795613393808564 ) => ( True )
  • ERC20Router.delegatecallMulticall( targets=[0x4d224452801ACEd8B2F0aebE155379bb5D594381, 0xDef1C0ded9bec7F1a1670819833240f027b25EfF], datas=[CV6nswAAAAAAAAAAAAAAAN7xwN7ZvsfxoWcIGYMyQPAnsl7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKj8VM147LQ=, QVVlsAAAAAAAAAAAAAAAAE0iRFKAGs7YsvCuvhVTebtdWUOBAAAAAAAAAAAAAAAA7u7u7u7u7u7u7u7u7u7u7u7u7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEqPxUzXjstAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYWGNoK5kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0iRFKAGs7YsvCuvhVTebtdWUOBAAAAAAAAAAAAAAAAwCqqObIj/o0KDlxPJ+rZCDx1bMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASo/FTNeOy0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAASVW5pc3dhcFYzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASo/FTNeOy0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhhwD1BEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAA5ZJCegrs6S3j7e4fGOAVfAWGFWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtNIkRSgBrO2LLwrr4VU3m7XVlDgQAnEMAqqjmyI/6NCg5cTyfq2Qg8dWzCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAwCqqObIj/o0KDlxPJ+rZCDx1bML//////////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVzVFXkAAAAAAAAAAAAAAAArQHCDViGE34FZ3WvVpFd6CTI/OUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAE0iRFKAGs7YsvCuvhVTebtdWUOBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGlYTNAAAAAAAAAAAAAAAAlNMlprMa57t49D+5faQ3wcP0L5YAAAAAAAAAAAAAAAAAAAAAAAAAAJrOUhW/h9BXkq3C/A==], values=[0, 0], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000625DBEC4C5CB )
    • Multicaller.aggregate( targets=[0x4d224452801ACEd8B2F0aebE155379bb5D594381, 0xDef1C0ded9bec7F1a1670819833240f027b25EfF], data=[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], values=[0, 0], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( [AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiXb7Excs=] )
      • SimpleToken.approve( spender=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, amount=335795613393808564 ) => ( True )
      • ZeroEx.415565b0( )
        • TransformERC20Feature.transformERC20( inputToken=0x4d224452801ACEd8B2F0aebE155379bb5D594381, outputToken=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, inputTokenAmount=335795613393808564, minOutputTokenAmount=107071615839844, transformations= ) => ( outputTokenAmount=108154772047307 )
          • SimpleToken.transferFrom( sender=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, recipient=0x22F9dCF4647084d6C31b2765F6910cd85C178C18, amount=335795613393808564 ) => ( True )
          • FlashWallet.executeDelegateCall( target=0x2Fd08C1F9FC8406C1D7E3A799A13883a7E7949f0, callData=0x832B24BB0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000A1BEA5FE917450041748DBBBE7E9AC57A4BBEBAB000000000000000000000000A1BEA5FE917450041748DBBBE7E9AC57A4BBEBAB00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004D224452801ACED8B2F0AEBE155379BB5D594381000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC200000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002E000000000000000000000000000000000000000000000000004A8FC54CD78ECB4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000012556E697377617056330000000000000000000000000000000000000000000000000000000000000004A8FC54CD78ECB40000000000000000000000000000000000000000000000000000618700F50448000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000E592427A0AECE92DE3EDEE1F18E0157C0586156400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002B4D224452801ACED8B2F0AEBE155379BB5D594381002710C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ) => ( resultData=0x13C9929E00000000000000000000000000000000000000000000000000000000 )
            • FillQuoteTransformer.transform( context=[{name:sender, type:address, order:1, indexed:false, value:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, valueString:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB}, {name:recipient, type:address, order:2, indexed:false, value:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, valueString:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB}, {name:data, type:bytes, order:3, indexed:false, value:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004D224452801ACED8B2F0AEBE155379BB5D594381000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC200000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002E000000000000000000000000000000000000000000000000004A8FC54CD78ECB4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000012556E697377617056330000000000000000000000000000000000000000000000000000000000000004A8FC54CD78ECB40000000000000000000000000000000000000000000000000000618700F50448000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000E592427A0AECE92DE3EDEE1F18E0157C0586156400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002B4D224452801ACED8B2F0AEBE155379BB5D594381002710C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, valueString:0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004D224452801ACED8B2F0AEBE155379BB5D594381000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC200000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000002E000000000000000000000000000000000000000000000000004A8FC54CD78ECB4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000012556E697377617056330000000000000000000000000000000000000000000000000000000000000004A8FC54CD78ECB40000000000000000000000000000000000000000000000000000618700F50448000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000E592427A0AECE92DE3EDEE1F18E0157C0586156400000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002B4D224452801ACED8B2F0AEBE155379BB5D594381002710C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}] ) => ( magicBytes=System.Byte[] )
            • FlashWallet.executeDelegateCall( target=0xb2bc06a4EfB20FC6553a69Dbfa49B7bE938034A7, callData=0x832B24BB0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000A1BEA5FE917450041748DBBBE7E9AC57A4BBEBAB000000000000000000000000A1BEA5FE917450041748DBBBE7E9AC57A4BBEBAB00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000040000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ) => ( resultData=0x13C9929E00000000000000000000000000000000000000000000000000000000 )
              • WethTransformer.transform( context=[{name:sender, type:address, order:1, indexed:false, value:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, valueString:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB}, {name:taker, type:address, order:2, indexed:false, value:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, valueString:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB}, {name:data, type:bytes, order:3, indexed:false, value:0x000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF, valueString:0x000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF}] ) => ( success=System.Byte[] )
              • FlashWallet.executeDelegateCall( target=0x8146cbBE327364b13d0699f2CED39C637f92501a, callData=0x832B24BB0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000A1BEA5FE917450041748DBBBE7E9AC57A4BBEBAB000000000000000000000000A1BEA5FE917450041748DBBBE7E9AC57A4BBEBAB000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000000000000000000000000000025735455E4000000000000000000000000AD01C20D5886137E056775AF56915DE824C8FCE5 ) => ( resultData=0x13C9929E00000000000000000000000000000000000000000000000000000000 )
                • AffiliateFeeTransformer.transform( context=[{name:sender, type:address, order:1, indexed:false, value:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, valueString:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB}, {name:recipient, type:address, order:2, indexed:false, value:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, valueString:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB}, {name:data, type:bytes, order:3, indexed:false, value:0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000000000000000000000000000025735455E4000000000000000000000000AD01C20D5886137E056775AF56915DE824C8FCE5, valueString:0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000000000000000000000000000025735455E4000000000000000000000000AD01C20D5886137E056775AF56915DE824C8FCE5}] ) => ( success=System.Byte[] )
                • FlashWallet.executeDelegateCall( target=0xEa500D073652336A58846ada15C25F2C6D2d241f, callData=0x832B24BB0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000A1BEA5FE917450041748DBBBE7E9AC57A4BBEBAB000000000000000000000000A1BEA5FE917450041748DBBBE7E9AC57A4BBEBAB000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004D224452801ACED8B2F0AEBE155379BB5D5943810000000000000000000000000000000000000000000000000000000000000000 ) => ( resultData=0x13C9929E00000000000000000000000000000000000000000000000000000000 )
                  • PayTakerTransformer.transform( context=[{name:sender, type:address, order:1, indexed:false, value:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, valueString:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB}, {name:recipient, type:address, order:2, indexed:false, value:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, valueString:0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB}, {name:data, type:bytes, order:3, indexed:false, value:0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004D224452801ACED8B2F0AEBE155379BB5D5943810000000000000000000000000000000000000000000000000000000000000000, valueString:0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004D224452801ACED8B2F0AEBE155379BB5D5943810000000000000000000000000000000000000000000000000000000000000000}] ) => ( success=System.Byte[] )
                  • FlashWallet.executeCall( target=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, callData=0x, value=108154772047307 ) => ( resultData=0x )
                    • ETH 0.000108154772047307 ERC20Router.CALL( )
                    • ETH 0.000108154772047307 Relay: Solver.CALL( )
                      transferAndMulticall[ApprovalProxy (ln:37)]
                      File 1 of 12: ApprovalProxy
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: MIT
                      pragma solidity ^0.8.23;
                      import {Ownable} from "solady/src/auth/Ownable.sol";
                      import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
                      import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
                      import {IERC20Router} from "../src/types/interfaces/IERC20Router.sol";
                      contract ApprovalProxy is Ownable {
                      using SafeERC20 for IERC20;
                      error ArrayLengthsMismatch();
                      error ERC20TransferFromFailed();
                      error NativeTransferFailed();
                      event RouterUpdated(address newRouter);
                      address public router;
                      receive() external payable {}
                      constructor(address _owner, address _router) {
                      _initializeOwner(_owner);
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 2 of 12: ERC20Router
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: MIT
                      pragma solidity ^0.8.25;
                      import {Ownable} from "solady/src/auth/Ownable.sol";
                      import {Tstorish} from "tstorish/src/Tstorish.sol";
                      import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
                      import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
                      import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
                      import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
                      import {IAllowanceTransfer} from "permit2-relay/src/interfaces/IAllowanceTransfer.sol";
                      import {ISignatureTransfer} from "permit2-relay/src/interfaces/ISignatureTransfer.sol";
                      import {IPermit2} from "permit2-relay/src/interfaces/IPermit2.sol";
                      import {RelayerWitness} from "./types/lib/RelayStructs.sol";
                      import {IMulticaller} from "./types/interfaces/IMulticaller.sol";
                      contract ERC20Router is Ownable, Tstorish {
                      using SafeERC20 for IERC20;
                      // --- Errors --- //
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 3 of 12: SimpleToken
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: MIT
                      pragma solidity ^0.8.10;
                      import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
                      contract SimpleToken is ERC20 {
                      constructor(
                      string memory name,
                      string memory symbol,
                      uint256 totalSupply_
                      ) ERC20(name, symbol) {
                      _mint(msg.sender, totalSupply_);
                      }
                      }
                      // SPDX-License-Identifier: MIT
                      // OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
                      pragma solidity ^0.8.0;
                      /**
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 4 of 12: FlashWallet
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      /*
                      Copyright 2020 ZeroEx Intl.
                      Licensed under the Apache License, Version 2.0 (the "License");
                      you may not use this file except in compliance with the License.
                      You may obtain a copy of the License at
                      http://www.apache.org/licenses/LICENSE-2.0
                      Unless required by applicable law or agreed to in writing, software
                      distributed under the License is distributed on an "AS IS" BASIS,
                      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                      See the License for the specific language governing permissions and
                      limitations under the License.
                      */
                      pragma solidity ^0.6.5;
                      pragma experimental ABIEncoderV2;
                      import "@0x/contracts-utils/contracts/src/v06/LibBytesV06.sol";
                      import "./migrations/LibBootstrap.sol";
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 5 of 12: WETH9
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // Copyright (C) 2015, 2016, 2017 Dapphub
                      // This program is free software: you can redistribute it and/or modify
                      // it under the terms of the GNU General Public License as published by
                      // the Free Software Foundation, either version 3 of the License, or
                      // (at your option) any later version.
                      // This program is distributed in the hope that it will be useful,
                      // but WITHOUT ANY WARRANTY; without even the implied warranty of
                      // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
                      // GNU General Public License for more details.
                      // You should have received a copy of the GNU General Public License
                      // along with this program. If not, see <http://www.gnu.org/licenses/>.
                      pragma solidity ^0.4.18;
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 6 of 12: ZeroEx
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      /*
                      Copyright 2020 ZeroEx Intl.
                      Licensed under the Apache License, Version 2.0 (the "License");
                      you may not use this file except in compliance with the License.
                      You may obtain a copy of the License at
                      http://www.apache.org/licenses/LICENSE-2.0
                      Unless required by applicable law or agreed to in writing, software
                      distributed under the License is distributed on an "AS IS" BASIS,
                      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                      See the License for the specific language governing permissions and
                      limitations under the License.
                      */
                      pragma solidity ^0.6.5;
                      pragma experimental ABIEncoderV2;
                      import "@0x/contracts-utils/contracts/src/v06/LibBytesV06.sol";
                      import "./migrations/LibBootstrap.sol";
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 7 of 12: Multicaller
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: MIT
                      pragma solidity ^0.8.4;
                      /**
                      * @title Multicaller
                      * @author vectorized.eth
                      * @notice Contract that allows for efficient aggregation
                      * of multiple calls in a single transaction.
                      */
                      contract Multicaller {
                      // =============================================================
                      // ERRORS
                      // =============================================================
                      /**
                      * @dev The lengths of the input arrays are not the same.
                      */
                      error ArrayLengthsMismatch();
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 8 of 12: TransformERC20Feature
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: Apache-2.0
                      /*
                      Copyright 2020 ZeroEx Intl.
                      Licensed under the Apache License, Version 2.0 (the "License");
                      you may not use this file except in compliance with the License.
                      You may obtain a copy of the License at
                      http://www.apache.org/licenses/LICENSE-2.0
                      Unless required by applicable law or agreed to in writing, software
                      distributed under the License is distributed on an "AS IS" BASIS,
                      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                      See the License for the specific language governing permissions and
                      limitations under the License.
                      */
                      pragma solidity ^0.6.5;
                      pragma experimental ABIEncoderV2;
                      import "@0x/contracts-erc20/contracts/src/v06/IERC20TokenV06.sol";
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 9 of 12: FillQuoteTransformer
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: Apache-2.0
                      /*
                      Copyright 2023 ZeroEx Intl.
                      Licensed under the Apache License, Version 2.0 (the "License");
                      you may not use this file except in compliance with the License.
                      You may obtain a copy of the License at
                      http://www.apache.org/licenses/LICENSE-2.0
                      Unless required by applicable law or agreed to in writing, software
                      distributed under the License is distributed on an "AS IS" BASIS,
                      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                      See the License for the specific language governing permissions and
                      limitations under the License.
                      */
                      pragma solidity ^0.6.5;
                      pragma experimental ABIEncoderV2;
                      import "@0x/contracts-utils/contracts/src/v06/errors/LibRichErrorsV06.sol";
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 10 of 12: WethTransformer
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      /*
                      Copyright 2020 ZeroEx Intl.
                      Licensed under the Apache License, Version 2.0 (the "License");
                      you may not use this file except in compliance with the License.
                      You may obtain a copy of the License at
                      http://www.apache.org/licenses/LICENSE-2.0
                      Unless required by applicable law or agreed to in writing, software
                      distributed under the License is distributed on an "AS IS" BASIS,
                      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                      See the License for the specific language governing permissions and
                      limitations under the License.
                      */
                      pragma solidity ^0.6.5;
                      pragma experimental ABIEncoderV2;
                      import "@0x/contracts-utils/contracts/src/v06/errors/LibRichErrorsV06.sol";
                      import "@0x/contracts-utils/contracts/src/v06/LibSafeMathV06.sol";
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 11 of 12: AffiliateFeeTransformer
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: Apache-2.0
                      /*
                      Copyright 2020 ZeroEx Intl.
                      Licensed under the Apache License, Version 2.0 (the "License");
                      you may not use this file except in compliance with the License.
                      You may obtain a copy of the License at
                      http://www.apache.org/licenses/LICENSE-2.0
                      Unless required by applicable law or agreed to in writing, software
                      distributed under the License is distributed on an "AS IS" BASIS,
                      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                      See the License for the specific language governing permissions and
                      limitations under the License.
                      */
                      pragma solidity ^0.6.5;
                      pragma experimental ABIEncoderV2;
                      import "@0x/contracts-utils/contracts/src/v06/errors/LibRichErrorsV06.sol";
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                      File 12 of 12: PayTakerTransformer
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // SPDX-License-Identifier: Apache-2.0
                      /*
                      Copyright 2020 ZeroEx Intl.
                      Licensed under the Apache License, Version 2.0 (the "License");
                      you may not use this file except in compliance with the License.
                      You may obtain a copy of the License at
                      http://www.apache.org/licenses/LICENSE-2.0
                      Unless required by applicable law or agreed to in writing, software
                      distributed under the License is distributed on an "AS IS" BASIS,
                      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                      See the License for the specific language governing permissions and
                      limitations under the License.
                      */
                      pragma solidity ^0.6.5;
                      pragma experimental ABIEncoderV2;
                      import "@0x/contracts-utils/contracts/src/v06/errors/LibRichErrorsV06.sol";
                      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX