Skip to content

Commit

Permalink
deploy weETH market with Pyth oracle
Browse files Browse the repository at this point in the history
  • Loading branch information
GuillaumeNervoXS committed Jun 21, 2024
1 parent 371fb94 commit ea2400c
Show file tree
Hide file tree
Showing 8 changed files with 1,531 additions and 1,242 deletions.
581 changes: 581 additions & 0 deletions broadcast/MorphoDeployMarket.s.sol/8453/run-1718964091.json

Large diffs are not rendered by default.

603 changes: 603 additions & 0 deletions broadcast/MorphoDeployMarket.s.sol/8453/run-1718964354.json

Large diffs are not rendered by default.

1,435 changes: 234 additions & 1,201 deletions broadcast/MorphoDeployMarket.s.sol/8453/run-latest.json

Large diffs are not rendered by default.

66 changes: 66 additions & 0 deletions broadcast/MorphoInteractMarket.s.sol/1/run-1718873598.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
{
"transactions": [
{
"hash": "0x5cca4e0b57e4cedc568ea04ada90ad483c2fcdd0457d08756b51e55a9d20a1f8",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0xc9dfd5c18f12a3ba6293001700810602efe0c45b",
"function": "setMaxImpliedRate(uint256)",
"arguments": [
"1000000000000000000000"
],
"transaction": {
"from": "0x0c2553e4b9dfa9f83b1a6d3eab96c4baab42d430",
"to": "0xc9dfd5c18f12a3ba6293001700810602efe0c45b",
"gas": "0xe58b",
"value": "0x0",
"input": "0x3406b6d100000000000000000000000000000000000000000000003635c9adc5dea00000",
"nonce": "0x1",
"chainId": "0x1"
},
"additionalContracts": [],
"isFixedGasLimit": false
}
],
"receipts": [
{
"status": "0x1",
"cumulativeGasUsed": "0xa630",
"logs": [
{
"address": "0xc9dfd5c18f12a3ba6293001700810602efe0c45b",
"topics": [
"0x1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a"
],
"data": "0x00000000000000000000000000000000000000000000003635c9adc5dea00000",
"blockHash": "0x0335e45dc28df8a6a1ad682618a9d3c57425a580df0611dd10be3d68ffe4655a",
"blockNumber": "0x1333002",
"blockTimestamp": "0x6673edf0",
"transactionHash": "0x5cca4e0b57e4cedc568ea04ada90ad483c2fcdd0457d08756b51e55a9d20a1f8",
"transactionIndex": "0x0",
"logIndex": "0x0",
"removed": false
}
],
"logsBloom": "0x00000000000000080000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000008000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"transactionHash": "0x5cca4e0b57e4cedc568ea04ada90ad483c2fcdd0457d08756b51e55a9d20a1f8",
"transactionIndex": "0x0",
"blockHash": "0x0335e45dc28df8a6a1ad682618a9d3c57425a580df0611dd10be3d68ffe4655a",
"blockNumber": "0x1333002",
"gasUsed": "0xa630",
"effectiveGasPrice": "0x3426eb458",
"blobGasPrice": "0x9",
"from": "0x0c2553e4b9dfa9f83b1a6d3eab96c4baab42d430",
"to": "0xc9dfd5c18f12a3ba6293001700810602efe0c45b",
"contractAddress": null,
"root": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
],
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1718873598,
"chain": 1,
"commit": "371fb94"
}
24 changes: 12 additions & 12 deletions broadcast/MorphoInteractMarket.s.sol/1/run-latest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"transactions": [
{
"hash": "0xed6469495ac957b5149d5fa048ba2b6bac6d02a766cc345411f9bd662a4860e3",
"hash": "0x5cca4e0b57e4cedc568ea04ada90ad483c2fcdd0457d08756b51e55a9d20a1f8",
"transactionType": "CALL",
"contractName": null,
"contractAddress": "0xc9dfd5c18f12a3ba6293001700810602efe0c45b",
Expand Down Expand Up @@ -33,24 +33,24 @@
"0x1693f12ff158ba72b61d65dce0487c8c9166916e22e284990a7e42b5f38b080a"
],
"data": "0x00000000000000000000000000000000000000000000003635c9adc5dea00000",
"blockHash": "0x2432ab3c86c8d4800edf9fff8d292cbb6fa1fd1f63a20e65d0c5cce78a790bf7",
"blockNumber": "0x132fd7d",
"blockTimestamp": "0x66718dda",
"transactionHash": "0xed6469495ac957b5149d5fa048ba2b6bac6d02a766cc345411f9bd662a4860e3",
"blockHash": "0x0335e45dc28df8a6a1ad682618a9d3c57425a580df0611dd10be3d68ffe4655a",
"blockNumber": "0x1333002",
"blockTimestamp": "0x6673edf0",
"transactionHash": "0x5cca4e0b57e4cedc568ea04ada90ad483c2fcdd0457d08756b51e55a9d20a1f8",
"transactionIndex": "0x0",
"logIndex": "0x0",
"removed": false
}
],
"logsBloom": "0x00000000000000080000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000008000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
"transactionHash": "0xed6469495ac957b5149d5fa048ba2b6bac6d02a766cc345411f9bd662a4860e3",
"transactionHash": "0x5cca4e0b57e4cedc568ea04ada90ad483c2fcdd0457d08756b51e55a9d20a1f8",
"transactionIndex": "0x0",
"blockHash": "0x2432ab3c86c8d4800edf9fff8d292cbb6fa1fd1f63a20e65d0c5cce78a790bf7",
"blockNumber": "0x132fd7d",
"blockHash": "0x0335e45dc28df8a6a1ad682618a9d3c57425a580df0611dd10be3d68ffe4655a",
"blockNumber": "0x1333002",
"gasUsed": "0xa630",
"effectiveGasPrice": "0x21eebfb67",
"blobGasPrice": "0xa",
"effectiveGasPrice": "0x3426eb458",
"blobGasPrice": "0x9",
"from": "0x0c2553e4b9dfa9f83b1a6d3eab96c4baab42d430",
"to": "0xc9dfd5c18f12a3ba6293001700810602efe0c45b",
"contractAddress": null,
Expand All @@ -60,7 +60,7 @@
"libraries": [],
"pending": [],
"returns": {},
"timestamp": 1718717920,
"timestamp": 1718873598,
"chain": 1,
"commit": "b73230c"
"commit": "371fb94"
}
2 changes: 1 addition & 1 deletion lib/borrow-contracts
Submodule borrow-contracts updated 38 files
+52 −0 broadcast/PTezETHOracle.s.sol/1/run-1718178882.json
+50 −0 broadcast/PTezETHOracle.s.sol/1/run-1718179163.json
+52 −0 broadcast/PTezETHOracle.s.sol/1/run-1718694630.json
+50 −0 broadcast/PTezETHOracle.s.sol/1/run-1718694747.json
+50 −0 broadcast/PTezETHOracle.s.sol/1/run-latest.json
+52 −0 broadcast/PTweETHOracle.s.sol/1/run-1718178605.json
+52 −0 broadcast/PTweETHOracle.s.sol/1/run-1718178658.json
+52 −0 broadcast/PTweETHOracle.s.sol/1/run-1718178819.json
+50 −0 broadcast/PTweETHOracle.s.sol/1/run-1718179107.json
+52 −0 broadcast/PTweETHOracle.s.sol/1/run-1718694502.json
+52 −0 broadcast/PTweETHOracle.s.sol/1/run-1718694528.json
+52 −0 broadcast/PTweETHOracle.s.sol/1/run-1718694611.json
+50 −0 broadcast/PTweETHOracle.s.sol/1/run-1718694851.json
+21 −23 broadcast/PTweETHOracle.s.sol/1/run-latest.json
+93 −0 contracts/external/pyth/PythAggregatorV3.sol
+143 −0 contracts/interfaces/pyth/IPyth.sol
+33 −0 contracts/interfaces/pyth/PythStructs.sol
+2 −0 contracts/oracle/BaseFeedPTPendle.sol
+5 −5 contracts/oracle/BaseOraclePTPendle.sol
+26 −0 contracts/oracle/FeedPTForSY.sol
+2 −2 contracts/oracle/implementations/mainnet/EUR/OraclePTweETHEUR.sol
+41 −0 contracts/oracle/morpho/mainnet/MorphoFeedPTezETHDec24.sol
+1 −2 contracts/oracle/morpho/mainnet/MorphoFeedPTweETH.sol
+40 −0 contracts/oracle/morpho/mainnet/MorphoFeedPTweETHDec24.sol
+1 −1 lib/forge-std
+1 −1 lib/pendle-core-v2-public
+1 −1 lib/utils
+1 −1 package.json
+34 −0 scripts/foundry/mainnet/PTezETHOracle.s.sol
+4 −4 scripts/foundry/mainnet/PTweETHOracle.s.sol
+1 −6 test/foundry/oracles/morpho/MorphoChainlinkOracleTest.t.sol
+14 −38 test/foundry/oracles/pendle/BaseOraclePTPendle.t.sol
+18 −9 test/foundry/oracles/pendle/MorphoFeedPTPendle.t.sol
+5 −5 test/foundry/oracles/pendle/MorphoFeedPTUSDe.t.sol
+93 −0 test/foundry/oracles/pendle/MorphoFeedPTezETHDec24.t.sol
+7 −6 test/foundry/oracles/pendle/MorphoFeedPTweETH.t.sol
+93 −0 test/foundry/oracles/pendle/MorphoFeedPTweETHDec24.t.sol
+6 −5 test/foundry/oracles/pendle/OraclePTweETH.t.sol
2 changes: 2 additions & 0 deletions scripts/foundry/base/BaseConstants.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ contract BaseConstants {
address public constant MORPHO_BLUE = 0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb;
address public constant ANGLE_ROUTER = 0x423Cf4cD872F912D278DF2F54Ae58Aa8073cb38c;
address public constant UNI_V3_ROUTER = 0x2626664c2603336E57B271c5C0b26F421741e481;
address public constant PYTH_ROUTER = 0x8250f4aF4B972684F7b336503E2D6dFeDeB1487a;

uint256 public constant BASE_TOKENS = 10 ** 18;
uint64 public constant BASE_PARAMS = 10 ** 9;
Expand All @@ -21,6 +22,7 @@ contract BaseConstants {
address constant EZETH_ETH_ORACLE = address(0x960BDD1dFD20d7c98fa482D793C3dedD73A113a3);
// Chainlink
address constant WEETH_ETH_ORACLE = address(0xFC1415403EbB0c693f9a7844b92aD2Ff24775C65);
bytes32 constant WEETH_USD_PYTH_ID = 0x9ee4e7c60b940440a261eb54b6d8149c23b580ed7da3139f7f08f4ea29dad395;
// Chainlink
address constant WSTETH_ETH_ORACLE = address(0xa669E5272E60f78299F4824495cE01a3923f4380);
bytes32 constant WSTETH_USD_PYTH_ID = 0x6df640f3b8963d8f8358f791f352b8364513f6ab1cca5ed3f1f7b5448980e784;
Expand Down
60 changes: 32 additions & 28 deletions scripts/foundry/base/morpho/MorphoDeployMarket.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import "forge-std/Script.sol";
import { console } from "forge-std/console.sol";
import { StdCheats, StdAssertions } from "forge-std/Test.sol";
import "borrow/interfaces/ICoreBorrow.sol";
import { PythAggregatorV3 } from "borrow/external/pyth/PythAggregatorV3.sol";
import "../BaseConstants.s.sol";
import { MarketParams } from "morpho-blue/libraries/MarketParamsLib.sol";
import { IMorpho } from "morpho-blue/interfaces/IMorpho.sol";
Expand Down Expand Up @@ -69,34 +70,37 @@ contract MorphoDeployBaseMarket is Script, CommonUtils, BaseConstants, StdCheats
initMarket(params, BASE_DEPOSIT_ETH_AMOUNT);
}

// {
// address collateral = weETH;
// oracle = IMorphoChainlinkOracleV2Factory(MORPHO_ORACLE_FACTORY).createMorphoChainlinkOracleV2(
// address(0),
// 1,
// address(WEETH_ETH_ORACLE),
// address(ETH_USD_ORACLE),
// IERC20Metadata(collateral).decimals(),
// address(0),
// 1,
// address(0),
// address(0),
// IERC20Metadata(USDA).decimals(),
// salt
// );

// uint256 price = IMorphoOracle(oracle).price();
// // Because with the max implied rate there is a discount compared to the on chain price (3250)
// assertApproxEqAbs(price, 3670 * 10 ** 36, 50 * 10 ** 36);
// params.collateralToken = collateral;
// params.lltv = LLTV_86;
// params.irm = IRM_MODEL;
// params.oracle = oracle;
// params.loanToken = USDA;
// IMorpho(MORPHO_BLUE).createMarket(params);

// initMarket(params, BASE_DEPOSIT_ETH_AMOUNT);
// }
{
address collateral = weETH;

// deploy the Pyth wrapper
PythAggregatorV3 pythFeed = new PythAggregatorV3(PYTH_ROUTER, WEETH_USD_PYTH_ID);
oracle = IMorphoChainlinkOracleV2Factory(MORPHO_ORACLE_FACTORY).createMorphoChainlinkOracleV2(
address(0),
1,
address(pythFeed),
address(0),
IERC20Metadata(collateral).decimals(),
address(0),
1,
address(0),
address(0),
IERC20Metadata(USDA).decimals(),
salt
);

uint256 price = IMorphoOracle(oracle).price();
// Because with the max implied rate there is a discount compared to the on chain price (3250)
assertApproxEqAbs(price, 3670 * 10 ** 36, 50 * 10 ** 36);
params.collateralToken = collateral;
params.lltv = LLTV_86;
params.irm = IRM_MODEL;
params.oracle = oracle;
params.loanToken = USDA;
IMorpho(MORPHO_BLUE).createMarket(params);

initMarket(params, BASE_DEPOSIT_ETH_AMOUNT);
}

{
address collateral = ezETH;
Expand Down

0 comments on commit ea2400c

Please sign in to comment.