ETH Price: $2,517.78 (-0.13%)

Transaction Decoder

Block:
17420684 at Jun-06-2023 10:00:23 AM +UTC
Transaction Fee:
0.007399140934745647 ETH $18.63
Gas Used:
338,021 Gas / 21.889589507 Gwei

Emitted Events:

92 VOWToken.Sent( operator=[Receiver] ZeroExProxy, from=[Sender] 0xcd55dfbf1eda5bb8c8d61e0a4415d9c4851e3ca2, to=[Receiver] ZeroExProxy, amount=10762003707271138777760, data=0x, operatorData=0x )
93 VOWToken.Transfer( from=[Sender] 0xcd55dfbf1eda5bb8c8d61e0a4415d9c4851e3ca2, to=[Receiver] ZeroExProxy, value=10762003707271138777760 )
94 VOWToken.Approval( owner=[Receiver] ZeroExProxy, spender=ZeroEx, value=10762003707271138777760 )
95 VOWToken.Sent( operator=ZeroEx, from=[Receiver] ZeroExProxy, to=UniswapV2Pair, amount=8878653058498689404153, data=0x, operatorData=0x )
96 VOWToken.Transfer( from=[Receiver] ZeroExProxy, to=UniswapV2Pair, value=8878653058498689404153 )
97 TetherToken.Transfer( from=UniswapV2Pair, to=UniswapV2Pair, value=3331905896 )
98 UniswapV2Pair.Sync( reserve0=587587662789602731610609, reserve1=217826506693 )
99 UniswapV2Pair.Swap( sender=ZeroEx, amount0In=8878653058498689404153, amount1In=0, amount0Out=0, amount1Out=3331905896, to=UniswapV2Pair )
100 WETH9.Transfer( src=UniswapV2Pair, dst=ZeroEx, wad=1829406511266160626 )
101 UniswapV2Pair.Sync( reserve0=16452583582467588837973, reserve1=29878597203985 )
102 UniswapV2Pair.Swap( sender=ZeroEx, amount0In=0, amount1In=3331905896, amount0Out=1829406511266160626, amount1Out=0, to=ZeroEx )
103 VOWToken.Sent( operator=ZeroEx, from=[Receiver] ZeroExProxy, to=UniswapV2Pair, amount=1883350648772449373607, data=0x, operatorData=0x )
104 VOWToken.Transfer( from=[Receiver] ZeroExProxy, to=UniswapV2Pair, value=1883350648772449373607 )
105 WETH9.Transfer( src=UniswapV2Pair, dst=ZeroEx, wad=388389027083224712 )
106 UniswapV2Pair.Sync( reserve0=125265602080675865760525, reserve1=25520742057585880836 )
107 UniswapV2Pair.Swap( sender=ZeroEx, amount0In=1883350648772449373607, amount1In=0, amount0Out=0, amount1Out=388389027083224712, to=ZeroEx )
108 WETH9.Withdrawal( src=ZeroEx, wad=2217795538349385338 )

Account State Difference:

  Address   Before After State Difference Code
0x0d4a11d5...0471f1852
0x1BBf25e7...F4bE946Fb
0x1E497687...6a5707db2
(Abyss Finance: Eth2 Depositor 214)
280.398633499056499796 Eth280.399309541056499796 Eth0.000676042
0x7FdEB46b...b1007Fcbb
0xC02aaA39...83C756Cc2 3,353,755.013561243538960185 Eth3,353,752.795765705189574847 Eth2.217795538349385338
0xcD55dFBf...4851e3cA2
0.023039632038776345 Eth
Nonce: 5
2.233436029453416036 Eth
Nonce: 6
2.210396397414639691
0xdAC17F95...13D831ec7

Execution Trace

ZeroExProxy.proxiedSwap( msgData=0x77725DF60000000000000000000000001BBF25E71EC48B84D773809B4BA55B6F4BE946FB000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000024768CDC83945381AA00000000000000000000000000000000000000000000000001DDAD1FD99B92AA900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000001E150102B95A5E68CF9000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000001BBF25E71EC48B84D773809B4BA55B6F4BE946FB000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000006618BD9CA39F518DA8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000001BBF25E71EC48B84D773809B4BA55B6F4BE946FB000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2869584CD000000000000000000000000382FFCE2287252F930E1C8DC9328DAC5BF282BA100000000000000000000000000000000000000000000004A6F923C49647F0389, feeToken=0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb, inputToken=0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb, inputAmount=10762003707271138777760, outputToken=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, fee=0 )
  • VOWToken.transferFrom( _from=0xcD55dFBf1EdA5Bb8c8d61E0A4415D9c4851e3cA2, _to=0xe66B31678d6C16E9ebf358268a790B763C133750, _value=10762003707271138777760 ) => ( success_=True )
    • LToken.2e6a5609( )
      • ERC1820Registry.getInterfaceImplementer( _addr=0xcD55dFBf1EdA5Bb8c8d61E0A4415D9c4851e3cA2, _interfaceHash=29DDB589B1FB5FC7CF394961C1ADF5F8C6454761ADF795E67FE149F658ABE895 ) => ( 0x0000000000000000000000000000000000000000 )
      • ERC1820Registry.getInterfaceImplementer( _addr=0xe66B31678d6C16E9ebf358268a790B763C133750, _interfaceHash=B281FC8C12954D22544DB45DE3159A39272895B169A852B314F9CC762E44C53B ) => ( 0x0000000000000000000000000000000000000000 )
      • VOWToken.allowance( _holder=0xe66B31678d6C16E9ebf358268a790B763C133750, _spender=0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( remaining_=0 )
      • VOWToken.allowance( _holder=0xe66B31678d6C16E9ebf358268a790B763C133750, _spender=0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( remaining_=0 )
      • VOWToken.approve( _spender=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, _value=10762003707271138777760 ) => ( success_=True )
        • LToken.8bde1d78( )
        • ZeroEx.77725df6( )
          • MultiplexFeature.multiplexBatchSellTokenForEth( inputToken=0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb, calls=, sellAmount=10762003707271138777760, minBuyAmount=2151262659158813353 ) => ( boughtAmount=2217795538349385338 )
            • WETH9.balanceOf( 0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( 36225519603555985 )
            • MultiplexFeature._batchSellUniswapV2External( params=[{name:inputToken, type:address, order:1, indexed:false, value:0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb, valueString:0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb}, {name:outputToken, type:address, order:2, indexed:false, value:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, valueString:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}, {name:sellAmount, type:uint256, order:3, indexed:false, value:10762003707271138777760, valueString:10762003707271138777760}, {name:calls, type:tuple[], order:4, indexed:false}, {name:useSelfBalance, type:bool, order:5, indexed:false, value:false, valueString:False}, {name:recipient, type:address, order:6, indexed:false, value:0xDef1C0ded9bec7F1a1670819833240f027b25EfF, valueString:0xDef1C0ded9bec7F1a1670819833240f027b25EfF}, {name:payer, type:address, order:7, indexed:false, value:0xe66B31678d6C16E9ebf358268a790B763C133750, valueString:0xe66B31678d6C16E9ebf358268a790B763C133750}], wrappedCallData=0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000001BBF25E71EC48B84D773809B4BA55B6F4BE946FB000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, sellAmount=8878653058498689404153 ) => ( boughtAmount=1829406511266160626 )
              • VOWToken.transferFrom( _from=0xe66B31678d6C16E9ebf358268a790B763C133750, _to=0x1E49768714E438E789047f48FD386686a5707db2, _value=8878653058498689404153 ) => ( success_=True )
                • LToken.2e6a5609( )
                  • ERC1820Registry.getInterfaceImplementer( _addr=0xe66B31678d6C16E9ebf358268a790B763C133750, _interfaceHash=29DDB589B1FB5FC7CF394961C1ADF5F8C6454761ADF795E67FE149F658ABE895 ) => ( 0x0000000000000000000000000000000000000000 )
                  • ERC1820Registry.getInterfaceImplementer( _addr=0x1E49768714E438E789047f48FD386686a5707db2, _interfaceHash=B281FC8C12954D22544DB45DE3159A39272895B169A852B314F9CC762E44C53B ) => ( 0x0000000000000000000000000000000000000000 )
                  • UniswapV2Pair.STATICCALL( )
                  • UniswapV2Pair.swap( amount0Out=0, amount1Out=3331905896, to=0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852, data=0x )
                    • TetherToken.transfer( _to=0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852, _value=3331905896 )
                    • VOWToken.balanceOf( _holder=0x1E49768714E438E789047f48FD386686a5707db2 ) => ( balance_=587587662789602731610609 )
                    • TetherToken.balanceOf( who=0x1E49768714E438E789047f48FD386686a5707db2 ) => ( 217826506693 )
                    • UniswapV2Pair.STATICCALL( )
                    • UniswapV2Pair.swap( amount0Out=1829406511266160626, amount1Out=0, to=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, data=0x )
                      • WETH9.transfer( dst=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, wad=1829406511266160626 ) => ( True )
                      • WETH9.balanceOf( 0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852 ) => ( 16452583582467588837973 )
                      • TetherToken.balanceOf( who=0x0d4a11d5EEaaC28EC3F61d100daF4d40471f1852 ) => ( 29878597203985 )
                      • MultiplexFeature._batchSellUniswapV2External( params=[{name:inputToken, type:address, order:1, indexed:false, value:0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb, valueString:0x1BBf25e71EC48B84d773809B4bA55B6F4bE946Fb}, {name:outputToken, type:address, order:2, indexed:false, value:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, valueString:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}, {name:sellAmount, type:uint256, order:3, indexed:false, value:10762003707271138777760, valueString:10762003707271138777760}, {name:calls, type:tuple[], order:4, indexed:false}, {name:useSelfBalance, type:bool, order:5, indexed:false, value:false, valueString:False}, {name:recipient, type:address, order:6, indexed:false, value:0xDef1C0ded9bec7F1a1670819833240f027b25EfF, valueString:0xDef1C0ded9bec7F1a1670819833240f027b25EfF}, {name:payer, type:address, order:7, indexed:false, value:0xe66B31678d6C16E9ebf358268a790B763C133750, valueString:0xe66B31678d6C16E9ebf358268a790B763C133750}], wrappedCallData=0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000001BBF25E71EC48B84D773809B4BA55B6F4BE946FB000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, sellAmount=1883350648772449373607 ) => ( boughtAmount=388389027083224712 )
                        • VOWToken.transferFrom( _from=0xe66B31678d6C16E9ebf358268a790B763C133750, _to=0x7FdEB46b3a0916630f36E886D675602b1007Fcbb, _value=1883350648772449373607 ) => ( success_=True )
                          • LToken.2e6a5609( )
                            • ERC1820Registry.getInterfaceImplementer( _addr=0xe66B31678d6C16E9ebf358268a790B763C133750, _interfaceHash=29DDB589B1FB5FC7CF394961C1ADF5F8C6454761ADF795E67FE149F658ABE895 ) => ( 0x0000000000000000000000000000000000000000 )
                            • ERC1820Registry.getInterfaceImplementer( _addr=0x7FdEB46b3a0916630f36E886D675602b1007Fcbb, _interfaceHash=B281FC8C12954D22544DB45DE3159A39272895B169A852B314F9CC762E44C53B ) => ( 0x0000000000000000000000000000000000000000 )
                            • UniswapV2Pair.STATICCALL( )
                            • UniswapV2Pair.swap( amount0Out=0, amount1Out=388389027083224712, to=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, data=0x )
                              • WETH9.transfer( dst=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, wad=388389027083224712 ) => ( True )
                              • VOWToken.balanceOf( _holder=0x7FdEB46b3a0916630f36E886D675602b1007Fcbb ) => ( balance_=125265602080675865760525 )
                              • WETH9.balanceOf( 0x7FdEB46b3a0916630f36E886D675602b1007Fcbb ) => ( 25520742057585880836 )
                              • WETH9.balanceOf( 0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( 2254021057952941323 )
                              • WETH9.withdraw( wad=2217795538349385338 )
                                • ETH 2.217795538349385338 ZeroEx.CALL( )
                                • ETH 2.217795538349385338 ZeroExProxy.CALL( )
                                • ETH 2.217795538349385338 0xcd55dfbf1eda5bb8c8d61e0a4415d9c4851e3ca2.CALL( )
                                  File 1 of 11: ZeroExProxy
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  // SPDX-License-Identifier: GPL-3.0
                                  pragma solidity 0.6.12;
                                  interface IZeroEx {
                                  function getFunctionImplementation(bytes4 _signature) external returns (address);
                                  }// SPDX-License-Identifier: GPL-3.0
                                  pragma solidity 0.6.12;
                                  pragma experimental ABIEncoderV2;
                                  import "./IZeroEx.sol";
                                  import "@0x/contracts-utils/contracts/src/v06/LibBytesV06.sol";
                                  import "@0x/contracts-zero-ex/contracts/src/errors/LibProxyRichErrors.sol";
                                  import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
                                  import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
                                  import "@openzeppelin/contracts/access/Ownable.sol";
                                  /// @title Coinbase proxy contract for 0x proxy
                                  /// @dev A generic proxy contract which extracts a fee before delegation
                                  contract ZeroExProxy is Ownable {
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                  File 2 of 11: VOWToken
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  // File: contracts/thirdParty/ECDSA.sol
                                  // Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/cryptography/ECDSA.sol
                                  // Line 60 added to original source in accordance with recommendation on accepting signatures with 0/1 for v
                                  pragma solidity ^0.6.0;
                                  /**
                                  * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
                                  *
                                  * These functions can be used to verify that a message was signed by the holder
                                  * of the private keys of a given address.
                                  */
                                  library ECDSA {
                                  /**
                                  * @dev Returns the address that signed a hashed message (`hash`) with
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                  File 3 of 11: UniswapV2Pair
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  // File: contracts/interfaces/IUniswapV2Pair.sol
                                  pragma solidity >=0.5.0;
                                  interface IUniswapV2Pair {
                                  event Approval(address indexed owner, address indexed spender, uint value);
                                  event Transfer(address indexed from, address indexed to, uint value);
                                  function name() external pure returns (string memory);
                                  function symbol() external pure returns (string memory);
                                  function decimals() external pure returns (uint8);
                                  function totalSupply() external view returns (uint);
                                  function balanceOf(address owner) external view returns (uint);
                                  function allowance(address owner, address spender) external view returns (uint);
                                  function approve(address spender, uint value) external returns (bool);
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                  File 4 of 11: UniswapV2Pair
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  // File: contracts/interfaces/IUniswapV2Pair.sol
                                  pragma solidity >=0.5.0;
                                  interface IUniswapV2Pair {
                                  event Approval(address indexed owner, address indexed spender, uint value);
                                  event Transfer(address indexed from, address indexed to, uint value);
                                  function name() external pure returns (string memory);
                                  function symbol() external pure returns (string memory);
                                  function decimals() external pure returns (uint8);
                                  function totalSupply() external view returns (uint);
                                  function balanceOf(address owner) external view returns (uint);
                                  function allowance(address owner, address spender) external view returns (uint);
                                  function approve(address spender, uint value) external returns (bool);
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                  File 5 of 11: TetherToken
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  pragma solidity ^0.4.17;
                                  /**
                                  * @title SafeMath
                                  * @dev Math operations with safety checks that throw on error
                                  */
                                  library SafeMath {
                                  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
                                  if (a == 0) {
                                  return 0;
                                  }
                                  uint256 c = a * b;
                                  assert(c / a == b);
                                  return c;
                                  }
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                  File 6 of 11: 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 11: 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 8 of 11: UniswapV2Pair
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  // File: contracts/interfaces/IUniswapV2Pair.sol
                                  pragma solidity >=0.5.0;
                                  interface IUniswapV2Pair {
                                  event Approval(address indexed owner, address indexed spender, uint value);
                                  event Transfer(address indexed from, address indexed to, uint value);
                                  function name() external pure returns (string memory);
                                  function symbol() external pure returns (string memory);
                                  function decimals() external pure returns (uint8);
                                  function totalSupply() external view returns (uint);
                                  function balanceOf(address owner) external view returns (uint);
                                  function allowance(address owner, address spender) external view returns (uint);
                                  function approve(address spender, uint value) external returns (bool);
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                  File 9 of 11: LToken
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  // File: contracts\thirdParty\interfaces\IERC1820Registry.sol
                                  // From open https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/introspection/IERC1820Registry.sol
                                  pragma solidity ^0.6.0;
                                  /**
                                  * @dev Interface of the global ERC1820 Registry, as defined in the
                                  * https://eips.ethereum.org/EIPS/eip-1820[EIP]. Accounts may register
                                  * implementers for interfaces in this registry, as well as query support.
                                  *
                                  * Implementers may be shared by multiple accounts, and can also implement more
                                  * than a single interface for each account. Contracts can implement interfaces
                                  * for themselves, but externally-owned accounts (EOA) must delegate this to a
                                  * contract.
                                  *
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                  File 10 of 11: ERC1820Registry
                                  1
                                  2
                                  3
                                  4
                                  5
                                  6
                                  7
                                  8
                                  9
                                  10
                                  11
                                  12
                                  13
                                  14
                                  15
                                  16
                                  /* ERC1820 Pseudo-introspection Registry Contract
                                  * This standard defines a universal registry smart contract where any address (contract or regular account) can
                                  * register which interface it supports and which smart contract is responsible for its implementation.
                                  *
                                  * Written in 2019 by Jordi Baylina and Jacques Dafflon
                                  *
                                  * To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to
                                  * this software to the public domain worldwide. This software is distributed without any warranty.
                                  *
                                  * You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see
                                  * <http://creativecommons.org/publicdomain/zero/1.0/>.
                                  *
                                  * ███████╗██████╗ ██████╗ ██╗ █████╗ ██████╗ ██████╗
                                  * ██╔════╝██╔══██╗██╔════╝███║██╔══██╗╚════██╗██╔═████╗
                                  * █████╗ ██████╔╝██║ ╚██║╚█████╔╝ █████╔╝██║██╔██║
                                  * ██╔══╝ ██╔══██╗██║ ██║██╔══██╗██╔═══╝ ████╔╝██║
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                  File 11 of 11: MultiplexFeature
                                  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-erc20/src/IERC20Token.sol";
                                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX