Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/contracts/cli/config/assets/mainnetstaging.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,9 @@
{
"symbol": "xPufETH",
"contractName": "PufETH"
},
{
"symbol": "PT-sUSDE",
"contractName": "PTSUSDE"
}
]
4 changes: 4 additions & 0 deletions packages/contracts/script/MainnetStaging.sol
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ abstract contract MainnetAssets {
///////////////////// xTEST (xERC20) -- Whitelisted ✅
address public constant ARBITRUM_XTEST = 0xCDFAb2b2fA913385056E713D104c1b268e4898A5;
address public constant ZIRCUIT_XTEST = 0xad560465f00fCcf3F10Ad3474cb8440A143b16Df;

///////////////////// PT-sUSDE -- Whitelisted ✅
address public ETHERUEM_PTSUSDE = 0xE8483517077afa11A9B07f849cee2552f040d7b2;
bytes32 public SOLANA_PTSUSDE = 0x05c0ad344d082fe99030a0414acc5726b24c89e1a511eac6e58d809145dd6503;
}

abstract contract Everclear {
Expand Down
73 changes: 73 additions & 0 deletions packages/contracts/script/assets/mainnetstaging/PTSUSDE.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.25;

import {TypeCasts} from 'contracts/common/TypeCasts.sol';

import {IEverclear} from 'interfaces/common/IEverclear.sol';
import {IHubStorage} from 'interfaces/hub/IHubStorage.sol';

import {AddAssetBase} from '../AddAsset.s.sol';

import {MainnetStagingEnvironment} from '../../MainnetStaging.sol';

contract PTSUSDE is AddAssetBase, MainnetStagingEnvironment {
using TypeCasts for address;

function _fetchTokenSetup()
internal
override(AddAssetBase)
returns (string memory _symbol, IHubStorage.TokenSetup memory _setup)
{
/*///////////////////////////////////////////////////////////////
TICKER HASH
//////////////////////////////////////////////////////////////*/

_symbol = 'PT-sUSDE';
bytes32 _tickerHash = keccak256(bytes(_symbol));

/*///////////////////////////////////////////////////////////////
TOKEN FEES
//////////////////////////////////////////////////////////////*/

IHubStorage.Fee[] memory _fees = new IHubStorage.Fee[](0);
// _fees[0] = IHubStorage.Fee({recipient: OWNER, fee: 100}); // 10 BPS

/*///////////////////////////////////////////////////////////////
ADOPTED CONFIGURATION
//////////////////////////////////////////////////////////////*/

IHubStorage.AssetConfig[] memory _assetConfigs = new IHubStorage.AssetConfig[](2);

///// Ethereum
_assetConfigs[0] = IHubStorage.AssetConfig({
tickerHash: _tickerHash,
adopted: ETHERUEM_PTSUSDE.toBytes32(),
domain: ETHEREUM,
approval: true,
strategy: IEverclear.Strategy.DEFAULT
});

///// Solana
_assetConfigs[1] = IHubStorage.AssetConfig({
tickerHash: _tickerHash,
adopted: SOLANA_PTSUSDE,
domain: SOLANA,
approval: true,
strategy: IEverclear.Strategy.DEFAULT
});

/*///////////////////////////////////////////////////////////////
TOKEN SETUP
//////////////////////////////////////////////////////////////*/

_setup = IHubStorage.TokenSetup({
tickerHash: _tickerHash,
initLastClosedEpochProcessed: true,
prioritizedStrategy: IEverclear.Strategy.XERC20,
maxDiscountDbps: 0,
discountPerEpoch: 0,
fees: _fees,
adoptedForAssets: _assetConfigs
});
}
}
Loading