ETH Price: $3,044.87 (+2.87%)

Transaction Decoder

Block:
22707175 at Jun-15-2025 03:10:23 AM +UTC
Transaction Fee:
0.000153495857192094 ETH $0.47
Gas Used:
413,758 Gas / 0.370979793 Gwei

Emitted Events:

324 OptimizedTransparentUpgradeableProxy.0x720da23a5c920b1d8827ec83c4d3c4d90d9419eadb0036b88cb4c2ffa91aef7d( 0x720da23a5c920b1d8827ec83c4d3c4d90d9419eadb0036b88cb4c2ffa91aef7d, 0x00000000000000000000000000000005000000000000000000000000000004ea, 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48, 0000000000000000000000000000000000000000000000000028161ef0c8edaa, 0000000000000000000000000000000000000000000000000028161ef0c8edaa, 0000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000000f9453662fd639, 0000000000000000000000000000000000000000000000000000000000017733, 0000000000000000000000000000000000000000000000000000000001b9af80, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000000000000000000000000000000000000003586f0e07, 0000000000000000000000000000000000000000000000000000000000000001 )
325 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000c537e898cd774e2dcba3b14ea6f34c93d5ea45e1, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0000000000000000000000000000000000000000000000000000000000000a27 )
326 OptimizedTransparentUpgradeableProxy.0x95f3b01351225fea0e69a46f68b164c9dea10284f12cd4a907ce66510ab7af6a( 0x95f3b01351225fea0e69a46f68b164c9dea10284f12cd4a907ce66510ab7af6a, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48, 000000000000000000000000000000000000000000000000000000e8d4a51000, 0000000000000000000000000000000000000000000000000000000000000a27, 0000000000000000000000000000000000000000000000000000000000000006, 0000000000000000000000000000000000000000000000000000000000000000 )
327 TransparentUpgradeableProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000034f3cf0bc81bc5b2697b3b2b260cda33ffe564ab, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0000000000000000000000000000000000000000000000000009d0264cc7a29e )
328 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0x00000000000000000000000034f3cf0bc81bc5b2697b3b2b260cda33ffe564ab, 0000000000000000000000000000000000000000000000000000000000000a27 )
329 UniswapV3Pool.Swap( sender=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, recipient=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, amount0=-2762137705882270, amount1=2599, sqrtPriceX96=76823289913365350045559, liquidity=92154519951850422, tick=-276941 )
330 TetherToken.Transfer( from=UniswapV3Pool, to=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, value=2761 )
331 TransparentUpgradeableProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000055877bd7f2ee37bde55ca4b271a3631f3a7ef121, 0x000000000000000000000000b2fedd4a8146f7eb5b5ae5e47c023ec77f1f4167, 0000000000000000000000000000000000000000000000000009d0264cc7a29e )
332 UniswapV3Pool.Swap( sender=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, recipient=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, amount0=2762137705882270, amount1=-2761, sqrtPriceX96=79244125114043638189261, liquidity=383790554021044020, tick=-276320 )
333 TetherToken.Transfer( from=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, to=0x922164BBBd36Acf9E854AcBbF32faCC949fCAEef, value=2 )
334 TetherToken.Transfer( from=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, to=[Sender] 0xab579dec14a7c0fe7a09cb91c3f84fc63d5f911d, value=2759 )
335 OpenOceanExchangeProxy.0x76af224a143865a50b41496e1a73622698692c565c1214bc862f18e22d829c5e( 0x76af224a143865a50b41496e1a73622698692c565c1214bc862f18e22d829c5e, 0x000000000000000000000000ab579dec14a7c0fe7a09cb91c3f84fc63d5f911d, 0x000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7, 000000000000000000000000ab579dec14a7c0fe7a09cb91c3f84fc63d5f911d, 000000000000000000000000000000000000000000000000000000e8d4a51000, 000000000000000000000000000000000000000000000000000000e8d4a51000, 0000000000000000000000000000000000000000000000000000000000000ac7, 0000000000000000000000000000000000000000000000000000000000000ab9, 0000000000000000000000000000000000000000000000000000000000000ac7, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x34F3CF0b...3ffe564AB
(Uniswap V3: USD0++-USDC)
0x35D89493...15fc69bC0
(Titan Builder)
12.740712626013628369 Eth12.740718964390635721 Eth0.000006338377007352
0xA0b86991...E3606eB48
0xAb579DEC...63d5f911D
0.033279004793516242 Eth
Nonce: 129
0.033124508936324148 Eth
Nonce: 130
0.000154495857192094
0xb2fEDD4a...77f1F4167
(Uniswap V3: USD0++-USDT 2)
0xC537e898...3d5eA45e1
(Bancor: Carbon)
93.706027764214552278 Eth93.706028764214552278 Eth0.000001
0xdAC17F95...13D831ec7

Execution Trace

ETH 0.000001 OpenOceanExchangeProxy.90411a32( )
  • ETH 0.000001 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:0xAb579DEC14a7c0Fe7A09Cb91c3f84FC63d5f911D, valueString:0xAb579DEC14a7c0Fe7A09Cb91c3f84FC63d5f911D}, {name:amount, type:uint256, order:5, indexed:false, value:1000000000000, valueString:1000000000000}, {name:minReturnAmount, type:uint256, order:6, indexed:false, value:2745, valueString:2745}, {name:guaranteedAmount, type:uint256, order:7, indexed:false, value:2759, valueString:2759}, {name:flags, type:uint256, order:8, indexed:false, value:0, valueString:0}, {name:referrer, type:address, order:9, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:permit, type:bytes, order:10, indexed:false, value:0x, valueString:0x}], calls= ) => ( returnAmount=2759 )
    • TetherToken.balanceOf( who=0xAb579DEC14a7c0Fe7A09Cb91c3f84FC63d5f911D ) => ( 59389 )
    • ETH 0.000001 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.a8920d2b( )
      • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
        • ETH 0.000001 OptimizedTransparentUpgradeableProxy.f1c5e014( )
          • ETH 0.000001 CarbonController.tradeBySourceAmount( sourceToken=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, targetToken=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, tradeActions=, deadline=4294967295, minReturn=1 ) => ( 2599 )
            • FiatTokenProxy.a9059cbb( )
            • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
              • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.9f865422( )
                • FiatTokenProxy.70a08231( )
                  • FiatTokenV2_2.balanceOf( account=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121 ) => ( 2599 )
                  • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.e5b07cdb( )
                    • UniswapV3Pool.swap( recipient=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, zeroForOne=False, amountSpecified=2599, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000A27000000000000000000000000000000000000000000000000000000000000002EA0B86991C6218B36C1D19D4A2E9EB0CE3606EB480001F435D8949372D46B7A3D5A56006AE77B215FC69BC0000001000000000000000000000000000000000000 ) => ( amount0=-2762137705882270, amount1=2599 )
                    • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
                      • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.9f865422( )
                        • TransparentUpgradeableProxy.70a08231( )
                          • Usd0PP.balanceOf( account=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121 ) => ( 2762137705882270 )
                          • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.e5b07cdb( )
                            • UniswapV3Pool.swap( recipient=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121, zeroForOne=True, amountSpecified=2762137705882270, sqrtPriceLimitX96=4295128740, data=0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000009D0264CC7A29E000000000000000000000000000000000000000000000000000000000000002E35D8949372D46B7A3D5A56006AE77B215FC69BC00001F4DAC17F958D2EE523A2206206994597C13D831EC7000001000000000000000000000000000000000000 ) => ( amount0=2762137705882270, amount1=-2761 )
                            • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
                              • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.8a6a1e85( )
                                • TetherToken.balanceOf( who=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121 ) => ( 2761 )
                                • TetherToken.transfer( _to=0x922164BBBd36Acf9E854AcBbF32faCC949fCAEef, _value=2 )
                                • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.0c7e1209( )
                                  • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.9f865422( )
                                    • TetherToken.balanceOf( who=0x55877bD7F2EE37BDe55cA4B271A3631f3A7ef121 ) => ( 2759 )
                                    • 0x55877bd7f2ee37bde55ca4b271a3631f3a7ef121.d1660f99( )
                                      • TetherToken.transfer( _to=0xAb579DEC14a7c0Fe7A09Cb91c3f84FC63d5f911D, _value=2759 )
                                      • TetherToken.balanceOf( who=0xAb579DEC14a7c0Fe7A09Cb91c3f84FC63d5f911D ) => ( 62148 )
                                        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