ETH Price: $2,633.94 (+2.70%)

Transaction Decoder

Block:
22704631 at Jun-14-2025 06:37:47 PM +UTC
Transaction Fee:
0.000379166436424448 ETH $1.00
Gas Used:
407,668 Gas / 0.930086336 Gwei

Emitted Events:

83 HotCrossToken.Transfer( from=[Sender] 0x22f05e65197730c892cbae23638ccf634c08e495, to=UniswapV2Pair, value=7593845139999999986001 )
84 HotCrossToken.Approval( owner=[Sender] 0x22f05e65197730c892cbae23638ccf634c08e495, spender=[Receiver] ZeroEx, value=57896044618658097711785492504343953926634992332820282004335620263956564833966 )
85 WETH9.Transfer( src=UniswapV2Pair, dst=[Receiver] ZeroEx, wad=9823513107473671 )
86 UniswapV2Pair.Sync( reserve0=62942538910481604700220, reserve1=71815354768246573 )
87 UniswapV2Pair.Swap( sender=[Receiver] ZeroEx, amount0In=7593845139999999986001, amount1In=0, amount0Out=0, amount1Out=9823513107473671, to=[Receiver] ZeroEx )
88 HotCrossToken.Transfer( from=[Sender] 0x22f05e65197730c892cbae23638ccf634c08e495, to=UniswapV2Pair, value=2983296304999999994501 )
89 HotCrossToken.Approval( owner=[Sender] 0x22f05e65197730c892cbae23638ccf634c08e495, spender=[Receiver] ZeroEx, value=57896044618658097711785492504343953926634992332820282001352323958956564839465 )
90 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000063bfea618c17db3e79be553da55d73db0dc715af, 0x000000000000000000000000b4e16d0168e52d35cacd2c6185b44281ec28c9dc, 00000000000000000000000000000000000000000000000000000000009bcc42 )
91 UniswapV2Pair.Sync( reserve0=19657388165080918673655, reserve1=57239013 )
92 UniswapV2Pair.Swap( sender=[Receiver] ZeroEx, amount0In=2983296304999999994501, amount1In=0, amount0Out=0, amount1Out=10210370, to=UniswapV2Pair )
93 WETH9.Transfer( src=UniswapV2Pair, dst=[Receiver] ZeroEx, wad=4067779000042207 )
94 UniswapV2Pair.Sync( reserve0=15953334113736, reserve1=6374878241595408308491 )
95 UniswapV2Pair.Swap( sender=[Receiver] ZeroEx, amount0In=10210370, amount1In=0, amount0Out=0, amount1Out=4067779000042207, to=[Receiver] ZeroEx )
96 HotCrossToken.Transfer( from=[Sender] 0x22f05e65197730c892cbae23638ccf634c08e495, to=UniswapV2Pair, value=271208755000000019498 )
97 HotCrossToken.Approval( owner=[Sender] 0x22f05e65197730c892cbae23638ccf634c08e495, spender=[Receiver] ZeroEx, value=57896044618658097711785492504343953926634992332820282001081115203956564819967 )
98 TetherToken.Transfer( from=UniswapV2Pair, to=UniswapV2Pair, value=1018017 )
99 UniswapV2Pair.Sync( reserve0=1998484244487500560000, reserve1=6503062 )
100 UniswapV2Pair.Swap( sender=[Receiver] ZeroEx, amount0In=271208755000000019498, amount1In=0, amount0Out=0, amount1Out=1018017, to=UniswapV2Pair )
101 WETH9.Transfer( src=UniswapV2Pair, dst=[Receiver] ZeroEx, wad=405434815476250 )
102 UniswapV2Pair.Sync( reserve0=343176021677733731924, reserve1=859105696975 )
103 UniswapV2Pair.Swap( sender=[Receiver] ZeroEx, amount0In=0, amount1In=1018017, amount0Out=405434815476250, amount1Out=0, to=[Receiver] ZeroEx )
104 WETH9.Withdrawal( src=[Receiver] ZeroEx, wad=14296726922992128 )

Account State Difference:

  Address   Before After State Difference Code
0x06da0fd4...10A184553
0x0BDC8dCF...92888B6A0
0x1Cc4A4bb...9aABb43c5
0x22F05E65...34c08e495
0.093884670603306555 Eth
Nonce: 1234
0.107802231089874235 Eth
Nonce: 1235
0.01391756048656768
0x4297394c...7681Ff24E
(Titan Builder)
8.492611078111060704 Eth8.492814912111060704 Eth0.000203834
0x63bFea61...b0DC715Af
0xA0b86991...E3606eB48
0xB4e16d01...1Ec28C9Dc
0xC02aaA39...83C756Cc2 2,623,656.10159978799823361 Eth2,623,656.087303061075241482 Eth0.014296726922992128
0xdAC17F95...13D831ec7

Execution Trace

ZeroEx.77725df6( )
  • MultiplexFeature.multiplexBatchSellTokenForEth( inputToken=0x4297394c20800E8a38A619A243E9BbE7681Ff24E, calls=, sellAmount=10848350200000000000000, minBuyAmount=14282430196069136 ) => ( boughtAmount=14296726922992128 )
    • WETH9.balanceOf( 0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( 3576416119153312 )
    • MultiplexFeature._batchSellUniswapV2External( params=[{name:inputToken, type:address, order:1, indexed:false, value:0x4297394c20800E8a38A619A243E9BbE7681Ff24E, valueString:0x4297394c20800E8a38A619A243E9BbE7681Ff24E}, {name:outputToken, type:address, order:2, indexed:false, value:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, valueString:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}, {name:sellAmount, type:uint256, order:3, indexed:false, value:10848350200000000000000, valueString:10848350200000000000000}, {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:0x22F05E65197730c892CbaE23638cCf634c08e495, valueString:0x22F05E65197730c892CbaE23638cCf634c08e495}], wrappedCallData=0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000004297394C20800E8A38A619A243E9BBE7681FF24E000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, sellAmount=7593845139999999986001 ) => ( boughtAmount=9823513107473671 )
      • HotCrossToken.transferFrom( sender=0x22F05E65197730c892CbaE23638cCf634c08e495, recipient=0x1Cc4A4bb86161F409248217027E2A509aABb43c5, amount=7593845139999999986001 ) => ( True )
      • UniswapV2Pair.STATICCALL( )
      • UniswapV2Pair.swap( amount0Out=0, amount1Out=9823513107473671, to=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, data=0x )
        • WETH9.transfer( dst=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, wad=9823513107473671 ) => ( True )
        • HotCrossToken.balanceOf( account=0x1Cc4A4bb86161F409248217027E2A509aABb43c5 ) => ( 62942538910481604700220 )
        • WETH9.balanceOf( 0x1Cc4A4bb86161F409248217027E2A509aABb43c5 ) => ( 71815354768246573 )
        • MultiplexFeature._batchSellUniswapV2External( params=[{name:inputToken, type:address, order:1, indexed:false, value:0x4297394c20800E8a38A619A243E9BbE7681Ff24E, valueString:0x4297394c20800E8a38A619A243E9BbE7681Ff24E}, {name:outputToken, type:address, order:2, indexed:false, value:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, valueString:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}, {name:sellAmount, type:uint256, order:3, indexed:false, value:10848350200000000000000, valueString:10848350200000000000000}, {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:0x22F05E65197730c892CbaE23638cCf634c08e495, valueString:0x22F05E65197730c892CbaE23638cCf634c08e495}], wrappedCallData=0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000004297394C20800E8A38A619A243E9BBE7681FF24E000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB48000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, sellAmount=2983296304999999994501 ) => ( boughtAmount=4067779000042207 )
          • HotCrossToken.transferFrom( sender=0x22F05E65197730c892CbaE23638cCf634c08e495, recipient=0x63bFea618C17Db3E79Be553Da55d73Db0DC715Af, amount=2983296304999999994501 ) => ( True )
          • UniswapV2Pair.STATICCALL( )
          • UniswapV2Pair.swap( amount0Out=0, amount1Out=10210370, to=0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc, data=0x )
            • FiatTokenProxy.a9059cbb( )
              • FiatTokenV2_2.transfer( to=0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc, value=10210370 ) => ( True )
              • HotCrossToken.balanceOf( account=0x63bFea618C17Db3E79Be553Da55d73Db0DC715Af ) => ( 19657388165080918673655 )
              • FiatTokenProxy.70a08231( )
                • FiatTokenV2_2.balanceOf( account=0x63bFea618C17Db3E79Be553Da55d73Db0DC715Af ) => ( 57239013 )
                • UniswapV2Pair.STATICCALL( )
                • UniswapV2Pair.swap( amount0Out=0, amount1Out=4067779000042207, to=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, data=0x )
                  • WETH9.transfer( dst=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, wad=4067779000042207 ) => ( True )
                  • FiatTokenProxy.70a08231( )
                    • FiatTokenV2_2.balanceOf( account=0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc ) => ( 15953334113736 )
                    • WETH9.balanceOf( 0xB4e16d0168e52d35CaCD2c6185b44281Ec28C9Dc ) => ( 6374878241595408308491 )
                    • MultiplexFeature._batchSellUniswapV2External( params=[{name:inputToken, type:address, order:1, indexed:false, value:0x4297394c20800E8a38A619A243E9BbE7681Ff24E, valueString:0x4297394c20800E8a38A619A243E9BbE7681Ff24E}, {name:outputToken, type:address, order:2, indexed:false, value:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, valueString:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}, {name:sellAmount, type:uint256, order:3, indexed:false, value:10848350200000000000000, valueString:10848350200000000000000}, {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:0x22F05E65197730c892CbaE23638cCf634c08e495, valueString:0x22F05E65197730c892CbaE23638cCf634c08e495}], wrappedCallData=0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000030000000000000000000000004297394C20800E8A38A619A243E9BBE7681FF24E000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, sellAmount=271208755000000019498 ) => ( boughtAmount=405434815476250 )
                      • HotCrossToken.transferFrom( sender=0x22F05E65197730c892CbaE23638cCf634c08e495, recipient=0x0BDC8dCF00A0a336235886aB654a35292888B6A0, amount=271208755000000019498 ) => ( True )
                      • UniswapV2Pair.STATICCALL( )
                      • UniswapV2Pair.swap( amount0Out=0, amount1Out=1018017, to=0x06da0fd433C1A5d7a4faa01111c044910A184553, data=0x )
                        • TetherToken.transfer( _to=0x06da0fd433C1A5d7a4faa01111c044910A184553, _value=1018017 )
                        • HotCrossToken.balanceOf( account=0x0BDC8dCF00A0a336235886aB654a35292888B6A0 ) => ( 1998484244487500560000 )
                        • TetherToken.balanceOf( who=0x0BDC8dCF00A0a336235886aB654a35292888B6A0 ) => ( 6503062 )
                        • UniswapV2Pair.STATICCALL( )
                        • UniswapV2Pair.swap( amount0Out=405434815476250, amount1Out=0, to=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, data=0x )
                          • WETH9.transfer( dst=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, wad=405434815476250 ) => ( True )
                          • WETH9.balanceOf( 0x06da0fd433C1A5d7a4faa01111c044910A184553 ) => ( 343176021677733731924 )
                          • TetherToken.balanceOf( who=0x06da0fd433C1A5d7a4faa01111c044910A184553 ) => ( 859105696975 )
                          • WETH9.balanceOf( 0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( 17873143042145440 )
                          • WETH9.withdraw( wad=14296726922992128 )
                            • ETH 0.014296726922992128 ZeroEx.CALL( )
                            • ETH 0.014296726922992128 0x22f05e65197730c892cbae23638ccf634c08e495.CALL( )
                              File 1 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 2 of 12: 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 3 of 12: HotCrossToken
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              // File: @openzeppelin/contracts/utils/Context.sol
                              // SPDX-License-Identifier: MIT
                              pragma solidity ^0.8.0;
                              /*
                              * @dev Provides information about the current execution context, including the
                              * sender of the transaction and its data. While these are generally available
                              * via msg.sender and msg.data, they should not be accessed in such a direct
                              * manner, since when dealing with meta-transactions the account sending and
                              * paying for execution may not be the actual sender (as far as an application
                              * is concerned).
                              *
                              * This contract is only required for intermediate, library-like contracts.
                              */
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 4 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 5 of 12: 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 6 of 12: FiatTokenProxy
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              pragma solidity ^0.4.24;
                              // File: zos-lib/contracts/upgradeability/Proxy.sol
                              /**
                              * @title Proxy
                              * @dev Implements delegation of calls to other contracts, with proper
                              * forwarding of return values and bubbling of failures.
                              * It defines a fallback function that delegates all calls to the address
                              * returned by the abstract _implementation() internal function.
                              */
                              contract Proxy {
                              /**
                              * @dev Fallback function.
                              * Implemented entirely in `_fallback`.
                              */
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 7 of 12: 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 8 of 12: UniswapV2Pair
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              // File: contracts/uniswapv2/interfaces/IUniswapV2Factory.sol
                              pragma solidity >=0.5.0;
                              interface IUniswapV2Factory {
                              event PairCreated(address indexed token0, address indexed token1, address pair, uint);
                              function feeTo() external view returns (address);
                              function feeToSetter() external view returns (address);
                              function migrator() external view returns (address);
                              function getPair(address tokenA, address tokenB) external view returns (address pair);
                              function allPairs(uint) external view returns (address pair);
                              function allPairsLength() external view returns (uint);
                              function createPair(address tokenA, address tokenB) external returns (address pair);
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 9 of 12: UniswapV2Pair
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              // File: contracts/uniswapv2/interfaces/IUniswapV2Factory.sol
                              pragma solidity >=0.5.0;
                              interface IUniswapV2Factory {
                              event PairCreated(address indexed token0, address indexed token1, address pair, uint);
                              function feeTo() external view returns (address);
                              function feeToSetter() external view returns (address);
                              function migrator() external view returns (address);
                              function getPair(address tokenA, address tokenB) external view returns (address pair);
                              function allPairs(uint) external view returns (address pair);
                              function allPairsLength() external view returns (uint);
                              function createPair(address tokenA, address tokenB) external returns (address pair);
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 10 of 12: 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 11 of 12: 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

                              File 12 of 12: FiatTokenV2_2
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              /**
                              * SPDX-License-Identifier: Apache-2.0
                              *
                              * Copyright (c) 2023, Circle Internet Financial, LLC.
                              *
                              * 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.
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX