From 1e4a85aa12cec15a93dfe3c91810a6e9e8475319 Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Mon, 10 Jun 2024 16:34:42 +0200 Subject: [PATCH 01/10] feat: deploy-oracle-PT-Dec-maturity --- .../morpho/mainnet/MorphoFeedPTweETHDec24.sol | 40 ++++++++ lib/forge-std | 2 +- lib/utils | 2 +- scripts/foundry/mainnet/PTweETHOracle.s.sol | 8 +- .../morpho/MorphoChainlinkOracleTest.t.sol | 3 - .../oracles/pendle/MorphoFeedPTPendle.t.sol | 1 + .../pendle/MorphoFeedPTweETHDec24.t.sol | 92 +++++++++++++++++++ 7 files changed, 139 insertions(+), 9 deletions(-) create mode 100644 contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol create mode 100644 test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol new file mode 100644 index 00000000..e7df7c6f --- /dev/null +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.12; + +import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; + +import "../../BaseFeedPTPendle.sol"; + +/// @title MorphoFeedPTweETH +/// @author Angle Labs, Inc. +/// @notice Gives the price of PT-weETH in ETH in base 18 +contract MorphoFeedPTweETHDec24 is BaseFeedPTPendle { + string public constant description = "PT-weETH/weETH Oracle"; + + constructor( + IAccessControlManager accessControlManager, + uint256 _maxImpliedRate, + uint32 _twapDuration + ) BaseFeedPTPendle(accessControlManager, _maxImpliedRate, _twapDuration) {} + + /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + OVERRIDES + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + + function asset() public pure override returns (address) { + return 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee; + } + + function sy() public pure override returns (address) { + return 0xAC0047886a985071476a1186bE89222659970d65; + } + + function maturity() public pure override returns (uint256) { + return 1735171200; + } + + function market() public pure override returns (address) { + return 0x7d372819240D14fB477f17b964f95F33BeB4c704; + } +} diff --git a/lib/forge-std b/lib/forge-std index ae570fec..6e05729b 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit ae570fec082bfe1c1f45b0acca4a2b4f84d345ce +Subproject commit 6e05729b76f1ae0d437e74951aef1ca987788ab3 diff --git a/lib/utils b/lib/utils index 9c224f47..68f85f57 160000 --- a/lib/utils +++ b/lib/utils @@ -1 +1 @@ -Subproject commit 9c224f47010b42f5be0ab2bed680846b188384a5 +Subproject commit 68f85f572e730690e9ed0bd056eafcc6f85641f0 diff --git a/scripts/foundry/mainnet/PTweETHOracle.s.sol b/scripts/foundry/mainnet/PTweETHOracle.s.sol index 83dd6362..c7381c2a 100644 --- a/scripts/foundry/mainnet/PTweETHOracle.s.sol +++ b/scripts/foundry/mainnet/PTweETHOracle.s.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.17; import "forge-std/Script.sol"; import { console } from "forge-std/console.sol"; -import { MorphoFeedPTweETH } from "borrow-contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol"; +import { MorphoFeedPTweETHDec24 } from "borrow-contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol"; import "utils/src/CommonUtils.sol"; import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; @@ -15,12 +15,12 @@ contract PTweETHOracleDeploy is Script, CommonUtils { // TODO uint256 chainId = CHAIN_ETHEREUM; - address coreBorrow = 0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE; + address coreBorrow = _chainToContract(chainId, ContractType.CoreBorrow); uint32 _TWAP_DURATION = 30 minutes; - uint256 _MAX_IMPLIED_RATE = 0.5 ether; + uint256 _MAX_IMPLIED_RATE = 0.4 ether; // end TODO - MorphoFeedPTweETH oracle = new MorphoFeedPTweETH( + MorphoFeedPTweETHDec24 oracle = new MorphoFeedPTweETHDec24( IAccessControlManager(address(coreBorrow)), _MAX_IMPLIED_RATE, _TWAP_DURATION diff --git a/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol b/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol index 02a18243..37117a0a 100644 --- a/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol +++ b/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol @@ -26,9 +26,6 @@ import { PendlePtOracleLib } from "pendle/oracles/PendlePtOracleLib.sol"; contract MorphoChainlinkOracleTest is Test, CommonUtils { using stdStorage for StdStorage; - mapping(uint256 => uint256) internal forkIdentifier; - uint256 public ethereumFork; - address internal _alice = address(uint160(uint256(keccak256(abi.encodePacked("alice"))))); address internal _governor = address(uint160(uint256(keccak256(abi.encodePacked("governor"))))); address internal _guardian = address(uint160(uint256(keccak256(abi.encodePacked("guardian"))))); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol index 9b755192..175483a9 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol @@ -4,6 +4,7 @@ pragma solidity ^0.8.12; import { console } from "forge-std/console.sol"; import { stdStorage, StdStorage, Test } from "forge-std/Test.sol"; import { MorphoFeedPTweETH, BaseFeedPTPendle } from "borrow-contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol"; +import { MorphoFeedPTweETHDec24 } from "borrow-contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol"; import { MockTreasury } from "borrow-contracts/mock/MockTreasury.sol"; import { IAgToken } from "borrow-contracts/interfaces/IAgToken.sol"; import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; diff --git a/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol new file mode 100644 index 00000000..df4aa02a --- /dev/null +++ b/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.12; + +import "./MorphoFeedPTPendle.t.sol"; +import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; + +contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { + using stdStorage for StdStorage; + + function setUp() public override { + super.setUp(); + + _TWAP_DURATION = 30 minutes; + _STALE_PERIOD = 24 hours; + _MAX_IMPLIED_RATE = 0.4 ether; + + _oracle = new MorphoFeedPTweETHDec24( + IAccessControlManager(address(coreBorrow)), + _MAX_IMPLIED_RATE, + _TWAP_DURATION + ); + } + + /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + CORE LOGIC + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + + function test_Description_Success() public { + assertEq(_oracle.description(), "PT-weETH/weETH Oracle"); + } + + function test_Simple_Success() public { + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertApproxEqAbs(value, 0.8 ether, 0.01 ether); + } + + function test_EconomicalLowerBound_tooSmall() public { + vm.prank(_governor); + _oracle.setMaxImpliedRate(uint256(1e1)); + uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertEq(value, pendleAMMPrice); + } + + function test_AfterMaturity_Success() public { + // Adavnce to the PT maturity + vm.warp(_oracle.maturity()); + + uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertEq(value, pendleAMMPrice); + assertEq(value, 1 ether); + } + + function test_HackRemove_Success(uint256 slash) public { + slash = bound(slash, 1, BASE_18); + // Remove part of the SY backing collateral to simulate a hack + IERC20 weETH = IERC20(address(_oracle.asset())); + uint256 prevBalance = weETH.balanceOf(_oracle.sy()); + uint256 postBalance = (prevBalance * slash) / BASE_18; + deal(address(weETH), _oracle.sy(), postBalance); + + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertLe(value, (lowerBound * slash) / BASE_18); + if (slash > 0) assertGe(value, (lowerBound * (slash - 1)) / BASE_18); + } + + function test_HackExpand_Success(uint256 expand) public { + expand = bound(expand, BASE_18, BASE_18 * 1e7); + // Remove part of the SY backing collateral to simulate a hack + IERC20 weETH = IERC20(address(_oracle.asset())); + uint256 prevBalance = weETH.balanceOf(_oracle.sy()); + uint256 postBalance = (prevBalance * expand) / BASE_18; + deal(address(weETH), _oracle.sy(), postBalance); + + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertEq(value, lowerBound); + } +} From dc3adfa7c67f529bb2ea2d03de3c4e4cd801dab0 Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Mon, 10 Jun 2024 18:54:56 +0200 Subject: [PATCH 02/10] add ezETH market --- .../morpho/mainnet/MorphoFeedPTezETHDec24.sol | 40 ++++++++ .../oracles/pendle/MorphoFeedPTPendle.t.sol | 1 + .../pendle/MorphoFeedPTezETHDec24.t.sol | 92 +++++++++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol create mode 100644 test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol new file mode 100644 index 00000000..e61a70c3 --- /dev/null +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.12; + +import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; + +import "../../BaseFeedPTPendle.sol"; + +/// @title MorphoFeedPTezETHDec24 +/// @author Angle Labs, Inc. +/// @notice Gives the price of PT-ezETH in ETH in base 18 +contract MorphoFeedPTezETHDec24 is BaseFeedPTPendle { + string public constant description = "PT-ezETH/weETH Oracle"; + + constructor( + IAccessControlManager accessControlManager, + uint256 _maxImpliedRate, + uint32 _twapDuration + ) BaseFeedPTPendle(accessControlManager, _maxImpliedRate, _twapDuration) {} + + /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + OVERRIDES + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + + function asset() public pure override returns (address) { + return 0xbf5495Efe5DB9ce00f80364C8B423567e58d2110; + } + + function sy() public pure override returns (address) { + return 0x22E12A50e3ca49FB183074235cB1db84Fe4C716D; + } + + function maturity() public pure override returns (uint256) { + return 1735171200; + } + + function market() public pure override returns (address) { + return 0xD8F12bCDE578c653014F27379a6114F67F0e445f; + } +} diff --git a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol index 175483a9..1c947542 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol @@ -5,6 +5,7 @@ import { console } from "forge-std/console.sol"; import { stdStorage, StdStorage, Test } from "forge-std/Test.sol"; import { MorphoFeedPTweETH, BaseFeedPTPendle } from "borrow-contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol"; import { MorphoFeedPTweETHDec24 } from "borrow-contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol"; +import { MorphoFeedPTezETHDec24 } from "borrow-contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol"; import { MockTreasury } from "borrow-contracts/mock/MockTreasury.sol"; import { IAgToken } from "borrow-contracts/interfaces/IAgToken.sol"; import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; diff --git a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol new file mode 100644 index 00000000..13d60776 --- /dev/null +++ b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol @@ -0,0 +1,92 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.12; + +import "./MorphoFeedPTPendle.t.sol"; +import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; + +contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { + using stdStorage for StdStorage; + + function setUp() public override { + super.setUp(); + + _TWAP_DURATION = 30 minutes; + _STALE_PERIOD = 24 hours; + _MAX_IMPLIED_RATE = 0.4 ether; + + _oracle = new MorphoFeedPTezETHDec24( + IAccessControlManager(address(coreBorrow)), + _MAX_IMPLIED_RATE, + _TWAP_DURATION + ); + } + + /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + CORE LOGIC + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + + function test_Description_Success() public { + assertEq(_oracle.description(), "PT-ezETH/weETH Oracle"); + } + + function test_Simple_Success() public { + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertApproxEqAbs(value, 0.8 ether, 0.01 ether); + } + + function test_EconomicalLowerBound_tooSmall() public { + vm.prank(_governor); + _oracle.setMaxImpliedRate(uint256(1e1)); + uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertEq(value, pendleAMMPrice); + } + + function test_AfterMaturity_Success() public { + // Adavnce to the PT maturity + vm.warp(_oracle.maturity()); + + uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertEq(value, pendleAMMPrice); + assertEq(value, 1 ether); + } + + function test_HackRemove_Success(uint256 slash) public { + slash = bound(slash, 1, BASE_18); + // Remove part of the SY backing collateral to simulate a hack + IERC20 weETH = IERC20(address(_oracle.asset())); + uint256 prevBalance = weETH.balanceOf(_oracle.sy()); + uint256 postBalance = (prevBalance * slash) / BASE_18; + deal(address(weETH), _oracle.sy(), postBalance); + + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertLe(value, (lowerBound * slash) / BASE_18); + if (slash > 0) assertGe(value, (lowerBound * (slash - 1)) / BASE_18); + } + + function test_HackExpand_Success(uint256 expand) public { + expand = bound(expand, BASE_18, BASE_18 * 1e7); + // Remove part of the SY backing collateral to simulate a hack + IERC20 weETH = IERC20(address(_oracle.asset())); + uint256 prevBalance = weETH.balanceOf(_oracle.sy()); + uint256 postBalance = (prevBalance * expand) / BASE_18; + deal(address(weETH), _oracle.sy(), postBalance); + + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); + + assertEq(value, lowerBound); + } +} From 85736dfb3a4ce54b9b3d8bd82f7446a1b983fd00 Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:02:17 +0200 Subject: [PATCH 03/10] fix tests --- test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol | 2 +- test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol | 2 +- test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol index 1c947542..3b2afc7a 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol @@ -46,7 +46,7 @@ contract MorphoFeedPTPendleTest is Test { BaseFeedPTPendle internal _oracle; function setUp() public virtual { - ethereumFork = vm.createFork(vm.envString("ETH_NODE_URI_ETHEREUM"), 19740549); + ethereumFork = vm.createFork(vm.envString("ETH_NODE_URI_ETHEREUM"), 20067842); forkIdentifier[CHAIN_ETHEREUM] = ethereumFork; _TWAP_DURATION = 1 hours; diff --git a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol index 13d60776..01508450 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol @@ -33,7 +33,7 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.8 ether, 0.01 ether); + assertApproxEqAbs(value, 0.84 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { diff --git a/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol index df4aa02a..0ad7285c 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol @@ -33,7 +33,7 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.8 ether, 0.01 ether); + assertApproxEqAbs(value, 0.84 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { From 6bd497da81411026921400c2a6e2219d8d0d77c5 Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Tue, 11 Jun 2024 16:38:27 +0200 Subject: [PATCH 04/10] fix tests --- .../morpho/MorphoChainlinkOracleTest.t.sol | 2 +- .../oracles/pendle/BaseOraclePTPendle.t.sol | 31 ------------------- 2 files changed, 1 insertion(+), 32 deletions(-) diff --git a/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol b/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol index 37117a0a..24a5554b 100644 --- a/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol +++ b/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol @@ -49,7 +49,7 @@ contract MorphoChainlinkOracleTest is Test, CommonUtils { function setUp() public { uint256 chainId = CHAIN_ETHEREUM; - ethereumFork = vm.createFork(vm.envString("ETH_NODE_URI_ETHEREUM")); + ethereumFork = vm.createFork(vm.envString("ETH_NODE_URI_ETHEREUM"), 19739302); forkIdentifier[CHAIN_ETHEREUM] = ethereumFork; _TWAP_DURATION = 15 minutes; diff --git a/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol b/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol index 6f64d14d..5ef8871d 100644 --- a/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol +++ b/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol @@ -17,17 +17,7 @@ contract BaseOraclePendlePT is Test { using stdStorage for StdStorage; mapping(uint256 => uint256) internal forkIdentifier; - uint256 public arbitrumFork; - uint256 public avalancheFork; uint256 public ethereumFork; - uint256 public optimismFork; - uint256 public polygonFork; - uint256 public gnosisFork; - uint256 public bnbFork; - uint256 public celoFork; - uint256 public polygonZkEVMFork; - uint256 public baseFork; - uint256 public lineaFork; address internal _alice = address(uint160(uint256(keccak256(abi.encodePacked("alice"))))); address internal _governor = address(uint160(uint256(keccak256(abi.encodePacked("governor"))))); @@ -41,29 +31,8 @@ contract BaseOraclePendlePT is Test { OraclePTweETHEUR internal _oracle; function setUp() public virtual { - arbitrumFork = vm.createFork(vm.envString("ETH_NODE_URI_ARBITRUM")); - avalancheFork = vm.createFork(vm.envString("ETH_NODE_URI_AVALANCHE")); ethereumFork = vm.createFork(vm.envString("ETH_NODE_URI_ETHEREUM"), 19740549); - optimismFork = vm.createFork(vm.envString("ETH_NODE_URI_OPTIMISM")); - polygonFork = vm.createFork(vm.envString("ETH_NODE_URI_POLYGON")); - gnosisFork = vm.createFork(vm.envString("ETH_NODE_URI_GNOSIS")); - bnbFork = vm.createFork(vm.envString("ETH_NODE_URI_BSC")); - celoFork = vm.createFork(vm.envString("ETH_NODE_URI_CELO")); - // polygonZkEVMFork = vm.createFork(vm.envString("ETH_NODE_URI_POLYGONZKEVM")); - baseFork = vm.createFork(vm.envString("ETH_NODE_URI_BASE")); - lineaFork = vm.createFork(vm.envString("ETH_NODE_URI_LINEA")); - - forkIdentifier[CHAIN_ARBITRUM] = arbitrumFork; - forkIdentifier[CHAIN_AVALANCHE] = avalancheFork; forkIdentifier[CHAIN_ETHEREUM] = ethereumFork; - forkIdentifier[CHAIN_OPTIMISM] = optimismFork; - forkIdentifier[CHAIN_POLYGON] = polygonFork; - forkIdentifier[CHAIN_GNOSIS] = gnosisFork; - forkIdentifier[CHAIN_BNB] = bnbFork; - forkIdentifier[CHAIN_CELO] = celoFork; - // forkIdentifier[CHAIN_POLYGONZKEVM] = polygonZkEVMFork; - forkIdentifier[CHAIN_BASE] = baseFork; - forkIdentifier[CHAIN_LINEA] = lineaFork; _TWAP_DURATION = 1 hours; _STALE_PERIOD = 24 hours; From 736652bea87ebc92d1c34b0811ff853044f8c073 Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Wed, 12 Jun 2024 09:59:30 +0200 Subject: [PATCH 05/10] deployed Pendle PT LRT oracles --- .../PTezETHOracle.s.sol/1/run-1718178882.json | 52 +++++++++++++++++++ .../PTezETHOracle.s.sol/1/run-1718179163.json | 50 ++++++++++++++++++ .../PTezETHOracle.s.sol/1/run-latest.json | 50 ++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-1718178605.json | 52 +++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-1718178658.json | 52 +++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-1718178819.json | 52 +++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-1718179107.json | 50 ++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-latest.json | 44 ++++++++-------- package.json | 2 +- scripts/foundry/mainnet/PTezETHOracle.s.sol | 34 ++++++++++++ scripts/foundry/mainnet/PTweETHOracle.s.sol | 2 +- 11 files changed, 415 insertions(+), 25 deletions(-) create mode 100644 broadcast/PTezETHOracle.s.sol/1/run-1718178882.json create mode 100644 broadcast/PTezETHOracle.s.sol/1/run-1718179163.json create mode 100644 broadcast/PTezETHOracle.s.sol/1/run-latest.json create mode 100644 broadcast/PTweETHOracle.s.sol/1/run-1718178605.json create mode 100644 broadcast/PTweETHOracle.s.sol/1/run-1718178658.json create mode 100644 broadcast/PTweETHOracle.s.sol/1/run-1718178819.json create mode 100644 broadcast/PTweETHOracle.s.sol/1/run-1718179107.json create mode 100644 scripts/foundry/mainnet/PTezETHOracle.s.sol diff --git a/broadcast/PTezETHOracle.s.sol/1/run-1718178882.json b/broadcast/PTezETHOracle.s.sol/1/run-1718178882.json new file mode 100644 index 00000000..6dd52bc0 --- /dev/null +++ b/broadcast/PTezETHOracle.s.sol/1/run-1718178882.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0x29726c85856dac592ffdfaaf56b716b5b3a35304f519921340bf0679e6b7e645", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTezETHDec24", + "contractAddress": "0xfdc9a3947fcadde44dc4eea9b0d6226ce3fed419", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "300000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x25316f", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d657a4554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b7322e12a50e3ca49fb183074235cb1db84fe4c716d90565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73bf5495efe5db9ce00f80364c8b423567e58d211090565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b73d8f12bcde578c653014f27379a6114f67f0e445f90565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea2646970667358221220a7e3c5e826c667f93c7dfb7558772680e330724736f319fa7aadeb0ebb55eb8364736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be0000000000000000000000000000000000000000000000000429d069189e00000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1a1", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1c9c2e", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x29726c85856dac592ffdfaaf56b716b5b3a35304f519921340bf0679e6b7e645", + "transactionIndex": "0x0", + "blockHash": "0x7f40b01c29468267157aee481ace08acfc0800e10c5e9ff76f76c693b1210244", + "blockNumber": "0x1324f79", + "gasUsed": "0x1c9c2e", + "effectiveGasPrice": "0x12f543882", + "blobGasPrice": "0x1", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0xfdc9a3947fcadde44dc4eea9b0d6226ce3fed419", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718178882, + "chain": 1, + "commit": "6bd497d" +} \ No newline at end of file diff --git a/broadcast/PTezETHOracle.s.sol/1/run-1718179163.json b/broadcast/PTezETHOracle.s.sol/1/run-1718179163.json new file mode 100644 index 00000000..fc159397 --- /dev/null +++ b/broadcast/PTezETHOracle.s.sol/1/run-1718179163.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0xeead67706e4a8dad3ad0eaa6986d5ebcfcca420cbdfdfea46b6c06ef3f945c20", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTezETHDec24", + "contractAddress": "0xf3fc589215f18d40fcfabaf860e3a9ed9e8cfc0c", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "250000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x25316f", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d657a4554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b7322e12a50e3ca49fb183074235cb1db84fe4c716d90565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73bf5495efe5db9ce00f80364c8b423567e58d211090565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b73d8f12bcde578c653014f27379a6114f67f0e445f90565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea2646970667358221220a7e3c5e826c667f93c7dfb7558772680e330724736f319fa7aadeb0ebb55eb8364736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x19f", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xcbf613", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xeead67706e4a8dad3ad0eaa6986d5ebcfcca420cbdfdfea46b6c06ef3f945c20", + "transactionIndex": "0x67", + "blockHash": "0xf644395367e702428ba91c32aff1faaab29c658c65ce101b0131ba9548e794a1", + "blockNumber": "0x1324fa7", + "gasUsed": "0x1c9c2e", + "effectiveGasPrice": "0x19e5e5026", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0xf3fc589215f18d40fcfabaf860e3a9ed9e8cfc0c" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718179163, + "chain": 1, + "commit": "6bd497d" +} \ No newline at end of file diff --git a/broadcast/PTezETHOracle.s.sol/1/run-latest.json b/broadcast/PTezETHOracle.s.sol/1/run-latest.json new file mode 100644 index 00000000..fc159397 --- /dev/null +++ b/broadcast/PTezETHOracle.s.sol/1/run-latest.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0xeead67706e4a8dad3ad0eaa6986d5ebcfcca420cbdfdfea46b6c06ef3f945c20", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTezETHDec24", + "contractAddress": "0xf3fc589215f18d40fcfabaf860e3a9ed9e8cfc0c", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "250000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x25316f", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d657a4554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b7322e12a50e3ca49fb183074235cb1db84fe4c716d90565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73bf5495efe5db9ce00f80364c8b423567e58d211090565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b73d8f12bcde578c653014f27379a6114f67f0e445f90565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea2646970667358221220a7e3c5e826c667f93c7dfb7558772680e330724736f319fa7aadeb0ebb55eb8364736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x19f", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xcbf613", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xeead67706e4a8dad3ad0eaa6986d5ebcfcca420cbdfdfea46b6c06ef3f945c20", + "transactionIndex": "0x67", + "blockHash": "0xf644395367e702428ba91c32aff1faaab29c658c65ce101b0131ba9548e794a1", + "blockNumber": "0x1324fa7", + "gasUsed": "0x1c9c2e", + "effectiveGasPrice": "0x19e5e5026", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0xf3fc589215f18d40fcfabaf860e3a9ed9e8cfc0c" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718179163, + "chain": 1, + "commit": "6bd497d" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-1718178605.json b/broadcast/PTweETHOracle.s.sol/1/run-1718178605.json new file mode 100644 index 00000000..2eb2ac61 --- /dev/null +++ b/broadcast/PTweETHOracle.s.sol/1/run-1718178605.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0xbf90526033f70257d415903b5a18baff03d1b8364392502a1f530960e7fb7d47", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0x7d01be85335a0cc827d985d691666498a34121a4", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "400000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x25314f", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d77654554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea26469706673582212206644d09353da00e683f0f2cf1ccd876b6956ab92ee8ed7b5d0dca3edf2e6c3e564736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be000000000000000000000000000000000000000000000000058d15e1762800000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x19e", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1c9c16", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xbf90526033f70257d415903b5a18baff03d1b8364392502a1f530960e7fb7d47", + "transactionIndex": "0x0", + "blockHash": "0xae6e01024f6e020dbfbb8c8ed0f3f9154bc10b2fdacffda73ed569e807136bb3", + "blockNumber": "0x1324f76", + "gasUsed": "0x1c9c16", + "effectiveGasPrice": "0x1aae42db8", + "blobGasPrice": "0x1", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x7d01be85335a0cc827d985d691666498a34121a4", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718178605, + "chain": 1, + "commit": "6bd497d" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-1718178658.json b/broadcast/PTweETHOracle.s.sol/1/run-1718178658.json new file mode 100644 index 00000000..a4c04c1b --- /dev/null +++ b/broadcast/PTweETHOracle.s.sol/1/run-1718178658.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0x8bdb892c6ee5f54ca96764193c5574f0434d9844816c7491473a38434b783727", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0xf3fc589215f18d40fcfabaf860e3a9ed9e8cfc0c", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "200000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x25314f", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d77654554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea26469706673582212206644d09353da00e683f0f2cf1ccd876b6956ab92ee8ed7b5d0dca3edf2e6c3e564736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x19f", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1c9c16", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x8bdb892c6ee5f54ca96764193c5574f0434d9844816c7491473a38434b783727", + "transactionIndex": "0x0", + "blockHash": "0x4804789d55c0a5fb5e7135b87bf87d67437aef942f21b99539f29b539ccbab2b", + "blockNumber": "0x1324f77", + "gasUsed": "0x1c9c16", + "effectiveGasPrice": "0x17cda1583", + "blobGasPrice": "0x1", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0xf3fc589215f18d40fcfabaf860e3a9ed9e8cfc0c", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718178658, + "chain": 1, + "commit": "6bd497d" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-1718178819.json b/broadcast/PTweETHOracle.s.sol/1/run-1718178819.json new file mode 100644 index 00000000..946d935b --- /dev/null +++ b/broadcast/PTweETHOracle.s.sol/1/run-1718178819.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0x6d08a9128106a110df612d657e75ebb821a99db15b3fcd8731b25e466a77a26f", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0xfc8e9b19d8dc4e57c55d22c7d2f89a7e3711fc4c", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "100000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x25314f", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d77654554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea26469706673582212206644d09353da00e683f0f2cf1ccd876b6956ab92ee8ed7b5d0dca3edf2e6c3e564736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be000000000000000000000000000000000000000000000000016345785d8a00000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1a0", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1c9c16", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x6d08a9128106a110df612d657e75ebb821a99db15b3fcd8731b25e466a77a26f", + "transactionIndex": "0x0", + "blockHash": "0x3f0e200c8f4a4d9b600dbeeafaa401853506fa5673e5b6e4e95da0e0f81d14b0", + "blockNumber": "0x1324f78", + "gasUsed": "0x1c9c16", + "effectiveGasPrice": "0x153d918cf", + "blobGasPrice": "0x1", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0xfc8e9b19d8dc4e57c55d22c7d2f89a7e3711fc4c", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718178819, + "chain": 1, + "commit": "6bd497d" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-1718179107.json b/broadcast/PTweETHOracle.s.sol/1/run-1718179107.json new file mode 100644 index 00000000..f40afff7 --- /dev/null +++ b/broadcast/PTweETHOracle.s.sol/1/run-1718179107.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0x90434c52c1624c238ac4d300c61dc33956091e475c4d0198c83005df392e3c75", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0x7d01be85335a0cc827d985d691666498a34121a4", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "250000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x25314f", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d77654554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea26469706673582212206644d09353da00e683f0f2cf1ccd876b6956ab92ee8ed7b5d0dca3edf2e6c3e564736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x19e", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xd06cd4", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x90434c52c1624c238ac4d300c61dc33956091e475c4d0198c83005df392e3c75", + "transactionIndex": "0x67", + "blockHash": "0xe16d645de860995584f5aff8f5e4cdd211840a60bdf0d4b1573142eea567095f", + "blockNumber": "0x1324fa2", + "gasUsed": "0x1c9c16", + "effectiveGasPrice": "0x1848ac108", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x7d01be85335a0cc827d985d691666498a34121a4" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718179107, + "chain": 1, + "commit": "6bd497d" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-latest.json b/broadcast/PTweETHOracle.s.sol/1/run-latest.json index 5e620a73..f40afff7 100644 --- a/broadcast/PTweETHOracle.s.sol/1/run-latest.json +++ b/broadcast/PTweETHOracle.s.sol/1/run-latest.json @@ -1,24 +1,23 @@ { "transactions": [ { - "hash": "0x353ea6a5fd13c8dd931ea7c75681c6247b90ddec0f26cd2294f9f5a060ed12b3", + "hash": "0x90434c52c1624c238ac4d300c61dc33956091e475c4d0198c83005df392e3c75", "transactionType": "CREATE", - "contractName": "MorphoFeedPTweETH", - "contractAddress": "0xC9dfD5c18F12a3BA6293001700810602efe0c45B", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0x7d01be85335a0cc827d985d691666498a34121a4", "function": null, "arguments": [ "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", - "500000000000000000", + "250000000000000000", "1800" ], "transaction": { - "type": "0x02", "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", - "gas": "0x25c142", + "gas": "0x25314f", "value": "0x0", - "data": "0x60806040523480156200001157600080fd5b506040516200217c3803806200217c8339810160408190526200003491620000d8565b8282828181846001600160a01b038116620000625760405163d92e233d60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000ac57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff9092169190911790555062000133945050505050565b600080600060608486031215620000ee57600080fd5b83516001600160a01b03811681146200010657600080fd5b60208501516040860151919450925063ffffffff811681146200012857600080fd5b809150509250925092565b61203980620001436000396000f3fe608060405234801561001057600080fd5b50600436106100e65760003560e01c8063181cc05b146100eb578063204f83f91461010957806326d895451461011d578063313ce567146101425780633406b6d11461015157806338d52e0f14610166578063521d4de91461016e57806354fd4d50146101915780637284e4161461019857806380f55605146101d957806383914540146101e1578063921a12ab146101ec5780639a6fc8f5146101f5578063b4a0bdf31461023c578063c433c80a1461024f578063d965a5d214610262578063e43581b814610271578063feaf968c14610284575b600080fd5b6100f361028c565b6040516101009190611c39565b60405180910390f35b63667cab805b604051908152602001610100565b60025461012d9063ffffffff1681565b60405163ffffffff9091168152602001610100565b60405160128152602001610100565b61016461015f366004611c4d565b6102a4565b005b6100f361036e565b61018161017c366004611c7e565b610386565b6040519015158152602001610100565b600161010f565b6101cc6040518060400160405280601581526020017450542d77654554482f7765455448204f7261636c6560581b81525081565b6040516101009190611c9b565b6100f36103fe565b61010f6301e1338081565b61010f60015481565b610208610203366004611cea565b610416565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a001610100565b6000546100f3906001600160a01b031681565b61016461025d366004611d13565b61043b565b61010f670de0b6b3a764000081565b61018161027f366004611c7e565b61053a565b61020861056b565b73ac0047886a985071476a1186be89222659970d6590565b60005460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102d4903390600401611c39565b602060405180830381865afa1580156102f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103159190611d39565b61033257604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b6000805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103b7908590600401611c39565b602060405180830381865afa1580156103d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f89190611d39565b92915050565b73f32e58f92e60f4b0a37a69b95d642a471365eae890565b60008060008060008061042761058f565b909790965060009550859450849350915050565b60005460405163521d4de960e01b81526001600160a01b039091169063521d4de99061046b903390600401611c39565b602060405180830381865afa158015610488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ac9190611d39565b6104c957604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104f257604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd790602001610363565b60008054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103b7908590600401611c39565b60008060008060008061057c61058f565b9096909550600094508493508392509050565b60008061059a6105ec565b905060006105a6610681565b905060008183116105b757826105b9565b815b90506000670de0b6b3a7640000826105cf6106a1565b6105d99190611d71565b6105e39190611d9e565b95945050505050565b60008063667cab80421161060d576106084263667cab80611db2565b610610565b60005b90508060000361062957670de0b6b3a764000091505090565b600061065d61063c836301e133806107c8565b61065761064860015490565b670de0b6b3a7640000906107e7565b906107f6565b90506000610679610676670de0b6b3a7640000846107c8565b90565b949350505050565b600061069c61068e6103fe565b60025463ffffffff16610906565b905090565b6000806106ac61036e565b6001600160a01b03166370a082316106c261028c565b6040518263ffffffff1660e01b81526004016106de9190611c39565b602060405180830381865afa1580156106fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071f9190611dc5565b9050600061072b61028c565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c9190611dc5565b90508082116107b757806107a8670de0b6b3a764000084611d71565b6107b29190611d9e565b6107c1565b670de0b6b3a76400005b9250505090565b60006107e061067684670de0b6b3a764000085610949565b9392505050565b60006107e06106768385611dde565b6000828281830361082157801561080e576000610818565b670de0b6b3a76400005b925050506103f8565b670de0b6b3a7640000820361084257670de0b6b3a7640000925050506103f8565b8060000361085c57670de0b6b3a7640000925050506103f8565b670de0b6b3a764000081036108755784925050506103f8565b670de0b6b3a76400008211156108a65761089f61089a61089487610a21565b86610b4a565b610b59565b92506108fe565b60006108c3610676846a0c097ce7bc90715b34b9f160241b611d9e565b905060006108dc61089a6108d684610a21565b88610b4a565b90506108f9610676826a0c097ce7bc90715b34b9f160241b611d9e565b945050505b505092915050565b600080600061091485610baf565b91509150808210610929576108188585610ddf565b80826109358787610ddf565b61093f9190611d71565b6108189190611d9e565b60008080600019858709858702925082811083820303915050806000036109835783828161097957610979611d88565b04925050506107e0565b8381106109b957604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b600081670de0b6b3a7640000811015610a505760405163036d32ef60e41b8152600481018490526024016109b0565b6000610ad2670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610afb5750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b3e57670de0b6b3a7640000838002049250818310610b36579283019260019290921c915b60011c610b0e565b50919695505050505050565b60006107e06106768484610eb4565b600081680a688906bd8affffff811115610b895760405163b3b6ba1f60e01b8152600481018490526024016109b0565b6000610ba1670de0b6b3a7640000604084901b611d9e565b905061067961067682610f6a565b600080600080846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c179190611df1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e9190611dc5565b93506000816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce49190611dc5565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d489190611d39565b8015610dbd575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db29190611e3e565b6001600160801b0316145b15610dca57809350610dd7565b610dd48582611656565b93505b505050915091565b600080836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e449190611dc5565b9050428111610e5e57670de0b6b3a76400009150506103f8565b6000610e6a858561166c565b90506000610e784284611db2565b90506000610e8e610e898484611793565b6117cc565b9050610ea2670de0b6b3a7640000826117df565b9450505050506103f8565b5092915050565b6000808060001984860984860292508281108382030391505080600003610ee85750670de0b6b3a7640000900490506103f8565b670de0b6b3a76400008110610f1a57604051635173648d60e01b815260048101869052602481018590526044016109b0565b6000670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611053576001603f1b821615610f965768016a09e667f3bcc9090260401c5b6001603e1b821615610fb1576801306fe0a31b7152df0260401c5b6001603d1b821615610fcc576801172b83c7d517adce0260401c5b6001603c1b821615610fe75768010b5586cf9890f62a0260401c5b6001603b1b821615611002576801059b0d31585743ae0260401c5b6001603a1b82161561101d57680102c9a3e778060ee70260401c5b600160391b8216156110385768010163da9fb33356d80260401c5b600160381b82161561105357680100b1afa5abcbed610260401c5b60ff60301b82161561113757600160371b82161561107a5768010058c86da1c09ea20260401c5b600160361b821615611095576801002c605e2e8cec500260401c5b600160351b8216156110b057680100162f3904051fa10260401c5b600160341b8216156110cb576801000b175effdc76ba0260401c5b600160331b8216156110e657680100058ba01fb9f96d0260401c5b600160321b8216156111015768010002c5cc37da94920260401c5b600160311b82161561111c576801000162e525ee05470260401c5b600160301b8216156111375768010000b17255775c040260401c5b60ff60281b82161561121b576001602f1b82161561115e576801000058b91b5bc9ae0260401c5b6001602e1b82161561117957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111945768010000162e43f4f8310260401c5b6001602c1b8216156111af57680100000b1721bcfc9a0260401c5b6001602b1b8216156111ca5768010000058b90cf1e6e0260401c5b6001602a1b8216156111e5576801000002c5c863b73f0260401c5b600160291b82161561120057680100000162e430e5a20260401c5b600160281b82161561121b576801000000b1721835510260401c5b60ff60201b8216156112ff57600160271b82161561124257680100000058b90c0b490260401c5b600160261b82161561125d5768010000002c5c8601cc0260401c5b600160251b821615611278576801000000162e42fff00260401c5b600160241b8216156112935768010000000b17217fbb0260401c5b600160231b8216156112ae576801000000058b90bfce0260401c5b600160221b8216156112c957680100000002c5c85fe30260401c5b600160211b8216156112e45768010000000162e42ff10260401c5b600160201b8216156112ff57680100000000b17217f80260401c5b63ff0000008216156113e35763800000008216156113265768010000000058b90bfc0260401c5b6340000000821615611341576801000000002c5c85fe0260401c5b632000000082161561135c57680100000000162e42ff0260401c5b6310000000821615611377576801000000000b17217f0260401c5b630800000082161561139257680100000000058b90c00260401c5b63040000008216156113ad5768010000000002c5c8600260401c5b63020000008216156113c8576801000000000162e4300260401c5b63010000008216156113e35768010000000000b172180260401c5b62ff00008216156114bd5762800000821615611408576801000000000058b90c0260401c5b6240000082161561142257680100000000002c5c860260401c5b6220000082161561143c5768010000000000162e430260401c5b6210000082161561145657680100000000000b17210260401c5b620800008216156114705768010000000000058b910260401c5b6204000082161561148a576801000000000002c5c80260401c5b620200008216156114a457680100000000000162e40260401c5b620100008216156114bd5761b172600160401b010260401c5b61ff00821615611586576180008216156114df576158b9600160401b010260401c5b6140008216156114f757612c5d600160401b010260401c5b61200082161561150f5761162e600160401b010260401c5b61100082161561152757610b17600160401b010260401c5b61080082161561153f5761058c600160401b010260401c5b610400821615611557576102c6600160401b010260401c5b61020082161561156f57610163600160401b010260401c5b6101008216156115865760b1600160401b010260401c5b60ff82161561163f5760808216156115a5576059600160401b010260401c5b60408216156115bb57602c600160401b010260401c5b60208216156115d1576016600160401b010260401c5b60108216156115e757600b600160401b010260401c5b60088216156115fd576006600160401b010260401c5b6004821615611613576003600160401b010260401c5b6002821615611629576001600160401b010260401c5b600182161561163f576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b600081831161166557816107e0565b5090919050565b6040805160028082526060820183526000928392919060208301908036833701905050905082816000815181106116a5576116a5611e7d565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526000906001600160a01b0386169063883bdbfd906116e9908590600401611e93565b600060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261172e9190810190611ef9565b90508363ffffffff168160008151811061174a5761174a611e7d565b60200260200101518260018151811061176557611765611e7d565b60200260200101516117779190611fbd565b6117819190611fdd565b6001600160d81b031695945050505050565b6000806117a56201518061016d611d71565b6117af8486611d71565b6117b99190611d9e565b90506106796117c78261180e565b611824565b6000808212156117db57600080fd5b5090565b6000806117f4670de0b6b3a764000085611d71565b905082818161180557611805611d88565b04949350505050565b60006001600160ff1b038211156117db57600080fd5b6000680238fd42c5cf03ffff198212158015611849575068070c1cc73b00c800008213155b6118885760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016109b0565b60008212156118c05761189d82600003611824565b6a0c097ce7bc90715b34b9f160241b816118b9576118b9611d88565b0592915050565b60006806f05b59d3b200000083126118fe57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b611934565b6803782dace9d9000000831261193057506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380611934565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119845768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d63100000084126119c0576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119fa57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a34576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a6d57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611aa65768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611adf576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611b185768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b600060208284031215611c5f57600080fd5b5035919050565b6001600160a01b0381168114611c7b57600080fd5b50565b600060208284031215611c9057600080fd5b81356107e081611c66565b60006020808352835180602085015260005b81811015611cc957858101830151858201604001528201611cad565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611cfc57600080fd5b81356001600160501b03811681146107e057600080fd5b600060208284031215611d2557600080fd5b813563ffffffff811681146107e057600080fd5b600060208284031215611d4b57600080fd5b815180151581146107e057600080fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176103f8576103f8611d5b565b634e487b7160e01b600052601260045260246000fd5b600082611dad57611dad611d88565b500490565b818103818111156103f8576103f8611d5b565b600060208284031215611dd757600080fd5b5051919050565b808201808211156103f8576103f8611d5b565b600080600060608486031215611e0657600080fd5b8351611e1181611c66565b6020850151909350611e2281611c66565b6040850151909250611e3381611c66565b809150509250925092565b600060208284031215611e5057600080fd5b81516001600160801b03811681146107e057600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015611ed157835163ffffffff1683529284019291840191600101611eaf565b50909695505050505050565b80516001600160d81b0381168114611ef457600080fd5b919050565b60006020808385031215611f0c57600080fd5b82516001600160401b0380821115611f2357600080fd5b818501915085601f830112611f3757600080fd5b815181811115611f4957611f49611e67565b8060051b604051601f19603f83011681018181108582111715611f6e57611f6e611e67565b604052918252848201925083810185019188831115611f8c57600080fd5b938501935b82851015611fb157611fa285611edd565b84529385019392850192611f91565b98975050505050505050565b6001600160d81b03828116828216039080821115610ead57610ead611d5b565b60006001600160d81b0383811680611ff757611ff7611d88565b9216919091049291505056fea2646970667358221220034e7feff1263c85764d26fe39737913394f41a4cff1299c8a8d73191fbc550c64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000006f05b59d3b200000000000000000000000000000000000000000000000000000000000000000708", - "nonce": "0xa3", - "accessList": [] + "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d77654554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea26469706673582212206644d09353da00e683f0f2cf1ccd876b6956ab92ee8ed7b5d0dca3edf2e6c3e564736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x19e", + "chainId": "0x1" }, "additionalContracts": [], "isFixedGasLimit": false @@ -26,27 +25,26 @@ ], "receipts": [ { - "transactionHash": "0x353ea6a5fd13c8dd931ea7c75681c6247b90ddec0f26cd2294f9f5a060ed12b3", - "transactionIndex": "0x1e", - "blockHash": "0xf565e79420717acb1ee6beff32033a25b353ec7df680a2440a86550359ca83c9", - "blockNumber": "0x12c4eb4", - "from": "0xA9DdD91249DFdd450E81E1c56Ab60E1A62651701", - "to": null, - "cumulativeGasUsed": "0x420cd3", - "gasUsed": "0x1d0cef", - "contractAddress": "0xC9dfD5c18F12a3BA6293001700810602efe0c45B", - "logs": [], "status": "0x1", + "cumulativeGasUsed": "0xd06cd4", + "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "effectiveGasPrice": "0x34edfff3b" + "transactionHash": "0x90434c52c1624c238ac4d300c61dc33956091e475c4d0198c83005df392e3c75", + "transactionIndex": "0x67", + "blockHash": "0xe16d645de860995584f5aff8f5e4cdd211840a60bdf0d4b1573142eea567095f", + "blockNumber": "0x1324fa2", + "gasUsed": "0x1c9c16", + "effectiveGasPrice": "0x1848ac108", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x7d01be85335a0cc827d985d691666498a34121a4" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1713426471, + "timestamp": 1718179107, "chain": 1, - "multi": false, - "commit": "8048816" + "commit": "6bd497d" } \ No newline at end of file diff --git a/package.json b/package.json index fbe0a9c9..8ec43360 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "hardhat:compile": "hardhat compile", "foundry:compile": "forge build", "deploy": "forge script --skip test --broadcast --verify --slow -vvvv --rpc-url", - "deploy:fork": "FOUNDRY_PROFILE=dev forge script --skip test --slow --fork-url fork --broadcast -vvvv", + "deploy:fork": "forge script --skip test --slow --fork-url fork --broadcast -vvvv", "check-upgradeability": "hardhat run scripts/upgradeability.ts", "coverage": "hardhat coverage", "coverage:foundry": "forge coverage --report lcov", diff --git a/scripts/foundry/mainnet/PTezETHOracle.s.sol b/scripts/foundry/mainnet/PTezETHOracle.s.sol new file mode 100644 index 00000000..9832f54b --- /dev/null +++ b/scripts/foundry/mainnet/PTezETHOracle.s.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-3.0 +pragma solidity ^0.8.17; + +import "forge-std/Script.sol"; +import { console } from "forge-std/console.sol"; +import { MorphoFeedPTezETHDec24 } from "borrow-contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol"; +import "utils/src/CommonUtils.sol"; +import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; + +contract PTezETHOracleDeploy is Script, CommonUtils { + function run() external { + uint256 deployerPrivateKey = vm.envUint("DEPLOYER_PRIVATE_KEY"); + address deployer = vm.addr(deployerPrivateKey); + vm.startBroadcast(deployerPrivateKey); + + // TODO + uint256 chainId = CHAIN_ETHEREUM; + address coreBorrow = _chainToContract(chainId, ContractType.CoreBorrow); + uint32 _TWAP_DURATION = 30 minutes; + uint256 _MAX_IMPLIED_RATE = 0.25 ether; + // end TODO + + MorphoFeedPTezETHDec24 oracle = new MorphoFeedPTezETHDec24( + IAccessControlManager(address(coreBorrow)), + _MAX_IMPLIED_RATE, + _TWAP_DURATION + ); + (, int256 answer, , , ) = oracle.latestRoundData(); + console.log("oracle value ", uint256(answer)); + console.log("Successfully deployed PT-ezETH: ", address(oracle)); + + vm.stopBroadcast(); + } +} diff --git a/scripts/foundry/mainnet/PTweETHOracle.s.sol b/scripts/foundry/mainnet/PTweETHOracle.s.sol index c7381c2a..8f4f1cf7 100644 --- a/scripts/foundry/mainnet/PTweETHOracle.s.sol +++ b/scripts/foundry/mainnet/PTweETHOracle.s.sol @@ -17,7 +17,7 @@ contract PTweETHOracleDeploy is Script, CommonUtils { uint256 chainId = CHAIN_ETHEREUM; address coreBorrow = _chainToContract(chainId, ContractType.CoreBorrow); uint32 _TWAP_DURATION = 30 minutes; - uint256 _MAX_IMPLIED_RATE = 0.4 ether; + uint256 _MAX_IMPLIED_RATE = 0.25 ether; // end TODO MorphoFeedPTweETHDec24 oracle = new MorphoFeedPTweETHDec24( From 6bfdc08e91855a9dfcdbd2535c7f4394932170ac Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Wed, 12 Jun 2024 10:42:19 +0200 Subject: [PATCH 06/10] fix tests --- test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol | 2 +- test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol index bb6b415d..1669bd03 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol @@ -32,7 +32,7 @@ contract MorphoFeedPTUSDeTest is MorphoFeedPTPendleTest { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.90 ether, 0.01 ether); + assertApproxEqAbs(value, 0.95 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { diff --git a/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol index b0a0f8c1..ef322981 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol @@ -29,7 +29,7 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.925 ether, 0.01 ether); + assertApproxEqAbs(value, 0.98 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { From 6293e8ad2483abc4bd606d893cceb3b7039af867 Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Fri, 14 Jun 2024 13:14:43 +0200 Subject: [PATCH 07/10] fix Pendle oracles --- contracts/oracle/BaseFeedPTPendle.sol | 2 ++ contracts/oracle/BaseOraclePTPendle.sol | 10 +++---- contracts/oracle/FeedPTForSY.sol | 26 +++++++++++++++++++ .../mainnet/EUR/OraclePTweETHEUR.sol | 9 ++++++- .../morpho/mainnet/MorphoFeedPTweETH.sol | 9 ++++++- .../morpho/mainnet/MorphoFeedPTweETHDec24.sol | 10 ++++++- lib/pendle-core-v2-public | 2 +- .../morpho/MorphoChainlinkOracleTest.t.sol | 2 -- .../oracles/pendle/BaseOraclePTPendle.t.sol | 23 ++++++++++------ .../oracles/pendle/MorphoFeedPTPendle.t.sol | 23 ++++++++++------ .../oracles/pendle/MorphoFeedPTUSDe.t.sol | 8 +++--- .../pendle/MorphoFeedPTezETHDec24.t.sol | 9 ++++--- .../oracles/pendle/MorphoFeedPTweETH.t.sol | 13 +++++----- .../pendle/MorphoFeedPTweETHDec24.t.sol | 13 +++++----- .../oracles/pendle/OraclePTweETH.t.sol | 13 +++++----- 15 files changed, 119 insertions(+), 53 deletions(-) create mode 100644 contracts/oracle/FeedPTForSY.sol diff --git a/contracts/oracle/BaseFeedPTPendle.sol b/contracts/oracle/BaseFeedPTPendle.sol index f122c3b2..137e8d9d 100644 --- a/contracts/oracle/BaseFeedPTPendle.sol +++ b/contracts/oracle/BaseFeedPTPendle.sol @@ -79,6 +79,7 @@ abstract contract BaseFeedPTPendle is AccessControl, AggregatorV3Interface, Base ) external view + virtual returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) { return (0, int256(_getQuoteAmount()), 0, 0, 0); @@ -88,6 +89,7 @@ abstract contract BaseFeedPTPendle is AccessControl, AggregatorV3Interface, Base function latestRoundData() external view + virtual returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) { return (0, int256(_getQuoteAmount()), 0, 0, 0); diff --git a/contracts/oracle/BaseOraclePTPendle.sol b/contracts/oracle/BaseOraclePTPendle.sol index 2030f2b0..736fefd3 100644 --- a/contracts/oracle/BaseOraclePTPendle.sol +++ b/contracts/oracle/BaseOraclePTPendle.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.12; import { UNIT, UD60x18, ud } from "prb/math/UD60x18.sol"; import "pendle/interfaces/IPMarket.sol"; -import { PendlePtOracleLib } from "pendle/oracles/PendlePtOracleLib.sol"; +import { PendlePYOracleLib } from "pendle/oracles/PendlePYOracleLib.sol"; import "../utils/Errors.sol"; /// @title BaseOraclePTPendle @@ -34,8 +34,8 @@ abstract contract BaseOraclePTPendle { modifier onlyGovernorOrGuardian() virtual; function _getQuoteAmount() internal view virtual returns (uint256) { - uint256 economicalLowerBound = _economicalPTLowerBoundPrice(); - uint256 pendlePrice = _pendlePTPrice(); + (uint256 pendlePrice, uint256 index) = _pendlePTPrice(IPMarket(market()), twapDuration); + uint256 economicalLowerBound = (_economicalPTLowerBoundPrice() * BASE_18) / index; uint256 minPrice = economicalLowerBound > pendlePrice ? pendlePrice : economicalLowerBound; uint256 quote = (_detectHackRatio() * minPrice) / BASE_18; return quote; @@ -69,8 +69,8 @@ abstract contract BaseOraclePTPendle { /// - getPtToSy() should be used if the underlying token is tradable, /// - getPtToAsset() if not /// @dev https://docs.pendle.finance/Developers/Contracts/StandardizedYield#asset-of-sy--assetinfo-function - function _pendlePTPrice() internal view virtual returns (uint256) { - return PendlePtOracleLib.getPtToAssetRate(IPMarket(market()), twapDuration); + function _pendlePTPrice(IPMarket _market, uint32 _twapDuration) internal view virtual returns (uint256, uint256) { + return (PendlePYOracleLib.getPtToAssetRate(_market, _twapDuration), BASE_18); } function _detectHackRatio() internal view returns (uint256) { diff --git a/contracts/oracle/FeedPTForSY.sol b/contracts/oracle/FeedPTForSY.sol new file mode 100644 index 00000000..7f47c6ae --- /dev/null +++ b/contracts/oracle/FeedPTForSY.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: GPL-3.0 + +pragma solidity ^0.8.12; + +import { PendlePYOracleLib, PMath } from "pendle/oracles/PendlePYOracleLib.sol"; +import "pendle/interfaces/IPMarket.sol"; + +/// @title FeedPTForSY +/// @author Angle Labs, Inc. +/// @notice Override the BaseFeedPTPendle to provide the price of PT tokens based on the ibToken and not the underlying token +abstract contract FeedPTForSY { + using PMath for uint256; + + /// @dev Depending on the market you should use + /// - getPtToSy() should be used if the underlying token is tradable, + /// - getPtToAsset() if not + /// @dev https://docs.pendle.finance/Developers/Contracts/StandardizedYield#asset-of-sy--assetinfo-function + function _pendlePTPrice(IPMarket _market, uint32 _twapDuration) internal view virtual returns (uint256, uint256) { + (uint256 syIndex, uint256 pyIndex) = PendlePYOracleLib.getSYandPYIndexCurrent(_market); + if (syIndex >= pyIndex) { + return (PendlePYOracleLib.getPtToAssetRateRaw(_market, _twapDuration).divDown(syIndex), syIndex); + } else { + return (PendlePYOracleLib.getPtToAssetRateRaw(_market, _twapDuration).divDown(pyIndex), syIndex); + } + } +} diff --git a/contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol b/contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol index 9dc9a7c4..02d55145 100644 --- a/contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol +++ b/contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol @@ -6,11 +6,12 @@ import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import "../../../BaseOracleChainlinkMultiTwoFeeds.sol"; import "../../../BaseOraclePTPendle.sol"; +import "../../../FeedPTForSY.sol"; /// @title OraclePTweETHEURChainlink /// @author Angle Labs, Inc. /// @notice Gives the price of PT-weETH in Euro in base 18 -contract OraclePTweETHEUR is BaseOracleChainlinkMultiTwoFeeds, BaseOraclePTPendle { +contract OraclePTweETHEUR is BaseOracleChainlinkMultiTwoFeeds, BaseOraclePTPendle, FeedPTForSY { string public constant DESCRIPTION = "PT-weETH/EUR Oracle"; constructor( @@ -48,6 +49,12 @@ contract OraclePTweETHEUR is BaseOracleChainlinkMultiTwoFeeds, BaseOraclePTPendl /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + function _pendlePTPrice( + IPMarket _market, + uint32 _twapDuration + ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { + return FeedPTForSY._pendlePTPrice(_market, _twapDuration); + } function asset() public pure override returns (address) { return 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee; diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol index 392566e8..27013e22 100644 --- a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol @@ -5,11 +5,12 @@ pragma solidity ^0.8.12; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import "../../BaseFeedPTPendle.sol"; +import "../../FeedPTForSY.sol"; /// @title MorphoFeedPTweETH /// @author Angle Labs, Inc. /// @notice Gives the price of PT-weETH in ETH in base 18 -contract MorphoFeedPTweETH is BaseFeedPTPendle { +contract MorphoFeedPTweETH is BaseFeedPTPendle, FeedPTForSY { string public constant description = "PT-weETH/weETH Oracle"; constructor( @@ -21,6 +22,12 @@ contract MorphoFeedPTweETH is BaseFeedPTPendle { /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + function _pendlePTPrice( + IPMarket _market, + uint32 _twapDuration + ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { + return FeedPTForSY._pendlePTPrice(_market, _twapDuration); + } function asset() public pure override returns (address) { return 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee; diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol index e7df7c6f..9d85ff74 100644 --- a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol @@ -5,11 +5,12 @@ pragma solidity ^0.8.12; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import "../../BaseFeedPTPendle.sol"; +import "../../FeedPTForSY.sol"; /// @title MorphoFeedPTweETH /// @author Angle Labs, Inc. /// @notice Gives the price of PT-weETH in ETH in base 18 -contract MorphoFeedPTweETHDec24 is BaseFeedPTPendle { +contract MorphoFeedPTweETHDec24 is BaseFeedPTPendle, FeedPTForSY { string public constant description = "PT-weETH/weETH Oracle"; constructor( @@ -22,6 +23,13 @@ contract MorphoFeedPTweETHDec24 is BaseFeedPTPendle { OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + function _pendlePTPrice( + IPMarket _market, + uint32 _twapDuration + ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { + return FeedPTForSY._pendlePTPrice(_market, _twapDuration); + } + function asset() public pure override returns (address) { return 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee; } diff --git a/lib/pendle-core-v2-public b/lib/pendle-core-v2-public index fb0fcccc..97b1b970 160000 --- a/lib/pendle-core-v2-public +++ b/lib/pendle-core-v2-public @@ -1 +1 @@ -Subproject commit fb0fcccc40d6c7bc97edb39e7468a30dce935c57 +Subproject commit 97b1b9708478b389f9540d71816c7894aab6bb77 diff --git a/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol b/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol index 24a5554b..d6ffe3b4 100644 --- a/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol +++ b/test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol @@ -12,7 +12,6 @@ import { IMorphoChainlinkOracleV2 } from "borrow-contracts/interfaces/external/m import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; import "borrow-contracts/utils/Errors.sol" as Errors; import "borrow-contracts/mock/MockCoreBorrow.sol"; -import { PendlePtOracleLib } from "pendle/oracles/PendlePtOracleLib.sol"; import { IPMarket } from "pendle/interfaces/IPMarket.sol"; import "utils/src/Constants.sol"; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; @@ -21,7 +20,6 @@ import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import { IERC20Metadata } from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import { CommonUtils } from "utils/src/CommonUtils.sol"; import { IERC4626 } from "borrow-contracts/interfaces/external/IERC4626.sol"; -import { PendlePtOracleLib } from "pendle/oracles/PendlePtOracleLib.sol"; contract MorphoChainlinkOracleTest is Test, CommonUtils { using stdStorage for StdStorage; diff --git a/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol b/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol index 5ef8871d..b4902a9c 100644 --- a/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol +++ b/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol @@ -6,12 +6,13 @@ import { stdStorage, StdStorage, Test } from "forge-std/Test.sol"; import { OraclePTweETHEUR, BaseOracleChainlinkMulti } from "../../../../contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol"; import { MockTreasury } from "../../../../contracts/mock/MockTreasury.sol"; import { IAgToken } from "../../../../contracts/interfaces/IAgToken.sol"; -import { PendlePtOracleLib } from "pendle/oracles/PendlePtOracleLib.sol"; +import { PendlePYOracleLib } from "pendle/oracles/PendlePYOracleLib.sol"; import "pendle/interfaces/IPMarket.sol"; import "utils/src/Constants.sol"; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import { UNIT, UD60x18, ud, intoUint256 } from "prb/math/UD60x18.sol"; import "borrow-contracts/utils/Errors.sol" as ErrorsAngle; +import { IStandardizedYield } from "pendle/interfaces/IStandardizedYield.sol"; contract BaseOraclePendlePT is Test { using stdStorage for StdStorage; @@ -29,6 +30,7 @@ contract BaseOraclePendlePT is Test { MockTreasury internal _contractTreasury; OraclePTweETHEUR internal _oracle; + uint256 public syExchangeRate; function setUp() public virtual { ethereumFork = vm.createFork(vm.envString("ETH_NODE_URI_ETHEREUM"), 19740549); @@ -48,6 +50,7 @@ contract BaseOraclePendlePT is Test { address(0) ); _oracle = new OraclePTweETHEUR(_STALE_PERIOD, address(_contractTreasury), _MAX_IMPLIED_RATE, _TWAP_DURATION); + syExchangeRate = IStandardizedYield(_oracle.sy()).exchangeRate(); } /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -101,12 +104,16 @@ contract BaseOraclePendlePT is Test { else return (quoteAmount * (10 ** decimals)) / castedRatio; } - function _economicLowerBound(uint256 maxImpliedRate, uint256 maturity) internal view returns (uint256) { + function _economicLowerBound( + uint256 maxImpliedRate, + uint256 maturity, + uint256 exchangeRate + ) internal view returns (uint256) { uint256 exp = block.timestamp > maturity ? 0 : maturity - block.timestamp; if (exp == 0) return BASE_18; UD60x18 denominator = UNIT.add(ud(maxImpliedRate)).pow(ud(exp).div(ud(YEAR))); uint256 lowerBound = UNIT.div(denominator).unwrap(); - return lowerBound; + return (lowerBound * BASE_18) / exchangeRate; } } @@ -169,7 +176,7 @@ contract BaseOraclePendlePTTest is BaseOraclePendlePT { function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); assertEq(_oracle.read(), _read(pendleAMMPrice)); } @@ -181,10 +188,10 @@ contract BaseOraclePendlePTTest is BaseOraclePendlePT { // Update the last timestamp oracle push _updateChainlinkTimestamp(block.timestamp); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); uint256 value = _oracle.read(); assertEq(value, _read(pendleAMMPrice)); - assertEq(value, _read(1 ether)); + assertApproxEqAbs(value, _read((1 ether * 1 ether) / syExchangeRate), 100 wei); } function test_HackRemove_Success(uint256 slash) public { @@ -195,7 +202,7 @@ contract BaseOraclePendlePTTest is BaseOraclePendlePT { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); uint256 value = _oracle.read(); assertLe(value, _read((lowerBound * slash) / BASE_18)); @@ -210,7 +217,7 @@ contract BaseOraclePendlePTTest is BaseOraclePendlePT { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); uint256 value = _oracle.read(); assertEq(value, _read((lowerBound))); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol index 3b2afc7a..0e3e7f53 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol @@ -11,12 +11,13 @@ import { IAgToken } from "borrow-contracts/interfaces/IAgToken.sol"; import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; import "borrow-contracts/utils/Errors.sol" as Errors; import "borrow-contracts/mock/MockCoreBorrow.sol"; -import { PendlePtOracleLib } from "pendle/oracles/PendlePtOracleLib.sol"; +import { PendlePYOracleLib } from "pendle/oracles/PendlePYOracleLib.sol"; import { IPMarket } from "pendle/interfaces/IPMarket.sol"; import "utils/src/Constants.sol"; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import { UNIT, UD60x18, ud, intoUint256 } from "prb/math/UD60x18.sol"; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import { IStandardizedYield } from "pendle/interfaces/IStandardizedYield.sol"; contract MorphoFeedPTPendleTest is Test { using stdStorage for StdStorage; @@ -44,6 +45,7 @@ contract MorphoFeedPTPendleTest is Test { MockCoreBorrow public coreBorrow; BaseFeedPTPendle internal _oracle; + uint256 public syExchangeRate; function setUp() public virtual { ethereumFork = vm.createFork(vm.envString("ETH_NODE_URI_ETHEREUM"), 20067842); @@ -62,14 +64,19 @@ contract MorphoFeedPTPendleTest is Test { new MorphoFeedPTweETH(IAccessControlManager(address(coreBorrow)), _MAX_IMPLIED_RATE, _TWAP_DURATION) ) ); + syExchangeRate = IStandardizedYield(_oracle.sy()).exchangeRate(); } - function _economicLowerBound(uint256 maxImpliedRate, uint256 maturity) internal view returns (uint256) { + function _economicLowerBound( + uint256 maxImpliedRate, + uint256 maturity, + uint256 exchangeRate + ) internal view returns (uint256) { uint256 exp = block.timestamp > maturity ? 0 : maturity - block.timestamp; if (exp == 0) return BASE_18; UD60x18 denominator = UNIT.add(ud(maxImpliedRate)).pow(ud(exp).div(ud(YEAR))); uint256 lowerBound = UNIT.div(denominator).unwrap(); - return lowerBound; + return (lowerBound * BASE_18) / exchangeRate; } } @@ -150,7 +157,7 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -162,12 +169,12 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); assertEq(value, pendleAMMPrice); - assertEq(value, 1 ether); + assertApproxEqAbs(value, (1 ether * 1 ether) / syExchangeRate, 100 wei); } function test_HackRemove_Success(uint256 slash) public { @@ -178,7 +185,7 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -194,7 +201,7 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol index 1669bd03..31ae9204 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol @@ -38,7 +38,7 @@ contract MorphoFeedPTUSDeTest is MorphoFeedPTPendleTest { function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -50,7 +50,7 @@ contract MorphoFeedPTUSDeTest is MorphoFeedPTPendleTest { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -66,7 +66,7 @@ contract MorphoFeedPTUSDeTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -82,7 +82,7 @@ contract MorphoFeedPTUSDeTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol index 01508450..7bc8304f 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol @@ -19,6 +19,7 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { _MAX_IMPLIED_RATE, _TWAP_DURATION ); + syExchangeRate = IStandardizedYield(_oracle.sy()).exchangeRate(); } /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -39,7 +40,7 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -51,7 +52,7 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -67,7 +68,7 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -83,7 +84,7 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol index ef322981..ef78f0c1 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol @@ -15,6 +15,7 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { _MAX_IMPLIED_RATE = 0.5 ether; _oracle = new MorphoFeedPTweETH(IAccessControlManager(address(coreBorrow)), _MAX_IMPLIED_RATE, _TWAP_DURATION); + syExchangeRate = IStandardizedYield(_oracle.sy()).exchangeRate(); } /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -29,13 +30,13 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.98 ether, 0.01 ether); + assertApproxEqAbs(value, 0.95 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -47,12 +48,12 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); assertEq(value, pendleAMMPrice); - assertEq(value, 1 ether); + assertApproxEqAbs(value, (1 ether * 1 ether) / syExchangeRate, 100 wei); } function test_HackRemove_Success(uint256 slash) public { @@ -63,7 +64,7 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -79,7 +80,7 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol index 0ad7285c..6b039221 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol @@ -19,6 +19,7 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { _MAX_IMPLIED_RATE, _TWAP_DURATION ); + syExchangeRate = IStandardizedYield(_oracle.sy()).exchangeRate(); } /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -33,13 +34,13 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.84 ether, 0.01 ether); + assertApproxEqAbs(value, 0.8 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -51,12 +52,12 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); assertEq(value, pendleAMMPrice); - assertEq(value, 1 ether); + assertApproxEqAbs(value, (1 ether * 1 ether) / syExchangeRate, 100 wei); } function test_HackRemove_Success(uint256 slash) public { @@ -67,7 +68,7 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -83,7 +84,7 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); diff --git a/test/foundry/oracles/pendle/OraclePTweETH.t.sol b/test/foundry/oracles/pendle/OraclePTweETH.t.sol index 6877453d..f9a9244e 100644 --- a/test/foundry/oracles/pendle/OraclePTweETH.t.sol +++ b/test/foundry/oracles/pendle/OraclePTweETH.t.sol @@ -23,6 +23,7 @@ contract OraclePTweETH is BaseOraclePendlePT { address(0) ); _oracle = new OraclePTweETHEUR(_STALE_PERIOD, address(_contractTreasury), _MAX_IMPLIED_RATE, _TWAP_DURATION); + syExchangeRate = IStandardizedYield(_oracle.sy()).exchangeRate(); } /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -30,13 +31,13 @@ contract OraclePTweETH is BaseOraclePendlePT { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ function test_Simple_Success() public { - assertApproxEqRel(_oracle.read(), 2831 ether, 0.01 ether); + assertApproxEqRel(_oracle.read(), 2717 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); assertEq(_oracle.read(), _read(pendleAMMPrice)); } @@ -48,10 +49,10 @@ contract OraclePTweETH is BaseOraclePendlePT { // Update the last timestamp oracle push _updateChainlinkTimestamp(block.timestamp); - uint256 pendleAMMPrice = PendlePtOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); uint256 value = _oracle.read(); assertEq(value, _read(pendleAMMPrice)); - assertEq(value, _read(1 ether)); + assertApproxEqAbs(value, _read((1 ether * 1 ether) / syExchangeRate), 100 wei); } function test_HackRemove_Success(uint256 slash) public { @@ -62,7 +63,7 @@ contract OraclePTweETH is BaseOraclePendlePT { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); uint256 value = _oracle.read(); assertLe(value, _read((lowerBound * slash) / BASE_18)); @@ -77,7 +78,7 @@ contract OraclePTweETH is BaseOraclePendlePT { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity()); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); uint256 value = _oracle.read(); assertEq(value, _read((lowerBound))); From eb248ca6c24ab82d31e889578325d42e61c30cd5 Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Fri, 14 Jun 2024 14:06:22 +0200 Subject: [PATCH 08/10] ezETH feed Morpho compatible --- .../morpho/mainnet/MorphoFeedPTezETHDec24.sol | 40 ++++++++++++- .../pendle/MorphoFeedPTezETHDec24.t.sol | 58 +++++++++++-------- 2 files changed, 72 insertions(+), 26 deletions(-) diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol index e61a70c3..964a3ac9 100644 --- a/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol @@ -5,12 +5,17 @@ pragma solidity ^0.8.12; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import "../../BaseFeedPTPendle.sol"; +import "../../FeedPTForSY.sol"; /// @title MorphoFeedPTezETHDec24 /// @author Angle Labs, Inc. /// @notice Gives the price of PT-ezETH in ETH in base 18 -contract MorphoFeedPTezETHDec24 is BaseFeedPTPendle { - string public constant description = "PT-ezETH/weETH Oracle"; +contract MorphoFeedPTezETHDec24 is BaseFeedPTPendle, FeedPTForSY { + string public constant description = "PT-ezETH/ETH Oracle"; + + // Redstone Feed ezETH/ETH + AggregatorV3Interface public constant additionalFeed = + AggregatorV3Interface(0xF4a3e183F59D2599ee3DF213ff78b1B3b1923696); constructor( IAccessControlManager accessControlManager, @@ -22,6 +27,37 @@ contract MorphoFeedPTezETHDec24 is BaseFeedPTPendle { OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ + /// @inheritdoc AggregatorV3Interface + function getRoundData( + uint80 _roundId + ) + external + view + override + returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) + { + (, int256 ratio, , , ) = additionalFeed.latestRoundData(); + return (0, ((int256(_getQuoteAmount()) * ratio) / 10 ** 8), 0, 0, 0); + } + + /// @inheritdoc AggregatorV3Interface + function latestRoundData() + external + view + override + returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) + { + (, int256 ratio, , , ) = additionalFeed.latestRoundData(); + return (0, ((int256(_getQuoteAmount()) * ratio) / 10 ** 8), 0, 0, 0); + } + + function _pendlePTPrice( + IPMarket _market, + uint32 _twapDuration + ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { + return FeedPTForSY._pendlePTPrice(_market, _twapDuration); + } + function asset() public pure override returns (address) { return 0xbf5495Efe5DB9ce00f80364C8B423567e58d2110; } diff --git a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol index 7bc8304f..9974644a 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol @@ -3,6 +3,7 @@ pragma solidity ^0.8.12; import "./MorphoFeedPTPendle.t.sol"; import { IAccessControlManager } from "borrow-contracts/interfaces/IAccessControlManager.sol"; +import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { using stdStorage for StdStorage; @@ -27,67 +28,76 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ function test_Description_Success() public { - assertEq(_oracle.description(), "PT-ezETH/weETH Oracle"); + assertEq(_oracle.description(), "PT-ezETH/ETH Oracle"); } function test_Simple_Success() public { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.84 ether, 0.01 ether); + assertApproxEqAbs(value, 0.825 ether, 0.001 ether); } function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); - + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertEq(value, pendleAMMPrice); + assertEq(value, (pendleAMMPrice * _getAdditionalFeedRate()) / 1e8); } function test_AfterMaturity_Success() public { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertEq(value, pendleAMMPrice); - assertEq(value, 1 ether); + assertEq(value, (pendleAMMPrice * _getAdditionalFeedRate()) / 1e8); + assertApproxEqAbs(value, (1 ether * 1 ether * _getAdditionalFeedRate()) / syExchangeRate / 1e8, 100 wei); } - function test_HackRemove_Success(uint256 slash) public { - slash = bound(slash, 1, BASE_18); - // Remove part of the SY backing collateral to simulate a hack - IERC20 weETH = IERC20(address(_oracle.asset())); - uint256 prevBalance = weETH.balanceOf(_oracle.sy()); - uint256 postBalance = (prevBalance * slash) / BASE_18; - deal(address(weETH), _oracle.sy(), postBalance); + // function test_HackRemove_Success(uint256 slash) public { + // slash = bound(slash, 1, BASE_18); + // // Remove part of the SY backing collateral to simulate a hack + // IERC20 ezETH = IERC20(address(_oracle.asset())); + // uint256 prevBalance = ezETH.balanceOf(_oracle.sy()); + // uint256 postBalance = (prevBalance * slash) / BASE_18; + // deal(address(ezETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); - (, int256 answer, , , ) = _oracle.latestRoundData(); - uint256 value = uint256(answer); + // uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + // (, int256 answer, , , ) = _oracle.latestRoundData(); + // uint256 value = uint256(answer); - assertLe(value, (lowerBound * slash) / BASE_18); - if (slash > 0) assertGe(value, (lowerBound * (slash - 1)) / BASE_18); - } + // lowerBound = (lowerBound * _getAdditionalFeedRate()) / 1e8; + + // assertLe(value, (lowerBound * slash) / BASE_18); + // if (slash > 0) assertGe(value, (lowerBound * (slash - 1)) / BASE_18); + // } function test_HackExpand_Success(uint256 expand) public { expand = bound(expand, BASE_18, BASE_18 * 1e7); // Remove part of the SY backing collateral to simulate a hack - IERC20 weETH = IERC20(address(_oracle.asset())); - uint256 prevBalance = weETH.balanceOf(_oracle.sy()); + IERC20 ezETH = IERC20(address(_oracle.asset())); + uint256 prevBalance = ezETH.balanceOf(_oracle.sy()); uint256 postBalance = (prevBalance * expand) / BASE_18; - deal(address(weETH), _oracle.sy(), postBalance); + deal(address(ezETH), _oracle.sy(), postBalance); uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); + lowerBound = (lowerBound * _getAdditionalFeedRate()) / 1e8; + assertEq(value, lowerBound); } + + function _getAdditionalFeedRate() public view returns (uint256) { + (, int256 ezETHETHRate, , , ) = AggregatorV3Interface(MorphoFeedPTezETHDec24(address(_oracle)).additionalFeed()) + .latestRoundData(); + return uint256(ezETHETHRate); + } } From 2a11d11325a8006ed257b98c5eed071e46a2d496 Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Mon, 17 Jun 2024 18:23:19 +0200 Subject: [PATCH 09/10] feat: fix PT oracles --- .../mainnet/EUR/OraclePTweETHEUR.sol | 13 ++--- .../morpho/mainnet/MorphoFeedPTezETHDec24.sol | 42 +++------------ .../morpho/mainnet/MorphoFeedPTweETH.sol | 12 +---- .../morpho/mainnet/MorphoFeedPTweETHDec24.sol | 12 +---- .../oracles/pendle/BaseOraclePTPendle.t.sol | 10 ++-- .../oracles/pendle/MorphoFeedPTPendle.t.sol | 12 ++--- .../pendle/MorphoFeedPTezETHDec24.t.sol | 54 ++++++++----------- .../oracles/pendle/MorphoFeedPTweETH.t.sol | 14 ++--- .../pendle/MorphoFeedPTweETHDec24.t.sol | 14 ++--- .../oracles/pendle/OraclePTweETH.t.sol | 12 ++--- 10 files changed, 67 insertions(+), 128 deletions(-) diff --git a/contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol b/contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol index 02d55145..1f4a793b 100644 --- a/contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol +++ b/contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol @@ -6,12 +6,11 @@ import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import "../../../BaseOracleChainlinkMultiTwoFeeds.sol"; import "../../../BaseOraclePTPendle.sol"; -import "../../../FeedPTForSY.sol"; /// @title OraclePTweETHEURChainlink /// @author Angle Labs, Inc. /// @notice Gives the price of PT-weETH in Euro in base 18 -contract OraclePTweETHEUR is BaseOracleChainlinkMultiTwoFeeds, BaseOraclePTPendle, FeedPTForSY { +contract OraclePTweETHEUR is BaseOracleChainlinkMultiTwoFeeds, BaseOraclePTPendle { string public constant DESCRIPTION = "PT-weETH/EUR Oracle"; constructor( @@ -29,8 +28,8 @@ contract OraclePTweETHEUR is BaseOracleChainlinkMultiTwoFeeds, BaseOraclePTPendl /// @inheritdoc IOracle function circuitChainlink() public pure override returns (AggregatorV3Interface[] memory) { AggregatorV3Interface[] memory _circuitChainlink = new AggregatorV3Interface[](2); - // Oracle weETH/USD - _circuitChainlink[0] = AggregatorV3Interface(0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136); + // Oracle ETH/USD + _circuitChainlink[0] = AggregatorV3Interface(0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419); // Oracle EUR/USD _circuitChainlink[1] = AggregatorV3Interface(0xb49f677943BC038e9857d61E7d053CaA2C1734C1); return _circuitChainlink; @@ -49,12 +48,6 @@ contract OraclePTweETHEUR is BaseOracleChainlinkMultiTwoFeeds, BaseOraclePTPendl /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ - function _pendlePTPrice( - IPMarket _market, - uint32 _twapDuration - ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { - return FeedPTForSY._pendlePTPrice(_market, _twapDuration); - } function asset() public pure override returns (address) { return 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee; diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol index 964a3ac9..7b3c3add 100644 --- a/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol @@ -10,13 +10,9 @@ import "../../FeedPTForSY.sol"; /// @title MorphoFeedPTezETHDec24 /// @author Angle Labs, Inc. /// @notice Gives the price of PT-ezETH in ETH in base 18 -contract MorphoFeedPTezETHDec24 is BaseFeedPTPendle, FeedPTForSY { +contract MorphoFeedPTezETHDec24 is BaseFeedPTPendle { string public constant description = "PT-ezETH/ETH Oracle"; - // Redstone Feed ezETH/ETH - AggregatorV3Interface public constant additionalFeed = - AggregatorV3Interface(0xF4a3e183F59D2599ee3DF213ff78b1B3b1923696); - constructor( IAccessControlManager accessControlManager, uint256 _maxImpliedRate, @@ -27,36 +23,12 @@ contract MorphoFeedPTezETHDec24 is BaseFeedPTPendle, FeedPTForSY { OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ - /// @inheritdoc AggregatorV3Interface - function getRoundData( - uint80 _roundId - ) - external - view - override - returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) - { - (, int256 ratio, , , ) = additionalFeed.latestRoundData(); - return (0, ((int256(_getQuoteAmount()) * ratio) / 10 ** 8), 0, 0, 0); - } - - /// @inheritdoc AggregatorV3Interface - function latestRoundData() - external - view - override - returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) - { - (, int256 ratio, , , ) = additionalFeed.latestRoundData(); - return (0, ((int256(_getQuoteAmount()) * ratio) / 10 ** 8), 0, 0, 0); - } - - function _pendlePTPrice( - IPMarket _market, - uint32 _twapDuration - ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { - return FeedPTForSY._pendlePTPrice(_market, _twapDuration); - } + // function _pendlePTPrice( + // IPMarket _market, + // uint32 _twapDuration + // ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { + // return BaseOraclePTPendle._pendlePTPrice(_market, _twapDuration); + // } function asset() public pure override returns (address) { return 0xbf5495Efe5DB9ce00f80364C8B423567e58d2110; diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol index 27013e22..546c2d8a 100644 --- a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol @@ -5,13 +5,12 @@ pragma solidity ^0.8.12; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import "../../BaseFeedPTPendle.sol"; -import "../../FeedPTForSY.sol"; /// @title MorphoFeedPTweETH /// @author Angle Labs, Inc. /// @notice Gives the price of PT-weETH in ETH in base 18 -contract MorphoFeedPTweETH is BaseFeedPTPendle, FeedPTForSY { - string public constant description = "PT-weETH/weETH Oracle"; +contract MorphoFeedPTweETH is BaseFeedPTPendle { + string public constant description = "PT-weETH/ETH Oracle"; constructor( IAccessControlManager accessControlManager, @@ -22,13 +21,6 @@ contract MorphoFeedPTweETH is BaseFeedPTPendle, FeedPTForSY { /*////////////////////////////////////////////////////////////////////////////////////////////////////////////////// OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ - function _pendlePTPrice( - IPMarket _market, - uint32 _twapDuration - ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { - return FeedPTForSY._pendlePTPrice(_market, _twapDuration); - } - function asset() public pure override returns (address) { return 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee; } diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol index 9d85ff74..8118b45c 100644 --- a/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol @@ -5,13 +5,12 @@ pragma solidity ^0.8.12; import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; import "../../BaseFeedPTPendle.sol"; -import "../../FeedPTForSY.sol"; /// @title MorphoFeedPTweETH /// @author Angle Labs, Inc. /// @notice Gives the price of PT-weETH in ETH in base 18 -contract MorphoFeedPTweETHDec24 is BaseFeedPTPendle, FeedPTForSY { - string public constant description = "PT-weETH/weETH Oracle"; +contract MorphoFeedPTweETHDec24 is BaseFeedPTPendle { + string public constant description = "PT-weETH/ETH Oracle"; constructor( IAccessControlManager accessControlManager, @@ -23,13 +22,6 @@ contract MorphoFeedPTweETHDec24 is BaseFeedPTPendle, FeedPTForSY { OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ - function _pendlePTPrice( - IPMarket _market, - uint32 _twapDuration - ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { - return FeedPTForSY._pendlePTPrice(_market, _twapDuration); - } - function asset() public pure override returns (address) { return 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee; } diff --git a/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol b/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol index b4902a9c..928db20b 100644 --- a/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol +++ b/test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol @@ -176,7 +176,7 @@ contract BaseOraclePendlePTTest is BaseOraclePendlePT { function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); assertEq(_oracle.read(), _read(pendleAMMPrice)); } @@ -188,10 +188,10 @@ contract BaseOraclePendlePTTest is BaseOraclePendlePT { // Update the last timestamp oracle push _updateChainlinkTimestamp(block.timestamp); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); uint256 value = _oracle.read(); assertEq(value, _read(pendleAMMPrice)); - assertApproxEqAbs(value, _read((1 ether * 1 ether) / syExchangeRate), 100 wei); + assertEq(value, _read(1 ether)); } function test_HackRemove_Success(uint256 slash) public { @@ -202,7 +202,7 @@ contract BaseOraclePendlePTTest is BaseOraclePendlePT { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); uint256 value = _oracle.read(); assertLe(value, _read((lowerBound * slash) / BASE_18)); @@ -217,7 +217,7 @@ contract BaseOraclePendlePTTest is BaseOraclePendlePT { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); uint256 value = _oracle.read(); assertEq(value, _read((lowerBound))); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol index 0e3e7f53..a4cd4a1f 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol @@ -135,7 +135,7 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ function test_Description_Success() public { - assertEq(_oracle.description(), "PT-weETH/weETH Oracle"); + assertEq(_oracle.description(), "PT-weETH/ETH Oracle"); } function test_LatestRoundData_TimestampSuccess() public { @@ -157,7 +157,7 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -169,12 +169,12 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); assertEq(value, pendleAMMPrice); - assertApproxEqAbs(value, (1 ether * 1 ether) / syExchangeRate, 100 wei); + assertEq(value, 1 ether); } function test_HackRemove_Success(uint256 slash) public { @@ -185,7 +185,7 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -201,7 +201,7 @@ contract MorphoFeedPTPendleCoreTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol index 9974644a..e04215ae 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol @@ -11,9 +11,9 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { function setUp() public override { super.setUp(); - _TWAP_DURATION = 30 minutes; + _TWAP_DURATION = 15 minutes; _STALE_PERIOD = 24 hours; - _MAX_IMPLIED_RATE = 0.4 ether; + _MAX_IMPLIED_RATE = 0.2 ether; _oracle = new MorphoFeedPTezETHDec24( IAccessControlManager(address(coreBorrow)), @@ -35,48 +35,46 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.825 ether, 0.001 ether); + assertApproxEqAbs(value, 0.91 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertEq(value, (pendleAMMPrice * _getAdditionalFeedRate()) / 1e8); + assertEq(value, pendleAMMPrice); } function test_AfterMaturity_Success() public { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertEq(value, (pendleAMMPrice * _getAdditionalFeedRate()) / 1e8); - assertApproxEqAbs(value, (1 ether * 1 ether * _getAdditionalFeedRate()) / syExchangeRate / 1e8, 100 wei); + assertEq(value, pendleAMMPrice); + assertEq(value, 1 ether); } - // function test_HackRemove_Success(uint256 slash) public { - // slash = bound(slash, 1, BASE_18); - // // Remove part of the SY backing collateral to simulate a hack - // IERC20 ezETH = IERC20(address(_oracle.asset())); - // uint256 prevBalance = ezETH.balanceOf(_oracle.sy()); - // uint256 postBalance = (prevBalance * slash) / BASE_18; - // deal(address(ezETH), _oracle.sy(), postBalance); - - // uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); - // (, int256 answer, , , ) = _oracle.latestRoundData(); - // uint256 value = uint256(answer); + function test_HackRemove_Success(uint256 slash) public { + slash = bound(slash, 1, BASE_18); + // Remove part of the SY backing collateral to simulate a hack + IERC20 ezETH = IERC20(address(_oracle.asset())); + uint256 prevBalance = ezETH.balanceOf(_oracle.sy()); + uint256 postBalance = (prevBalance * slash) / BASE_18; + deal(address(ezETH), _oracle.sy(), postBalance); - // lowerBound = (lowerBound * _getAdditionalFeedRate()) / 1e8; + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); + (, int256 answer, , , ) = _oracle.latestRoundData(); + uint256 value = uint256(answer); - // assertLe(value, (lowerBound * slash) / BASE_18); - // if (slash > 0) assertGe(value, (lowerBound * (slash - 1)) / BASE_18); - // } + assertLe(value, (lowerBound * slash) / BASE_18); + if (slash > 0) assertGe(value, (lowerBound * (slash - 1)) / BASE_18); + } function test_HackExpand_Success(uint256 expand) public { expand = bound(expand, BASE_18, BASE_18 * 1e7); @@ -86,18 +84,10 @@ contract MorphoFeedPTezETHDec24Test is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(ezETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - lowerBound = (lowerBound * _getAdditionalFeedRate()) / 1e8; - assertEq(value, lowerBound); } - - function _getAdditionalFeedRate() public view returns (uint256) { - (, int256 ezETHETHRate, , , ) = AggregatorV3Interface(MorphoFeedPTezETHDec24(address(_oracle)).additionalFeed()) - .latestRoundData(); - return uint256(ezETHETHRate); - } } diff --git a/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol index ef78f0c1..0765c13c 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol @@ -23,20 +23,20 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ function test_Description_Success() public { - assertEq(_oracle.description(), "PT-weETH/weETH Oracle"); + assertEq(_oracle.description(), "PT-weETH/ETH Oracle"); } function test_Simple_Success() public { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.95 ether, 0.01 ether); + assertApproxEqAbs(value, 0.99 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -48,12 +48,12 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); assertEq(value, pendleAMMPrice); - assertApproxEqAbs(value, (1 ether * 1 ether) / syExchangeRate, 100 wei); + assertEq(value, 1 ether); } function test_HackRemove_Success(uint256 slash) public { @@ -64,7 +64,7 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -80,7 +80,7 @@ contract MorphoFeedPTweETHTest is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); diff --git a/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol b/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol index 6b039221..905e1202 100644 --- a/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol +++ b/test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol @@ -27,20 +27,20 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ function test_Description_Success() public { - assertEq(_oracle.description(), "PT-weETH/weETH Oracle"); + assertEq(_oracle.description(), "PT-weETH/ETH Oracle"); } function test_Simple_Success() public { (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); - assertApproxEqAbs(value, 0.8 ether, 0.01 ether); + assertApproxEqAbs(value, 0.84 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -52,12 +52,12 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { // Adavnce to the PT maturity vm.warp(_oracle.maturity()); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); assertEq(value, pendleAMMPrice); - assertApproxEqAbs(value, (1 ether * 1 ether) / syExchangeRate, 100 wei); + assertEq(value, 1 ether); } function test_HackRemove_Success(uint256 slash) public { @@ -68,7 +68,7 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); @@ -84,7 +84,7 @@ contract MorphoFeedPTweETHDec24Test is MorphoFeedPTPendleTest { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); (, int256 answer, , , ) = _oracle.latestRoundData(); uint256 value = uint256(answer); diff --git a/test/foundry/oracles/pendle/OraclePTweETH.t.sol b/test/foundry/oracles/pendle/OraclePTweETH.t.sol index f9a9244e..b95d0b3c 100644 --- a/test/foundry/oracles/pendle/OraclePTweETH.t.sol +++ b/test/foundry/oracles/pendle/OraclePTweETH.t.sol @@ -31,13 +31,13 @@ contract OraclePTweETH is BaseOraclePendlePT { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ function test_Simple_Success() public { - assertApproxEqRel(_oracle.read(), 2717 ether, 0.01 ether); + assertApproxEqRel(_oracle.read(), 2719 ether, 0.01 ether); } function test_EconomicalLowerBound_tooSmall() public { vm.prank(_governor); _oracle.setMaxImpliedRate(uint256(1e1)); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); assertEq(_oracle.read(), _read(pendleAMMPrice)); } @@ -49,10 +49,10 @@ contract OraclePTweETH is BaseOraclePendlePT { // Update the last timestamp oracle push _updateChainlinkTimestamp(block.timestamp); - uint256 pendleAMMPrice = PendlePYOracleLib.getPtToSyRate(IPMarket(_oracle.market()), _TWAP_DURATION); + uint256 pendleAMMPrice = PendlePYOracleLib.getPtToAssetRate(IPMarket(_oracle.market()), _TWAP_DURATION); uint256 value = _oracle.read(); assertEq(value, _read(pendleAMMPrice)); - assertApproxEqAbs(value, _read((1 ether * 1 ether) / syExchangeRate), 100 wei); + assertEq(value, _read(1 ether)); } function test_HackRemove_Success(uint256 slash) public { @@ -63,7 +63,7 @@ contract OraclePTweETH is BaseOraclePendlePT { uint256 postBalance = (prevBalance * slash) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); uint256 value = _oracle.read(); assertLe(value, _read((lowerBound * slash) / BASE_18)); @@ -78,7 +78,7 @@ contract OraclePTweETH is BaseOraclePendlePT { uint256 postBalance = (prevBalance * expand) / BASE_18; deal(address(weETH), _oracle.sy(), postBalance); - uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), syExchangeRate); + uint256 lowerBound = _economicLowerBound(_MAX_IMPLIED_RATE, _oracle.maturity(), BASE_18); uint256 value = _oracle.read(); assertEq(value, _read((lowerBound))); From a6c4dfe6ad328875b7d57bcd3f3aa26cd36894fe Mon Sep 17 00:00:00 2001 From: gs8nrv <55771972+GuillaumeNervoXS@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:34:03 +0200 Subject: [PATCH 10/10] deploy new oracles for PTezETH and PTweETH --- .../PTezETHOracle.s.sol/1/run-1718694630.json | 52 +++++++++++++++++++ .../PTezETHOracle.s.sol/1/run-1718694747.json | 50 ++++++++++++++++++ .../PTezETHOracle.s.sol/1/run-latest.json | 30 +++++------ .../PTweETHOracle.s.sol/1/run-1718694502.json | 52 +++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-1718694528.json | 52 +++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-1718694611.json | 52 +++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-1718694851.json | 50 ++++++++++++++++++ .../PTweETHOracle.s.sol/1/run-latest.json | 30 +++++------ .../morpho/mainnet/MorphoFeedPTezETHDec24.sol | 7 --- 9 files changed, 338 insertions(+), 37 deletions(-) create mode 100644 broadcast/PTezETHOracle.s.sol/1/run-1718694630.json create mode 100644 broadcast/PTezETHOracle.s.sol/1/run-1718694747.json create mode 100644 broadcast/PTweETHOracle.s.sol/1/run-1718694502.json create mode 100644 broadcast/PTweETHOracle.s.sol/1/run-1718694528.json create mode 100644 broadcast/PTweETHOracle.s.sol/1/run-1718694611.json create mode 100644 broadcast/PTweETHOracle.s.sol/1/run-1718694851.json diff --git a/broadcast/PTezETHOracle.s.sol/1/run-1718694630.json b/broadcast/PTezETHOracle.s.sol/1/run-1718694630.json new file mode 100644 index 00000000..ec163519 --- /dev/null +++ b/broadcast/PTezETHOracle.s.sol/1/run-1718694630.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0xc3aa13b0be044750ff5ccf7450eff1b0827e0added230e0d82cdc847c4ebad18", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTezETHDec24", + "contractAddress": "0x489801dd35b1e5a294de7d8273575ed9d2f92b17", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "0", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x250c93", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b5060405162002121380380620021218339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fe7806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d457806383914540146101dc578063921a12ab146101e75780639a6fc8f5146101f0578063b4a0bdf314610237578063c433c80a14610249578063d965a5d21461025c578063e43581b81461026b578063feaf968c1461027e575b5f80fd5b6100f0610286565b6040516100fd9190611c11565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611c25565b61029e565b005b6100f0610365565b61017e610179366004611c53565b61037d565b60405190151581526020016100fd565b600161010c565b6101c76040518060400160405280601381526020017250542d657a4554482f455448204f7261636c6560681b81525081565b6040516100fd9190611c6e565b6100f06103f2565b61010c6301e1338081565b61010c60015481565b6102036101fe366004611cba565b61040a565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610257366004611ce0565b61042b565b61010c670de0b6b3a764000081565b61017e610279366004611c53565b610527565b610203610557565b7322e12a50e3ca49fb183074235cb1db84fe4c716d90565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cd903390600401611c11565b602060405180830381865afa1580156102e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030c9190611d03565b61032957604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73bf5495efe5db9ce00f80364c8b423567e58d211090565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103ad908590600401611c11565b602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190611d03565b92915050565b73d8f12bcde578c653014f27379a6114f67f0e445f90565b5f805f805f80610418610577565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045a903390600401611c11565b602060405180830381865afa158015610475573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190611d03565b6104b657604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104df57604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035a565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103ad908590600401611c11565b5f805f805f80610565610577565b90969095505f94508493508392509050565b5f805f6105936105856103f2565b60025463ffffffff16610603565b915091505f81670de0b6b3a76400006105aa610621565b6105b49190611d36565b6105be9190611d61565b90505f8382116105ce57816105d0565b835b90505f670de0b6b3a7640000826105e56106b1565b6105ef9190611d36565b6105f99190611d61565b9695505050505050565b5f8061060f84846107d2565b94670de0b6b3a7640000945092505050565b5f8063676c9c8042116106415761063c4263676c9c80611d74565b610643565b5f5b9050805f0361065b57670de0b6b3a764000091505090565b5f61068e61066d836301e13380610824565b61068861067960015490565b670de0b6b3a764000090610842565b90610850565b90505f6106a96106a6670de0b6b3a764000084610824565b90565b949350505050565b5f806106bb610365565b6001600160a01b03166370a082316106d1610286565b6040518263ffffffff1660e01b81526004016106ed9190611c11565b602060405180830381865afa158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611d87565b90505f610737610286565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190611d87565b90508082116107c157806107b2670de0b6b3a764000084611d36565b6107bc9190611d61565b6107cb565b670de0b6b3a76400005b9250505090565b5f805f6107de85610958565b915091508082106107fc576107f38585610b7b565b925050506103ec565b80826108088787610b7b565b6108129190611d36565b6107f39190611d61565b505092915050565b5f61083b6106a684670de0b6b3a764000085610c4a565b9392505050565b5f61083b6106a68385611d9e565b5f8282818303610878578015610866575f6107f3565b670de0b6b3a7640000925050506103ec565b670de0b6b3a7640000820361089957670de0b6b3a7640000925050506103ec565b805f036108b257670de0b6b3a7640000925050506103ec565b670de0b6b3a764000081036108cb5784925050506103ec565b670de0b6b3a76400008211156108fc576108f56108f06108ea87610d1d565b86610e41565b610e4f565b925061081c565b5f6109186106a6846a0c097ce7bc90715b34b9f160241b611d61565b90505f6109306108f061092a84610d1d565b88610e41565b905061094d6106a6826a0c097ce7bc90715b34b9f160241b611d61565b979650505050505050565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611db1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611d87565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a849190611d87565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611d03565b8015610b59575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611dfb565b6001600160801b0316145b15610b6657809350610b73565b610b708582610ea3565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611d87565b9050428111610bf757670de0b6b3a76400009150506103ec565b5f610c028585610eb8565b90505f610c0f4284611d74565b90505f610c24610c1f8484610fd7565b61100f565b9050610c38670de0b6b3a764000082611020565b9450505050506103ec565b5092915050565b5f80805f19858709858702925082811083820303915050805f03610c8157838281610c7757610c77611d4d565b049250505061083b565b838110610cb757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610d4b5760405163036d32ef60e41b815260048101849052602401610cae565b5f610dcc670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610df257816105f9565b671bc16d674ec800006706f05b59d3b200005b8015610e3557670de0b6b3a7640000838002049250818310610e2d579283019260019290921c915b60011c610e05565b50919695505050505050565b5f61083b6106a6848461104e565b5f81680a688906bd8affffff811115610e7e5760405163b3b6ba1f60e01b815260048101849052602401610cae565b5f610e95670de0b6b3a7640000604084901b611d61565b90506106a96106a682611100565b5f818311610eb1578161083b565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f81518110610eef57610eef611e35565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90610f32908590600401611e49565b5f60405180830381865afa158015610f4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f739190810190611ead565b90508363ffffffff16815f81518110610f8e57610f8e611e35565b602002602001015182600181518110610fa957610fa9611e35565b6020026020010151610fbb9190611f6c565b610fc59190611f8c565b6001600160d81b031695945050505050565b5f80610fe86201518061016d611d36565b610ff28486611d36565b610ffc9190611d61565b90506106a961100a826117ec565b611800565b5f8082121561101c575f80fd5b5090565b5f80611034670de0b6b3a764000085611d36565b905082818161104557611045611d4d565b04949350505050565b5f80805f19848609848602925082811083820303915050805f0361107f5750670de0b6b3a7640000900490506103ec565b670de0b6b3a764000081106110b157604051635173648d60e01b81526004810186905260248101859052604401610cae565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b8216156111e9576001603f1b82161561112c5768016a09e667f3bcc9090260401c5b6001603e1b821615611147576801306fe0a31b7152df0260401c5b6001603d1b821615611162576801172b83c7d517adce0260401c5b6001603c1b82161561117d5768010b5586cf9890f62a0260401c5b6001603b1b821615611198576801059b0d31585743ae0260401c5b6001603a1b8216156111b357680102c9a3e778060ee70260401c5b600160391b8216156111ce5768010163da9fb33356d80260401c5b600160381b8216156111e957680100b1afa5abcbed610260401c5b60ff60301b8216156112cd57600160371b8216156112105768010058c86da1c09ea20260401c5b600160361b82161561122b576801002c605e2e8cec500260401c5b600160351b82161561124657680100162f3904051fa10260401c5b600160341b821615611261576801000b175effdc76ba0260401c5b600160331b82161561127c57680100058ba01fb9f96d0260401c5b600160321b8216156112975768010002c5cc37da94920260401c5b600160311b8216156112b2576801000162e525ee05470260401c5b600160301b8216156112cd5768010000b17255775c040260401c5b60ff60281b8216156113b1576001602f1b8216156112f4576801000058b91b5bc9ae0260401c5b6001602e1b82161561130f57680100002c5c89d5ec6d0260401c5b6001602d1b82161561132a5768010000162e43f4f8310260401c5b6001602c1b82161561134557680100000b1721bcfc9a0260401c5b6001602b1b8216156113605768010000058b90cf1e6e0260401c5b6001602a1b82161561137b576801000002c5c863b73f0260401c5b600160291b82161561139657680100000162e430e5a20260401c5b600160281b8216156113b1576801000000b1721835510260401c5b60ff60201b82161561149557600160271b8216156113d857680100000058b90c0b490260401c5b600160261b8216156113f35768010000002c5c8601cc0260401c5b600160251b82161561140e576801000000162e42fff00260401c5b600160241b8216156114295768010000000b17217fbb0260401c5b600160231b821615611444576801000000058b90bfce0260401c5b600160221b82161561145f57680100000002c5c85fe30260401c5b600160211b82161561147a5768010000000162e42ff10260401c5b600160201b82161561149557680100000000b17217f80260401c5b63ff0000008216156115795763800000008216156114bc5768010000000058b90bfc0260401c5b63400000008216156114d7576801000000002c5c85fe0260401c5b63200000008216156114f257680100000000162e42ff0260401c5b631000000082161561150d576801000000000b17217f0260401c5b630800000082161561152857680100000000058b90c00260401c5b63040000008216156115435768010000000002c5c8600260401c5b630200000082161561155e576801000000000162e4300260401c5b63010000008216156115795768010000000000b172180260401c5b62ff0000821615611653576280000082161561159e576801000000000058b90c0260401c5b624000008216156115b857680100000000002c5c860260401c5b622000008216156115d25768010000000000162e430260401c5b621000008216156115ec57680100000000000b17210260401c5b620800008216156116065768010000000000058b910260401c5b62040000821615611620576801000000000002c5c80260401c5b6202000082161561163a57680100000000000162e40260401c5b620100008216156116535761b172600160401b010260401c5b61ff0082161561171c57618000821615611675576158b9600160401b010260401c5b61400082161561168d57612c5d600160401b010260401c5b6120008216156116a55761162e600160401b010260401c5b6110008216156116bd57610b17600160401b010260401c5b6108008216156116d55761058c600160401b010260401c5b6104008216156116ed576102c6600160401b010260401c5b61020082161561170557610163600160401b010260401c5b61010082161561171c5760b1600160401b010260401c5b60ff8216156117d557608082161561173b576059600160401b010260401c5b604082161561175157602c600160401b010260401c5b6020821615611767576016600160401b010260401c5b601082161561177d57600b600160401b010260401c5b6008821615611793576006600160401b010260401c5b60048216156117a9576003600160401b010260401c5b60028216156117bf576001600160401b010260401c5b60018216156117d5576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f6001600160ff1b0382111561101c575f80fd5b5f680238fd42c5cf03ffff198212158015611824575068070c1cc73b00c800008213155b6118635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610cae565b5f82121561189957611876825f03611800565b6a0c097ce7bc90715b34b9f160241b8161189257611892611d4d565b0592915050565b5f6806f05b59d3b200000083126118d657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61190c565b6803782dace9d9000000831261190857506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061190c565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261195c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611998576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119d257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a0c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a4557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a7e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611ab7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611af05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611c35575f80fd5b5035919050565b6001600160a01b0381168114611c50575f80fd5b50565b5f60208284031215611c63575f80fd5b813561083b81611c3c565b5f602080835283518060208501525f5b81811015611c9a57858101830151858201604001528201611c7e565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611cca575f80fd5b81356001600160501b038116811461083b575f80fd5b5f60208284031215611cf0575f80fd5b813563ffffffff8116811461083b575f80fd5b5f60208284031215611d13575f80fd5b8151801515811461083b575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ec576103ec611d22565b634e487b7160e01b5f52601260045260245ffd5b5f82611d6f57611d6f611d4d565b500490565b818103818111156103ec576103ec611d22565b5f60208284031215611d97575f80fd5b5051919050565b808201808211156103ec576103ec611d22565b5f805f60608486031215611dc3575f80fd5b8351611dce81611c3c565b6020850151909350611ddf81611c3c565b6040850151909250611df081611c3c565b809150509250925092565b5f60208284031215611e0b575f80fd5b81516001600160801b038116811461083b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e8657835163ffffffff1683529284019291840191600101611e64565b50909695505050505050565b80516001600160d81b0381168114611ea8575f80fd5b919050565b5f6020808385031215611ebe575f80fd5b82516001600160401b0380821115611ed4575f80fd5b818501915085601f830112611ee7575f80fd5b815181811115611ef957611ef9611e21565b8060051b604051601f19603f83011681018181108582111715611f1e57611f1e611e21565b604052918252848201925083810185019188831115611f3b575f80fd5b938501935b82851015611f6057611f5185611e92565b84529385019392850192611f40565b98975050505050505050565b6001600160d81b03828116828216039080821115610c4357610c43611d22565b5f6001600160d81b0383811680611fa557611fa5611d4d565b9216919091049291505056fea26469706673582212205817c3571cc3fed2b9f88f33758db8d9dacc4ba013a0e9d55624f04a060f10ca64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1ad", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1c7fd4", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc3aa13b0be044750ff5ccf7450eff1b0827e0added230e0d82cdc847c4ebad18", + "transactionIndex": "0x0", + "blockHash": "0x756c5cb332ddd0413a85c3d62d0fc1262a60cf5df7a8e661a173b7a6530bb14f", + "blockNumber": "0x1327030", + "gasUsed": "0x1c7fd4", + "effectiveGasPrice": "0x6e85e9d1", + "blobGasPrice": "0x1", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x489801dd35b1e5a294de7d8273575ed9d2f92b17", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718694630, + "chain": 1, + "commit": "2a11d11" +} \ No newline at end of file diff --git a/broadcast/PTezETHOracle.s.sol/1/run-1718694747.json b/broadcast/PTezETHOracle.s.sol/1/run-1718694747.json new file mode 100644 index 00000000..8576e455 --- /dev/null +++ b/broadcast/PTezETHOracle.s.sol/1/run-1718694747.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0xd1a626c16617ebf5866db7a3fb13d976a7617ade7768bef3e16fa85b0273ccf3", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTezETHDec24", + "contractAddress": "0x86f5cec63edf19209c460853b0b509c12918db19", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "250000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x2571ff", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b5060405162002121380380620021218339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fe7806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d457806383914540146101dc578063921a12ab146101e75780639a6fc8f5146101f0578063b4a0bdf314610237578063c433c80a14610249578063d965a5d21461025c578063e43581b81461026b578063feaf968c1461027e575b5f80fd5b6100f0610286565b6040516100fd9190611c11565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611c25565b61029e565b005b6100f0610365565b61017e610179366004611c53565b61037d565b60405190151581526020016100fd565b600161010c565b6101c76040518060400160405280601381526020017250542d657a4554482f455448204f7261636c6560681b81525081565b6040516100fd9190611c6e565b6100f06103f2565b61010c6301e1338081565b61010c60015481565b6102036101fe366004611cba565b61040a565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610257366004611ce0565b61042b565b61010c670de0b6b3a764000081565b61017e610279366004611c53565b610527565b610203610557565b7322e12a50e3ca49fb183074235cb1db84fe4c716d90565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cd903390600401611c11565b602060405180830381865afa1580156102e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030c9190611d03565b61032957604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73bf5495efe5db9ce00f80364c8b423567e58d211090565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103ad908590600401611c11565b602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190611d03565b92915050565b73d8f12bcde578c653014f27379a6114f67f0e445f90565b5f805f805f80610418610577565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045a903390600401611c11565b602060405180830381865afa158015610475573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190611d03565b6104b657604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104df57604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035a565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103ad908590600401611c11565b5f805f805f80610565610577565b90969095505f94508493508392509050565b5f805f6105936105856103f2565b60025463ffffffff16610603565b915091505f81670de0b6b3a76400006105aa610621565b6105b49190611d36565b6105be9190611d61565b90505f8382116105ce57816105d0565b835b90505f670de0b6b3a7640000826105e56106b1565b6105ef9190611d36565b6105f99190611d61565b9695505050505050565b5f8061060f84846107d2565b94670de0b6b3a7640000945092505050565b5f8063676c9c8042116106415761063c4263676c9c80611d74565b610643565b5f5b9050805f0361065b57670de0b6b3a764000091505090565b5f61068e61066d836301e13380610824565b61068861067960015490565b670de0b6b3a764000090610842565b90610850565b90505f6106a96106a6670de0b6b3a764000084610824565b90565b949350505050565b5f806106bb610365565b6001600160a01b03166370a082316106d1610286565b6040518263ffffffff1660e01b81526004016106ed9190611c11565b602060405180830381865afa158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611d87565b90505f610737610286565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190611d87565b90508082116107c157806107b2670de0b6b3a764000084611d36565b6107bc9190611d61565b6107cb565b670de0b6b3a76400005b9250505090565b5f805f6107de85610958565b915091508082106107fc576107f38585610b7b565b925050506103ec565b80826108088787610b7b565b6108129190611d36565b6107f39190611d61565b505092915050565b5f61083b6106a684670de0b6b3a764000085610c4a565b9392505050565b5f61083b6106a68385611d9e565b5f8282818303610878578015610866575f6107f3565b670de0b6b3a7640000925050506103ec565b670de0b6b3a7640000820361089957670de0b6b3a7640000925050506103ec565b805f036108b257670de0b6b3a7640000925050506103ec565b670de0b6b3a764000081036108cb5784925050506103ec565b670de0b6b3a76400008211156108fc576108f56108f06108ea87610d1d565b86610e41565b610e4f565b925061081c565b5f6109186106a6846a0c097ce7bc90715b34b9f160241b611d61565b90505f6109306108f061092a84610d1d565b88610e41565b905061094d6106a6826a0c097ce7bc90715b34b9f160241b611d61565b979650505050505050565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611db1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611d87565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a849190611d87565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611d03565b8015610b59575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611dfb565b6001600160801b0316145b15610b6657809350610b73565b610b708582610ea3565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611d87565b9050428111610bf757670de0b6b3a76400009150506103ec565b5f610c028585610eb8565b90505f610c0f4284611d74565b90505f610c24610c1f8484610fd7565b61100f565b9050610c38670de0b6b3a764000082611020565b9450505050506103ec565b5092915050565b5f80805f19858709858702925082811083820303915050805f03610c8157838281610c7757610c77611d4d565b049250505061083b565b838110610cb757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610d4b5760405163036d32ef60e41b815260048101849052602401610cae565b5f610dcc670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610df257816105f9565b671bc16d674ec800006706f05b59d3b200005b8015610e3557670de0b6b3a7640000838002049250818310610e2d579283019260019290921c915b60011c610e05565b50919695505050505050565b5f61083b6106a6848461104e565b5f81680a688906bd8affffff811115610e7e5760405163b3b6ba1f60e01b815260048101849052602401610cae565b5f610e95670de0b6b3a7640000604084901b611d61565b90506106a96106a682611100565b5f818311610eb1578161083b565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f81518110610eef57610eef611e35565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90610f32908590600401611e49565b5f60405180830381865afa158015610f4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f739190810190611ead565b90508363ffffffff16815f81518110610f8e57610f8e611e35565b602002602001015182600181518110610fa957610fa9611e35565b6020026020010151610fbb9190611f6c565b610fc59190611f8c565b6001600160d81b031695945050505050565b5f80610fe86201518061016d611d36565b610ff28486611d36565b610ffc9190611d61565b90506106a961100a826117ec565b611800565b5f8082121561101c575f80fd5b5090565b5f80611034670de0b6b3a764000085611d36565b905082818161104557611045611d4d565b04949350505050565b5f80805f19848609848602925082811083820303915050805f0361107f5750670de0b6b3a7640000900490506103ec565b670de0b6b3a764000081106110b157604051635173648d60e01b81526004810186905260248101859052604401610cae565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b8216156111e9576001603f1b82161561112c5768016a09e667f3bcc9090260401c5b6001603e1b821615611147576801306fe0a31b7152df0260401c5b6001603d1b821615611162576801172b83c7d517adce0260401c5b6001603c1b82161561117d5768010b5586cf9890f62a0260401c5b6001603b1b821615611198576801059b0d31585743ae0260401c5b6001603a1b8216156111b357680102c9a3e778060ee70260401c5b600160391b8216156111ce5768010163da9fb33356d80260401c5b600160381b8216156111e957680100b1afa5abcbed610260401c5b60ff60301b8216156112cd57600160371b8216156112105768010058c86da1c09ea20260401c5b600160361b82161561122b576801002c605e2e8cec500260401c5b600160351b82161561124657680100162f3904051fa10260401c5b600160341b821615611261576801000b175effdc76ba0260401c5b600160331b82161561127c57680100058ba01fb9f96d0260401c5b600160321b8216156112975768010002c5cc37da94920260401c5b600160311b8216156112b2576801000162e525ee05470260401c5b600160301b8216156112cd5768010000b17255775c040260401c5b60ff60281b8216156113b1576001602f1b8216156112f4576801000058b91b5bc9ae0260401c5b6001602e1b82161561130f57680100002c5c89d5ec6d0260401c5b6001602d1b82161561132a5768010000162e43f4f8310260401c5b6001602c1b82161561134557680100000b1721bcfc9a0260401c5b6001602b1b8216156113605768010000058b90cf1e6e0260401c5b6001602a1b82161561137b576801000002c5c863b73f0260401c5b600160291b82161561139657680100000162e430e5a20260401c5b600160281b8216156113b1576801000000b1721835510260401c5b60ff60201b82161561149557600160271b8216156113d857680100000058b90c0b490260401c5b600160261b8216156113f35768010000002c5c8601cc0260401c5b600160251b82161561140e576801000000162e42fff00260401c5b600160241b8216156114295768010000000b17217fbb0260401c5b600160231b821615611444576801000000058b90bfce0260401c5b600160221b82161561145f57680100000002c5c85fe30260401c5b600160211b82161561147a5768010000000162e42ff10260401c5b600160201b82161561149557680100000000b17217f80260401c5b63ff0000008216156115795763800000008216156114bc5768010000000058b90bfc0260401c5b63400000008216156114d7576801000000002c5c85fe0260401c5b63200000008216156114f257680100000000162e42ff0260401c5b631000000082161561150d576801000000000b17217f0260401c5b630800000082161561152857680100000000058b90c00260401c5b63040000008216156115435768010000000002c5c8600260401c5b630200000082161561155e576801000000000162e4300260401c5b63010000008216156115795768010000000000b172180260401c5b62ff0000821615611653576280000082161561159e576801000000000058b90c0260401c5b624000008216156115b857680100000000002c5c860260401c5b622000008216156115d25768010000000000162e430260401c5b621000008216156115ec57680100000000000b17210260401c5b620800008216156116065768010000000000058b910260401c5b62040000821615611620576801000000000002c5c80260401c5b6202000082161561163a57680100000000000162e40260401c5b620100008216156116535761b172600160401b010260401c5b61ff0082161561171c57618000821615611675576158b9600160401b010260401c5b61400082161561168d57612c5d600160401b010260401c5b6120008216156116a55761162e600160401b010260401c5b6110008216156116bd57610b17600160401b010260401c5b6108008216156116d55761058c600160401b010260401c5b6104008216156116ed576102c6600160401b010260401c5b61020082161561170557610163600160401b010260401c5b61010082161561171c5760b1600160401b010260401c5b60ff8216156117d557608082161561173b576059600160401b010260401c5b604082161561175157602c600160401b010260401c5b6020821615611767576016600160401b010260401c5b601082161561177d57600b600160401b010260401c5b6008821615611793576006600160401b010260401c5b60048216156117a9576003600160401b010260401c5b60028216156117bf576001600160401b010260401c5b60018216156117d5576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f6001600160ff1b0382111561101c575f80fd5b5f680238fd42c5cf03ffff198212158015611824575068070c1cc73b00c800008213155b6118635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610cae565b5f82121561189957611876825f03611800565b6a0c097ce7bc90715b34b9f160241b8161189257611892611d4d565b0592915050565b5f6806f05b59d3b200000083126118d657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61190c565b6803782dace9d9000000831261190857506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061190c565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261195c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611998576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119d257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a0c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a4557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a7e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611ab7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611af05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611c35575f80fd5b5035919050565b6001600160a01b0381168114611c50575f80fd5b50565b5f60208284031215611c63575f80fd5b813561083b81611c3c565b5f602080835283518060208501525f5b81811015611c9a57858101830151858201604001528201611c7e565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611cca575f80fd5b81356001600160501b038116811461083b575f80fd5b5f60208284031215611cf0575f80fd5b813563ffffffff8116811461083b575f80fd5b5f60208284031215611d13575f80fd5b8151801515811461083b575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ec576103ec611d22565b634e487b7160e01b5f52601260045260245ffd5b5f82611d6f57611d6f611d4d565b500490565b818103818111156103ec576103ec611d22565b5f60208284031215611d97575f80fd5b5051919050565b808201808211156103ec576103ec611d22565b5f805f60608486031215611dc3575f80fd5b8351611dce81611c3c565b6020850151909350611ddf81611c3c565b6040850151909250611df081611c3c565b809150509250925092565b5f60208284031215611e0b575f80fd5b81516001600160801b038116811461083b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e8657835163ffffffff1683529284019291840191600101611e64565b50909695505050505050565b80516001600160d81b0381168114611ea8575f80fd5b919050565b5f6020808385031215611ebe575f80fd5b82516001600160401b0380821115611ed4575f80fd5b818501915085601f830112611ee7575f80fd5b815181811115611ef957611ef9611e21565b8060051b604051601f19603f83011681018181108582111715611f1e57611f1e611e21565b604052918252848201925083810185019188831115611f3b575f80fd5b938501935b82851015611f6057611f5185611e92565b84529385019392850192611f40565b98975050505050505050565b6001600160d81b03828116828216039080821115610c4357610c43611d22565b5f6001600160d81b0383811680611fa557611fa5611d4d565b9216919091049291505056fea26469706673582212205817c3571cc3fed2b9f88f33758db8d9dacc4ba013a0e9d55624f04a060f10ca64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1b6", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x340136", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xd1a626c16617ebf5866db7a3fb13d976a7617ade7768bef3e16fa85b0273ccf3", + "transactionIndex": "0xc", + "blockHash": "0x385776748ac2af7f010b8d6e8f071c2b05cfa492e785c32af7fbd34761716f86", + "blockNumber": "0x132f65a", + "gasUsed": "0x1ccdd8", + "effectiveGasPrice": "0x121cdc5ed", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x86f5cec63edf19209c460853b0b509c12918db19" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718694747, + "chain": 1, + "commit": "2a11d11" +} \ No newline at end of file diff --git a/broadcast/PTezETHOracle.s.sol/1/run-latest.json b/broadcast/PTezETHOracle.s.sol/1/run-latest.json index fc159397..8576e455 100644 --- a/broadcast/PTezETHOracle.s.sol/1/run-latest.json +++ b/broadcast/PTezETHOracle.s.sol/1/run-latest.json @@ -1,10 +1,10 @@ { "transactions": [ { - "hash": "0xeead67706e4a8dad3ad0eaa6986d5ebcfcca420cbdfdfea46b6c06ef3f945c20", + "hash": "0xd1a626c16617ebf5866db7a3fb13d976a7617ade7768bef3e16fa85b0273ccf3", "transactionType": "CREATE", "contractName": "MorphoFeedPTezETHDec24", - "contractAddress": "0xf3fc589215f18d40fcfabaf860e3a9ed9e8cfc0c", + "contractAddress": "0x86f5cec63edf19209c460853b0b509c12918db19", "function": null, "arguments": [ "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", @@ -13,10 +13,10 @@ ], "transaction": { "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", - "gas": "0x25316f", + "gas": "0x2571ff", "value": "0x0", - "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d657a4554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b7322e12a50e3ca49fb183074235cb1db84fe4c716d90565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73bf5495efe5db9ce00f80364c8b423567e58d211090565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b73d8f12bcde578c653014f27379a6114f67f0e445f90565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea2646970667358221220a7e3c5e826c667f93c7dfb7558772680e330724736f319fa7aadeb0ebb55eb8364736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", - "nonce": "0x19f", + "input": "0x608060405234801562000010575f80fd5b5060405162002121380380620021218339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fe7806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d457806383914540146101dc578063921a12ab146101e75780639a6fc8f5146101f0578063b4a0bdf314610237578063c433c80a14610249578063d965a5d21461025c578063e43581b81461026b578063feaf968c1461027e575b5f80fd5b6100f0610286565b6040516100fd9190611c11565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611c25565b61029e565b005b6100f0610365565b61017e610179366004611c53565b61037d565b60405190151581526020016100fd565b600161010c565b6101c76040518060400160405280601381526020017250542d657a4554482f455448204f7261636c6560681b81525081565b6040516100fd9190611c6e565b6100f06103f2565b61010c6301e1338081565b61010c60015481565b6102036101fe366004611cba565b61040a565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610257366004611ce0565b61042b565b61010c670de0b6b3a764000081565b61017e610279366004611c53565b610527565b610203610557565b7322e12a50e3ca49fb183074235cb1db84fe4c716d90565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cd903390600401611c11565b602060405180830381865afa1580156102e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030c9190611d03565b61032957604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73bf5495efe5db9ce00f80364c8b423567e58d211090565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103ad908590600401611c11565b602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190611d03565b92915050565b73d8f12bcde578c653014f27379a6114f67f0e445f90565b5f805f805f80610418610577565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045a903390600401611c11565b602060405180830381865afa158015610475573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190611d03565b6104b657604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104df57604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035a565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103ad908590600401611c11565b5f805f805f80610565610577565b90969095505f94508493508392509050565b5f805f6105936105856103f2565b60025463ffffffff16610603565b915091505f81670de0b6b3a76400006105aa610621565b6105b49190611d36565b6105be9190611d61565b90505f8382116105ce57816105d0565b835b90505f670de0b6b3a7640000826105e56106b1565b6105ef9190611d36565b6105f99190611d61565b9695505050505050565b5f8061060f84846107d2565b94670de0b6b3a7640000945092505050565b5f8063676c9c8042116106415761063c4263676c9c80611d74565b610643565b5f5b9050805f0361065b57670de0b6b3a764000091505090565b5f61068e61066d836301e13380610824565b61068861067960015490565b670de0b6b3a764000090610842565b90610850565b90505f6106a96106a6670de0b6b3a764000084610824565b90565b949350505050565b5f806106bb610365565b6001600160a01b03166370a082316106d1610286565b6040518263ffffffff1660e01b81526004016106ed9190611c11565b602060405180830381865afa158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611d87565b90505f610737610286565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190611d87565b90508082116107c157806107b2670de0b6b3a764000084611d36565b6107bc9190611d61565b6107cb565b670de0b6b3a76400005b9250505090565b5f805f6107de85610958565b915091508082106107fc576107f38585610b7b565b925050506103ec565b80826108088787610b7b565b6108129190611d36565b6107f39190611d61565b505092915050565b5f61083b6106a684670de0b6b3a764000085610c4a565b9392505050565b5f61083b6106a68385611d9e565b5f8282818303610878578015610866575f6107f3565b670de0b6b3a7640000925050506103ec565b670de0b6b3a7640000820361089957670de0b6b3a7640000925050506103ec565b805f036108b257670de0b6b3a7640000925050506103ec565b670de0b6b3a764000081036108cb5784925050506103ec565b670de0b6b3a76400008211156108fc576108f56108f06108ea87610d1d565b86610e41565b610e4f565b925061081c565b5f6109186106a6846a0c097ce7bc90715b34b9f160241b611d61565b90505f6109306108f061092a84610d1d565b88610e41565b905061094d6106a6826a0c097ce7bc90715b34b9f160241b611d61565b979650505050505050565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611db1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611d87565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a849190611d87565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611d03565b8015610b59575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611dfb565b6001600160801b0316145b15610b6657809350610b73565b610b708582610ea3565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611d87565b9050428111610bf757670de0b6b3a76400009150506103ec565b5f610c028585610eb8565b90505f610c0f4284611d74565b90505f610c24610c1f8484610fd7565b61100f565b9050610c38670de0b6b3a764000082611020565b9450505050506103ec565b5092915050565b5f80805f19858709858702925082811083820303915050805f03610c8157838281610c7757610c77611d4d565b049250505061083b565b838110610cb757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610d4b5760405163036d32ef60e41b815260048101849052602401610cae565b5f610dcc670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610df257816105f9565b671bc16d674ec800006706f05b59d3b200005b8015610e3557670de0b6b3a7640000838002049250818310610e2d579283019260019290921c915b60011c610e05565b50919695505050505050565b5f61083b6106a6848461104e565b5f81680a688906bd8affffff811115610e7e5760405163b3b6ba1f60e01b815260048101849052602401610cae565b5f610e95670de0b6b3a7640000604084901b611d61565b90506106a96106a682611100565b5f818311610eb1578161083b565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f81518110610eef57610eef611e35565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90610f32908590600401611e49565b5f60405180830381865afa158015610f4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f739190810190611ead565b90508363ffffffff16815f81518110610f8e57610f8e611e35565b602002602001015182600181518110610fa957610fa9611e35565b6020026020010151610fbb9190611f6c565b610fc59190611f8c565b6001600160d81b031695945050505050565b5f80610fe86201518061016d611d36565b610ff28486611d36565b610ffc9190611d61565b90506106a961100a826117ec565b611800565b5f8082121561101c575f80fd5b5090565b5f80611034670de0b6b3a764000085611d36565b905082818161104557611045611d4d565b04949350505050565b5f80805f19848609848602925082811083820303915050805f0361107f5750670de0b6b3a7640000900490506103ec565b670de0b6b3a764000081106110b157604051635173648d60e01b81526004810186905260248101859052604401610cae565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b8216156111e9576001603f1b82161561112c5768016a09e667f3bcc9090260401c5b6001603e1b821615611147576801306fe0a31b7152df0260401c5b6001603d1b821615611162576801172b83c7d517adce0260401c5b6001603c1b82161561117d5768010b5586cf9890f62a0260401c5b6001603b1b821615611198576801059b0d31585743ae0260401c5b6001603a1b8216156111b357680102c9a3e778060ee70260401c5b600160391b8216156111ce5768010163da9fb33356d80260401c5b600160381b8216156111e957680100b1afa5abcbed610260401c5b60ff60301b8216156112cd57600160371b8216156112105768010058c86da1c09ea20260401c5b600160361b82161561122b576801002c605e2e8cec500260401c5b600160351b82161561124657680100162f3904051fa10260401c5b600160341b821615611261576801000b175effdc76ba0260401c5b600160331b82161561127c57680100058ba01fb9f96d0260401c5b600160321b8216156112975768010002c5cc37da94920260401c5b600160311b8216156112b2576801000162e525ee05470260401c5b600160301b8216156112cd5768010000b17255775c040260401c5b60ff60281b8216156113b1576001602f1b8216156112f4576801000058b91b5bc9ae0260401c5b6001602e1b82161561130f57680100002c5c89d5ec6d0260401c5b6001602d1b82161561132a5768010000162e43f4f8310260401c5b6001602c1b82161561134557680100000b1721bcfc9a0260401c5b6001602b1b8216156113605768010000058b90cf1e6e0260401c5b6001602a1b82161561137b576801000002c5c863b73f0260401c5b600160291b82161561139657680100000162e430e5a20260401c5b600160281b8216156113b1576801000000b1721835510260401c5b60ff60201b82161561149557600160271b8216156113d857680100000058b90c0b490260401c5b600160261b8216156113f35768010000002c5c8601cc0260401c5b600160251b82161561140e576801000000162e42fff00260401c5b600160241b8216156114295768010000000b17217fbb0260401c5b600160231b821615611444576801000000058b90bfce0260401c5b600160221b82161561145f57680100000002c5c85fe30260401c5b600160211b82161561147a5768010000000162e42ff10260401c5b600160201b82161561149557680100000000b17217f80260401c5b63ff0000008216156115795763800000008216156114bc5768010000000058b90bfc0260401c5b63400000008216156114d7576801000000002c5c85fe0260401c5b63200000008216156114f257680100000000162e42ff0260401c5b631000000082161561150d576801000000000b17217f0260401c5b630800000082161561152857680100000000058b90c00260401c5b63040000008216156115435768010000000002c5c8600260401c5b630200000082161561155e576801000000000162e4300260401c5b63010000008216156115795768010000000000b172180260401c5b62ff0000821615611653576280000082161561159e576801000000000058b90c0260401c5b624000008216156115b857680100000000002c5c860260401c5b622000008216156115d25768010000000000162e430260401c5b621000008216156115ec57680100000000000b17210260401c5b620800008216156116065768010000000000058b910260401c5b62040000821615611620576801000000000002c5c80260401c5b6202000082161561163a57680100000000000162e40260401c5b620100008216156116535761b172600160401b010260401c5b61ff0082161561171c57618000821615611675576158b9600160401b010260401c5b61400082161561168d57612c5d600160401b010260401c5b6120008216156116a55761162e600160401b010260401c5b6110008216156116bd57610b17600160401b010260401c5b6108008216156116d55761058c600160401b010260401c5b6104008216156116ed576102c6600160401b010260401c5b61020082161561170557610163600160401b010260401c5b61010082161561171c5760b1600160401b010260401c5b60ff8216156117d557608082161561173b576059600160401b010260401c5b604082161561175157602c600160401b010260401c5b6020821615611767576016600160401b010260401c5b601082161561177d57600b600160401b010260401c5b6008821615611793576006600160401b010260401c5b60048216156117a9576003600160401b010260401c5b60028216156117bf576001600160401b010260401c5b60018216156117d5576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f6001600160ff1b0382111561101c575f80fd5b5f680238fd42c5cf03ffff198212158015611824575068070c1cc73b00c800008213155b6118635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610cae565b5f82121561189957611876825f03611800565b6a0c097ce7bc90715b34b9f160241b8161189257611892611d4d565b0592915050565b5f6806f05b59d3b200000083126118d657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61190c565b6803782dace9d9000000831261190857506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061190c565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261195c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611998576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119d257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a0c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a4557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a7e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611ab7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611af05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611c35575f80fd5b5035919050565b6001600160a01b0381168114611c50575f80fd5b50565b5f60208284031215611c63575f80fd5b813561083b81611c3c565b5f602080835283518060208501525f5b81811015611c9a57858101830151858201604001528201611c7e565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611cca575f80fd5b81356001600160501b038116811461083b575f80fd5b5f60208284031215611cf0575f80fd5b813563ffffffff8116811461083b575f80fd5b5f60208284031215611d13575f80fd5b8151801515811461083b575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ec576103ec611d22565b634e487b7160e01b5f52601260045260245ffd5b5f82611d6f57611d6f611d4d565b500490565b818103818111156103ec576103ec611d22565b5f60208284031215611d97575f80fd5b5051919050565b808201808211156103ec576103ec611d22565b5f805f60608486031215611dc3575f80fd5b8351611dce81611c3c565b6020850151909350611ddf81611c3c565b6040850151909250611df081611c3c565b809150509250925092565b5f60208284031215611e0b575f80fd5b81516001600160801b038116811461083b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e8657835163ffffffff1683529284019291840191600101611e64565b50909695505050505050565b80516001600160d81b0381168114611ea8575f80fd5b919050565b5f6020808385031215611ebe575f80fd5b82516001600160401b0380821115611ed4575f80fd5b818501915085601f830112611ee7575f80fd5b815181811115611ef957611ef9611e21565b8060051b604051601f19603f83011681018181108582111715611f1e57611f1e611e21565b604052918252848201925083810185019188831115611f3b575f80fd5b938501935b82851015611f6057611f5185611e92565b84529385019392850192611f40565b98975050505050505050565b6001600160d81b03828116828216039080821115610c4357610c43611d22565b5f6001600160d81b0383811680611fa557611fa5611d4d565b9216919091049291505056fea26469706673582212205817c3571cc3fed2b9f88f33758db8d9dacc4ba013a0e9d55624f04a060f10ca64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1b6", "chainId": "0x1" }, "additionalContracts": [], @@ -26,25 +26,25 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0xcbf613", + "cumulativeGasUsed": "0x340136", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0xeead67706e4a8dad3ad0eaa6986d5ebcfcca420cbdfdfea46b6c06ef3f945c20", - "transactionIndex": "0x67", - "blockHash": "0xf644395367e702428ba91c32aff1faaab29c658c65ce101b0131ba9548e794a1", - "blockNumber": "0x1324fa7", - "gasUsed": "0x1c9c2e", - "effectiveGasPrice": "0x19e5e5026", + "transactionHash": "0xd1a626c16617ebf5866db7a3fb13d976a7617ade7768bef3e16fa85b0273ccf3", + "transactionIndex": "0xc", + "blockHash": "0x385776748ac2af7f010b8d6e8f071c2b05cfa492e785c32af7fbd34761716f86", + "blockNumber": "0x132f65a", + "gasUsed": "0x1ccdd8", + "effectiveGasPrice": "0x121cdc5ed", "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", "to": null, - "contractAddress": "0xf3fc589215f18d40fcfabaf860e3a9ed9e8cfc0c" + "contractAddress": "0x86f5cec63edf19209c460853b0b509c12918db19" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1718179163, + "timestamp": 1718694747, "chain": 1, - "commit": "6bd497d" + "commit": "2a11d11" } \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-1718694502.json b/broadcast/PTweETHOracle.s.sol/1/run-1718694502.json new file mode 100644 index 00000000..683e548a --- /dev/null +++ b/broadcast/PTweETHOracle.s.sol/1/run-1718694502.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0xfb897a9487bff9e03c5bf07e7ff4856d07550dd8407fb12ecec81a18dee338b4", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0x0712f6a986870ba31992213ddbf60e3e7faf5cff", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "250000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x2571ef", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b5060405162002121380380620021218339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fe7806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d457806383914540146101dc578063921a12ab146101e75780639a6fc8f5146101f0578063b4a0bdf314610237578063c433c80a14610249578063d965a5d21461025c578063e43581b81461026b578063feaf968c1461027e575b5f80fd5b6100f0610286565b6040516100fd9190611c11565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611c25565b61029e565b005b6100f0610365565b61017e610179366004611c53565b61037d565b60405190151581526020016100fd565b600161010c565b6101c76040518060400160405280601381526020017250542d77654554482f455448204f7261636c6560681b81525081565b6040516100fd9190611c6e565b6100f06103f2565b61010c6301e1338081565b61010c60015481565b6102036101fe366004611cba565b61040a565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610257366004611ce0565b61042b565b61010c670de0b6b3a764000081565b61017e610279366004611c53565b610527565b610203610557565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cd903390600401611c11565b602060405180830381865afa1580156102e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030c9190611d03565b61032957604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103ad908590600401611c11565b602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190611d03565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f80610418610577565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045a903390600401611c11565b602060405180830381865afa158015610475573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190611d03565b6104b657604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104df57604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035a565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103ad908590600401611c11565b5f805f805f80610565610577565b90969095505f94508493508392509050565b5f805f6105936105856103f2565b60025463ffffffff16610603565b915091505f81670de0b6b3a76400006105aa610621565b6105b49190611d36565b6105be9190611d61565b90505f8382116105ce57816105d0565b835b90505f670de0b6b3a7640000826105e56106b1565b6105ef9190611d36565b6105f99190611d61565b9695505050505050565b5f8061060f84846107d2565b94670de0b6b3a7640000945092505050565b5f8063676c9c8042116106415761063c4263676c9c80611d74565b610643565b5f5b9050805f0361065b57670de0b6b3a764000091505090565b5f61068e61066d836301e13380610824565b61068861067960015490565b670de0b6b3a764000090610842565b90610850565b90505f6106a96106a6670de0b6b3a764000084610824565b90565b949350505050565b5f806106bb610365565b6001600160a01b03166370a082316106d1610286565b6040518263ffffffff1660e01b81526004016106ed9190611c11565b602060405180830381865afa158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611d87565b90505f610737610286565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190611d87565b90508082116107c157806107b2670de0b6b3a764000084611d36565b6107bc9190611d61565b6107cb565b670de0b6b3a76400005b9250505090565b5f805f6107de85610958565b915091508082106107fc576107f38585610b7b565b925050506103ec565b80826108088787610b7b565b6108129190611d36565b6107f39190611d61565b505092915050565b5f61083b6106a684670de0b6b3a764000085610c4a565b9392505050565b5f61083b6106a68385611d9e565b5f8282818303610878578015610866575f6107f3565b670de0b6b3a7640000925050506103ec565b670de0b6b3a7640000820361089957670de0b6b3a7640000925050506103ec565b805f036108b257670de0b6b3a7640000925050506103ec565b670de0b6b3a764000081036108cb5784925050506103ec565b670de0b6b3a76400008211156108fc576108f56108f06108ea87610d1d565b86610e41565b610e4f565b925061081c565b5f6109186106a6846a0c097ce7bc90715b34b9f160241b611d61565b90505f6109306108f061092a84610d1d565b88610e41565b905061094d6106a6826a0c097ce7bc90715b34b9f160241b611d61565b979650505050505050565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611db1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611d87565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a849190611d87565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611d03565b8015610b59575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611dfb565b6001600160801b0316145b15610b6657809350610b73565b610b708582610ea3565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611d87565b9050428111610bf757670de0b6b3a76400009150506103ec565b5f610c028585610eb8565b90505f610c0f4284611d74565b90505f610c24610c1f8484610fd7565b61100f565b9050610c38670de0b6b3a764000082611020565b9450505050506103ec565b5092915050565b5f80805f19858709858702925082811083820303915050805f03610c8157838281610c7757610c77611d4d565b049250505061083b565b838110610cb757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610d4b5760405163036d32ef60e41b815260048101849052602401610cae565b5f610dcc670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610df257816105f9565b671bc16d674ec800006706f05b59d3b200005b8015610e3557670de0b6b3a7640000838002049250818310610e2d579283019260019290921c915b60011c610e05565b50919695505050505050565b5f61083b6106a6848461104e565b5f81680a688906bd8affffff811115610e7e5760405163b3b6ba1f60e01b815260048101849052602401610cae565b5f610e95670de0b6b3a7640000604084901b611d61565b90506106a96106a682611100565b5f818311610eb1578161083b565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f81518110610eef57610eef611e35565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90610f32908590600401611e49565b5f60405180830381865afa158015610f4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f739190810190611ead565b90508363ffffffff16815f81518110610f8e57610f8e611e35565b602002602001015182600181518110610fa957610fa9611e35565b6020026020010151610fbb9190611f6c565b610fc59190611f8c565b6001600160d81b031695945050505050565b5f80610fe86201518061016d611d36565b610ff28486611d36565b610ffc9190611d61565b90506106a961100a826117ec565b611800565b5f8082121561101c575f80fd5b5090565b5f80611034670de0b6b3a764000085611d36565b905082818161104557611045611d4d565b04949350505050565b5f80805f19848609848602925082811083820303915050805f0361107f5750670de0b6b3a7640000900490506103ec565b670de0b6b3a764000081106110b157604051635173648d60e01b81526004810186905260248101859052604401610cae565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b8216156111e9576001603f1b82161561112c5768016a09e667f3bcc9090260401c5b6001603e1b821615611147576801306fe0a31b7152df0260401c5b6001603d1b821615611162576801172b83c7d517adce0260401c5b6001603c1b82161561117d5768010b5586cf9890f62a0260401c5b6001603b1b821615611198576801059b0d31585743ae0260401c5b6001603a1b8216156111b357680102c9a3e778060ee70260401c5b600160391b8216156111ce5768010163da9fb33356d80260401c5b600160381b8216156111e957680100b1afa5abcbed610260401c5b60ff60301b8216156112cd57600160371b8216156112105768010058c86da1c09ea20260401c5b600160361b82161561122b576801002c605e2e8cec500260401c5b600160351b82161561124657680100162f3904051fa10260401c5b600160341b821615611261576801000b175effdc76ba0260401c5b600160331b82161561127c57680100058ba01fb9f96d0260401c5b600160321b8216156112975768010002c5cc37da94920260401c5b600160311b8216156112b2576801000162e525ee05470260401c5b600160301b8216156112cd5768010000b17255775c040260401c5b60ff60281b8216156113b1576001602f1b8216156112f4576801000058b91b5bc9ae0260401c5b6001602e1b82161561130f57680100002c5c89d5ec6d0260401c5b6001602d1b82161561132a5768010000162e43f4f8310260401c5b6001602c1b82161561134557680100000b1721bcfc9a0260401c5b6001602b1b8216156113605768010000058b90cf1e6e0260401c5b6001602a1b82161561137b576801000002c5c863b73f0260401c5b600160291b82161561139657680100000162e430e5a20260401c5b600160281b8216156113b1576801000000b1721835510260401c5b60ff60201b82161561149557600160271b8216156113d857680100000058b90c0b490260401c5b600160261b8216156113f35768010000002c5c8601cc0260401c5b600160251b82161561140e576801000000162e42fff00260401c5b600160241b8216156114295768010000000b17217fbb0260401c5b600160231b821615611444576801000000058b90bfce0260401c5b600160221b82161561145f57680100000002c5c85fe30260401c5b600160211b82161561147a5768010000000162e42ff10260401c5b600160201b82161561149557680100000000b17217f80260401c5b63ff0000008216156115795763800000008216156114bc5768010000000058b90bfc0260401c5b63400000008216156114d7576801000000002c5c85fe0260401c5b63200000008216156114f257680100000000162e42ff0260401c5b631000000082161561150d576801000000000b17217f0260401c5b630800000082161561152857680100000000058b90c00260401c5b63040000008216156115435768010000000002c5c8600260401c5b630200000082161561155e576801000000000162e4300260401c5b63010000008216156115795768010000000000b172180260401c5b62ff0000821615611653576280000082161561159e576801000000000058b90c0260401c5b624000008216156115b857680100000000002c5c860260401c5b622000008216156115d25768010000000000162e430260401c5b621000008216156115ec57680100000000000b17210260401c5b620800008216156116065768010000000000058b910260401c5b62040000821615611620576801000000000002c5c80260401c5b6202000082161561163a57680100000000000162e40260401c5b620100008216156116535761b172600160401b010260401c5b61ff0082161561171c57618000821615611675576158b9600160401b010260401c5b61400082161561168d57612c5d600160401b010260401c5b6120008216156116a55761162e600160401b010260401c5b6110008216156116bd57610b17600160401b010260401c5b6108008216156116d55761058c600160401b010260401c5b6104008216156116ed576102c6600160401b010260401c5b61020082161561170557610163600160401b010260401c5b61010082161561171c5760b1600160401b010260401c5b60ff8216156117d557608082161561173b576059600160401b010260401c5b604082161561175157602c600160401b010260401c5b6020821615611767576016600160401b010260401c5b601082161561177d57600b600160401b010260401c5b6008821615611793576006600160401b010260401c5b60048216156117a9576003600160401b010260401c5b60028216156117bf576001600160401b010260401c5b60018216156117d5576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f6001600160ff1b0382111561101c575f80fd5b5f680238fd42c5cf03ffff198212158015611824575068070c1cc73b00c800008213155b6118635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610cae565b5f82121561189957611876825f03611800565b6a0c097ce7bc90715b34b9f160241b8161189257611892611d4d565b0592915050565b5f6806f05b59d3b200000083126118d657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61190c565b6803782dace9d9000000831261190857506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061190c565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261195c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611998576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119d257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a0c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a4557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a7e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611ab7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611af05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611c35575f80fd5b5035919050565b6001600160a01b0381168114611c50575f80fd5b50565b5f60208284031215611c63575f80fd5b813561083b81611c3c565b5f602080835283518060208501525f5b81811015611c9a57858101830151858201604001528201611c7e565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611cca575f80fd5b81356001600160501b038116811461083b575f80fd5b5f60208284031215611cf0575f80fd5b813563ffffffff8116811461083b575f80fd5b5f60208284031215611d13575f80fd5b8151801515811461083b575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ec576103ec611d22565b634e487b7160e01b5f52601260045260245ffd5b5f82611d6f57611d6f611d4d565b500490565b818103818111156103ec576103ec611d22565b5f60208284031215611d97575f80fd5b5051919050565b808201808211156103ec576103ec611d22565b5f805f60608486031215611dc3575f80fd5b8351611dce81611c3c565b6020850151909350611ddf81611c3c565b6040850151909250611df081611c3c565b809150509250925092565b5f60208284031215611e0b575f80fd5b81516001600160801b038116811461083b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e8657835163ffffffff1683529284019291840191600101611e64565b50909695505050505050565b80516001600160d81b0381168114611ea8575f80fd5b919050565b5f6020808385031215611ebe575f80fd5b82516001600160401b0380821115611ed4575f80fd5b818501915085601f830112611ee7575f80fd5b815181811115611ef957611ef9611e21565b8060051b604051601f19603f83011681018181108582111715611f1e57611f1e611e21565b604052918252848201925083810185019188831115611f3b575f80fd5b938501935b82851015611f6057611f5185611e92565b84529385019392850192611f40565b98975050505050505050565b6001600160d81b03828116828216039080821115610c4357610c43611d22565b5f6001600160d81b0383811680611fa557611fa5611d4d565b9216919091049291505056fea264697066735822122002832a4ad5093b98f867311dbd5aa81c983f20f7f17a518b2bcde008c746ce8f64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1aa", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1ccdcc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xfb897a9487bff9e03c5bf07e7ff4856d07550dd8407fb12ecec81a18dee338b4", + "transactionIndex": "0x0", + "blockHash": "0xa9bbf531215dbde079bc8e494e1f82a9a183cd153866ecf596b52ca5828a1f53", + "blockNumber": "0x132702d", + "gasUsed": "0x1ccdcc", + "effectiveGasPrice": "0x9c6bc1b6", + "blobGasPrice": "0x1", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x0712f6a986870ba31992213ddbf60e3e7faf5cff", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718694502, + "chain": 1, + "commit": "2a11d11" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-1718694528.json b/broadcast/PTweETHOracle.s.sol/1/run-1718694528.json new file mode 100644 index 00000000..99d36a01 --- /dev/null +++ b/broadcast/PTweETHOracle.s.sol/1/run-1718694528.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0x966b6d85802a3db44dc46e44555c37bcd8ae366edf527fa39870bba052cdb9cf", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0x84c6c17077a6c1e7553210c64376ecd56249f3d8", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "0", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x250c84", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b5060405162002121380380620021218339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fe7806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d457806383914540146101dc578063921a12ab146101e75780639a6fc8f5146101f0578063b4a0bdf314610237578063c433c80a14610249578063d965a5d21461025c578063e43581b81461026b578063feaf968c1461027e575b5f80fd5b6100f0610286565b6040516100fd9190611c11565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611c25565b61029e565b005b6100f0610365565b61017e610179366004611c53565b61037d565b60405190151581526020016100fd565b600161010c565b6101c76040518060400160405280601381526020017250542d77654554482f455448204f7261636c6560681b81525081565b6040516100fd9190611c6e565b6100f06103f2565b61010c6301e1338081565b61010c60015481565b6102036101fe366004611cba565b61040a565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610257366004611ce0565b61042b565b61010c670de0b6b3a764000081565b61017e610279366004611c53565b610527565b610203610557565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cd903390600401611c11565b602060405180830381865afa1580156102e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030c9190611d03565b61032957604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103ad908590600401611c11565b602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190611d03565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f80610418610577565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045a903390600401611c11565b602060405180830381865afa158015610475573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190611d03565b6104b657604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104df57604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035a565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103ad908590600401611c11565b5f805f805f80610565610577565b90969095505f94508493508392509050565b5f805f6105936105856103f2565b60025463ffffffff16610603565b915091505f81670de0b6b3a76400006105aa610621565b6105b49190611d36565b6105be9190611d61565b90505f8382116105ce57816105d0565b835b90505f670de0b6b3a7640000826105e56106b1565b6105ef9190611d36565b6105f99190611d61565b9695505050505050565b5f8061060f84846107d2565b94670de0b6b3a7640000945092505050565b5f8063676c9c8042116106415761063c4263676c9c80611d74565b610643565b5f5b9050805f0361065b57670de0b6b3a764000091505090565b5f61068e61066d836301e13380610824565b61068861067960015490565b670de0b6b3a764000090610842565b90610850565b90505f6106a96106a6670de0b6b3a764000084610824565b90565b949350505050565b5f806106bb610365565b6001600160a01b03166370a082316106d1610286565b6040518263ffffffff1660e01b81526004016106ed9190611c11565b602060405180830381865afa158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611d87565b90505f610737610286565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190611d87565b90508082116107c157806107b2670de0b6b3a764000084611d36565b6107bc9190611d61565b6107cb565b670de0b6b3a76400005b9250505090565b5f805f6107de85610958565b915091508082106107fc576107f38585610b7b565b925050506103ec565b80826108088787610b7b565b6108129190611d36565b6107f39190611d61565b505092915050565b5f61083b6106a684670de0b6b3a764000085610c4a565b9392505050565b5f61083b6106a68385611d9e565b5f8282818303610878578015610866575f6107f3565b670de0b6b3a7640000925050506103ec565b670de0b6b3a7640000820361089957670de0b6b3a7640000925050506103ec565b805f036108b257670de0b6b3a7640000925050506103ec565b670de0b6b3a764000081036108cb5784925050506103ec565b670de0b6b3a76400008211156108fc576108f56108f06108ea87610d1d565b86610e41565b610e4f565b925061081c565b5f6109186106a6846a0c097ce7bc90715b34b9f160241b611d61565b90505f6109306108f061092a84610d1d565b88610e41565b905061094d6106a6826a0c097ce7bc90715b34b9f160241b611d61565b979650505050505050565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611db1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611d87565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a849190611d87565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611d03565b8015610b59575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611dfb565b6001600160801b0316145b15610b6657809350610b73565b610b708582610ea3565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611d87565b9050428111610bf757670de0b6b3a76400009150506103ec565b5f610c028585610eb8565b90505f610c0f4284611d74565b90505f610c24610c1f8484610fd7565b61100f565b9050610c38670de0b6b3a764000082611020565b9450505050506103ec565b5092915050565b5f80805f19858709858702925082811083820303915050805f03610c8157838281610c7757610c77611d4d565b049250505061083b565b838110610cb757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610d4b5760405163036d32ef60e41b815260048101849052602401610cae565b5f610dcc670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610df257816105f9565b671bc16d674ec800006706f05b59d3b200005b8015610e3557670de0b6b3a7640000838002049250818310610e2d579283019260019290921c915b60011c610e05565b50919695505050505050565b5f61083b6106a6848461104e565b5f81680a688906bd8affffff811115610e7e5760405163b3b6ba1f60e01b815260048101849052602401610cae565b5f610e95670de0b6b3a7640000604084901b611d61565b90506106a96106a682611100565b5f818311610eb1578161083b565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f81518110610eef57610eef611e35565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90610f32908590600401611e49565b5f60405180830381865afa158015610f4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f739190810190611ead565b90508363ffffffff16815f81518110610f8e57610f8e611e35565b602002602001015182600181518110610fa957610fa9611e35565b6020026020010151610fbb9190611f6c565b610fc59190611f8c565b6001600160d81b031695945050505050565b5f80610fe86201518061016d611d36565b610ff28486611d36565b610ffc9190611d61565b90506106a961100a826117ec565b611800565b5f8082121561101c575f80fd5b5090565b5f80611034670de0b6b3a764000085611d36565b905082818161104557611045611d4d565b04949350505050565b5f80805f19848609848602925082811083820303915050805f0361107f5750670de0b6b3a7640000900490506103ec565b670de0b6b3a764000081106110b157604051635173648d60e01b81526004810186905260248101859052604401610cae565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b8216156111e9576001603f1b82161561112c5768016a09e667f3bcc9090260401c5b6001603e1b821615611147576801306fe0a31b7152df0260401c5b6001603d1b821615611162576801172b83c7d517adce0260401c5b6001603c1b82161561117d5768010b5586cf9890f62a0260401c5b6001603b1b821615611198576801059b0d31585743ae0260401c5b6001603a1b8216156111b357680102c9a3e778060ee70260401c5b600160391b8216156111ce5768010163da9fb33356d80260401c5b600160381b8216156111e957680100b1afa5abcbed610260401c5b60ff60301b8216156112cd57600160371b8216156112105768010058c86da1c09ea20260401c5b600160361b82161561122b576801002c605e2e8cec500260401c5b600160351b82161561124657680100162f3904051fa10260401c5b600160341b821615611261576801000b175effdc76ba0260401c5b600160331b82161561127c57680100058ba01fb9f96d0260401c5b600160321b8216156112975768010002c5cc37da94920260401c5b600160311b8216156112b2576801000162e525ee05470260401c5b600160301b8216156112cd5768010000b17255775c040260401c5b60ff60281b8216156113b1576001602f1b8216156112f4576801000058b91b5bc9ae0260401c5b6001602e1b82161561130f57680100002c5c89d5ec6d0260401c5b6001602d1b82161561132a5768010000162e43f4f8310260401c5b6001602c1b82161561134557680100000b1721bcfc9a0260401c5b6001602b1b8216156113605768010000058b90cf1e6e0260401c5b6001602a1b82161561137b576801000002c5c863b73f0260401c5b600160291b82161561139657680100000162e430e5a20260401c5b600160281b8216156113b1576801000000b1721835510260401c5b60ff60201b82161561149557600160271b8216156113d857680100000058b90c0b490260401c5b600160261b8216156113f35768010000002c5c8601cc0260401c5b600160251b82161561140e576801000000162e42fff00260401c5b600160241b8216156114295768010000000b17217fbb0260401c5b600160231b821615611444576801000000058b90bfce0260401c5b600160221b82161561145f57680100000002c5c85fe30260401c5b600160211b82161561147a5768010000000162e42ff10260401c5b600160201b82161561149557680100000000b17217f80260401c5b63ff0000008216156115795763800000008216156114bc5768010000000058b90bfc0260401c5b63400000008216156114d7576801000000002c5c85fe0260401c5b63200000008216156114f257680100000000162e42ff0260401c5b631000000082161561150d576801000000000b17217f0260401c5b630800000082161561152857680100000000058b90c00260401c5b63040000008216156115435768010000000002c5c8600260401c5b630200000082161561155e576801000000000162e4300260401c5b63010000008216156115795768010000000000b172180260401c5b62ff0000821615611653576280000082161561159e576801000000000058b90c0260401c5b624000008216156115b857680100000000002c5c860260401c5b622000008216156115d25768010000000000162e430260401c5b621000008216156115ec57680100000000000b17210260401c5b620800008216156116065768010000000000058b910260401c5b62040000821615611620576801000000000002c5c80260401c5b6202000082161561163a57680100000000000162e40260401c5b620100008216156116535761b172600160401b010260401c5b61ff0082161561171c57618000821615611675576158b9600160401b010260401c5b61400082161561168d57612c5d600160401b010260401c5b6120008216156116a55761162e600160401b010260401c5b6110008216156116bd57610b17600160401b010260401c5b6108008216156116d55761058c600160401b010260401c5b6104008216156116ed576102c6600160401b010260401c5b61020082161561170557610163600160401b010260401c5b61010082161561171c5760b1600160401b010260401c5b60ff8216156117d557608082161561173b576059600160401b010260401c5b604082161561175157602c600160401b010260401c5b6020821615611767576016600160401b010260401c5b601082161561177d57600b600160401b010260401c5b6008821615611793576006600160401b010260401c5b60048216156117a9576003600160401b010260401c5b60028216156117bf576001600160401b010260401c5b60018216156117d5576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f6001600160ff1b0382111561101c575f80fd5b5f680238fd42c5cf03ffff198212158015611824575068070c1cc73b00c800008213155b6118635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610cae565b5f82121561189957611876825f03611800565b6a0c097ce7bc90715b34b9f160241b8161189257611892611d4d565b0592915050565b5f6806f05b59d3b200000083126118d657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61190c565b6803782dace9d9000000831261190857506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061190c565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261195c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611998576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119d257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a0c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a4557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a7e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611ab7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611af05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611c35575f80fd5b5035919050565b6001600160a01b0381168114611c50575f80fd5b50565b5f60208284031215611c63575f80fd5b813561083b81611c3c565b5f602080835283518060208501525f5b81811015611c9a57858101830151858201604001528201611c7e565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611cca575f80fd5b81356001600160501b038116811461083b575f80fd5b5f60208284031215611cf0575f80fd5b813563ffffffff8116811461083b575f80fd5b5f60208284031215611d13575f80fd5b8151801515811461083b575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ec576103ec611d22565b634e487b7160e01b5f52601260045260245ffd5b5f82611d6f57611d6f611d4d565b500490565b818103818111156103ec576103ec611d22565b5f60208284031215611d97575f80fd5b5051919050565b808201808211156103ec576103ec611d22565b5f805f60608486031215611dc3575f80fd5b8351611dce81611c3c565b6020850151909350611ddf81611c3c565b6040850151909250611df081611c3c565b809150509250925092565b5f60208284031215611e0b575f80fd5b81516001600160801b038116811461083b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e8657835163ffffffff1683529284019291840191600101611e64565b50909695505050505050565b80516001600160d81b0381168114611ea8575f80fd5b919050565b5f6020808385031215611ebe575f80fd5b82516001600160401b0380821115611ed4575f80fd5b818501915085601f830112611ee7575f80fd5b815181811115611ef957611ef9611e21565b8060051b604051601f19603f83011681018181108582111715611f1e57611f1e611e21565b604052918252848201925083810185019188831115611f3b575f80fd5b938501935b82851015611f6057611f5185611e92565b84529385019392850192611f40565b98975050505050505050565b6001600160d81b03828116828216039080821115610c4357610c43611d22565b5f6001600160d81b0383811680611fa557611fa5611d4d565b9216919091049291505056fea264697066735822122002832a4ad5093b98f867311dbd5aa81c983f20f7f17a518b2bcde008c746ce8f64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1ab", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1c7fc8", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x966b6d85802a3db44dc46e44555c37bcd8ae366edf527fa39870bba052cdb9cf", + "transactionIndex": "0x0", + "blockHash": "0x5d918301fbed1438f71baf2c98b9cf81ff9d38b8dbd2b714a2ff35692fb30a04", + "blockNumber": "0x132702e", + "gasUsed": "0x1c7fc8", + "effectiveGasPrice": "0x8b5434c3", + "blobGasPrice": "0x1", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x84c6c17077a6c1e7553210c64376ecd56249f3d8", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718694528, + "chain": 1, + "commit": "2a11d11" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-1718694611.json b/broadcast/PTweETHOracle.s.sol/1/run-1718694611.json new file mode 100644 index 00000000..f994a5f4 --- /dev/null +++ b/broadcast/PTweETHOracle.s.sol/1/run-1718694611.json @@ -0,0 +1,52 @@ +{ + "transactions": [ + { + "hash": "0xa2470400db02b7d499026864de9f385022cdd876376fe77fb2c6dca89fc2fffc", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0x2342c1a029c753d31d50e2f150aa89e29013ef34", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "200000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x2571ef", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b5060405162002121380380620021218339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fe7806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d457806383914540146101dc578063921a12ab146101e75780639a6fc8f5146101f0578063b4a0bdf314610237578063c433c80a14610249578063d965a5d21461025c578063e43581b81461026b578063feaf968c1461027e575b5f80fd5b6100f0610286565b6040516100fd9190611c11565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611c25565b61029e565b005b6100f0610365565b61017e610179366004611c53565b61037d565b60405190151581526020016100fd565b600161010c565b6101c76040518060400160405280601381526020017250542d77654554482f455448204f7261636c6560681b81525081565b6040516100fd9190611c6e565b6100f06103f2565b61010c6301e1338081565b61010c60015481565b6102036101fe366004611cba565b61040a565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610257366004611ce0565b61042b565b61010c670de0b6b3a764000081565b61017e610279366004611c53565b610527565b610203610557565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cd903390600401611c11565b602060405180830381865afa1580156102e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030c9190611d03565b61032957604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103ad908590600401611c11565b602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190611d03565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f80610418610577565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045a903390600401611c11565b602060405180830381865afa158015610475573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190611d03565b6104b657604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104df57604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035a565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103ad908590600401611c11565b5f805f805f80610565610577565b90969095505f94508493508392509050565b5f805f6105936105856103f2565b60025463ffffffff16610603565b915091505f81670de0b6b3a76400006105aa610621565b6105b49190611d36565b6105be9190611d61565b90505f8382116105ce57816105d0565b835b90505f670de0b6b3a7640000826105e56106b1565b6105ef9190611d36565b6105f99190611d61565b9695505050505050565b5f8061060f84846107d2565b94670de0b6b3a7640000945092505050565b5f8063676c9c8042116106415761063c4263676c9c80611d74565b610643565b5f5b9050805f0361065b57670de0b6b3a764000091505090565b5f61068e61066d836301e13380610824565b61068861067960015490565b670de0b6b3a764000090610842565b90610850565b90505f6106a96106a6670de0b6b3a764000084610824565b90565b949350505050565b5f806106bb610365565b6001600160a01b03166370a082316106d1610286565b6040518263ffffffff1660e01b81526004016106ed9190611c11565b602060405180830381865afa158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611d87565b90505f610737610286565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190611d87565b90508082116107c157806107b2670de0b6b3a764000084611d36565b6107bc9190611d61565b6107cb565b670de0b6b3a76400005b9250505090565b5f805f6107de85610958565b915091508082106107fc576107f38585610b7b565b925050506103ec565b80826108088787610b7b565b6108129190611d36565b6107f39190611d61565b505092915050565b5f61083b6106a684670de0b6b3a764000085610c4a565b9392505050565b5f61083b6106a68385611d9e565b5f8282818303610878578015610866575f6107f3565b670de0b6b3a7640000925050506103ec565b670de0b6b3a7640000820361089957670de0b6b3a7640000925050506103ec565b805f036108b257670de0b6b3a7640000925050506103ec565b670de0b6b3a764000081036108cb5784925050506103ec565b670de0b6b3a76400008211156108fc576108f56108f06108ea87610d1d565b86610e41565b610e4f565b925061081c565b5f6109186106a6846a0c097ce7bc90715b34b9f160241b611d61565b90505f6109306108f061092a84610d1d565b88610e41565b905061094d6106a6826a0c097ce7bc90715b34b9f160241b611d61565b979650505050505050565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611db1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611d87565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a849190611d87565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611d03565b8015610b59575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611dfb565b6001600160801b0316145b15610b6657809350610b73565b610b708582610ea3565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611d87565b9050428111610bf757670de0b6b3a76400009150506103ec565b5f610c028585610eb8565b90505f610c0f4284611d74565b90505f610c24610c1f8484610fd7565b61100f565b9050610c38670de0b6b3a764000082611020565b9450505050506103ec565b5092915050565b5f80805f19858709858702925082811083820303915050805f03610c8157838281610c7757610c77611d4d565b049250505061083b565b838110610cb757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610d4b5760405163036d32ef60e41b815260048101849052602401610cae565b5f610dcc670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610df257816105f9565b671bc16d674ec800006706f05b59d3b200005b8015610e3557670de0b6b3a7640000838002049250818310610e2d579283019260019290921c915b60011c610e05565b50919695505050505050565b5f61083b6106a6848461104e565b5f81680a688906bd8affffff811115610e7e5760405163b3b6ba1f60e01b815260048101849052602401610cae565b5f610e95670de0b6b3a7640000604084901b611d61565b90506106a96106a682611100565b5f818311610eb1578161083b565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f81518110610eef57610eef611e35565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90610f32908590600401611e49565b5f60405180830381865afa158015610f4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f739190810190611ead565b90508363ffffffff16815f81518110610f8e57610f8e611e35565b602002602001015182600181518110610fa957610fa9611e35565b6020026020010151610fbb9190611f6c565b610fc59190611f8c565b6001600160d81b031695945050505050565b5f80610fe86201518061016d611d36565b610ff28486611d36565b610ffc9190611d61565b90506106a961100a826117ec565b611800565b5f8082121561101c575f80fd5b5090565b5f80611034670de0b6b3a764000085611d36565b905082818161104557611045611d4d565b04949350505050565b5f80805f19848609848602925082811083820303915050805f0361107f5750670de0b6b3a7640000900490506103ec565b670de0b6b3a764000081106110b157604051635173648d60e01b81526004810186905260248101859052604401610cae565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b8216156111e9576001603f1b82161561112c5768016a09e667f3bcc9090260401c5b6001603e1b821615611147576801306fe0a31b7152df0260401c5b6001603d1b821615611162576801172b83c7d517adce0260401c5b6001603c1b82161561117d5768010b5586cf9890f62a0260401c5b6001603b1b821615611198576801059b0d31585743ae0260401c5b6001603a1b8216156111b357680102c9a3e778060ee70260401c5b600160391b8216156111ce5768010163da9fb33356d80260401c5b600160381b8216156111e957680100b1afa5abcbed610260401c5b60ff60301b8216156112cd57600160371b8216156112105768010058c86da1c09ea20260401c5b600160361b82161561122b576801002c605e2e8cec500260401c5b600160351b82161561124657680100162f3904051fa10260401c5b600160341b821615611261576801000b175effdc76ba0260401c5b600160331b82161561127c57680100058ba01fb9f96d0260401c5b600160321b8216156112975768010002c5cc37da94920260401c5b600160311b8216156112b2576801000162e525ee05470260401c5b600160301b8216156112cd5768010000b17255775c040260401c5b60ff60281b8216156113b1576001602f1b8216156112f4576801000058b91b5bc9ae0260401c5b6001602e1b82161561130f57680100002c5c89d5ec6d0260401c5b6001602d1b82161561132a5768010000162e43f4f8310260401c5b6001602c1b82161561134557680100000b1721bcfc9a0260401c5b6001602b1b8216156113605768010000058b90cf1e6e0260401c5b6001602a1b82161561137b576801000002c5c863b73f0260401c5b600160291b82161561139657680100000162e430e5a20260401c5b600160281b8216156113b1576801000000b1721835510260401c5b60ff60201b82161561149557600160271b8216156113d857680100000058b90c0b490260401c5b600160261b8216156113f35768010000002c5c8601cc0260401c5b600160251b82161561140e576801000000162e42fff00260401c5b600160241b8216156114295768010000000b17217fbb0260401c5b600160231b821615611444576801000000058b90bfce0260401c5b600160221b82161561145f57680100000002c5c85fe30260401c5b600160211b82161561147a5768010000000162e42ff10260401c5b600160201b82161561149557680100000000b17217f80260401c5b63ff0000008216156115795763800000008216156114bc5768010000000058b90bfc0260401c5b63400000008216156114d7576801000000002c5c85fe0260401c5b63200000008216156114f257680100000000162e42ff0260401c5b631000000082161561150d576801000000000b17217f0260401c5b630800000082161561152857680100000000058b90c00260401c5b63040000008216156115435768010000000002c5c8600260401c5b630200000082161561155e576801000000000162e4300260401c5b63010000008216156115795768010000000000b172180260401c5b62ff0000821615611653576280000082161561159e576801000000000058b90c0260401c5b624000008216156115b857680100000000002c5c860260401c5b622000008216156115d25768010000000000162e430260401c5b621000008216156115ec57680100000000000b17210260401c5b620800008216156116065768010000000000058b910260401c5b62040000821615611620576801000000000002c5c80260401c5b6202000082161561163a57680100000000000162e40260401c5b620100008216156116535761b172600160401b010260401c5b61ff0082161561171c57618000821615611675576158b9600160401b010260401c5b61400082161561168d57612c5d600160401b010260401c5b6120008216156116a55761162e600160401b010260401c5b6110008216156116bd57610b17600160401b010260401c5b6108008216156116d55761058c600160401b010260401c5b6104008216156116ed576102c6600160401b010260401c5b61020082161561170557610163600160401b010260401c5b61010082161561171c5760b1600160401b010260401c5b60ff8216156117d557608082161561173b576059600160401b010260401c5b604082161561175157602c600160401b010260401c5b6020821615611767576016600160401b010260401c5b601082161561177d57600b600160401b010260401c5b6008821615611793576006600160401b010260401c5b60048216156117a9576003600160401b010260401c5b60028216156117bf576001600160401b010260401c5b60018216156117d5576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f6001600160ff1b0382111561101c575f80fd5b5f680238fd42c5cf03ffff198212158015611824575068070c1cc73b00c800008213155b6118635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610cae565b5f82121561189957611876825f03611800565b6a0c097ce7bc90715b34b9f160241b8161189257611892611d4d565b0592915050565b5f6806f05b59d3b200000083126118d657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61190c565b6803782dace9d9000000831261190857506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061190c565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261195c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611998576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119d257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a0c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a4557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a7e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611ab7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611af05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611c35575f80fd5b5035919050565b6001600160a01b0381168114611c50575f80fd5b50565b5f60208284031215611c63575f80fd5b813561083b81611c3c565b5f602080835283518060208501525f5b81811015611c9a57858101830151858201604001528201611c7e565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611cca575f80fd5b81356001600160501b038116811461083b575f80fd5b5f60208284031215611cf0575f80fd5b813563ffffffff8116811461083b575f80fd5b5f60208284031215611d13575f80fd5b8151801515811461083b575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ec576103ec611d22565b634e487b7160e01b5f52601260045260245ffd5b5f82611d6f57611d6f611d4d565b500490565b818103818111156103ec576103ec611d22565b5f60208284031215611d97575f80fd5b5051919050565b808201808211156103ec576103ec611d22565b5f805f60608486031215611dc3575f80fd5b8351611dce81611c3c565b6020850151909350611ddf81611c3c565b6040850151909250611df081611c3c565b809150509250925092565b5f60208284031215611e0b575f80fd5b81516001600160801b038116811461083b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e8657835163ffffffff1683529284019291840191600101611e64565b50909695505050505050565b80516001600160d81b0381168114611ea8575f80fd5b919050565b5f6020808385031215611ebe575f80fd5b82516001600160401b0380821115611ed4575f80fd5b818501915085601f830112611ee7575f80fd5b815181811115611ef957611ef9611e21565b8060051b604051601f19603f83011681018181108582111715611f1e57611f1e611e21565b604052918252848201925083810185019188831115611f3b575f80fd5b938501935b82851015611f6057611f5185611e92565b84529385019392850192611f40565b98975050505050505050565b6001600160d81b03828116828216039080821115610c4357610c43611d22565b5f6001600160d81b0383811680611fa557611fa5611d4d565b9216919091049291505056fea264697066735822122002832a4ad5093b98f867311dbd5aa81c983f20f7f17a518b2bcde008c746ce8f64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1ac", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1ccdcc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa2470400db02b7d499026864de9f385022cdd876376fe77fb2c6dca89fc2fffc", + "transactionIndex": "0x0", + "blockHash": "0x4b1dc551c2d2de914efbe003c6df0bad33a383dad76e7fd27296f4a79978ba74", + "blockNumber": "0x132702f", + "gasUsed": "0x1ccdcc", + "effectiveGasPrice": "0x7c14d50b", + "blobGasPrice": "0x1", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x2342c1a029c753d31d50e2f150aa89e29013ef34", + "root": "0x0000000000000000000000000000000000000000000000000000000000000000" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718694611, + "chain": 1, + "commit": "2a11d11" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-1718694851.json b/broadcast/PTweETHOracle.s.sol/1/run-1718694851.json new file mode 100644 index 00000000..f4488022 --- /dev/null +++ b/broadcast/PTweETHOracle.s.sol/1/run-1718694851.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0x217a7368b267a95c707bcfb1d4b0e1c27a59cb38c49105398916200993532a00", + "transactionType": "CREATE", + "contractName": "MorphoFeedPTweETHDec24", + "contractAddress": "0x31da7f6cfc470abcc5388b6ab5eb29df39ce0e26", + "function": null, + "arguments": [ + "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", + "250000000000000000", + "1800" + ], + "transaction": { + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "gas": "0x2571ef", + "value": "0x0", + "input": "0x608060405234801562000010575f80fd5b5060405162002121380380620021218339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fe7806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d457806383914540146101dc578063921a12ab146101e75780639a6fc8f5146101f0578063b4a0bdf314610237578063c433c80a14610249578063d965a5d21461025c578063e43581b81461026b578063feaf968c1461027e575b5f80fd5b6100f0610286565b6040516100fd9190611c11565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611c25565b61029e565b005b6100f0610365565b61017e610179366004611c53565b61037d565b60405190151581526020016100fd565b600161010c565b6101c76040518060400160405280601381526020017250542d77654554482f455448204f7261636c6560681b81525081565b6040516100fd9190611c6e565b6100f06103f2565b61010c6301e1338081565b61010c60015481565b6102036101fe366004611cba565b61040a565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610257366004611ce0565b61042b565b61010c670de0b6b3a764000081565b61017e610279366004611c53565b610527565b610203610557565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cd903390600401611c11565b602060405180830381865afa1580156102e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030c9190611d03565b61032957604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103ad908590600401611c11565b602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190611d03565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f80610418610577565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045a903390600401611c11565b602060405180830381865afa158015610475573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190611d03565b6104b657604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104df57604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035a565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103ad908590600401611c11565b5f805f805f80610565610577565b90969095505f94508493508392509050565b5f805f6105936105856103f2565b60025463ffffffff16610603565b915091505f81670de0b6b3a76400006105aa610621565b6105b49190611d36565b6105be9190611d61565b90505f8382116105ce57816105d0565b835b90505f670de0b6b3a7640000826105e56106b1565b6105ef9190611d36565b6105f99190611d61565b9695505050505050565b5f8061060f84846107d2565b94670de0b6b3a7640000945092505050565b5f8063676c9c8042116106415761063c4263676c9c80611d74565b610643565b5f5b9050805f0361065b57670de0b6b3a764000091505090565b5f61068e61066d836301e13380610824565b61068861067960015490565b670de0b6b3a764000090610842565b90610850565b90505f6106a96106a6670de0b6b3a764000084610824565b90565b949350505050565b5f806106bb610365565b6001600160a01b03166370a082316106d1610286565b6040518263ffffffff1660e01b81526004016106ed9190611c11565b602060405180830381865afa158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611d87565b90505f610737610286565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190611d87565b90508082116107c157806107b2670de0b6b3a764000084611d36565b6107bc9190611d61565b6107cb565b670de0b6b3a76400005b9250505090565b5f805f6107de85610958565b915091508082106107fc576107f38585610b7b565b925050506103ec565b80826108088787610b7b565b6108129190611d36565b6107f39190611d61565b505092915050565b5f61083b6106a684670de0b6b3a764000085610c4a565b9392505050565b5f61083b6106a68385611d9e565b5f8282818303610878578015610866575f6107f3565b670de0b6b3a7640000925050506103ec565b670de0b6b3a7640000820361089957670de0b6b3a7640000925050506103ec565b805f036108b257670de0b6b3a7640000925050506103ec565b670de0b6b3a764000081036108cb5784925050506103ec565b670de0b6b3a76400008211156108fc576108f56108f06108ea87610d1d565b86610e41565b610e4f565b925061081c565b5f6109186106a6846a0c097ce7bc90715b34b9f160241b611d61565b90505f6109306108f061092a84610d1d565b88610e41565b905061094d6106a6826a0c097ce7bc90715b34b9f160241b611d61565b979650505050505050565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611db1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611d87565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a849190611d87565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611d03565b8015610b59575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611dfb565b6001600160801b0316145b15610b6657809350610b73565b610b708582610ea3565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611d87565b9050428111610bf757670de0b6b3a76400009150506103ec565b5f610c028585610eb8565b90505f610c0f4284611d74565b90505f610c24610c1f8484610fd7565b61100f565b9050610c38670de0b6b3a764000082611020565b9450505050506103ec565b5092915050565b5f80805f19858709858702925082811083820303915050805f03610c8157838281610c7757610c77611d4d565b049250505061083b565b838110610cb757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610d4b5760405163036d32ef60e41b815260048101849052602401610cae565b5f610dcc670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610df257816105f9565b671bc16d674ec800006706f05b59d3b200005b8015610e3557670de0b6b3a7640000838002049250818310610e2d579283019260019290921c915b60011c610e05565b50919695505050505050565b5f61083b6106a6848461104e565b5f81680a688906bd8affffff811115610e7e5760405163b3b6ba1f60e01b815260048101849052602401610cae565b5f610e95670de0b6b3a7640000604084901b611d61565b90506106a96106a682611100565b5f818311610eb1578161083b565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f81518110610eef57610eef611e35565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90610f32908590600401611e49565b5f60405180830381865afa158015610f4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f739190810190611ead565b90508363ffffffff16815f81518110610f8e57610f8e611e35565b602002602001015182600181518110610fa957610fa9611e35565b6020026020010151610fbb9190611f6c565b610fc59190611f8c565b6001600160d81b031695945050505050565b5f80610fe86201518061016d611d36565b610ff28486611d36565b610ffc9190611d61565b90506106a961100a826117ec565b611800565b5f8082121561101c575f80fd5b5090565b5f80611034670de0b6b3a764000085611d36565b905082818161104557611045611d4d565b04949350505050565b5f80805f19848609848602925082811083820303915050805f0361107f5750670de0b6b3a7640000900490506103ec565b670de0b6b3a764000081106110b157604051635173648d60e01b81526004810186905260248101859052604401610cae565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b8216156111e9576001603f1b82161561112c5768016a09e667f3bcc9090260401c5b6001603e1b821615611147576801306fe0a31b7152df0260401c5b6001603d1b821615611162576801172b83c7d517adce0260401c5b6001603c1b82161561117d5768010b5586cf9890f62a0260401c5b6001603b1b821615611198576801059b0d31585743ae0260401c5b6001603a1b8216156111b357680102c9a3e778060ee70260401c5b600160391b8216156111ce5768010163da9fb33356d80260401c5b600160381b8216156111e957680100b1afa5abcbed610260401c5b60ff60301b8216156112cd57600160371b8216156112105768010058c86da1c09ea20260401c5b600160361b82161561122b576801002c605e2e8cec500260401c5b600160351b82161561124657680100162f3904051fa10260401c5b600160341b821615611261576801000b175effdc76ba0260401c5b600160331b82161561127c57680100058ba01fb9f96d0260401c5b600160321b8216156112975768010002c5cc37da94920260401c5b600160311b8216156112b2576801000162e525ee05470260401c5b600160301b8216156112cd5768010000b17255775c040260401c5b60ff60281b8216156113b1576001602f1b8216156112f4576801000058b91b5bc9ae0260401c5b6001602e1b82161561130f57680100002c5c89d5ec6d0260401c5b6001602d1b82161561132a5768010000162e43f4f8310260401c5b6001602c1b82161561134557680100000b1721bcfc9a0260401c5b6001602b1b8216156113605768010000058b90cf1e6e0260401c5b6001602a1b82161561137b576801000002c5c863b73f0260401c5b600160291b82161561139657680100000162e430e5a20260401c5b600160281b8216156113b1576801000000b1721835510260401c5b60ff60201b82161561149557600160271b8216156113d857680100000058b90c0b490260401c5b600160261b8216156113f35768010000002c5c8601cc0260401c5b600160251b82161561140e576801000000162e42fff00260401c5b600160241b8216156114295768010000000b17217fbb0260401c5b600160231b821615611444576801000000058b90bfce0260401c5b600160221b82161561145f57680100000002c5c85fe30260401c5b600160211b82161561147a5768010000000162e42ff10260401c5b600160201b82161561149557680100000000b17217f80260401c5b63ff0000008216156115795763800000008216156114bc5768010000000058b90bfc0260401c5b63400000008216156114d7576801000000002c5c85fe0260401c5b63200000008216156114f257680100000000162e42ff0260401c5b631000000082161561150d576801000000000b17217f0260401c5b630800000082161561152857680100000000058b90c00260401c5b63040000008216156115435768010000000002c5c8600260401c5b630200000082161561155e576801000000000162e4300260401c5b63010000008216156115795768010000000000b172180260401c5b62ff0000821615611653576280000082161561159e576801000000000058b90c0260401c5b624000008216156115b857680100000000002c5c860260401c5b622000008216156115d25768010000000000162e430260401c5b621000008216156115ec57680100000000000b17210260401c5b620800008216156116065768010000000000058b910260401c5b62040000821615611620576801000000000002c5c80260401c5b6202000082161561163a57680100000000000162e40260401c5b620100008216156116535761b172600160401b010260401c5b61ff0082161561171c57618000821615611675576158b9600160401b010260401c5b61400082161561168d57612c5d600160401b010260401c5b6120008216156116a55761162e600160401b010260401c5b6110008216156116bd57610b17600160401b010260401c5b6108008216156116d55761058c600160401b010260401c5b6104008216156116ed576102c6600160401b010260401c5b61020082161561170557610163600160401b010260401c5b61010082161561171c5760b1600160401b010260401c5b60ff8216156117d557608082161561173b576059600160401b010260401c5b604082161561175157602c600160401b010260401c5b6020821615611767576016600160401b010260401c5b601082161561177d57600b600160401b010260401c5b6008821615611793576006600160401b010260401c5b60048216156117a9576003600160401b010260401c5b60028216156117bf576001600160401b010260401c5b60018216156117d5576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f6001600160ff1b0382111561101c575f80fd5b5f680238fd42c5cf03ffff198212158015611824575068070c1cc73b00c800008213155b6118635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610cae565b5f82121561189957611876825f03611800565b6a0c097ce7bc90715b34b9f160241b8161189257611892611d4d565b0592915050565b5f6806f05b59d3b200000083126118d657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61190c565b6803782dace9d9000000831261190857506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061190c565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261195c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611998576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119d257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a0c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a4557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a7e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611ab7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611af05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611c35575f80fd5b5035919050565b6001600160a01b0381168114611c50575f80fd5b50565b5f60208284031215611c63575f80fd5b813561083b81611c3c565b5f602080835283518060208501525f5b81811015611c9a57858101830151858201604001528201611c7e565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611cca575f80fd5b81356001600160501b038116811461083b575f80fd5b5f60208284031215611cf0575f80fd5b813563ffffffff8116811461083b575f80fd5b5f60208284031215611d13575f80fd5b8151801515811461083b575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ec576103ec611d22565b634e487b7160e01b5f52601260045260245ffd5b5f82611d6f57611d6f611d4d565b500490565b818103818111156103ec576103ec611d22565b5f60208284031215611d97575f80fd5b5051919050565b808201808211156103ec576103ec611d22565b5f805f60608486031215611dc3575f80fd5b8351611dce81611c3c565b6020850151909350611ddf81611c3c565b6040850151909250611df081611c3c565b809150509250925092565b5f60208284031215611e0b575f80fd5b81516001600160801b038116811461083b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e8657835163ffffffff1683529284019291840191600101611e64565b50909695505050505050565b80516001600160d81b0381168114611ea8575f80fd5b919050565b5f6020808385031215611ebe575f80fd5b82516001600160401b0380821115611ed4575f80fd5b818501915085601f830112611ee7575f80fd5b815181811115611ef957611ef9611e21565b8060051b604051601f19603f83011681018181108582111715611f1e57611f1e611e21565b604052918252848201925083810185019188831115611f3b575f80fd5b938501935b82851015611f6057611f5185611e92565b84529385019392850192611f40565b98975050505050505050565b6001600160d81b03828116828216039080821115610c4357610c43611d22565b5f6001600160d81b0383811680611fa557611fa5611d4d565b9216919091049291505056fea264697066735822122002832a4ad5093b98f867311dbd5aa81c983f20f7f17a518b2bcde008c746ce8f64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1b7", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xaf28c6", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x217a7368b267a95c707bcfb1d4b0e1c27a59cb38c49105398916200993532a00", + "transactionIndex": "0x6e", + "blockHash": "0x8afad8725a7126c22f3254b11ebc8c9ec5d4a30fb61ba566a1e12e022101a360", + "blockNumber": "0x132f663", + "gasUsed": "0x1ccdcc", + "effectiveGasPrice": "0x11a06bceb", + "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", + "to": null, + "contractAddress": "0x31da7f6cfc470abcc5388b6ab5eb29df39ce0e26" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1718694851, + "chain": 1, + "commit": "2a11d11" +} \ No newline at end of file diff --git a/broadcast/PTweETHOracle.s.sol/1/run-latest.json b/broadcast/PTweETHOracle.s.sol/1/run-latest.json index f40afff7..f4488022 100644 --- a/broadcast/PTweETHOracle.s.sol/1/run-latest.json +++ b/broadcast/PTweETHOracle.s.sol/1/run-latest.json @@ -1,10 +1,10 @@ { "transactions": [ { - "hash": "0x90434c52c1624c238ac4d300c61dc33956091e475c4d0198c83005df392e3c75", + "hash": "0x217a7368b267a95c707bcfb1d4b0e1c27a59cb38c49105398916200993532a00", "transactionType": "CREATE", "contractName": "MorphoFeedPTweETHDec24", - "contractAddress": "0x7d01be85335a0cc827d985d691666498a34121a4", + "contractAddress": "0x31da7f6cfc470abcc5388b6ab5eb29df39ce0e26", "function": null, "arguments": [ "0x5bc6BEf80DA563EBf6Df6D6913513fa9A7ec89BE", @@ -13,10 +13,10 @@ ], "transaction": { "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", - "gas": "0x25314f", + "gas": "0x2571ef", "value": "0x0", - "input": "0x608060405234801562000010575f80fd5b50604051620020e6380380620020e68339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fac806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d657806383914540146101de578063921a12ab146101e95780639a6fc8f5146101f2578063b4a0bdf314610239578063c433c80a1461024b578063d965a5d21461025e578063e43581b81461026d578063feaf968c14610280575b5f80fd5b6100f0610288565b6040516100fd9190611bd6565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611bea565b6102a0565b005b6100f0610367565b61017e610179366004611c18565b61037f565b60405190151581526020016100fd565b600161010c565b6101c96040518060400160405280601581526020017450542d77654554482f7765455448204f7261636c6560581b81525081565b6040516100fd9190611c33565b6100f06103f4565b61010c6301e1338081565b61010c60015481565b610205610200366004611c7f565b61040c565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610259366004611ca5565b61042d565b61010c670de0b6b3a764000081565b61017e61027b366004611c18565b610529565b610205610559565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cf903390600401611bd6565b602060405180830381865afa1580156102ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030e9190611cc8565b61032b57604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103af908590600401611bd6565b602060405180830381865afa1580156103ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ee9190611cc8565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f8061041a610579565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045c903390600401611bd6565b602060405180830381865afa158015610477573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061049b9190611cc8565b6104b857604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104e157604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035c565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103af908590600401611bd6565b5f805f805f80610567610579565b90969095505f94508493508392509050565b5f806105836105d2565b90505f61058e610662565b90505f81831161059e57826105a0565b815b90505f670de0b6b3a7640000826105b5610681565b6105bf9190611cfb565b6105c99190611d26565b95945050505050565b5f8063676c9c8042116105f2576105ed4263676c9c80611d39565b6105f4565b5f5b9050805f0361060c57670de0b6b3a764000091505090565b5f61063f61061e836301e133806107a2565b61063961062a60015490565b670de0b6b3a7640000906107c0565b906107ce565b90505f61065a610657670de0b6b3a7640000846107a2565b90565b949350505050565b5f61067c61066e6103f4565b60025463ffffffff166108d9565b905090565b5f8061068b610367565b6001600160a01b03166370a082316106a1610288565b6040518263ffffffff1660e01b81526004016106bd9190611bd6565b602060405180830381865afa1580156106d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106fc9190611d4c565b90505f610707610288565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610742573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107669190611d4c565b90508082116107915780610782670de0b6b3a764000084611cfb565b61078c9190611d26565b61079b565b670de0b6b3a76400005b9250505090565b5f6107b961065784670de0b6b3a76400008561091a565b9392505050565b5f6107b96106578385611d63565b5f82828183036107f75780156107e4575f6107ee565b670de0b6b3a76400005b925050506103ee565b670de0b6b3a7640000820361081857670de0b6b3a7640000925050506103ee565b805f0361083157670de0b6b3a7640000925050506103ee565b670de0b6b3a7640000810361084a5784925050506103ee565b670de0b6b3a764000082111561087b5761087461086f610869876109ed565b86610b14565b610b22565b92506108d1565b5f610897610657846a0c097ce7bc90715b34b9f160241b611d26565b90505f6108af61086f6108a9846109ed565b88610b14565b90506108cc610657826a0c097ce7bc90715b34b9f160241b611d26565b945050505b505092915050565b5f805f6108e585610b76565b915091508082106108fa576107ee8585610d99565b80826109068787610d99565b6109109190611cfb565b6107ee9190611d26565b5f80805f19858709858702925082811083820303915050805f036109515783828161094757610947611d12565b04925050506107b9565b83811061098757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610a1b5760405163036d32ef60e41b81526004810184905260240161097e565b5f610a9c670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610ac55750949350505050565b671bc16d674ec800006706f05b59d3b200005b8015610b0857670de0b6b3a7640000838002049250818310610b00579283019260019290921c915b60011c610ad8565b50919695505050505050565b5f6107b96106578484610e68565b5f81680a688906bd8affffff811115610b515760405163b3b6ba1f60e01b81526004810184905260240161097e565b5f610b68670de0b6b3a7640000604084901b611d26565b905061065a61065782610f1a565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610bb6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bda9190611d76565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c3f9190611d4c565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c7e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ca29190611d4c565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ce0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d049190611cc8565b8015610d77575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6c9190611dc0565b6001600160801b0316145b15610d8457809350610d91565b610d8e8582611606565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dfb9190611d4c565b9050428111610e1557670de0b6b3a76400009150506103ee565b5f610e20858561161b565b90505f610e2d4284611d39565b90505f610e42610e3d848461173a565b611772565b9050610e56670de0b6b3a764000082611783565b9450505050506103ee565b5092915050565b5f80805f19848609848602925082811083820303915050805f03610e995750670de0b6b3a7640000900490506103ee565b670de0b6b3a76400008110610ecb57604051635173648d60e01b8152600481018690526024810185905260440161097e565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b821615611003576001603f1b821615610f465768016a09e667f3bcc9090260401c5b6001603e1b821615610f61576801306fe0a31b7152df0260401c5b6001603d1b821615610f7c576801172b83c7d517adce0260401c5b6001603c1b821615610f975768010b5586cf9890f62a0260401c5b6001603b1b821615610fb2576801059b0d31585743ae0260401c5b6001603a1b821615610fcd57680102c9a3e778060ee70260401c5b600160391b821615610fe85768010163da9fb33356d80260401c5b600160381b82161561100357680100b1afa5abcbed610260401c5b60ff60301b8216156110e757600160371b82161561102a5768010058c86da1c09ea20260401c5b600160361b821615611045576801002c605e2e8cec500260401c5b600160351b82161561106057680100162f3904051fa10260401c5b600160341b82161561107b576801000b175effdc76ba0260401c5b600160331b82161561109657680100058ba01fb9f96d0260401c5b600160321b8216156110b15768010002c5cc37da94920260401c5b600160311b8216156110cc576801000162e525ee05470260401c5b600160301b8216156110e75768010000b17255775c040260401c5b60ff60281b8216156111cb576001602f1b82161561110e576801000058b91b5bc9ae0260401c5b6001602e1b82161561112957680100002c5c89d5ec6d0260401c5b6001602d1b8216156111445768010000162e43f4f8310260401c5b6001602c1b82161561115f57680100000b1721bcfc9a0260401c5b6001602b1b82161561117a5768010000058b90cf1e6e0260401c5b6001602a1b821615611195576801000002c5c863b73f0260401c5b600160291b8216156111b057680100000162e430e5a20260401c5b600160281b8216156111cb576801000000b1721835510260401c5b60ff60201b8216156112af57600160271b8216156111f257680100000058b90c0b490260401c5b600160261b82161561120d5768010000002c5c8601cc0260401c5b600160251b821615611228576801000000162e42fff00260401c5b600160241b8216156112435768010000000b17217fbb0260401c5b600160231b82161561125e576801000000058b90bfce0260401c5b600160221b82161561127957680100000002c5c85fe30260401c5b600160211b8216156112945768010000000162e42ff10260401c5b600160201b8216156112af57680100000000b17217f80260401c5b63ff0000008216156113935763800000008216156112d65768010000000058b90bfc0260401c5b63400000008216156112f1576801000000002c5c85fe0260401c5b632000000082161561130c57680100000000162e42ff0260401c5b6310000000821615611327576801000000000b17217f0260401c5b630800000082161561134257680100000000058b90c00260401c5b630400000082161561135d5768010000000002c5c8600260401c5b6302000000821615611378576801000000000162e4300260401c5b63010000008216156113935768010000000000b172180260401c5b62ff000082161561146d57628000008216156113b8576801000000000058b90c0260401c5b624000008216156113d257680100000000002c5c860260401c5b622000008216156113ec5768010000000000162e430260401c5b6210000082161561140657680100000000000b17210260401c5b620800008216156114205768010000000000058b910260401c5b6204000082161561143a576801000000000002c5c80260401c5b6202000082161561145457680100000000000162e40260401c5b6201000082161561146d5761b172600160401b010260401c5b61ff008216156115365761800082161561148f576158b9600160401b010260401c5b6140008216156114a757612c5d600160401b010260401c5b6120008216156114bf5761162e600160401b010260401c5b6110008216156114d757610b17600160401b010260401c5b6108008216156114ef5761058c600160401b010260401c5b610400821615611507576102c6600160401b010260401c5b61020082161561151f57610163600160401b010260401c5b6101008216156115365760b1600160401b010260401c5b60ff8216156115ef576080821615611555576059600160401b010260401c5b604082161561156b57602c600160401b010260401c5b6020821615611581576016600160401b010260401c5b601082161561159757600b600160401b010260401c5b60088216156115ad576006600160401b010260401c5b60048216156115c3576003600160401b010260401c5b60028216156115d9576001600160401b010260401c5b60018216156115ef576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f81831161161457816107b9565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f8151811061165257611652611dfa565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90611695908590600401611e0e565b5f60405180830381865afa1580156116af573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116d69190810190611e72565b90508363ffffffff16815f815181106116f1576116f1611dfa565b60200260200101518260018151811061170c5761170c611dfa565b602002602001015161171e9190611f31565b6117289190611f51565b6001600160d81b031695945050505050565b5f8061174b6201518061016d611cfb565b6117558486611cfb565b61175f9190611d26565b905061065a61176d826117b1565b6117c5565b5f8082121561177f575f80fd5b5090565b5f80611797670de0b6b3a764000085611cfb565b90508281816117a8576117a8611d12565b04949350505050565b5f6001600160ff1b0382111561177f575f80fd5b5f680238fd42c5cf03ffff1982121580156117e9575068070c1cc73b00c800008213155b6118285760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161097e565b5f82121561185e5761183b825f036117c5565b6a0c097ce7bc90715b34b9f160241b8161185757611857611d12565b0592915050565b5f6806f05b59d3b2000000831261189b57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6118d1565b6803782dace9d900000083126118cd57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806118d1565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126119215768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261195d576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261199757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126119d1576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a0a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a435768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611a7c576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611ab55768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611bfa575f80fd5b5035919050565b6001600160a01b0381168114611c15575f80fd5b50565b5f60208284031215611c28575f80fd5b81356107b981611c01565b5f602080835283518060208501525f5b81811015611c5f57858101830151858201604001528201611c43565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611c8f575f80fd5b81356001600160501b03811681146107b9575f80fd5b5f60208284031215611cb5575f80fd5b813563ffffffff811681146107b9575f80fd5b5f60208284031215611cd8575f80fd5b815180151581146107b9575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ee576103ee611ce7565b634e487b7160e01b5f52601260045260245ffd5b5f82611d3457611d34611d12565b500490565b818103818111156103ee576103ee611ce7565b5f60208284031215611d5c575f80fd5b5051919050565b808201808211156103ee576103ee611ce7565b5f805f60608486031215611d88575f80fd5b8351611d9381611c01565b6020850151909350611da481611c01565b6040850151909250611db581611c01565b809150509250925092565b5f60208284031215611dd0575f80fd5b81516001600160801b03811681146107b9575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e4b57835163ffffffff1683529284019291840191600101611e29565b50909695505050505050565b80516001600160d81b0381168114611e6d575f80fd5b919050565b5f6020808385031215611e83575f80fd5b82516001600160401b0380821115611e99575f80fd5b818501915085601f830112611eac575f80fd5b815181811115611ebe57611ebe611de6565b8060051b604051601f19603f83011681018181108582111715611ee357611ee3611de6565b604052918252848201925083810185019188831115611f00575f80fd5b938501935b82851015611f2557611f1685611e57565b84529385019392850192611f05565b98975050505050505050565b6001600160d81b03828116828216039080821115610e6157610e61611ce7565b5f6001600160d81b0383811680611f6a57611f6a611d12565b9216919091049291505056fea26469706673582212206644d09353da00e683f0f2cf1ccd876b6956ab92ee8ed7b5d0dca3edf2e6c3e564736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", - "nonce": "0x19e", + "input": "0x608060405234801562000010575f80fd5b5060405162002121380380620021218339810160408190526200003391620000d6565b8282828181846001600160a01b038116620000615760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b039290921691909117905561038463ffffffff82161015620000aa57604051630d72bb8f60e41b815260040160405180910390fd5b6001919091556002805463ffffffff191663ffffffff909216919091179055506200012c945050505050565b5f805f60608486031215620000e9575f80fd5b83516001600160a01b038116811462000100575f80fd5b60208501516040860151919450925063ffffffff8116811462000121575f80fd5b809150509250925092565b611fe7806200013a5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c8063181cc05b146100e8578063204f83f91461010657806326d895451461011a578063313ce5671461013f5780633406b6d11461014e57806338d52e0f14610163578063521d4de91461016b57806354fd4d501461018e5780637284e4161461019557806380f55605146101d457806383914540146101dc578063921a12ab146101e75780639a6fc8f5146101f0578063b4a0bdf314610237578063c433c80a14610249578063d965a5d21461025c578063e43581b81461026b578063feaf968c1461027e575b5f80fd5b6100f0610286565b6040516100fd9190611c11565b60405180910390f35b63676c9c805b6040519081526020016100fd565b60025461012a9063ffffffff1681565b60405163ffffffff90911681526020016100fd565b604051601281526020016100fd565b61016161015c366004611c25565b61029e565b005b6100f0610365565b61017e610179366004611c53565b61037d565b60405190151581526020016100fd565b600161010c565b6101c76040518060400160405280601381526020017250542d77654554482f455448204f7261636c6560681b81525081565b6040516100fd9190611c6e565b6100f06103f2565b61010c6301e1338081565b61010c60015481565b6102036101fe366004611cba565b61040a565b604080516001600160501b03968716815260208101959095528401929092526060830152909116608082015260a0016100fd565b5f546100f0906001600160a01b031681565b610161610257366004611ce0565b61042b565b61010c670de0b6b3a764000081565b61017e610279366004611c53565b610527565b610203610557565b73ac0047886a985071476a1186be89222659970d6590565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de9906102cd903390600401611c11565b602060405180830381865afa1580156102e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061030c9190611d03565b61032957604051632678482f60e21b815260040160405180910390fd5b60018190556040518181527f1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a906020015b60405180910390a150565b73cd5fe23c85820f7b72d0926fc9b05b43e359b7ee90565b5f805460405163521d4de960e01b81526001600160a01b039091169063521d4de9906103ad908590600401611c11565b602060405180830381865afa1580156103c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ec9190611d03565b92915050565b737d372819240d14fb477f17b964f95f33beb4c70490565b5f805f805f80610418610577565b90979096505f9550859450849350915050565b5f5460405163521d4de960e01b81526001600160a01b039091169063521d4de99061045a903390600401611c11565b602060405180830381865afa158015610475573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104999190611d03565b6104b657604051632678482f60e21b815260040160405180910390fd5b6103848163ffffffff1610156104df57604051630d72bb8f60e41b815260040160405180910390fd5b6002805463ffffffff191663ffffffff83169081179091556040519081527f87edb95cfb8afc62e405f2bb9fe4ec71648ccecc13387d294c8a5eb09ca53fd79060200161035a565b5f8054604051631c86b03760e31b81526001600160a01b039091169063e43581b8906103ad908590600401611c11565b5f805f805f80610565610577565b90969095505f94508493508392509050565b5f805f6105936105856103f2565b60025463ffffffff16610603565b915091505f81670de0b6b3a76400006105aa610621565b6105b49190611d36565b6105be9190611d61565b90505f8382116105ce57816105d0565b835b90505f670de0b6b3a7640000826105e56106b1565b6105ef9190611d36565b6105f99190611d61565b9695505050505050565b5f8061060f84846107d2565b94670de0b6b3a7640000945092505050565b5f8063676c9c8042116106415761063c4263676c9c80611d74565b610643565b5f5b9050805f0361065b57670de0b6b3a764000091505090565b5f61068e61066d836301e13380610824565b61068861067960015490565b670de0b6b3a764000090610842565b90610850565b90505f6106a96106a6670de0b6b3a764000084610824565b90565b949350505050565b5f806106bb610365565b6001600160a01b03166370a082316106d1610286565b6040518263ffffffff1660e01b81526004016106ed9190611c11565b602060405180830381865afa158015610708573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072c9190611d87565b90505f610737610286565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610772573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107969190611d87565b90508082116107c157806107b2670de0b6b3a764000084611d36565b6107bc9190611d61565b6107cb565b670de0b6b3a76400005b9250505090565b5f805f6107de85610958565b915091508082106107fc576107f38585610b7b565b925050506103ec565b80826108088787610b7b565b6108129190611d36565b6107f39190611d61565b505092915050565b5f61083b6106a684670de0b6b3a764000085610c4a565b9392505050565b5f61083b6106a68385611d9e565b5f8282818303610878578015610866575f6107f3565b670de0b6b3a7640000925050506103ec565b670de0b6b3a7640000820361089957670de0b6b3a7640000925050506103ec565b805f036108b257670de0b6b3a7640000925050506103ec565b670de0b6b3a764000081036108cb5784925050506103ec565b670de0b6b3a76400008211156108fc576108f56108f06108ea87610d1d565b86610e41565b610e4f565b925061081c565b5f6109186106a6846a0c097ce7bc90715b34b9f160241b611d61565b90505f6109306108f061092a84610d1d565b88610e41565b905061094d6106a6826a0c097ce7bc90715b34b9f160241b611d61565b979650505050505050565b5f805f80846001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610998573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bc9190611db1565b9250509150816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611d87565b93505f816001600160a01b031663d2a3584e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a849190611d87565b9050816001600160a01b031663516399df6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae69190611d03565b8015610b59575043826001600160a01b03166360e0a9e16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b4e9190611dfb565b6001600160801b0316145b15610b6657809350610b73565b610b708582610ea3565b93505b505050915091565b5f80836001600160a01b031663e184c9be6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd9190611d87565b9050428111610bf757670de0b6b3a76400009150506103ec565b5f610c028585610eb8565b90505f610c0f4284611d74565b90505f610c24610c1f8484610fd7565b61100f565b9050610c38670de0b6b3a764000082611020565b9450505050506103ec565b5092915050565b5f80805f19858709858702925082811083820303915050805f03610c8157838281610c7757610c77611d4d565b049250505061083b565b838110610cb757604051630c740aef60e31b81526004810187905260248101869052604481018590526064015b60405180910390fd5b5f84868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f81670de0b6b3a7640000811015610d4b5760405163036d32ef60e41b815260048101849052602401610cae565b5f610dcc670de0b6b3a7640000830460016001600160801b03821160071b91821c6001600160401b03811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211871b91821c969096119490961792909217171791909117919091171790565b9050670de0b6b3a7640000810282821c670de0b6b3a763ffff198101610df257816105f9565b671bc16d674ec800006706f05b59d3b200005b8015610e3557670de0b6b3a7640000838002049250818310610e2d579283019260019290921c915b60011c610e05565b50919695505050505050565b5f61083b6106a6848461104e565b5f81680a688906bd8affffff811115610e7e5760405163b3b6ba1f60e01b815260048101849052602401610cae565b5f610e95670de0b6b3a7640000604084901b611d61565b90506106a96106a682611100565b5f818311610eb1578161083b565b5090919050565b6040805160028082526060820183525f928392919060208301908036833701905050905082815f81518110610eef57610eef611e35565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81525f906001600160a01b0386169063883bdbfd90610f32908590600401611e49565b5f60405180830381865afa158015610f4c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610f739190810190611ead565b90508363ffffffff16815f81518110610f8e57610f8e611e35565b602002602001015182600181518110610fa957610fa9611e35565b6020026020010151610fbb9190611f6c565b610fc59190611f8c565b6001600160d81b031695945050505050565b5f80610fe86201518061016d611d36565b610ff28486611d36565b610ffc9190611d61565b90506106a961100a826117ec565b611800565b5f8082121561101c575f80fd5b5090565b5f80611034670de0b6b3a764000085611d36565b905082818161104557611045611d4d565b04949350505050565b5f80805f19848609848602925082811083820303915050805f0361107f5750670de0b6b3a7640000900490506103ec565b670de0b6b3a764000081106110b157604051635173648d60e01b81526004810186905260248101859052604401610cae565b5f670de0b6b3a764000085870962040000818503049310909103600160ee1b02919091177faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac106690291505092915050565b600160bf1b60ff60381b8216156111e9576001603f1b82161561112c5768016a09e667f3bcc9090260401c5b6001603e1b821615611147576801306fe0a31b7152df0260401c5b6001603d1b821615611162576801172b83c7d517adce0260401c5b6001603c1b82161561117d5768010b5586cf9890f62a0260401c5b6001603b1b821615611198576801059b0d31585743ae0260401c5b6001603a1b8216156111b357680102c9a3e778060ee70260401c5b600160391b8216156111ce5768010163da9fb33356d80260401c5b600160381b8216156111e957680100b1afa5abcbed610260401c5b60ff60301b8216156112cd57600160371b8216156112105768010058c86da1c09ea20260401c5b600160361b82161561122b576801002c605e2e8cec500260401c5b600160351b82161561124657680100162f3904051fa10260401c5b600160341b821615611261576801000b175effdc76ba0260401c5b600160331b82161561127c57680100058ba01fb9f96d0260401c5b600160321b8216156112975768010002c5cc37da94920260401c5b600160311b8216156112b2576801000162e525ee05470260401c5b600160301b8216156112cd5768010000b17255775c040260401c5b60ff60281b8216156113b1576001602f1b8216156112f4576801000058b91b5bc9ae0260401c5b6001602e1b82161561130f57680100002c5c89d5ec6d0260401c5b6001602d1b82161561132a5768010000162e43f4f8310260401c5b6001602c1b82161561134557680100000b1721bcfc9a0260401c5b6001602b1b8216156113605768010000058b90cf1e6e0260401c5b6001602a1b82161561137b576801000002c5c863b73f0260401c5b600160291b82161561139657680100000162e430e5a20260401c5b600160281b8216156113b1576801000000b1721835510260401c5b60ff60201b82161561149557600160271b8216156113d857680100000058b90c0b490260401c5b600160261b8216156113f35768010000002c5c8601cc0260401c5b600160251b82161561140e576801000000162e42fff00260401c5b600160241b8216156114295768010000000b17217fbb0260401c5b600160231b821615611444576801000000058b90bfce0260401c5b600160221b82161561145f57680100000002c5c85fe30260401c5b600160211b82161561147a5768010000000162e42ff10260401c5b600160201b82161561149557680100000000b17217f80260401c5b63ff0000008216156115795763800000008216156114bc5768010000000058b90bfc0260401c5b63400000008216156114d7576801000000002c5c85fe0260401c5b63200000008216156114f257680100000000162e42ff0260401c5b631000000082161561150d576801000000000b17217f0260401c5b630800000082161561152857680100000000058b90c00260401c5b63040000008216156115435768010000000002c5c8600260401c5b630200000082161561155e576801000000000162e4300260401c5b63010000008216156115795768010000000000b172180260401c5b62ff0000821615611653576280000082161561159e576801000000000058b90c0260401c5b624000008216156115b857680100000000002c5c860260401c5b622000008216156115d25768010000000000162e430260401c5b621000008216156115ec57680100000000000b17210260401c5b620800008216156116065768010000000000058b910260401c5b62040000821615611620576801000000000002c5c80260401c5b6202000082161561163a57680100000000000162e40260401c5b620100008216156116535761b172600160401b010260401c5b61ff0082161561171c57618000821615611675576158b9600160401b010260401c5b61400082161561168d57612c5d600160401b010260401c5b6120008216156116a55761162e600160401b010260401c5b6110008216156116bd57610b17600160401b010260401c5b6108008216156116d55761058c600160401b010260401c5b6104008216156116ed576102c6600160401b010260401c5b61020082161561170557610163600160401b010260401c5b61010082161561171c5760b1600160401b010260401c5b60ff8216156117d557608082161561173b576059600160401b010260401c5b604082161561175157602c600160401b010260401c5b6020821615611767576016600160401b010260401c5b601082161561177d57600b600160401b010260401c5b6008821615611793576006600160401b010260401c5b60048216156117a9576003600160401b010260401c5b60028216156117bf576001600160401b010260401c5b60018216156117d5576001600160401b010260401c5b670de0b6b3a76400000260409190911c60bf031c90565b5f6001600160ff1b0382111561101c575f80fd5b5f680238fd42c5cf03ffff198212158015611824575068070c1cc73b00c800008213155b6118635760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610cae565b5f82121561189957611876825f03611800565b6a0c097ce7bc90715b34b9f160241b8161189257611892611d4d565b0592915050565b5f6806f05b59d3b200000083126118d657506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b61190c565b6803782dace9d9000000831261190857506803782dace9d8ffffff19909101906b1425982cf597cd205cef738061190c565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac62000000841261195c5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412611998576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126119d257682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611a0c576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac62000008412611a4557680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d631000008412611a7e5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412611ab7576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c400008412611af05768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6001600160a01b0391909116815260200190565b5f60208284031215611c35575f80fd5b5035919050565b6001600160a01b0381168114611c50575f80fd5b50565b5f60208284031215611c63575f80fd5b813561083b81611c3c565b5f602080835283518060208501525f5b81811015611c9a57858101830151858201604001528201611c7e565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215611cca575f80fd5b81356001600160501b038116811461083b575f80fd5b5f60208284031215611cf0575f80fd5b813563ffffffff8116811461083b575f80fd5b5f60208284031215611d13575f80fd5b8151801515811461083b575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176103ec576103ec611d22565b634e487b7160e01b5f52601260045260245ffd5b5f82611d6f57611d6f611d4d565b500490565b818103818111156103ec576103ec611d22565b5f60208284031215611d97575f80fd5b5051919050565b808201808211156103ec576103ec611d22565b5f805f60608486031215611dc3575f80fd5b8351611dce81611c3c565b6020850151909350611ddf81611c3c565b6040850151909250611df081611c3c565b809150509250925092565b5f60208284031215611e0b575f80fd5b81516001600160801b038116811461083b575f80fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b602080825282518282018190525f9190848201906040850190845b81811015611e8657835163ffffffff1683529284019291840191600101611e64565b50909695505050505050565b80516001600160d81b0381168114611ea8575f80fd5b919050565b5f6020808385031215611ebe575f80fd5b82516001600160401b0380821115611ed4575f80fd5b818501915085601f830112611ee7575f80fd5b815181811115611ef957611ef9611e21565b8060051b604051601f19603f83011681018181108582111715611f1e57611f1e611e21565b604052918252848201925083810185019188831115611f3b575f80fd5b938501935b82851015611f6057611f5185611e92565b84529385019392850192611f40565b98975050505050505050565b6001600160d81b03828116828216039080821115610c4357610c43611d22565b5f6001600160d81b0383811680611fa557611fa5611d4d565b9216919091049291505056fea264697066735822122002832a4ad5093b98f867311dbd5aa81c983f20f7f17a518b2bcde008c746ce8f64736f6c634300081600330000000000000000000000005bc6bef80da563ebf6df6d6913513fa9a7ec89be00000000000000000000000000000000000000000000000003782dace9d900000000000000000000000000000000000000000000000000000000000000000708", + "nonce": "0x1b7", "chainId": "0x1" }, "additionalContracts": [], @@ -26,25 +26,25 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0xd06cd4", + "cumulativeGasUsed": "0xaf28c6", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x90434c52c1624c238ac4d300c61dc33956091e475c4d0198c83005df392e3c75", - "transactionIndex": "0x67", - "blockHash": "0xe16d645de860995584f5aff8f5e4cdd211840a60bdf0d4b1573142eea567095f", - "blockNumber": "0x1324fa2", - "gasUsed": "0x1c9c16", - "effectiveGasPrice": "0x1848ac108", + "transactionHash": "0x217a7368b267a95c707bcfb1d4b0e1c27a59cb38c49105398916200993532a00", + "transactionIndex": "0x6e", + "blockHash": "0x8afad8725a7126c22f3254b11ebc8c9ec5d4a30fb61ba566a1e12e022101a360", + "blockNumber": "0x132f663", + "gasUsed": "0x1ccdcc", + "effectiveGasPrice": "0x11a06bceb", "from": "0xa9ddd91249dfdd450e81e1c56ab60e1a62651701", "to": null, - "contractAddress": "0x7d01be85335a0cc827d985d691666498a34121a4" + "contractAddress": "0x31da7f6cfc470abcc5388b6ab5eb29df39ce0e26" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1718179107, + "timestamp": 1718694851, "chain": 1, - "commit": "6bd497d" + "commit": "2a11d11" } \ No newline at end of file diff --git a/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol b/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol index 7b3c3add..719f71ac 100644 --- a/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol +++ b/contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol @@ -23,13 +23,6 @@ contract MorphoFeedPTezETHDec24 is BaseFeedPTPendle { OVERRIDES //////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ - // function _pendlePTPrice( - // IPMarket _market, - // uint32 _twapDuration - // ) internal view override(BaseOraclePTPendle, FeedPTForSY) returns (uint256, uint256) { - // return BaseOraclePTPendle._pendlePTPrice(_market, _twapDuration); - // } - function asset() public pure override returns (address) { return 0xbf5495Efe5DB9ce00f80364C8B423567e58d2110; }