ETH Price: $3,751.62 (+0.81%)

Transaction Decoder

Block:
22733696 at Jun-18-2025 08:16:59 PM +UTC
Transaction Fee:
0.000434396438488625 ETH $1.63
Gas Used:
430,025 Gas / 1.010165545 Gwei

Emitted Events:

926 OptimizedTransparentUpgradeableProxy.0x720da23a5c920b1d8827ec83c4d3c4d90d9419eadb0036b88cb4c2ffa91aef7d( 0x720da23a5c920b1d8827ec83c4d3c4d90d9419eadb0036b88cb4c2ffa91aef7d, 0x0000000000000000000000000000000500000000000000000000000000000280, 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48, 00000000000000000000000000000000000000000000000000032d7915fed408, 00000000000000000000000000000000000000000000000001f7083cf38c5bee, 0000000000000000000000000000000000000000000000000013f288a7c68e25, 000000000000000000000000000000000000000000000000000f8231a5d78258, 0000000000000000000000000000000000000000000000000000000000d32eb9, 0000000000000000000000000000000000000000000000000000000000fc7cb1, 00000000000000000000000000000000000000000000000000000003cdd20fa6, 0000000000000000000000000000000000000000000000000000000020ac1096, 0000000000000000000000000000000000000000000000000000000000000001 )
927 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000c537e898cd774e2dcba3b14ea6f34c93d5ea45e1, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0000000000000000000000000000000000000000000000000000000000006393 )
928 OptimizedTransparentUpgradeableProxy.0x95f3b01351225fea0e69a46f68b164c9dea10284f12cd4a907ce66510ab7af6a( 0x95f3b01351225fea0e69a46f68b164c9dea10284f12cd4a907ce66510ab7af6a, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48, 000000000000000000000000000000000000000000000000000009184e72a000, 0000000000000000000000000000000000000000000000000000000000006393, 0000000000000000000000000000000000000000000000000000000000000034, 0000000000000000000000000000000000000000000000000000000000000000 )
929 TransparentUpgradeableProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000034f3cf0bc81bc5b2697b3b2b260cda33ffe564ab, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 00000000000000000000000000000000000000000000000000605b942c2046b4 )
930 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0x00000000000000000000000034f3cf0bc81bc5b2697b3b2b260cda33ffe564ab, 0000000000000000000000000000000000000000000000000000000000006393 )
931 UniswapV3Pool.Swap( sender=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, recipient=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, amount0=-27122289717823156, amount1=25491, sqrtPriceX96=76789022103028099660845, liquidity=92154519951850422, tick=-276950 )
932 TetherToken.Transfer( from=UniswapV3Pool, to=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, value=27119 )
933 TransparentUpgradeableProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0x000000000000000000000000b2fedd4a8146f7eb5b5ae5e47c023ec77f1f4167, 00000000000000000000000000000000000000000000000000605b942c2046b4 )
934 UniswapV3Pool.Swap( sender=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, recipient=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, amount0=27122289717823156, amount1=-27119, sqrtPriceX96=79244119515573020875536, liquidity=383790554021044020, tick=-276320 )
935 TetherToken.Transfer( from=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, to=0x922164BBBd36Acf9E854AcBbF32faCC949fCAEef, value=27 )
936 TetherToken.Transfer( from=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, to=[Sender] 0x14d55c1bc548e0f195322d7cb3a5101227ecc71a, value=27092 )
937 OpenOceanExchangeProxy.0x76af224a143865a50b41496e1a73622698692c565c1214bc862f18e22d829c5e( 0x76af224a143865a50b41496e1a73622698692c565c1214bc862f18e22d829c5e, 0x00000000000000000000000014d55c1bc548e0f195322d7cb3a5101227ecc71a, 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7, 00000000000000000000000014d55c1bc548e0f195322d7cb3a5101227ecc71a, 000000000000000000000000000000000000000000000000000009184e72a000, 000000000000000000000000000000000000000000000000000009184e72a000, 00000000000000000000000000000000000000000000000000000000000069d4, 00000000000000000000000000000000000000000000000000000000000068c4, 00000000000000000000000000000000000000000000000000000000000069d4, 0000000000000000000000003487ef9f9b36547e43268b8f0e2349a226c70b53 )

Account State Difference:

  Address   Before After State Difference Code
0x14d55C1b...227ECC71A
0.001275244844589168 Eth
Nonce: 43
0.000830848406100543 Eth
Nonce: 44
0.000444396438488625
0x34F3CF0b...3ffe564AB
(Uniswap V3: USD0++-USDC)
0x35D89493...15fc69bC0
(Titan Builder)
16.453779286718192696 Eth16.453994299218192696 Eth0.0002150125
0xA0b86991...E3606eB48
0xb2fEDD4a...77f1F4167
(Uniswap V3: USD0++-USDT 2)
0xC537e898...3d5eA45e1
(Bancor: Carbon)
93.488168805757915311 Eth93.488178805757915311 Eth0.00001
0xdAC17F95...13D831ec7

Execution Trace

ETH 0.00001 OpenOceanExchangeProxy.90411a32( )
  • ETH 0.00001 OpenOceanExchange.swap( caller=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, desc=[{name:srcToken, type:address, order:1, indexed:false, value:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, valueString:0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE}, {name:dstToken, type:address, order:2, indexed:false, value:0xdAC17F958D2ee523a2206206994597C13D831ec7, valueString:0xdAC17F958D2ee523a2206206994597C13D831ec7}, {name:srcReceiver, type:address, order:3, indexed:false, value:0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, valueString:0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121}, {name:dstReceiver, type:address, order:4, indexed:false, value:0x14d55C1bC548e0F195322D7cB3A5101227ECC71A, valueString:0x14d55C1bC548e0F195322D7cB3A5101227ECC71A}, {name:amount, type:uint256, order:5, indexed:false, value:10000000000000, valueString:10000000000000}, {name:minReturnAmount, type:uint256, order:6, indexed:false, value:26820, valueString:26820}, {name:guaranteedAmount, type:uint256, order:7, indexed:false, value:27092, valueString:27092}, {name:flags, type:uint256, order:8, indexed:false, value:0, valueString:0}, {name:referrer, type:address, order:9, indexed:false, value:0x3487Ef9f9B36547e43268B8f0E2349a226c70b53, valueString:0x3487Ef9f9B36547e43268B8f0E2349a226c70b53}, {name:permit, type:bytes, order:10, indexed:false, value:0x, valueString:0x}], calls= ) => ( returnAmount=27092 )
    • TetherToken.balanceOf( who=0x14d55C1bC548e0F195322D7cB3A5101227ECC71A ) => ( 0 )
    • ETH 0.00001 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.a8920d2b( )
      • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
        • ETH 0.00001 OptimizedTransparentUpgradeableProxy.f1c5e014( )
          • ETH 0.00001 CarbonController.tradeBySourceAmount( sourceToken=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, targetToken=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, tradeActions=, deadline=4294967295, minReturn=1 ) => ( 25491 )
            • FiatTokenProxy.a9059cbb( )
            • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
              • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.9f865422( )
                • FiatTokenProxy.70a08231( )
                  • FiatTokenV2_2.balanceOf( account=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121 ) => ( 25491 )
                  • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.e5b07cdb( )
                    • UniswapV3Pool.swap( recipient=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, zeroForOne=False, amountSpecified=25491, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000006393000000000000000000000000000000000000000000000000000000000000002EA0B86991C6218B36C1D19D4A2E9EB0CE3606EB480001F435D8949372D46B7A3D5A56006AE77B215FC69BC0000001000000000000000000000000000000000000 ) => ( amount0=-27122289717823156, amount1=25491 )
                    • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
                      • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.9f865422( )
                        • TransparentUpgradeableProxy.70a08231( )
                          • Usd0PP.balanceOf( account=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121 ) => ( 27122289717823156 )
                          • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.e5b07cdb( )
                            • UniswapV3Pool.swap( recipient=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, zeroForOne=True, amountSpecified=27122289717823156, sqrtPriceLimitX96=4295128740, data=0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000605B942C2046B4000000000000000000000000000000000000000000000000000000000000002E35D8949372D46B7A3D5A56006AE77B215FC69BC00001F4DAC17F958D2EE523A2206206994597C13D831EC7000001000000000000000000000000000000000000 ) => ( amount0=27122289717823156, amount1=-27119 )
                            • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
                              • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.8a6a1e85( )
                                • TetherToken.balanceOf( who=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121 ) => ( 27119 )
                                • TetherToken.transfer( _to=0x922164BBBd36Acf9E854AcBbF32faCC949fCAEef, _value=27 )
                                • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
                                  • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.9f865422( )
                                    • TetherToken.balanceOf( who=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121 ) => ( 27092 )
                                    • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.d1660f99( )
                                      • TetherToken.transfer( _to=0x14d55C1bC548e0F195322D7cB3A5101227ECC71A, _value=27092 )
                                      • TetherToken.balanceOf( who=0x14d55C1bC548e0F195322D7cB3A5101227ECC71A ) => ( 27092 )
                                        File 1 of 11: OpenOceanExchangeProxy
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        // File: @openzeppelin/contracts/proxy/Proxy.sol
                                        // SPDX-License-Identifier: MIT
                                        pragma solidity >=0.6.0 <0.8.0;
                                        /**
                                        * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
                                        * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
                                        * be specified by overriding the virtual {_implementation} function.
                                        *
                                        * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
                                        * different contract through the {_delegate} function.
                                        *
                                        * The success and return data of the delegated call will be returned back to the caller of the proxy.
                                        */
                                        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                        File 2 of 11: OptimizedTransparentUpgradeableProxy
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        // SPDX-License-Identifier: MIT
                                        // OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)
                                        pragma solidity ^0.8.0;
                                        /**
                                        * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
                                        * proxy whose upgrades are fully controlled by the current implementation.
                                        */
                                        interface IERC1822Proxiable {
                                        /**
                                        * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
                                        * address.
                                        *
                                        * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
                                        * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
                                        * function revert if invoked through a proxy.
                                        */
                                        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                        File 3 of 11: 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 4 of 11: TransparentUpgradeableProxy
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        // SPDX-License-Identifier: MIT
                                        // OpenZeppelin Contracts (last updated v5.0.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
                                        pragma solidity ^0.8.20;
                                        import {ERC1967Utils} from "../ERC1967/ERC1967Utils.sol";
                                        import {ERC1967Proxy} from "../ERC1967/ERC1967Proxy.sol";
                                        import {IERC1967} from "../../interfaces/IERC1967.sol";
                                        import {ProxyAdmin} from "./ProxyAdmin.sol";
                                        /**
                                        * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}
                                        * does not implement this interface directly, and its upgradeability mechanism is implemented by an internal dispatch
                                        * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not
                                        * include them in the ABI so this interface must be used to interact with it.
                                        */
                                        interface ITransparentUpgradeableProxy is IERC1967 {
                                        function upgradeToAndCall(address, bytes calldata) external payable;
                                        }
                                        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                        File 5 of 11: UniswapV3Pool
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        // SPDX-License-Identifier: BUSL-1.1
                                        pragma solidity =0.7.6;
                                        import './interfaces/IUniswapV3Pool.sol';
                                        import './NoDelegateCall.sol';
                                        import './libraries/LowGasSafeMath.sol';
                                        import './libraries/SafeCast.sol';
                                        import './libraries/Tick.sol';
                                        import './libraries/TickBitmap.sol';
                                        import './libraries/Position.sol';
                                        import './libraries/Oracle.sol';
                                        import './libraries/FullMath.sol';
                                        import './libraries/FixedPoint128.sol';
                                        import './libraries/TransferHelper.sol';
                                        import './libraries/TickMath.sol';
                                        import './libraries/LiquidityMath.sol';
                                        import './libraries/SqrtPriceMath.sol';
                                        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                        File 6 of 11: UniswapV3Pool
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        // SPDX-License-Identifier: BUSL-1.1
                                        pragma solidity =0.7.6;
                                        import './interfaces/IUniswapV3Pool.sol';
                                        import './NoDelegateCall.sol';
                                        import './libraries/LowGasSafeMath.sol';
                                        import './libraries/SafeCast.sol';
                                        import './libraries/Tick.sol';
                                        import './libraries/TickBitmap.sol';
                                        import './libraries/Position.sol';
                                        import './libraries/Oracle.sol';
                                        import './libraries/FullMath.sol';
                                        import './libraries/FixedPoint128.sol';
                                        import './libraries/TransferHelper.sol';
                                        import './libraries/TickMath.sol';
                                        import './libraries/LiquidityMath.sol';
                                        import './libraries/SqrtPriceMath.sol';
                                        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                        File 7 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 8 of 11: OpenOceanExchange
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        // File: @openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol
                                        // SPDX-License-Identifier: MIT
                                        // OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)
                                        pragma solidity ^0.8.1;
                                        /**
                                        * @dev Collection of functions related to the address type
                                        */
                                        library AddressUpgradeable {
                                        /**
                                        * @dev Returns true if `account` is a contract.
                                        *
                                        * [IMPORTANT]
                                        * ====
                                        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                                        File 9 of 11: CarbonController
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        // SPDX-License-Identifier: MIT
                                        // OpenZeppelin Contracts (last updated v4.5.0) (access/AccessControlEnumerable.sol)
                                        pragma solidity ^0.8.0;
                                        import "./IAccessControlEnumerableUpgradeable.sol";
                                        import "./AccessControlUpgradeable.sol";
                                        import "../utils/structs/EnumerableSetUpgradeable.sol";
                                        import "../proxy/utils/Initializable.sol";
                                        /**
                                        * @dev Extension of {AccessControl} that allows enumerating the members of each role.
                                        */
                                        abstract contract AccessControlEnumerableUpgradeable is Initializable, IAccessControlEnumerableUpgradeable, AccessControlUpgradeable {
                                        function __AccessControlEnumerable_init() internal onlyInitializing {
                                        }
                                        function __AccessControlEnumerable_init_unchained() internal onlyInitializing {
                                        }
                                        using EnumerableSetUpgradeable for EnumerableSetUpgradeable.AddressSet;
                                        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

                                        File 11 of 11: Usd0PP
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        13
                                        14
                                        15
                                        16
                                        // SPDX-License-Identifier: Apache-2.0
                                        pragma solidity 0.8.20;
                                        import {ReentrancyGuardUpgradeable} from
                                        "openzeppelin-contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
                                        import {ICurvePool} from "shared/interfaces/curve/ICurvePool.sol";
                                        import {SafeERC20} from "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol";
                                        import {ERC20Upgradeable} from "openzeppelin-contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
                                        import {ERC20PausableUpgradeable} from
                                        "openzeppelin-contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";
                                        import {Math} from "openzeppelin-contracts/utils/math/Math.sol";
                                        import {ERC20PermitUpgradeable} from
                                        "openzeppelin-contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";
                                        import {IRegistryAccess} from "src/interfaces/registry/IRegistryAccess.sol";
                                        import {IRegistryContract} from "src/interfaces/registry/IRegistryContract.sol";
                                        import {IUsd0PP} from "src/interfaces/token/IUsd0PP.sol";
                                        import {IUsd0} from "./../interfaces/token/IUsd0.sol";
                                        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX