Skip to content

Commit

Permalink
added relayer factory deploy script for sepolia
Browse files Browse the repository at this point in the history
  • Loading branch information
MrDeadCe11 committed Jul 4, 2024
1 parent 6c44326 commit bf94cf0
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 6 deletions.
30 changes: 30 additions & 0 deletions script/dexrelayer/DeployPendleFactory.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.7.6;

import '@script/Registry.s.sol';
import {Script} from 'forge-std/Script.sol';
import {PendleRelayerFactory} from '@contracts/factories/pendle/PendleRelayerFactory.sol';
import {IAuthorizable} from '@interfaces/utils/IAuthorizable.sol';
import {IBaseOracle} from '@interfaces/oracles/IBaseOracle.sol';

// BROADCAST
// source .env && forge script DeployPendleFactory --with-gas-price 2000000000 -vvvvv --rpc-url $ARB_SEPOLIA_RPC --broadcast --verify --etherscan-api-key $ARB_ETHERSCAN_API_KEY

// SIMULATE
// source .env && forge script DeployPendleFactory --with-gas-price 2000000000 -vvvvv --rpc-url $ARB_SEPOLIA_RPC

contract DeployPendleFactory is Script {
IBaseOracle public pendleLpToSyRelayer;
IBaseOracle public pendleYtToSyRelayer;
IBaseOracle public pendlePtToSyRelayer;

PendleRelayerFactory public pendleRelayerFactory;

function run() public {
uint256 pk = vm.envUint('ARB_SEPOLIA_PK');
vm.startBroadcast(pk);
pendleRelayerFactory = new PendleRelayerFactory();
IAuthorizable(address(pendleRelayerFactory)).addAuthorization(vm.addr(pk));
vm.stopBroadcast();
}
}
31 changes: 31 additions & 0 deletions src/interfaces/factories/IPendleRelayerFactory.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.7.6;

import {IBaseOracle} from '@interfaces/oracles/IBaseOracle.sol';

interface IPendleRelayerFactory {
// --- Events ---
event NewPendlePtRelayer(address indexed _market, address _oracle, uint32 _twapDuration);
event NewPendleYtRelayer(address indexed _market, address _oracle, uint32 _twapDuration);
event NewPendleLpRelayer(address indexed _market, address _oracle, uint32 _twapDuration);

// --- Methods ---

function deployPendlePtRelayer(
address _market,
address _oracle,
uint32 _twapDuration
) external returns (IBaseOracle _pendlePtRelayerChild);

function deployPendleYtRelayer(
address _market,
address _oracle,
uint32 _twapDuration
) external returns (IBaseOracle _pendleYtRelayerChild);

function deployPendleLpRelayer(
address _market,
address _oracle,
uint32 _twapDuration
) external returns (IBaseOracle _pendleLpRelayerChild);
}
6 changes: 0 additions & 6 deletions src/interfaces/oracles/pendle/IPMarket.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,5 @@ import {IPYieldToken} from '@interfaces/oracles/pendle/IPYieldToken.sol';
import {IERC20Metadata} from '@interfaces/utils/IERC20Metadata.sol';

interface IPMarket is IERC20Metadata {
/**
* required functions:
* getPtToSYRate
* readTokens()
*/
function getPtToSyRate(address market, uint32 duration) external view returns (uint256);
function readTokens() external view returns (IStandardizedYield _SY, IPPrincipalToken _PT, IPYieldToken _YT);
}

0 comments on commit bf94cf0

Please sign in to comment.