diff --git a/LICENSE b/LICENSE index 63c2856..7b922f8 100644 --- a/LICENSE +++ b/LICENSE @@ -60,13 +60,13 @@ The Business Source License (this document, or the "License") is not an Open Sou This project incorporates code from or depends upon the following projects: ### GPL-licensed dependencies: -- **Uniswap V3 Core and Periphery** ([v3-core](https://github.com/Uniswap/v3-core), [v3-periphery](https://github.com/Uniswap/v3-periphery)), licensed under GPL-2.0-or-later -- **Morpho's MetaMorpho** ([metamorpho](https://github.com/morpho-org/metamorpho)), licensed under GPL-2.0 +- **Uniswap V3 Core and Periphery** (use its interface for the AMM model without modification to the dependency) ([v3-core](https://github.com/Uniswap/v3-core), [v3-periphery](https://github.com/Uniswap/v3-periphery)), licensed under GPL-2.0-or-later +- **Morpho's MetaMorpho**( use its interface to swap tokens on Morpho without modification to the dependency) ([metamorpho](https://github.com/morpho-org/metamorpho)), licensed under GPL-2.0 +- **Pendle Core V2** (use its interface to swap tokens on Pendle without modification to the dependency) ([pendle-core-v2-public](https://github.com/pendle-finance/pendle-core-v2-public)), licensed under GPL-3.0-or-later -### Other dependencies: +### MIT-licensed dependencies: - **OpenZeppelin Contracts** ([openzeppelin-contracts](https://github.com/OpenZeppelin/openzeppelin-contracts), [openzeppelin-contracts-upgradeable](https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable)), licensed under MIT - **Chainlink** ([chainlink](https://github.com/smartcontractkit/chainlink)), licensed under MIT -- **Pendle Core V2** ([pendle-core-v2-public](https://github.com/pendle-finance/pendle-core-v2-public)), licensed under BUSL-1.1 - **Foundry's forge-std** ([forge-std](https://github.com/foundry-rs/forge-std)), licensed under MIT Users of this software must comply with the terms of all applicable licenses. \ No newline at end of file diff --git a/README.md b/README.md index 80cfc1b..504bdc6 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,12 @@ Test without fork. $ forge test --skip Fork ``` +Using '--isolate' when testing TermMaxVault. + +```shell +$ forge test --skip Fork --isolate +``` + Using test scripts can configure multiple environments more flexibly, it will automatically configure the environment variables you need. Do unit test if you have an env file named sepolia.env. diff --git a/SCRIPT_USAGE.md b/SCRIPT_USAGE.md index 00a1ae6..f62f00b 100644 --- a/SCRIPT_USAGE.md +++ b/SCRIPT_USAGE.md @@ -24,6 +24,7 @@ The `script.sh` utility is a flexible command runner that can handle both deploy - `deploy:market` - Deploy Market contracts - `deploy:order` - Deploy Order contracts - `deploy:vault` - Deploy Vault contracts + - `deploy:pretmx` - Deploy PreTMX token contract - Script commands: - `script:` - Run a custom script (e.g., `script:GrantRoles`, `script:SubmitOracles`) @@ -63,6 +64,15 @@ The `script.sh` utility is a flexible command runner that can handle both deploy # Run E2ETest script on Arbitrum Sepolia ./script.sh arb-sepolia script:E2ETest + +# Deploy PreTMX token contract on Ethereum Sepolia (dry run) +./script.sh eth-sepolia deploy:pretmx + +# Deploy PreTMX token contract on Arbitrum Mainnet and broadcast transactions +./script.sh arb-mainnet deploy:pretmx --broadcast + +# Deploy PreTMX token contract with verification on Ethereum Mainnet +./script.sh eth-mainnet deploy:pretmx --broadcast --verify ``` ## System Setup Flow @@ -114,6 +124,46 @@ The proper sequence for setting up the TermMax system is as follows: Following this sequence ensures that contracts are deployed with the correct dependency chain and permissions setup. +## PreTMX Token Deployment + +The PreTMX token can be deployed independently of the main system flow as it's a standalone tokenomics contract: + +```bash +# Deploy PreTMX token contract +./script.sh deploy:pretmx --broadcast +``` + +This creates a `-pretmx.json` file containing the PreTMX token contract details. + +### PreTMX Token Features + +- **Token Name**: "Pre TermMax Token" +- **Symbol**: "pTMX" +- **Initial Supply**: 1,000,000,000 tokens (1e9 ether) +- **Access Control**: Uses `Ownable2Step` for secure ownership transfer +- **Transfer Restrictions**: Transfers are initially restricted and require whitelisting +- **Initial State**: Admin is whitelisted for both sending and receiving transfers + +### Post-Deployment Management + +After deployment, the admin can manage the token through the following functions: + +1. **Transfer Restrictions**: + - `enableTransfer()` - Remove all transfer restrictions + - `disableTransfer()` - Re-enable transfer restrictions + +2. **Whitelist Management**: + - `whitelistTransferFrom(address, bool)` - Allow/disallow an address to send tokens + - `whitelistTransferTo(address, bool)` - Allow/disallow an address to receive tokens + +3. **Token Operations**: + - `mint(address, uint256)` - Mint additional tokens (admin only) + - `burn(uint256)` - Burn tokens (any token holder) + +4. **Ownership Transfer** (Two-step process for security): + - `transferOwnership(address)` - Initiate ownership transfer + - New owner calls `acceptOwnership()` - Complete the transfer + ## Special Environment Variables Some scripts require specific environment variables: @@ -165,4 +215,225 @@ The oracle update process consists of two steps: 2. **Accept Oracles**: After the timelock period, use the `AcceptOracles` script to accept the pending oracles. ```bash ./script.sh script:AcceptOracles --broadcast - ``` \ No newline at end of file + ``` + +## Date Suffix System for Script JSON Output + +The script system automatically appends date suffixes to JSON output files to create unique, timestamped records for each execution. + +### Overview + +The system automatically appends date suffixes to JSON output files to: +- Create unique records for each script execution +- Prevent overwriting previous execution results +- Enable historical tracking of deployments and contract interactions +- Facilitate auditing and debugging + +### Date Format + +The date suffix uses the format: `DDMMMYYYY` (e.g., `15JAN2024`) +- `DD`: Two-digit day (01-31) +- `MMM`: Three-letter month abbreviation (JAN, FEB, MAR, etc.) +- `YYYY`: Four-digit year + +### File Structure + +#### Deployment Scripts +Deployment scripts save JSON files to: `/deployments/{network}/{network}-{contractType}-{dateSuffix}.json` + +Examples: +- `/deployments/eth-sepolia/eth-sepolia-pretmx-15JAN2024.json` +- `/deployments/arb-mainnet/arb-mainnet-core-15JAN2024.json` +- `/deployments/eth-mainnet/eth-mainnet-access-manager-15JAN2024.json` + +#### Contract Call Scripts +Contract call scripts save JSON files to: `/executions/{network}/{network}-{scriptName}-{dateSuffix}.json` + +Examples: +- `/executions/eth-sepolia/eth-sepolia-SubmitOracles-15JAN2024.json` +- `/executions/arb-mainnet/arb-mainnet-AcceptOracles-15JAN2024.json` +- `/executions/eth-mainnet/eth-mainnet-GrantRoles-15JAN2024.json` + +### Implementation + +#### For Deployment Scripts + +Deployment scripts inherit from `DeployBase` which provides: + +```solidity +// Helper function to generate date suffix +function getDateSuffix() internal view returns (string memory) { + return StringHelper.convertTimestampToDateString(block.timestamp); +} + +// Helper function to create deployment file path with date suffix +function getDeploymentFilePath(string memory network, string memory contractType) + internal view returns (string memory) { + string memory dateSuffix = getDateSuffix(); + string memory deploymentsDir = string.concat(vm.projectRoot(), "/deployments/", network); + return string.concat(deploymentsDir, "/", network, "-", contractType, "-", dateSuffix, ".json"); +} +``` + +Usage in deployment scripts: +```solidity +// Write the JSON file with date suffix +string memory filePath = getDeploymentFilePath(network, "pretmx"); +vm.writeFile(filePath, deploymentJson); +``` + +#### For Contract Call Scripts + +Contract call scripts inherit from `ScriptBase` which provides: + +```solidity +// Helper function to create script execution file path with date suffix +function getScriptExecutionFilePath(string memory network, string memory scriptName) + internal view returns (string memory) { + string memory dateSuffix = getDateSuffix(); + string memory executionsDir = string.concat(vm.projectRoot(), "/executions/", network); + return string.concat(executionsDir, "/", network, "-", scriptName, "-", dateSuffix, ".json"); +} + +// Helper function to write script execution results to JSON +function writeScriptExecutionResults( + string memory network, + string memory scriptName, + string memory executionData +) internal { + // Create executions directory if it doesn't exist + string memory executionsDir = string.concat(vm.projectRoot(), "/executions/", network); + if (!vm.exists(executionsDir)) { + vm.createDir(executionsDir, true); + } + + // Write the JSON file with date suffix + string memory filePath = getScriptExecutionFilePath(network, scriptName); + vm.writeFile(filePath, executionData); + console.log("Script execution information written to:", filePath); +} +``` + +Usage in contract call scripts: +```solidity +// Generate execution results JSON +uint256 currentBlock = block.number; +uint256 currentTimestamp = block.timestamp; + +string memory baseJson = createBaseExecutionJson(network, "SubmitOracles", currentBlock, currentTimestamp); + +// Add script-specific data +string memory executionJson = string( + abi.encodePacked( + baseJson, + ',\n', + ' "results": {\n', + ' "totalConfigs": "', + vm.toString(configs.length), + '"\n', + " }\n", + "}" + ) +); + +writeScriptExecutionResults(network, "SubmitOracles", executionJson); +``` + +### JSON Structure + +#### Deployment Scripts JSON +```json +{ + "network": "eth-sepolia", + "deployedAt": "1705334400", + "gitBranch": "main", + "gitCommitHash": "0xabc123...", + "blockInfo": { + "number": "12345678", + "timestamp": "1705334400" + }, + "deployer": "0x123...", + "admin": "0x456...", + "contracts": { + "preTMX": { + "address": "0x789...", + "name": "PreTMX Token", + "symbol": "PreTMX", + "totalSupply": "1000000000000000000000000000", + "owner": "0x456...", + "transferRestricted": true + } + } +} +``` + +#### Contract Call Scripts JSON +```json +{ + "network": "eth-sepolia", + "scriptName": "SubmitOracles", + "executedAt": "1705334400", + "gitBranch": "main", + "gitCommitHash": "0xabc123...", + "blockInfo": { + "number": "12345678", + "timestamp": "1705334400" + }, + "results": { + "totalConfigs": "5", + "oracleAggregatorAddress": "0x123...", + "accessManagerAddress": "0x456..." + } +} +``` + +### Updated Scripts + +#### Deployment Scripts +- ✅ `DeployBase.s.sol` - Base contract with date suffix utilities +- ✅ `DeployPretmx.s.sol` - Updated to use date suffixes + +#### Contract Call Scripts +- ✅ `ScriptBase.sol` - Base contract with JSON output and date suffix utilities +- ✅ `SubmitOracles.s.sol` - Updated with JSON output and date suffixes +- ✅ `AcceptOracles.s.sol` - Updated with JSON output and date suffixes +- ✅ `GrantRoles.s.sol` - Updated with JSON output and date suffixes + +#### Scripts to Update +Other contract call scripts can be updated by: +1. Changing inheritance from `Script` to `ScriptBase` +2. Adding JSON output generation at the end of the `run()` function +3. Using `writeScriptExecutionResults()` to save the JSON file + +### Benefits + +1. **Historical Tracking**: Each execution creates a unique record +2. **Audit Trail**: Complete history of deployments and contract interactions +3. **Debugging**: Easy to compare different execution results +4. **No Overwrites**: Previous execution data is preserved +5. **Organized Storage**: Clear separation between deployments and executions +6. **Timestamped Records**: Easy to identify when operations occurred + +### Directory Structure + +``` +project-root/ +├── deployments/ +│ ├── eth-sepolia/ +│ │ ├── eth-sepolia-pretmx-15JAN2024.json +│ │ ├── eth-sepolia-core-15JAN2024.json +│ │ └── eth-sepolia-access-manager-14JAN2024.json +│ └── arb-mainnet/ +│ ├── arb-mainnet-pretmx-15JAN2024.json +│ └── arb-mainnet-core-15JAN2024.json +└── executions/ + ├── eth-sepolia/ + │ ├── eth-sepolia-SubmitOracles-15JAN2024.json + │ ├── eth-sepolia-AcceptOracles-15JAN2024.json + │ └── eth-sepolia-GrantRoles-14JAN2024.json + └── arb-mainnet/ + ├── arb-mainnet-SubmitOracles-15JAN2024.json + └── arb-mainnet-AcceptOracles-15JAN2024.json +``` + +This system ensures comprehensive tracking of all script executions while maintaining organized, timestamped records for audit and debugging purposes. \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/1/run-1750473958.json b/broadcast/DeployAdapters.s.sol/1/run-1750473958.json new file mode 100644 index 0000000..24586e6 --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/1/run-1750473958.json @@ -0,0 +1,354 @@ +{ + "transactions": [ + { + "hash": "0x285f30cc30eaab1ac799d72d57f614051fd2e063de938a14a773335e3733e574", + "transactionType": "CREATE", + "contractName": "UniswapV3Adapter", + "contractAddress": "0xece68c88d0d1789bd13a8519fba51eb870fa0cc7", + "function": null, + "arguments": [ + "0xE592427A0AEce92De3Edee1F18E0157C05861564" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xb9660", + "value": "0x0", + "input": "0x60a034606e57601f610a1838819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606e57516001600160a01b03811690819003606e57608052604051610991908161008782396080518181816065015261015c0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146105485780636563c0e9146104c85780639df303251461048c578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b1610582565b6100b9610598565b5060443567ffffffffffffffff8111610094576100da9036906004016105ec565b60643567ffffffffffffffff8111610094576100fa9036906004016105ec565b906020815191818082019384920101031261009457516040516370a0823160e01b8152306004820152926001600160a01b0316602084602481845afa9384156103b9575f94610458575b5060405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166004820181905260248201849052906020816044815f875af180156103b957610421575b5083518401906080856020840193031261009457602085015167ffffffffffffffff811161009457850182603f82011215610094576020810151906101e4826105d0565b936101f260405195866105ae565b8285526040828401011161009457815f926040602093018387015e8401015260408501519060806060870151960151928584029380850487149015171561037357861561040d5760405160a081019080821067ffffffffffffffff8311176103f9576020956102ac935f9360405282528682019030825260408301968752606083019a8a8c5260808401910481526040519a8b978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610688565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af19283156103b9575f936103c4575b506020602491604051928380926370a0823160e01b82523060048301525afa9081156103b9575f91610387575b508361031983836106ac565b036103525761034e836040519060208201526020815261033a6040826105ae565b604051918291602083526020830190610688565b0390f35b909150820391821161037357638e17b66b60e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d6020116103b1575b816103a2602093836105ae565b8101031261009457518461030d565b3d9150610395565b6040513d5f823e3d90fd5b9092506020813d6020116103f1575b816103e0602093836105ae565b8101031261009457519160206102e0565b3d91506103d3565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b6020813d602011610450575b8161043a602093836105ae565b81010312610094575180151581146101a0575f80fd5b3d915061042d565b9093506020813d602011610484575b81610474602093836105ae565b8101031261009457519284610144565b3d9150610467565b346100945761049a36610632565b9190602083519381808201958692010103126100945791516104c69290916001600160a01b03166107a3565b005b34610094576080366003190112610094576104e1610582565b6104e9610598565b906044356001600160a01b03811681036100945760643567ffffffffffffffff81116100945761051d9036906004016105ec565b92602084519481808201968792010103126100945792516104c69390926001600160a01b031661073b565b346100945761055636610632565b9190602083519381808201958692010103126100945791516104c69290916001600160a01b03166106b9565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103f957604052565b67ffffffffffffffff81116103f957601f01601f191660200190565b81601f8201121561009457803590610603826105d0565b9261061160405194856105ae565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff821161009457610685916004016105ec565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161037357565b9091905f19821461072c576001600160a01b03831630148015610724575b61071f5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261071d91906107186064836105ae565b610903565b565b505050565b5081156106d7565b630d550c3b60e11b5f5260045ffd5b9092915f19831461072c576001600160a01b03908116931691828414801561079b575b6107955761071d93604051936323b872dd60e01b6020860152602485015260448401526064830152606482526107186084836105ae565b50505050565b50801561075e565b821580156108f1575b61071f57604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa9081156103b9575f916108bd575b50610839946108476108066020945f946106ac565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f1981018852876105ae565b85519082865af1903d5f51908361089e575b5050501561086657505050565b61071861071d936040519063095ea7b360e01b602083015260248201525f6044820152604481526108986064826105ae565b82610903565b919250906108b357503b15155b5f8080610859565b60019150146108ab565b90506020813d6020116108e9575b816108d8602093836105ae565b8101031261009457516108396107f1565b3d91506108cb565b506001600160a01b03821630146107ac565b905f602091828151910182855af1156103b9575f513d61095257506001600160a01b0381163b155b6109325750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561092b56fea26469706673582212206ad8ebc6ec787a48097d03c1fbb2ad1b7bd771674b19f2f62398a14d8b67431064736f6c634300081b0033000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564", + "nonce": "0x363", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xbd570f787d17545500e716109468f03dcbebd9691b82268687e076a0cdee5ada", + "transactionType": "CREATE", + "contractName": "OdosV2Adapter", + "contractAddress": "0xd402019cd1ec046dd74a70922f24c2e3cbb05e24", + "function": null, + "arguments": [ + "0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xcfd2b", + "value": "0x0", + "input": "0x60a034606e57601f610b5f38819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606e57516001600160a01b03811690819003606e57608052604051610ad890816100878239608051818181606501526101600152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b1461064a5780636563c0e9146105ca5780639df303251461058e578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b1610684565b6100b961069a565b9060443567ffffffffffffffff8111610094576100da9036906004016106ee565b9060643567ffffffffffffffff8111610094576100fb9036906004016106ee565b916020815191818082019384920101031261009457516040516370a0823160e01b81523060048201529390916001600160a01b031690602085602481855afa948515610493575f9561055a575b5060405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482018190526024820185905291906020816044815f885af1801561049357610523575b5084518501948060208701960361014081126100945760e013610094576040519060e0820182811067ffffffffffffffff82111761050f576040526101ec60208201610a05565b82526040810151926020830193845261020760608301610a05565b976040840198895261021b60808401610a05565b6060850190815260a08401516080860190815260c08501519060a0870191825261024760e08701610a05565b9260c0880193845261010087015167ffffffffffffffff811161009457870185603f8201121561009457602081015190610280826106d2565b9661028e60405198896106b0565b8288526040828401011161009457815f92604060209301838a015e870101526101208701516001600160a01b03811697908890036100945761014001519563ffffffff87168097036100945781516001600160a01b039182169116036104d3578b8251906102fb91610a19565b895161030691610a2c565b82528b83519061031591610a19565b895161032091610a2c565b83528b8952308452604051630ed8d73960e21b815297516001600160a01b0390811660048a0152985160248901529b51881660448801529a518716606487015299516084860152985160a4850152975190931660c483015261014060e4830152909586928392916103969061014485019061078a565b9161010484015261012483015203815a6020945f91f1928315610493575f9361049e575b506020602491604051928380926370a0823160e01b82523060048301525afa908115610493575f91610461575b50836103f383836107ae565b0361042c5761042883604051906020820152602081526104146040826106b0565b60405191829160208352602083019061078a565b0390f35b909150820391821161044d57638e17b66b60e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d60201161048b575b8161047c602093836106b0565b810103126100945751846103e7565b3d915061046f565b6040513d5f823e3d90fd5b9092506020813d6020116104cb575b816104ba602093836106b0565b8101031261009457519160206103ba565b3d91506104ad565b60405162461bcd60e51b815260206004820152601460248201527324a72b20a624a22fa7aaaa282aaa2faa27a5a2a760611b6044820152606490fd5b634e487b7160e01b5f52604160045260245ffd5b6020813d602011610552575b8161053c602093836106b0565b81010312610094575180151581146101a5575f80fd5b3d915061052f565b9094506020813d602011610586575b81610576602093836106b0565b8101031261009457519385610148565b3d9150610569565b346100945761059c36610734565b9190602083519381808201958692010103126100945791516105c89290916001600160a01b03166108a5565b005b34610094576080366003190112610094576105e3610684565b6105eb61069a565b906044356001600160a01b03811681036100945760643567ffffffffffffffff81116100945761061f9036906004016106ee565b92602084519481808201968792010103126100945792516105c89390926001600160a01b031661083d565b346100945761065836610734565b9190602083519381808201958692010103126100945791516105c89290916001600160a01b03166107bb565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761050f57604052565b67ffffffffffffffff811161050f57601f01601f191660200190565b81601f8201121561009457803590610705826106d2565b9261071360405194856106b0565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff821161009457610787916004016106ee565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161044d57565b9091905f19821461082e576001600160a01b03831630148015610826575b6108215760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261081f919061081a6064836106b0565b610a4a565b565b505050565b5081156107d9565b630d550c3b60e11b5f5260045ffd5b9092915f19831461082e576001600160a01b03908116931691828414801561089d575b6108975761081f93604051936323b872dd60e01b60208601526024850152604484015260648301526064825261081a6084836106b0565b50505050565b508015610860565b821580156109f3575b61082157604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa908115610493575f916109bf575b5061093b946109496109086020945f946107ae565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f1981018852876106b0565b85519082865af1903d5f5190836109a0575b5050501561096857505050565b61081a61081f936040519063095ea7b360e01b602083015260248201525f60448201526044815261099a6064826106b0565b82610a4a565b919250906109b557503b15155b5f808061095b565b60019150146109ad565b90506020813d6020116109eb575b816109da602093836106b0565b81010312610094575161093b6108f3565b3d91506109cd565b506001600160a01b03821630146108ae565b51906001600160a01b038216820361009457565b8181029291811591840414171561044d57565b8115610a36570490565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610493575f513d610a9957506001600160a01b0381163b155b610a795750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415610a7256fea26469706673582212204763315a6411a7960fce618c8c1b5d96ae7ea3c2ea7ebb92abcf095b95bbea1c64736f6c634300081b0033000000000000000000000000cf5540fffcdc3d510b18bfca6d2b9987b0772559", + "nonce": "0x364", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf09987959d483053d251c4b92e8f9b37964ef6082632cf0d973286115b5c289f", + "transactionType": "CREATE", + "contractName": "PendleSwapV3Adapter", + "contractAddress": "0xfbbbb37aaa95a8f1c4498c9066318c2b5680fb84", + "function": null, + "arguments": [ + "0x888888888889758F76e7103c6CbF23ABbF58F946" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x17488f", + "value": "0x0", + "input": "0x60a0604052346100ea57604051601f6113d838819003918201601f19168301916001600160401b038311848410176100d6578084926020946040528339810103126100ea57516001600160a01b038116908190036100ea5760405160a081016001600160401b038111828210176100d657655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c556080526040516112e990816100ef8239608051818181608901526103200152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610a6b575080633268263b14610a315780634ebfc814146109f25780636563c0e9146109725780639df3032514610936578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610c0d565b60ff60025416610150604051938361012e8660ff819716610d3f565b60081c6001600160a01b03166020850152608060408501819052840190610c43565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610c67565b610219610c7d565b9060443567ffffffffffffffff81116100b85761023a903690600401610c93565b9060643567ffffffffffffffff81116100b85761025b903690600401610c93565b91602081519181808201938492010103126100b857516040516370a0823160e01b8152306004820152936001600160a01b03909216929091602085602481875afa948515610551575f95610902575b5060018060a01b0316906060818051810103126100b85760208101516001600160a01b038116908190036100b857606060408301519201519260405192630b2339af60e21b8452606084600481865afa938415610551575f94610895575b5060405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482018190526024820188905295906020816044815f8d5af1801561055157610878575b508681029080820488149015171561050b5781156108645704926001600160a01b0316908082036105ba57505060405163095ea7b360e01b81526001600160a01b038416600482015260248101859052926020846044815f8a5af1928315610551576104509460609461058d575b505f6103dd6111eb565b938885528760208601528860408601526104626040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610fea565b8281036003190161012484015261119b565b03925af1908115610551576024916020915f9161055c575b50935b6040516370a0823160e01b815230600482015292839182905afa908115610551575f9161051f575b50836104b18383610d60565b036104ea576104e683604051906020820152602081526104d2604082610c0d565b604051918291602083526020830190610c43565b0390f35b909150820391821161050b57638e17b66b60e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d602011610549575b8161053a60209383610c0d565b810103126100b85751846104a5565b3d915061052d565b6040513d5f823e3d90fd5b61057e915060603d606011610586575b6105768183610c0d565b810190610fcf565b50508661047a565b503d61056c565b6105ae9060203d6020116105b3575b6105a68183610c0d565b810190610fb7565b6103d3565b503d61059c565b90929593604051630bc4ed8360e21b8152602081600481885afa908115610551575f91610845575b501561073c5750505060206004916040519283809263781c18db60e01b82525afa908115610551575f916106fa575b5060405163a9059cbb60e01b81526001600160a01b039190911660048201819052602482018490529093906020856044815f875af1908115610551575f956020926106df575b5060246040518097819363bcb7ea5d60e01b83523060048401525af1938415610551575f946106ab575b5083818110610696575050602060249161047d565b63eb7f211d60e01b5f5260045260245260445ffd5b9093506020813d6020116106d7575b816106c760209383610c0d565b810103126100b857519285610681565b3d91506106ba565b6106f590833d85116105b3576105a68183610c0d565b610657565b90506020813d602011610734575b8161071560209383610c0d565b810103126100b857516001600160a01b03811681036100b85785610611565b3d9150610708565b60405163095ea7b360e01b81526001600160a01b0382166004820152602481018790529496929491935090916020836044815f8b5af18015610551576107e8956060956107d7955f93610828575b506107936111eb565b938185526020850152604084015260405196879586948593631652a23360e21b855230600486015260248501528a604485015260a0606485015260a4840190610fea565b82810360031901608484015261119b565b03925af1908115610551576024916020915f91610807575b509361047d565b610820915060603d606011610586576105768183610c0d565b505086610800565b6108409060203d6020116105b3576105a68183610c0d565b61078a565b61085e915060203d6020116105b3576105a68183610c0d565b896105e2565b634e487b7160e01b5f52601260045260245ffd5b6108909060203d6020116105b3576105a68183610c0d565b610365565b9093506060813d6060116108fa575b816108b160609383610c0d565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579288610308565b3d91506108a4565b9094506020813d60201161092e575b8161091e60209383610c0d565b810103126100b8575193856102aa565b3d9150610911565b346100b85761094436610ce9565b9190602083519381808201958692010103126100b85791516109709290916001600160a01b0316610e57565b005b346100b85760803660031901126100b85761098b610c67565b610993610c7d565b906044356001600160a01b03811681036100b85760643567ffffffffffffffff81116100b8576109c7903690600401610c93565b92602084519481808201968792010103126100b85792516109709390926001600160a01b0316610def565b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610a3f36610ce9565b9190602083519381808201958692010103126100b85791516109709290916001600160a01b0316610d6d565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610b6c575b6020831081146101da57828552908115610b485750600114610aea575b5090610acc816104e6930382610c0d565b60405193849384526020840152606060408401526060830190610c43565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610b2e57509091508101602001610acc610abb565b919260018160209254838588010152019101909291610b16565b60ff191660208086019190915291151560051b84019091019150610acc9050610abb565b91607f1691610a9e565b5f92918154918260011c92600181168015610c03575b6020851081146101da57848452908115610be65750600114610bad57505050565b5f9081526020812093945091925b838310610bcc575060209250010190565b600181602092949394548385870101520191019190610bbb565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610b8c565b90601f8019910116810190811067ffffffffffffffff821117610c2f57604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610c2f5760405192610cc8601f8401601f191660200185610c0d565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610d3c91600401610c93565b90565b90600b821015610d4c5752565b634e487b7160e01b5f52602160045260245ffd5b9190820180921161050b57565b9091905f198214610de0576001600160a01b03831630148015610dd8575b610dd35760405163a9059cbb60e01b60208201526001600160a01b03939093166024840152604480840192909252908252610dd19190610dcc606483610c0d565b61125b565b565b505050565b508115610d8b565b630d550c3b60e11b5f5260045ffd5b9092915f198314610de0576001600160a01b039081169316918284148015610e4f575b610e4957610dd193604051936323b872dd60e01b602086015260248501526044840152606483015260648252610dcc608483610c0d565b50505050565b508015610e12565b82158015610fa5575b610dd357604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa908115610551575f91610f71575b50610eed94610efb610eba6020945f94610d60565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f198101885287610c0d565b85519082865af1903d5f519083610f52575b50505015610f1a57505050565b610dcc610dd1936040519063095ea7b360e01b602083015260248201525f604482015260448152610f4c606482610c0d565b8261125b565b91925090610f6757503b15155b5f8080610f0d565b6001915014610f5f565b90506020813d602011610f9d575b81610f8c60209383610c0d565b810103126100b85751610eed610ea5565b3d9150610f7f565b506001600160a01b0382163014610e60565b908160209103126100b8575180151581036100b85790565b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a0608082015261103f60a082018351610d3f565b60208201516001600160a01b031660c08201526040820151608060e08301526101009060609061107490610120850190610c43565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b8382106110ad57505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610d4c5760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d906111816111716101e08301600a8c01610b76565b82810385840152600b8b01610b76565b906040600c8b01549101529701940192019093929361109e565b610d3c9060018060a01b03600354168152600454602082015260a060408201526111db6111cc60a08301600561107f565b8281036060840152600661107f565b9060808183039101526007610b76565b6040519060a0820182811067ffffffffffffffff821117610c2f57604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610c2f576080916040525f83525f6020840152606060408401525f60608401520152565b905f602091828151910182855af115610551575f513d6112aa57506001600160a01b0381163b155b61128a5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561128356fea26469706673582212201ee77fd202ede4dc014cdf8b197fb2ef16d65387626d9feaaf9b419b66e37d0764736f6c634300081b0033000000000000000000000000888888888889758f76e7103c6cbf23abbf58f946", + "nonce": "0x365", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x9f08285e86f6f696d8e67c8b9476df2ac90b6f6d8a455f8693fc88d56d9f6c0e", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapter", + "contractAddress": "0xe62567e9a8969aae406195f7c4c7e4e85d4ed879", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xb5b9e", + "value": "0x0", + "input": "0x60808060405234601557610961908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b1461051c5780636563c0e91461049c5780639df30325146104605763e0a8041314610045575f80fd5b3461029d57608036600319011261029d5761005e610556565b61006661056c565b60443567ffffffffffffffff811161029d576100869036906004016105b8565b9160643567ffffffffffffffff811161029d576100a79036906004016105b8565b926020815191818082019384920101031261029d57516040516370a0823160e01b81523060048201529290916001600160a01b031690602084602481855afa9384156102a9575f9461042c575b5060018060a01b03169360608180518101031261029d57602081015190600282101561029d57606060408201519101518481029080820486149015171561025f57811561041857049080610328575060405163095ea7b360e01b81526001600160a01b038616600482015260248101849052946020866044815f875af19081156102a9575f966020926102fd575b50604460405180988193636e553f6560e01b83528860048401523060248401525af19485156102a9575f956102c9575b50848181106102b457505060206024915b6040516370a0823160e01b815230600482015292839182905afa9081156102a9575f91610273575b50826101f78383610664565b0361024157836040805160208101928352602081526102168282610582565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b820391821161025f57638e17b66b60e01b5f5260045260245260445ffd5b634e487b7160e01b5f52601160045260245ffd5b90506020813d6020116102a1575b8161028e60209383610582565b8101031261029d57515f6101eb565b5f80fd5b3d9150610281565b6040513d5f823e3d90fd5b63eb7f211d60e01b5f5260045260245260445ffd5b9094506020813d6020116102f5575b816102e560209383610582565b8101031261029d5751935f6101b2565b3d91506102d8565b61031c90833d8511610321575b6103148183610582565b8101906108bb565b610182565b503d61030a565b9094506001036104095760405163095ea7b360e01b81526001600160a01b0382166004820152602481018390526020816044815f865af180156102a9576103ec575b5060405193635d043b2960e11b85528260048601523060248601523060448601526020856064815f865af19485156102a9575f956103b8575b50848181106102b457505060206024916101c3565b9094506020813d6020116103e4575b816103d460209383610582565b8101031261029d5751935f6103a3565b3d91506103c7565b6104049060203d602011610321576103148183610582565b61036a565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b9093506020813d602011610458575b8161044860209383610582565b8101031261029d5751925f6100f4565b3d915061043b565b3461029d5761046e3661060e565b91906020835193818082019586920101031261029d57915161049a9290916001600160a01b031661075b565b005b3461029d57608036600319011261029d576104b5610556565b6104bd61056c565b906044356001600160a01b038116810361029d5760643567ffffffffffffffff811161029d576104f19036906004016105b8565b926020845194818082019687920101031261029d57925161049a9390926001600160a01b03166106f3565b3461029d5761052a3661060e565b91906020835193818082019586920101031261029d57915161049a9290916001600160a01b0316610671565b600435906001600160a01b038216820361029d57565b602435906001600160a01b038216820361029d57565b90601f8019910116810190811067ffffffffffffffff8211176105a457604052565b634e487b7160e01b5f52604160045260245ffd5b81601f8201121561029d5780359067ffffffffffffffff82116105a457604051926105ed601f8401601f191660200185610582565b8284526020838301011161029d57815f926020809301838601378301015290565b606060031982011261029d576004356001600160a01b038116810361029d57916024356001600160a01b038116810361029d57916044359067ffffffffffffffff821161029d57610661916004016105b8565b90565b9190820180921161025f57565b9091905f1982146106e4576001600160a01b038316301480156106dc575b6106d75760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526106d591906106d0606483610582565b6108d3565b565b505050565b50811561068f565b630d550c3b60e11b5f5260045ffd5b9092915f1983146106e4576001600160a01b039081169316918284148015610753575b61074d576106d593604051936323b872dd60e01b6020860152602485015260448401526064830152606482526106d0608483610582565b50505050565b508015610716565b821580156108a9575b6106d757604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa9081156102a9575f91610875575b506107f1946107ff6107be6020945f94610664565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f198101885287610582565b85519082865af1903d5f519083610856575b5050501561081e57505050565b6106d06106d5936040519063095ea7b360e01b602083015260248201525f604482015260448152610850606482610582565b826108d3565b9192509061086b57503b15155b5f8080610811565b6001915014610863565b90506020813d6020116108a1575b8161089060209383610582565b8101031261029d57516107f16107a9565b3d9150610883565b506001600160a01b0382163014610764565b9081602091031261029d5751801515810361029d5790565b905f602091828151910182855af1156102a9575f513d61092257506001600160a01b0381163b155b6109025750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108fb56fea2646970667358221220f873473c980ff986be5bdcc90d6237af100c3efe734f2a1fd6277d6017a3857f64736f6c634300081b0033", + "nonce": "0x366", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf51679aa92e64d1b2a43136ad3d1f4b6e85e952cf2718156485c17bc6c245c4c", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000ece68c88d0d1789bd13a8519fba51eb870fa0cc70000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x367", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x13aaefcf3b68f44f31777b417c41c20ffed021babe81eed285b49a6cc9a6fbe4", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000d402019cd1ec046dd74a70922f24c2e3cbb05e240000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x368", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xce702ef3ed3c62c0725af26fb861c0e4622726d5d0ac44afdef5ac873ce4f3b9", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000fbbbb37aaa95a8f1c4498c9066318c2b5680fb840000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x369", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7d2819b3e549a0d05abca93aef14e81e311cb2e8982bab1c932196ff92bc65c1", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000e62567e9a8969aae406195f7c4c7e4e85d4ed8790000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x36a", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1ca2384", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x285f30cc30eaab1ac799d72d57f614051fd2e063de938a14a773335e3733e574", + "transactionIndex": "0x49", + "blockHash": "0xe46e6d7b8546e9a608d73c4c6e540acecf79894bdefa1b690b365fd0a9faa954", + "blockNumber": "0x15b22e7", + "gasUsed": "0x8e9d4", + "effectiveGasPrice": "0x138e318a", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xece68c88d0d1789bd13a8519fba51eb870fa0cc7" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xcf9c58", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xbd570f787d17545500e716109468f03dcbebd9691b82268687e076a0cdee5ada", + "transactionIndex": "0x51", + "blockHash": "0x7d647b9f9ec28158fab0580a0c6c0b03f40c4d8e4e76709726091f286a50ef47", + "blockNumber": "0x15b22e8", + "gasUsed": "0x9fdd3", + "effectiveGasPrice": "0x158bda72", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xd402019cd1ec046dd74a70922f24c2e3cbb05e24" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2e525c", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf09987959d483053d251c4b92e8f9b37964ef6082632cf0d973286115b5c289f", + "transactionIndex": "0x1a", + "blockHash": "0x49fe8d4a454bb8a6f0e3fd05ecc3817c3a120346ab0fb9f390b76bf922f412ed", + "blockNumber": "0x15b22e9", + "gasUsed": "0x11e90c", + "effectiveGasPrice": "0x157d4bdd", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xfbbbb37aaa95a8f1c4498c9066318c2b5680fb84" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2eebd6", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x9f08285e86f6f696d8e67c8b9476df2ac90b6f6d8a455f8693fc88d56d9f6c0e", + "transactionIndex": "0x1a", + "blockHash": "0xb84536ececacfa64eec52695167109296b8207045d0828c979a045c1f74c5bce", + "blockNumber": "0x15b22ea", + "gasUsed": "0x8bca1", + "effectiveGasPrice": "0x14e873ba", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xe62567e9a8969aae406195f7c4c7e4e85d4ed879" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x7e9721", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000ece68c88d0d1789bd13a8519fba51eb870fa0cc70000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x310141b63ea64f7af53e1e836f407d4d2217cc7b2a26ae6b3ce8ee4abbec8447", + "blockNumber": "0x15b22eb", + "blockTimestamp": "0x68561c63", + "transactionHash": "0xf51679aa92e64d1b2a43136ad3d1f4b6e85e952cf2718156485c17bc6c245c4c", + "transactionIndex": "0x5f", + "logIndex": "0xc9", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf51679aa92e64d1b2a43136ad3d1f4b6e85e952cf2718156485c17bc6c245c4c", + "transactionIndex": "0x5f", + "blockHash": "0x310141b63ea64f7af53e1e836f407d4d2217cc7b2a26ae6b3ce8ee4abbec8447", + "blockNumber": "0x15b22eb", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x1433f020", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xc35bd1", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000d402019cd1ec046dd74a70922f24c2e3cbb05e240000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x833160887b2326060161125e15a7fb8d6122b2e68abc1f39a3ec152f59fc07ef", + "blockNumber": "0x15b22ec", + "blockTimestamp": "0x68561c6f", + "transactionHash": "0x13aaefcf3b68f44f31777b417c41c20ffed021babe81eed285b49a6cc9a6fbe4", + "transactionIndex": "0x79", + "logIndex": "0x182", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x13aaefcf3b68f44f31777b417c41c20ffed021babe81eed285b49a6cc9a6fbe4", + "transactionIndex": "0x79", + "blockHash": "0x833160887b2326060161125e15a7fb8d6122b2e68abc1f39a3ec152f59fc07ef", + "blockNumber": "0x15b22ec", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x131fbd43", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xb8ac90", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000fbbbb37aaa95a8f1c4498c9066318c2b5680fb840000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x19f4a8952fcac1e486efc47516c2ed84ead42dec315c1d53a6b8bd6af1030fd0", + "blockNumber": "0x15b22ee", + "blockTimestamp": "0x68561c87", + "transactionHash": "0xce702ef3ed3c62c0725af26fb861c0e4622726d5d0ac44afdef5ac873ce4f3b9", + "transactionIndex": "0x72", + "logIndex": "0x14e", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xce702ef3ed3c62c0725af26fb861c0e4622726d5d0ac44afdef5ac873ce4f3b9", + "transactionIndex": "0x72", + "blockHash": "0x19f4a8952fcac1e486efc47516c2ed84ead42dec315c1d53a6b8bd6af1030fd0", + "blockNumber": "0x15b22ee", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x151d3141", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x7826ba", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000e62567e9a8969aae406195f7c4c7e4e85d4ed8790000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xc2ee0f69f9c8e334c1ce84be36b4b6ca52bb6729d0fade6d80e8c0bccfcafc2f", + "blockNumber": "0x15b22ef", + "blockTimestamp": "0x68561c93", + "transactionHash": "0x7d2819b3e549a0d05abca93aef14e81e311cb2e8982bab1c932196ff92bc65c1", + "transactionIndex": "0x40", + "logIndex": "0xc7", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x7d2819b3e549a0d05abca93aef14e81e311cb2e8982bab1c932196ff92bc65c1", + "transactionIndex": "0x40", + "blockHash": "0xc2ee0f69f9c8e334c1ce84be36b4b6ca52bb6729d0fade6d80e8c0bccfcafc2f", + "blockNumber": "0x15b22ef", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x153bba18", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1750473958, + "chain": 1, + "commit": "53496c4" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/1/run-1751205191.json b/broadcast/DeployAdapters.s.sol/1/run-1751205191.json new file mode 100644 index 0000000..d48d0ac --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/1/run-1751205191.json @@ -0,0 +1,348 @@ +{ + "transactions": [ + { + "hash": "0xf2daa6436d45ff83f0183aa5236377f589706adb7828bb939bb494c5acdc4535", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0xe7a88ab1329cad4168563516e35753b979d0c7a9", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xbaa7f", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220c66a6ef0f7fbba462fbafbd2ef2a7ef760baae0e9780be52e06dc1d37795583464736f6c634300081d0033000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564", + "nonce": "0x372", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4ea8a0018eabfecd3b165de13922451e45676c4afb2f5c9978eb10ca30b97e9c", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0x24c7e21a91cdb7760798e02ea5639d4c60b0c442", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xc9ca6", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea2646970667358221220191f3a0969690b852c0fad405075e504d7c37835c39e58743a8dc57c2ad534da64736f6c634300081d0033000000000000000000000000cf5540fffcdc3d510b18bfca6d2b9987b0772559", + "nonce": "0x373", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf463dfa8918b5fbd3f0519033b108b709e57252c25c8eed9fdd3ba586c0bde83", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0x15aa533cded42c2e38d2bc3ece5bd2bfcf3dd2c0", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x1670a3", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea26469706673582212205bf94e5371bc2f132405be99261f2b9351cbdbf49e328ca512e068eee1eda9d164736f6c634300081d0033000000000000000000000000888888888889758f76e7103c6cbf23abbf58f946", + "nonce": "0x374", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc537405635d58ef18f7259589f1171d68a7393b7c65c29da13079607be3c14ef", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0x98b0c4c13068c3010a809174af31061aef547fbe", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xaf02f", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea26469706673582212208494a0174c4f07fd048515a6e3e22a540bf8edf31a0e807f0e3019b7d5b7c74464736f6c634300081d0033", + "nonce": "0x375", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x0edabaf9bb416d8da0cc6bab22db3331f8f03687db2ae084568f6db9b29e9928", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000e7a88ab1329cad4168563516e35753b979d0c7a90000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x376", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb86edb13b2b4accef989a5413c7ee981fe8a3816e77febc5e996b2b490d1b189", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb1100000000000000000000000024c7e21a91cdb7760798e02ea5639d4c60b0c4420000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x377", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4dcd942cf748d01d465990bc0f1327d8d7110a7fd3fe18fef6fa2e520284457c", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb1100000000000000000000000015aa533cded42c2e38d2bc3ece5bd2bfcf3dd2c00000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x378", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc646f81422b4dc30572a9330ac3cb8a9331cf27bdc77792567e32539134d9b37", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb1100000000000000000000000098b0c4c13068c3010a809174af31061aef547fbe0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x379", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xcd2725", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf2daa6436d45ff83f0183aa5236377f589706adb7828bb939bb494c5acdc4535", + "transactionIndex": "0x99", + "blockHash": "0x97f90f4506a3f351c0fbbf91db53f4a2c20a3bc85a80044c6c15565ee7762747", + "blockNumber": "0x15c0f80", + "gasUsed": "0x8f94e", + "effectiveGasPrice": "0x1828147f", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xe7a88ab1329cad4168563516e35753b979d0c7a9" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xcf1e14", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4ea8a0018eabfecd3b165de13922451e45676c4afb2f5c9978eb10ca30b97e9c", + "transactionIndex": "0xa3", + "blockHash": "0x10a44b610791154ac2493e53628d7b0e698ca26c96e7540e14977b31c09d0c73", + "blockNumber": "0x15c0f81", + "gasUsed": "0x9b394", + "effectiveGasPrice": "0x179d8852", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x24c7e21a91cdb7760798e02ea5639d4c60b0c442" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf813a4", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf463dfa8918b5fbd3f0519033b108b709e57252c25c8eed9fdd3ba586c0bde83", + "transactionIndex": "0xa0", + "blockHash": "0x5ad9da45f57cfc2ac085916dc03d9b5c181c9f524ce28b7bb5aa4f2fba142a2b", + "blockNumber": "0x15c0f82", + "gasUsed": "0x1142f4", + "effectiveGasPrice": "0x17682ffc", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x15aa533cded42c2e38d2bc3ece5bd2bfcf3dd2c0" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x118be78", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc537405635d58ef18f7259589f1171d68a7393b7c65c29da13079607be3c14ef", + "transactionIndex": "0x99", + "blockHash": "0x03749f50f32c89151673f312c1de346ff63a75a64663781f2dfc08a7e028169e", + "blockNumber": "0x15c0f83", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x17868520", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x98b0c4c13068c3010a809174af31061aef547fbe" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xd874f9", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000e7a88ab1329cad4168563516e35753b979d0c7a90000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x2bfa0843bfebaf4c2fb06f128d76d869ba9799fadf2188c89647dc7355736dd0", + "blockNumber": "0x15c0f84", + "blockTimestamp": "0x686144f3", + "transactionHash": "0x0edabaf9bb416d8da0cc6bab22db3331f8f03687db2ae084568f6db9b29e9928", + "transactionIndex": "0xa3", + "logIndex": "0x19d", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x0edabaf9bb416d8da0cc6bab22db3331f8f03687db2ae084568f6db9b29e9928", + "transactionIndex": "0xa3", + "blockHash": "0x2bfa0843bfebaf4c2fb06f128d76d869ba9799fadf2188c89647dc7355736dd0", + "blockNumber": "0x15c0f84", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x17d40cc1", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x463c0f", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000024c7e21a91cdb7760798e02ea5639d4c60b0c4420000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xa12b5c6307e27ec9ad6bacb5502299e3099c0cd4d021e3e9c6361e796d5dd299", + "blockNumber": "0x15c0f85", + "blockTimestamp": "0x686144ff", + "transactionHash": "0xb86edb13b2b4accef989a5413c7ee981fe8a3816e77febc5e996b2b490d1b189", + "transactionIndex": "0x11", + "logIndex": "0x83", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb86edb13b2b4accef989a5413c7ee981fe8a3816e77febc5e996b2b490d1b189", + "transactionIndex": "0x11", + "blockHash": "0xa12b5c6307e27ec9ad6bacb5502299e3099c0cd4d021e3e9c6361e796d5dd299", + "blockNumber": "0x15c0f85", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x177ba12e", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf9c88e", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000015aa533cded42c2e38d2bc3ece5bd2bfcf3dd2c00000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x98ffcb4005394175c4490751e43cb16db508e7af2f09fbb162d6201b01f053e7", + "blockNumber": "0x15c0f86", + "blockTimestamp": "0x6861450b", + "transactionHash": "0x4dcd942cf748d01d465990bc0f1327d8d7110a7fd3fe18fef6fa2e520284457c", + "transactionIndex": "0x9d", + "logIndex": "0x137", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4dcd942cf748d01d465990bc0f1327d8d7110a7fd3fe18fef6fa2e520284457c", + "transactionIndex": "0x9d", + "blockHash": "0x98ffcb4005394175c4490751e43cb16db508e7af2f09fbb162d6201b01f053e7", + "blockNumber": "0x15c0f86", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x16fcd07a", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xa69e8d", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000098b0c4c13068c3010a809174af31061aef547fbe0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xbdedf23db717ea39f9133934ff68c5298c8300608aa41f9597e6ff3f4692e922", + "blockNumber": "0x15c0f87", + "blockTimestamp": "0x68614517", + "transactionHash": "0xc646f81422b4dc30572a9330ac3cb8a9331cf27bdc77792567e32539134d9b37", + "transactionIndex": "0x81", + "logIndex": "0x11c", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc646f81422b4dc30572a9330ac3cb8a9331cf27bdc77792567e32539134d9b37", + "transactionIndex": "0x81", + "blockHash": "0xbdedf23db717ea39f9133934ff68c5298c8300608aa41f9597e6ff3f4692e922", + "blockNumber": "0x15c0f87", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x16e2654d", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751205191, + "chain": 1, + "commit": "01db0f8" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/1/run-latest.json b/broadcast/DeployAdapters.s.sol/1/run-latest.json new file mode 100644 index 0000000..d48d0ac --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/1/run-latest.json @@ -0,0 +1,348 @@ +{ + "transactions": [ + { + "hash": "0xf2daa6436d45ff83f0183aa5236377f589706adb7828bb939bb494c5acdc4535", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0xe7a88ab1329cad4168563516e35753b979d0c7a9", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xbaa7f", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220c66a6ef0f7fbba462fbafbd2ef2a7ef760baae0e9780be52e06dc1d37795583464736f6c634300081d0033000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564", + "nonce": "0x372", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4ea8a0018eabfecd3b165de13922451e45676c4afb2f5c9978eb10ca30b97e9c", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0x24c7e21a91cdb7760798e02ea5639d4c60b0c442", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xc9ca6", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea2646970667358221220191f3a0969690b852c0fad405075e504d7c37835c39e58743a8dc57c2ad534da64736f6c634300081d0033000000000000000000000000cf5540fffcdc3d510b18bfca6d2b9987b0772559", + "nonce": "0x373", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf463dfa8918b5fbd3f0519033b108b709e57252c25c8eed9fdd3ba586c0bde83", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0x15aa533cded42c2e38d2bc3ece5bd2bfcf3dd2c0", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x1670a3", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea26469706673582212205bf94e5371bc2f132405be99261f2b9351cbdbf49e328ca512e068eee1eda9d164736f6c634300081d0033000000000000000000000000888888888889758f76e7103c6cbf23abbf58f946", + "nonce": "0x374", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc537405635d58ef18f7259589f1171d68a7393b7c65c29da13079607be3c14ef", + "transactionType": "CREATE", + "contractName": null, + "contractAddress": "0x98b0c4c13068c3010a809174af31061aef547fbe", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xaf02f", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea26469706673582212208494a0174c4f07fd048515a6e3e22a540bf8edf31a0e807f0e3019b7d5b7c74464736f6c634300081d0033", + "nonce": "0x375", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x0edabaf9bb416d8da0cc6bab22db3331f8f03687db2ae084568f6db9b29e9928", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000e7a88ab1329cad4168563516e35753b979d0c7a90000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x376", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb86edb13b2b4accef989a5413c7ee981fe8a3816e77febc5e996b2b490d1b189", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb1100000000000000000000000024c7e21a91cdb7760798e02ea5639d4c60b0c4420000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x377", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4dcd942cf748d01d465990bc0f1327d8d7110a7fd3fe18fef6fa2e520284457c", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb1100000000000000000000000015aa533cded42c2e38d2bc3ece5bd2bfcf3dd2c00000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x378", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc646f81422b4dc30572a9330ac3cb8a9331cf27bdc77792567e32539134d9b37", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb1100000000000000000000000098b0c4c13068c3010a809174af31061aef547fbe0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x379", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xcd2725", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf2daa6436d45ff83f0183aa5236377f589706adb7828bb939bb494c5acdc4535", + "transactionIndex": "0x99", + "blockHash": "0x97f90f4506a3f351c0fbbf91db53f4a2c20a3bc85a80044c6c15565ee7762747", + "blockNumber": "0x15c0f80", + "gasUsed": "0x8f94e", + "effectiveGasPrice": "0x1828147f", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xe7a88ab1329cad4168563516e35753b979d0c7a9" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xcf1e14", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4ea8a0018eabfecd3b165de13922451e45676c4afb2f5c9978eb10ca30b97e9c", + "transactionIndex": "0xa3", + "blockHash": "0x10a44b610791154ac2493e53628d7b0e698ca26c96e7540e14977b31c09d0c73", + "blockNumber": "0x15c0f81", + "gasUsed": "0x9b394", + "effectiveGasPrice": "0x179d8852", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x24c7e21a91cdb7760798e02ea5639d4c60b0c442" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf813a4", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf463dfa8918b5fbd3f0519033b108b709e57252c25c8eed9fdd3ba586c0bde83", + "transactionIndex": "0xa0", + "blockHash": "0x5ad9da45f57cfc2ac085916dc03d9b5c181c9f524ce28b7bb5aa4f2fba142a2b", + "blockNumber": "0x15c0f82", + "gasUsed": "0x1142f4", + "effectiveGasPrice": "0x17682ffc", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x15aa533cded42c2e38d2bc3ece5bd2bfcf3dd2c0" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x118be78", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc537405635d58ef18f7259589f1171d68a7393b7c65c29da13079607be3c14ef", + "transactionIndex": "0x99", + "blockHash": "0x03749f50f32c89151673f312c1de346ff63a75a64663781f2dfc08a7e028169e", + "blockNumber": "0x15c0f83", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x17868520", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x98b0c4c13068c3010a809174af31061aef547fbe" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xd874f9", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000e7a88ab1329cad4168563516e35753b979d0c7a90000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x2bfa0843bfebaf4c2fb06f128d76d869ba9799fadf2188c89647dc7355736dd0", + "blockNumber": "0x15c0f84", + "blockTimestamp": "0x686144f3", + "transactionHash": "0x0edabaf9bb416d8da0cc6bab22db3331f8f03687db2ae084568f6db9b29e9928", + "transactionIndex": "0xa3", + "logIndex": "0x19d", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x0edabaf9bb416d8da0cc6bab22db3331f8f03687db2ae084568f6db9b29e9928", + "transactionIndex": "0xa3", + "blockHash": "0x2bfa0843bfebaf4c2fb06f128d76d869ba9799fadf2188c89647dc7355736dd0", + "blockNumber": "0x15c0f84", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x17d40cc1", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x463c0f", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000024c7e21a91cdb7760798e02ea5639d4c60b0c4420000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xa12b5c6307e27ec9ad6bacb5502299e3099c0cd4d021e3e9c6361e796d5dd299", + "blockNumber": "0x15c0f85", + "blockTimestamp": "0x686144ff", + "transactionHash": "0xb86edb13b2b4accef989a5413c7ee981fe8a3816e77febc5e996b2b490d1b189", + "transactionIndex": "0x11", + "logIndex": "0x83", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb86edb13b2b4accef989a5413c7ee981fe8a3816e77febc5e996b2b490d1b189", + "transactionIndex": "0x11", + "blockHash": "0xa12b5c6307e27ec9ad6bacb5502299e3099c0cd4d021e3e9c6361e796d5dd299", + "blockNumber": "0x15c0f85", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x177ba12e", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf9c88e", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000015aa533cded42c2e38d2bc3ece5bd2bfcf3dd2c00000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x98ffcb4005394175c4490751e43cb16db508e7af2f09fbb162d6201b01f053e7", + "blockNumber": "0x15c0f86", + "blockTimestamp": "0x6861450b", + "transactionHash": "0x4dcd942cf748d01d465990bc0f1327d8d7110a7fd3fe18fef6fa2e520284457c", + "transactionIndex": "0x9d", + "logIndex": "0x137", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4dcd942cf748d01d465990bc0f1327d8d7110a7fd3fe18fef6fa2e520284457c", + "transactionIndex": "0x9d", + "blockHash": "0x98ffcb4005394175c4490751e43cb16db508e7af2f09fbb162d6201b01f053e7", + "blockNumber": "0x15c0f86", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x16fcd07a", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xa69e8d", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000098b0c4c13068c3010a809174af31061aef547fbe0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xbdedf23db717ea39f9133934ff68c5298c8300608aa41f9597e6ff3f4692e922", + "blockNumber": "0x15c0f87", + "blockTimestamp": "0x68614517", + "transactionHash": "0xc646f81422b4dc30572a9330ac3cb8a9331cf27bdc77792567e32539134d9b37", + "transactionIndex": "0x81", + "logIndex": "0x11c", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000010800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000020000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc646f81422b4dc30572a9330ac3cb8a9331cf27bdc77792567e32539134d9b37", + "transactionIndex": "0x81", + "blockHash": "0xbdedf23db717ea39f9133934ff68c5298c8300608aa41f9597e6ff3f4692e922", + "blockNumber": "0x15c0f87", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x16e2654d", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751205191, + "chain": 1, + "commit": "01db0f8" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/11155111/run-1751008985.json b/broadcast/DeployAdapters.s.sol/11155111/run-1751008985.json new file mode 100644 index 0000000..bf2d17c --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/11155111/run-1751008985.json @@ -0,0 +1,354 @@ +{ + "transactions": [ + { + "hash": "0xe599fd5a860139b87e95bf0c34c844bd0d77a73e94eb6e84354329c645913c16", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0x92659d8b9354576d5ba0556158da0244aca4032e", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xba937", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220f6000c9f1bdef97179fd0d632833ccb7f8eb8b0c4e5d5beef7139a47675404a964736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd8c", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2756addf24b3676ccedb8c3c545053195a5076a21b75f6c94e6c3185c41eeed1", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0x5902a019c5534f11eaf1676f708ae2be0b1371ef", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xc9b6e", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea26469706673582212201a43e03d554ef4508b4ce4929a5e2c8c851ee4de243e12f6b2b1267ec83a42f164736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd8d", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7b9c09a57a991d0f8750539c12402f5b0cb613f7e4be3b248b1c1f3792e78a1f", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0xb51c2bf67ff00172450d7f3d4cbaacc8821779dd", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0x166f6b", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea2646970667358221220d7c8c2f17efce607284d62466051aec3e13f6f1e6deb7e056420af021f77a8ae64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd8e", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4544ff953f9ef69a92479d1a787d359e1d1ab514582bbb91aaedf134f57f1602", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0xbff9f6c01c056127957fb9f0436bb07368ddbe2e", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xaf02f", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea2646970667358221220b9f441923fe75e1f6e0f37bda35dde1cbac73c1e69240288bd35172a90f8e35164736f6c634300081b0033", + "nonce": "0xd8f", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x8091c719b06ddef01b439d4668e660d3679da2e9a1b2fbc9db1d5360e823bdeb", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000002f68071bac2be3332c8107dd15a76f7230f3401300000000000000000000000092659d8b9354576d5ba0556158da0244aca4032e0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xd90", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x71f6467e8eaccdaf0915b7f24f40bbea1eab211d28fda9b72d0a74db363776cb", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000002f68071bac2be3332c8107dd15a76f7230f340130000000000000000000000005902a019c5534f11eaf1676f708ae2be0b1371ef0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xd91", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3cd2b233f06e3aca670e844336c0d2878cebbcdc750c7383dacc7092b6e24010", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000002f68071bac2be3332c8107dd15a76f7230f34013000000000000000000000000b51c2bf67ff00172450d7f3d4cbaacc8821779dd0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xd92", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x71321c8b1f41954a04c7dabee3e6009b15384e9871e6d0d53eb1b5b68cc57b71", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000002f68071bac2be3332c8107dd15a76f7230f34013000000000000000000000000bff9f6c01c056127957fb9f0436bb07368ddbe2e0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xd93", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x209770b", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe599fd5a860139b87e95bf0c34c844bd0d77a73e94eb6e84354329c645913c16", + "transactionIndex": "0xf8", + "blockHash": "0x05d1bed121125a1f987ac1c6fda0f55c6cf2a1b9c203e21f9c76496092ddf45d", + "blockNumber": "0x83d0c0", + "gasUsed": "0x8f852", + "effectiveGasPrice": "0x267f8c", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x92659d8b9354576d5ba0556158da0244aca4032e" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1d87d02", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2756addf24b3676ccedb8c3c545053195a5076a21b75f6c94e6c3185c41eeed1", + "transactionIndex": "0xff", + "blockHash": "0x253256c8f92b514339b97052b50cdc1c1178452623ff07bd7f7f76b39589f9ca", + "blockNumber": "0x83d0c1", + "gasUsed": "0x9b2a4", + "effectiveGasPrice": "0x2728ab", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x5902a019c5534f11eaf1676f708ae2be0b1371ef" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x168eee9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x7b9c09a57a991d0f8750539c12402f5b0cb613f7e4be3b248b1c1f3792e78a1f", + "transactionIndex": "0xb7", + "blockHash": "0x6f18993c672fa75101ab6f00a23e2fc5eb1481923927766d8f7d44e7a804c1d8", + "blockNumber": "0x83d0c2", + "gasUsed": "0x114204", + "effectiveGasPrice": "0x2796bd", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xb51c2bf67ff00172450d7f3d4cbaacc8821779dd" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2877fd3", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4544ff953f9ef69a92479d1a787d359e1d1ab514582bbb91aaedf134f57f1602", + "transactionIndex": "0x182", + "blockHash": "0x017bad3db34c019d052002daf41fec98ac552a9d8561b3c185e053fb17afd028", + "blockNumber": "0x83d0c4", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x25dfac", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xbff9f6c01c056127957fb9f0436bb07368ddbe2e" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x12d00a8", + "logs": [ + { + "address": "0x2f68071bac2be3332c8107dd15a76f7230f34013", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000092659d8b9354576d5ba0556158da0244aca4032e0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x19427d6c36acc95d934c94483cad09dc6c91a74300fb16b04d6bfb9535e803ad", + "blockNumber": "0x83d0c5", + "blockTimestamp": "0x685e4668", + "transactionHash": "0x8091c719b06ddef01b439d4668e660d3679da2e9a1b2fbc9db1d5360e823bdeb", + "transactionIndex": "0xa3", + "logIndex": "0x100", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "type": "0x2", + "transactionHash": "0x8091c719b06ddef01b439d4668e660d3679da2e9a1b2fbc9db1d5360e823bdeb", + "transactionIndex": "0xa3", + "blockHash": "0x19427d6c36acc95d934c94483cad09dc6c91a74300fb16b04d6bfb9535e803ad", + "blockNumber": "0x83d0c5", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x27668c", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x176f425", + "logs": [ + { + "address": "0x2f68071bac2be3332c8107dd15a76f7230f34013", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x0000000000000000000000005902a019c5534f11eaf1676f708ae2be0b1371ef0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x97f4cf0d2769369e2b6c57da0efd414b62bac7aaecfed93a99a92ba4bcda2018", + "blockNumber": "0x83d0c6", + "blockTimestamp": "0x685e4674", + "transactionHash": "0x71f6467e8eaccdaf0915b7f24f40bbea1eab211d28fda9b72d0a74db363776cb", + "transactionIndex": "0xd0", + "logIndex": "0x135", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "type": "0x2", + "transactionHash": "0x71f6467e8eaccdaf0915b7f24f40bbea1eab211d28fda9b72d0a74db363776cb", + "transactionIndex": "0xd0", + "blockHash": "0x97f4cf0d2769369e2b6c57da0efd414b62bac7aaecfed93a99a92ba4bcda2018", + "blockNumber": "0x83d0c6", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x26d7ee", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x14c94cf", + "logs": [ + { + "address": "0x2f68071bac2be3332c8107dd15a76f7230f34013", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000b51c2bf67ff00172450d7f3d4cbaacc8821779dd0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x54db9516055c0c69e5c9137c952b9f4e8edcc14dba028049117e2f4172d0438e", + "blockNumber": "0x83d0c7", + "blockTimestamp": "0x685e4680", + "transactionHash": "0x3cd2b233f06e3aca670e844336c0d2878cebbcdc750c7383dacc7092b6e24010", + "transactionIndex": "0xda", + "logIndex": "0x16a", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "type": "0x2", + "transactionHash": "0x3cd2b233f06e3aca670e844336c0d2878cebbcdc750c7383dacc7092b6e24010", + "transactionIndex": "0xda", + "blockHash": "0x54db9516055c0c69e5c9137c952b9f4e8edcc14dba028049117e2f4172d0438e", + "blockNumber": "0x83d0c7", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x26a16d", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x148fbf8", + "logs": [ + { + "address": "0x2f68071bac2be3332c8107dd15a76f7230f34013", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000bff9f6c01c056127957fb9f0436bb07368ddbe2e0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x841da9e799a7ddb8f29b967b6edda3244ad2272a296e86fb4108a711d7de7b96", + "blockNumber": "0x83d0c8", + "blockTimestamp": "0x685e468c", + "transactionHash": "0x71321c8b1f41954a04c7dabee3e6009b15384e9871e6d0d53eb1b5b68cc57b71", + "transactionIndex": "0xd7", + "logIndex": "0x133", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "type": "0x2", + "transactionHash": "0x71321c8b1f41954a04c7dabee3e6009b15384e9871e6d0d53eb1b5b68cc57b71", + "transactionIndex": "0xd7", + "blockHash": "0x841da9e799a7ddb8f29b967b6edda3244ad2272a296e86fb4108a711d7de7b96", + "blockNumber": "0x83d0c8", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x263d36", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751008985, + "chain": 11155111, + "commit": "23b76ca" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/11155111/run-latest.json b/broadcast/DeployAdapters.s.sol/11155111/run-latest.json new file mode 100644 index 0000000..bf2d17c --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/11155111/run-latest.json @@ -0,0 +1,354 @@ +{ + "transactions": [ + { + "hash": "0xe599fd5a860139b87e95bf0c34c844bd0d77a73e94eb6e84354329c645913c16", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0x92659d8b9354576d5ba0556158da0244aca4032e", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xba937", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220f6000c9f1bdef97179fd0d632833ccb7f8eb8b0c4e5d5beef7139a47675404a964736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd8c", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x2756addf24b3676ccedb8c3c545053195a5076a21b75f6c94e6c3185c41eeed1", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0x5902a019c5534f11eaf1676f708ae2be0b1371ef", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xc9b6e", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea26469706673582212201a43e03d554ef4508b4ce4929a5e2c8c851ee4de243e12f6b2b1267ec83a42f164736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd8d", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7b9c09a57a991d0f8750539c12402f5b0cb613f7e4be3b248b1c1f3792e78a1f", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0xb51c2bf67ff00172450d7f3d4cbaacc8821779dd", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0x166f6b", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea2646970667358221220d7c8c2f17efce607284d62466051aec3e13f6f1e6deb7e056420af021f77a8ae64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xd8e", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x4544ff953f9ef69a92479d1a787d359e1d1ab514582bbb91aaedf134f57f1602", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0xbff9f6c01c056127957fb9f0436bb07368ddbe2e", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xaf02f", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea2646970667358221220b9f441923fe75e1f6e0f37bda35dde1cbac73c1e69240288bd35172a90f8e35164736f6c634300081b0033", + "nonce": "0xd8f", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x8091c719b06ddef01b439d4668e660d3679da2e9a1b2fbc9db1d5360e823bdeb", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000002f68071bac2be3332c8107dd15a76f7230f3401300000000000000000000000092659d8b9354576d5ba0556158da0244aca4032e0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xd90", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x71f6467e8eaccdaf0915b7f24f40bbea1eab211d28fda9b72d0a74db363776cb", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000002f68071bac2be3332c8107dd15a76f7230f340130000000000000000000000005902a019c5534f11eaf1676f708ae2be0b1371ef0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xd91", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3cd2b233f06e3aca670e844336c0d2878cebbcdc750c7383dacc7092b6e24010", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000002f68071bac2be3332c8107dd15a76f7230f34013000000000000000000000000b51c2bf67ff00172450d7f3d4cbaacc8821779dd0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xd92", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x71321c8b1f41954a04c7dabee3e6009b15384e9871e6d0d53eb1b5b68cc57b71", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000002f68071bac2be3332c8107dd15a76f7230f34013000000000000000000000000bff9f6c01c056127957fb9f0436bb07368ddbe2e0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xd93", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x209770b", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe599fd5a860139b87e95bf0c34c844bd0d77a73e94eb6e84354329c645913c16", + "transactionIndex": "0xf8", + "blockHash": "0x05d1bed121125a1f987ac1c6fda0f55c6cf2a1b9c203e21f9c76496092ddf45d", + "blockNumber": "0x83d0c0", + "gasUsed": "0x8f852", + "effectiveGasPrice": "0x267f8c", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x92659d8b9354576d5ba0556158da0244aca4032e" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1d87d02", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x2756addf24b3676ccedb8c3c545053195a5076a21b75f6c94e6c3185c41eeed1", + "transactionIndex": "0xff", + "blockHash": "0x253256c8f92b514339b97052b50cdc1c1178452623ff07bd7f7f76b39589f9ca", + "blockNumber": "0x83d0c1", + "gasUsed": "0x9b2a4", + "effectiveGasPrice": "0x2728ab", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x5902a019c5534f11eaf1676f708ae2be0b1371ef" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x168eee9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x7b9c09a57a991d0f8750539c12402f5b0cb613f7e4be3b248b1c1f3792e78a1f", + "transactionIndex": "0xb7", + "blockHash": "0x6f18993c672fa75101ab6f00a23e2fc5eb1481923927766d8f7d44e7a804c1d8", + "blockNumber": "0x83d0c2", + "gasUsed": "0x114204", + "effectiveGasPrice": "0x2796bd", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xb51c2bf67ff00172450d7f3d4cbaacc8821779dd" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2877fd3", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x4544ff953f9ef69a92479d1a787d359e1d1ab514582bbb91aaedf134f57f1602", + "transactionIndex": "0x182", + "blockHash": "0x017bad3db34c019d052002daf41fec98ac552a9d8561b3c185e053fb17afd028", + "blockNumber": "0x83d0c4", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x25dfac", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xbff9f6c01c056127957fb9f0436bb07368ddbe2e" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x12d00a8", + "logs": [ + { + "address": "0x2f68071bac2be3332c8107dd15a76f7230f34013", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000092659d8b9354576d5ba0556158da0244aca4032e0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x19427d6c36acc95d934c94483cad09dc6c91a74300fb16b04d6bfb9535e803ad", + "blockNumber": "0x83d0c5", + "blockTimestamp": "0x685e4668", + "transactionHash": "0x8091c719b06ddef01b439d4668e660d3679da2e9a1b2fbc9db1d5360e823bdeb", + "transactionIndex": "0xa3", + "logIndex": "0x100", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "type": "0x2", + "transactionHash": "0x8091c719b06ddef01b439d4668e660d3679da2e9a1b2fbc9db1d5360e823bdeb", + "transactionIndex": "0xa3", + "blockHash": "0x19427d6c36acc95d934c94483cad09dc6c91a74300fb16b04d6bfb9535e803ad", + "blockNumber": "0x83d0c5", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x27668c", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x176f425", + "logs": [ + { + "address": "0x2f68071bac2be3332c8107dd15a76f7230f34013", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x0000000000000000000000005902a019c5534f11eaf1676f708ae2be0b1371ef0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x97f4cf0d2769369e2b6c57da0efd414b62bac7aaecfed93a99a92ba4bcda2018", + "blockNumber": "0x83d0c6", + "blockTimestamp": "0x685e4674", + "transactionHash": "0x71f6467e8eaccdaf0915b7f24f40bbea1eab211d28fda9b72d0a74db363776cb", + "transactionIndex": "0xd0", + "logIndex": "0x135", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "type": "0x2", + "transactionHash": "0x71f6467e8eaccdaf0915b7f24f40bbea1eab211d28fda9b72d0a74db363776cb", + "transactionIndex": "0xd0", + "blockHash": "0x97f4cf0d2769369e2b6c57da0efd414b62bac7aaecfed93a99a92ba4bcda2018", + "blockNumber": "0x83d0c6", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x26d7ee", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x14c94cf", + "logs": [ + { + "address": "0x2f68071bac2be3332c8107dd15a76f7230f34013", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000b51c2bf67ff00172450d7f3d4cbaacc8821779dd0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x54db9516055c0c69e5c9137c952b9f4e8edcc14dba028049117e2f4172d0438e", + "blockNumber": "0x83d0c7", + "blockTimestamp": "0x685e4680", + "transactionHash": "0x3cd2b233f06e3aca670e844336c0d2878cebbcdc750c7383dacc7092b6e24010", + "transactionIndex": "0xda", + "logIndex": "0x16a", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "type": "0x2", + "transactionHash": "0x3cd2b233f06e3aca670e844336c0d2878cebbcdc750c7383dacc7092b6e24010", + "transactionIndex": "0xda", + "blockHash": "0x54db9516055c0c69e5c9137c952b9f4e8edcc14dba028049117e2f4172d0438e", + "blockNumber": "0x83d0c7", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x26a16d", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x148fbf8", + "logs": [ + { + "address": "0x2f68071bac2be3332c8107dd15a76f7230f34013", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000bff9f6c01c056127957fb9f0436bb07368ddbe2e0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x841da9e799a7ddb8f29b967b6edda3244ad2272a296e86fb4108a711d7de7b96", + "blockNumber": "0x83d0c8", + "blockTimestamp": "0x685e468c", + "transactionHash": "0x71321c8b1f41954a04c7dabee3e6009b15384e9871e6d0d53eb1b5b68cc57b71", + "transactionIndex": "0xd7", + "logIndex": "0x133", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000", + "type": "0x2", + "transactionHash": "0x71321c8b1f41954a04c7dabee3e6009b15384e9871e6d0d53eb1b5b68cc57b71", + "transactionIndex": "0xd7", + "blockHash": "0x841da9e799a7ddb8f29b967b6edda3244ad2272a296e86fb4108a711d7de7b96", + "blockNumber": "0x83d0c8", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x263d36", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x7662fcf152a9e18280a77f4a8108229e86d398ab", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751008985, + "chain": 11155111, + "commit": "23b76ca" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/42161/run-1751264345.json b/broadcast/DeployAdapters.s.sol/42161/run-1751264345.json new file mode 100644 index 0000000..8f978f9 --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/42161/run-1751264345.json @@ -0,0 +1,374 @@ +{ + "transactions": [ + { + "hash": "0x44d6344afc28390b198396e90f16dafceabab7e2c409672a4fac2e04447809f6", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0x048a54deae47c41f760c42622b114bb89b836a9f", + "function": null, + "arguments": [ + "0xE592427A0AEce92De3Edee1F18E0157C05861564" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xc2e36", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220c66a6ef0f7fbba462fbafbd2ef2a7ef760baae0e9780be52e06dc1d37795583464736f6c634300081d0033000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564", + "nonce": "0x131", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x119e5c0964ab69c002349edb04debe3dcc2f671fbb1afac6fede6aede244c454", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0xb986312024c8e0f895b00eba32c81b5759c91fff", + "function": null, + "arguments": [ + "0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xd28ab", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea2646970667358221220191f3a0969690b852c0fad405075e504d7c37835c39e58743a8dc57c2ad534da64736f6c634300081d0033000000000000000000000000a669e7a0d4b3e4fa48af2de86bd4cd7126be4e13", + "nonce": "0x132", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb698009eba2aad0c2392f30168fe4094ef1d28a37a735d81a715c446d92b75d0", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0xf95130ddfa9eb132a25b121a29991cea989ebb7c", + "function": null, + "arguments": [ + "0x888888888889758F76e7103c6CbF23ABbF58F946" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x175849", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea26469706673582212205bf94e5371bc2f132405be99261f2b9351cbdbf49e328ca512e068eee1eda9d164736f6c634300081d0033000000000000000000000000888888888889758f76e7103c6cbf23abbf58f946", + "nonce": "0x133", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x50ad93617ae78c5088118139211ea9f5e6e8ac1c4fe5e302996707ba5b713519", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0x133bf41c23edfb2f0ef586b5b01063a17470e294", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xb69d7", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea26469706673582212208494a0174c4f07fd048515a6e3e22a540bf8edf31a0e807f0e3019b7d5b7c74464736f6c634300081d0033", + "nonce": "0x134", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x94ffcc659f0febbae7c4e1083f9e33cfc035fa6c6cbee932cf7ae5661bd95684", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x159e8", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e000000000000000000000000048a54deae47c41f760c42622b114bb89b836a9f0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x135", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc93f5bd547e801e17220d4421ac0491a351e6432f6ab3165d10f1d9a1310ad1f", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x159e8", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e000000000000000000000000b986312024c8e0f895b00eba32c81b5759c91fff0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x136", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x19c043e76febde999a5b532fffe0b2eb7706790b2ba4ff5a0402e84df4b4e71c", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x159e8", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e000000000000000000000000f95130ddfa9eb132a25b121a29991cea989ebb7c0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x137", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x5862d2f315f787edbcc2848c0ab189ded71a509e0fa0853ceeee3f925fb04c42", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x159e8", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e000000000000000000000000133bf41c23edfb2f0ef586b5b01063a17470e2940000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x138", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xa709b", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x44d6344afc28390b198396e90f16dafceabab7e2c409672a4fac2e04447809f6", + "transactionIndex": "0x4", + "blockHash": "0x3d1f80154ea5340b93a48da4f578b0ea0c413a12c2bd7525f6d5b0820f68a456", + "blockNumber": "0x15059d02", + "gasUsed": "0x93e45", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x048a54deae47c41f760c42622b114bb89b836a9f", + "gasUsedForL1": "0x44f7", + "l1BlockNumber": "0x15c2299" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xcf106", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x119e5c0964ab69c002349edb04debe3dcc2f671fbb1afac6fede6aede244c454", + "transactionIndex": "0x6", + "blockHash": "0x517c068ee2540ba8ebd2de1f7778337506c1191864511e2c91645f623f9a8adc", + "blockNumber": "0x15059d2b", + "gasUsed": "0x9fcf7", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xb986312024c8e0f895b00eba32c81b5759c91fff", + "gasUsedForL1": "0x4963", + "l1BlockNumber": "0x15c2299" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1214fc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb698009eba2aad0c2392f30168fe4094ef1d28a37a735d81a715c446d92b75d0", + "transactionIndex": "0x2", + "blockHash": "0xe62cf643bd339557317ca215fd06cdd1f32036f1a182183a6175682c916c882c", + "blockNumber": "0x15059d30", + "gasUsed": "0x11be43", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xf95130ddfa9eb132a25b121a29991cea989ebb7c", + "gasUsedForL1": "0x7b4f", + "l1BlockNumber": "0x15c2299" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x13ba1b", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x50ad93617ae78c5088118139211ea9f5e6e8ac1c4fe5e302996707ba5b713519", + "transactionIndex": "0x6", + "blockHash": "0xa5da3545c009341f01470d615eaa05a48356edfc32f775d90900171b73539443", + "blockNumber": "0x15059d34", + "gasUsed": "0x8a8e7", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x133bf41c23edfb2f0ef586b5b01063a17470e294", + "gasUsedForL1": "0x3eea", + "l1BlockNumber": "0x15c2299" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x23bc5a", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000048a54deae47c41f760c42622b114bb89b836a9f0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xa0826f26a0f69a6276f476b313416252af434368b4f5f28b1c692da29f3c69b9", + "blockNumber": "0x15059d39", + "transactionHash": "0x94ffcc659f0febbae7c4e1083f9e33cfc035fa6c6cbee932cf7ae5661bd95684", + "transactionIndex": "0x7", + "logIndex": "0x35", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x94ffcc659f0febbae7c4e1083f9e33cfc035fa6c6cbee932cf7ae5661bd95684", + "transactionIndex": "0x7", + "blockHash": "0xa0826f26a0f69a6276f476b313416252af434368b4f5f28b1c692da29f3c69b9", + "blockNumber": "0x15059d39", + "gasUsed": "0x10155", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x856", + "l1BlockNumber": "0x15c229a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2e72e", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000b986312024c8e0f895b00eba32c81b5759c91fff0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x07dae7d94ae47c872a0acdbe3a0370e458422898c7efefcc6cf71bb12562aaf3", + "blockNumber": "0x15059d45", + "transactionHash": "0xc93f5bd547e801e17220d4421ac0491a351e6432f6ab3165d10f1d9a1310ad1f", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc93f5bd547e801e17220d4421ac0491a351e6432f6ab3165d10f1d9a1310ad1f", + "transactionIndex": "0x2", + "blockHash": "0x07dae7d94ae47c872a0acdbe3a0370e458422898c7efefcc6cf71bb12562aaf3", + "blockNumber": "0x15059d45", + "gasUsed": "0x10155", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x856", + "l1BlockNumber": "0x15c229a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x7a1d5", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000f95130ddfa9eb132a25b121a29991cea989ebb7c0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xf8e4ea19c7d396382d12ef127c21c05d2d0e2ec9a6a4a5a344b1007d40ac29d1", + "blockNumber": "0x15059d4a", + "transactionHash": "0x19c043e76febde999a5b532fffe0b2eb7706790b2ba4ff5a0402e84df4b4e71c", + "transactionIndex": "0x4", + "logIndex": "0xd", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x19c043e76febde999a5b532fffe0b2eb7706790b2ba4ff5a0402e84df4b4e71c", + "transactionIndex": "0x4", + "blockHash": "0xf8e4ea19c7d396382d12ef127c21c05d2d0e2ec9a6a4a5a344b1007d40ac29d1", + "blockNumber": "0x15059d4a", + "gasUsed": "0x10155", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x856", + "l1BlockNumber": "0x15c229a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x10155", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000133bf41c23edfb2f0ef586b5b01063a17470e2940000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x376034b48ff05b4990ec3f7eb2ab24905e092d52c2e99e196a3c43ea610b1a56", + "blockNumber": "0x15059d4f", + "transactionHash": "0x5862d2f315f787edbcc2848c0ab189ded71a509e0fa0853ceeee3f925fb04c42", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x5862d2f315f787edbcc2848c0ab189ded71a509e0fa0853ceeee3f925fb04c42", + "transactionIndex": "0x1", + "blockHash": "0x376034b48ff05b4990ec3f7eb2ab24905e092d52c2e99e196a3c43ea610b1a56", + "blockNumber": "0x15059d4f", + "gasUsed": "0x10155", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x856", + "l1BlockNumber": "0x15c229a" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751264345, + "chain": 42161, + "commit": "01db0f8" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/42161/run-latest.json b/broadcast/DeployAdapters.s.sol/42161/run-latest.json new file mode 100644 index 0000000..8f978f9 --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/42161/run-latest.json @@ -0,0 +1,374 @@ +{ + "transactions": [ + { + "hash": "0x44d6344afc28390b198396e90f16dafceabab7e2c409672a4fac2e04447809f6", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0x048a54deae47c41f760c42622b114bb89b836a9f", + "function": null, + "arguments": [ + "0xE592427A0AEce92De3Edee1F18E0157C05861564" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xc2e36", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220c66a6ef0f7fbba462fbafbd2ef2a7ef760baae0e9780be52e06dc1d37795583464736f6c634300081d0033000000000000000000000000e592427a0aece92de3edee1f18e0157c05861564", + "nonce": "0x131", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x119e5c0964ab69c002349edb04debe3dcc2f671fbb1afac6fede6aede244c454", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0xb986312024c8e0f895b00eba32c81b5759c91fff", + "function": null, + "arguments": [ + "0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xd28ab", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea2646970667358221220191f3a0969690b852c0fad405075e504d7c37835c39e58743a8dc57c2ad534da64736f6c634300081d0033000000000000000000000000a669e7a0d4b3e4fa48af2de86bd4cd7126be4e13", + "nonce": "0x132", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb698009eba2aad0c2392f30168fe4094ef1d28a37a735d81a715c446d92b75d0", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0xf95130ddfa9eb132a25b121a29991cea989ebb7c", + "function": null, + "arguments": [ + "0x888888888889758F76e7103c6CbF23ABbF58F946" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x175849", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea26469706673582212205bf94e5371bc2f132405be99261f2b9351cbdbf49e328ca512e068eee1eda9d164736f6c634300081d0033000000000000000000000000888888888889758f76e7103c6cbf23abbf58f946", + "nonce": "0x133", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x50ad93617ae78c5088118139211ea9f5e6e8ac1c4fe5e302996707ba5b713519", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0x133bf41c23edfb2f0ef586b5b01063a17470e294", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xb69d7", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea26469706673582212208494a0174c4f07fd048515a6e3e22a540bf8edf31a0e807f0e3019b7d5b7c74464736f6c634300081d0033", + "nonce": "0x134", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x94ffcc659f0febbae7c4e1083f9e33cfc035fa6c6cbee932cf7ae5661bd95684", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x159e8", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e000000000000000000000000048a54deae47c41f760c42622b114bb89b836a9f0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x135", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc93f5bd547e801e17220d4421ac0491a351e6432f6ab3165d10f1d9a1310ad1f", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x159e8", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e000000000000000000000000b986312024c8e0f895b00eba32c81b5759c91fff0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x136", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x19c043e76febde999a5b532fffe0b2eb7706790b2ba4ff5a0402e84df4b4e71c", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x159e8", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e000000000000000000000000f95130ddfa9eb132a25b121a29991cea989ebb7c0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x137", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x5862d2f315f787edbcc2848c0ab189ded71a509e0fa0853ceeee3f925fb04c42", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x159e8", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e000000000000000000000000133bf41c23edfb2f0ef586b5b01063a17470e2940000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x138", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xa709b", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x44d6344afc28390b198396e90f16dafceabab7e2c409672a4fac2e04447809f6", + "transactionIndex": "0x4", + "blockHash": "0x3d1f80154ea5340b93a48da4f578b0ea0c413a12c2bd7525f6d5b0820f68a456", + "blockNumber": "0x15059d02", + "gasUsed": "0x93e45", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x048a54deae47c41f760c42622b114bb89b836a9f", + "gasUsedForL1": "0x44f7", + "l1BlockNumber": "0x15c2299" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xcf106", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x119e5c0964ab69c002349edb04debe3dcc2f671fbb1afac6fede6aede244c454", + "transactionIndex": "0x6", + "blockHash": "0x517c068ee2540ba8ebd2de1f7778337506c1191864511e2c91645f623f9a8adc", + "blockNumber": "0x15059d2b", + "gasUsed": "0x9fcf7", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xb986312024c8e0f895b00eba32c81b5759c91fff", + "gasUsedForL1": "0x4963", + "l1BlockNumber": "0x15c2299" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1214fc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb698009eba2aad0c2392f30168fe4094ef1d28a37a735d81a715c446d92b75d0", + "transactionIndex": "0x2", + "blockHash": "0xe62cf643bd339557317ca215fd06cdd1f32036f1a182183a6175682c916c882c", + "blockNumber": "0x15059d30", + "gasUsed": "0x11be43", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xf95130ddfa9eb132a25b121a29991cea989ebb7c", + "gasUsedForL1": "0x7b4f", + "l1BlockNumber": "0x15c2299" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x13ba1b", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x50ad93617ae78c5088118139211ea9f5e6e8ac1c4fe5e302996707ba5b713519", + "transactionIndex": "0x6", + "blockHash": "0xa5da3545c009341f01470d615eaa05a48356edfc32f775d90900171b73539443", + "blockNumber": "0x15059d34", + "gasUsed": "0x8a8e7", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x133bf41c23edfb2f0ef586b5b01063a17470e294", + "gasUsedForL1": "0x3eea", + "l1BlockNumber": "0x15c2299" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x23bc5a", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000048a54deae47c41f760c42622b114bb89b836a9f0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xa0826f26a0f69a6276f476b313416252af434368b4f5f28b1c692da29f3c69b9", + "blockNumber": "0x15059d39", + "transactionHash": "0x94ffcc659f0febbae7c4e1083f9e33cfc035fa6c6cbee932cf7ae5661bd95684", + "transactionIndex": "0x7", + "logIndex": "0x35", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x94ffcc659f0febbae7c4e1083f9e33cfc035fa6c6cbee932cf7ae5661bd95684", + "transactionIndex": "0x7", + "blockHash": "0xa0826f26a0f69a6276f476b313416252af434368b4f5f28b1c692da29f3c69b9", + "blockNumber": "0x15059d39", + "gasUsed": "0x10155", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x856", + "l1BlockNumber": "0x15c229a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2e72e", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000b986312024c8e0f895b00eba32c81b5759c91fff0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x07dae7d94ae47c872a0acdbe3a0370e458422898c7efefcc6cf71bb12562aaf3", + "blockNumber": "0x15059d45", + "transactionHash": "0xc93f5bd547e801e17220d4421ac0491a351e6432f6ab3165d10f1d9a1310ad1f", + "transactionIndex": "0x2", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc93f5bd547e801e17220d4421ac0491a351e6432f6ab3165d10f1d9a1310ad1f", + "transactionIndex": "0x2", + "blockHash": "0x07dae7d94ae47c872a0acdbe3a0370e458422898c7efefcc6cf71bb12562aaf3", + "blockNumber": "0x15059d45", + "gasUsed": "0x10155", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x856", + "l1BlockNumber": "0x15c229a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x7a1d5", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000f95130ddfa9eb132a25b121a29991cea989ebb7c0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xf8e4ea19c7d396382d12ef127c21c05d2d0e2ec9a6a4a5a344b1007d40ac29d1", + "blockNumber": "0x15059d4a", + "transactionHash": "0x19c043e76febde999a5b532fffe0b2eb7706790b2ba4ff5a0402e84df4b4e71c", + "transactionIndex": "0x4", + "logIndex": "0xd", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x19c043e76febde999a5b532fffe0b2eb7706790b2ba4ff5a0402e84df4b4e71c", + "transactionIndex": "0x4", + "blockHash": "0xf8e4ea19c7d396382d12ef127c21c05d2d0e2ec9a6a4a5a344b1007d40ac29d1", + "blockNumber": "0x15059d4a", + "gasUsed": "0x10155", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x856", + "l1BlockNumber": "0x15c229a" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x10155", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000133bf41c23edfb2f0ef586b5b01063a17470e2940000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x376034b48ff05b4990ec3f7eb2ab24905e092d52c2e99e196a3c43ea610b1a56", + "blockNumber": "0x15059d4f", + "transactionHash": "0x5862d2f315f787edbcc2848c0ab189ded71a509e0fa0853ceeee3f925fb04c42", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x5862d2f315f787edbcc2848c0ab189ded71a509e0fa0853ceeee3f925fb04c42", + "transactionIndex": "0x1", + "blockHash": "0x376034b48ff05b4990ec3f7eb2ab24905e092d52c2e99e196a3c43ea610b1a56", + "blockNumber": "0x15059d4f", + "gasUsed": "0x10155", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x856", + "l1BlockNumber": "0x15c229a" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751264345, + "chain": 42161, + "commit": "01db0f8" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/421614/run-1751010328.json b/broadcast/DeployAdapters.s.sol/421614/run-1751010328.json new file mode 100644 index 0000000..e3e2cf3 --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/421614/run-1751010328.json @@ -0,0 +1,374 @@ +{ + "transactions": [ + { + "hash": "0x23d0595a78fe1792e0fa2938c52af24df12ee20e6740a1057287b3e2aa76890b", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0x32d60d4a462f5a4b145aa225643e5066aec1611b", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xbc6d6", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220f6000c9f1bdef97179fd0d632833ccb7f8eb8b0c4e5d5beef7139a47675404a964736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xc7f", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf4d740f8b40579b2845737dc420c0505335f96513db13a0c38a4762b7076dac4", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0x03f45de2ab1b976e27acbaa4a9945e5ea7f4ed32", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xcbaf9", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea26469706673582212201a43e03d554ef4508b4ce4929a5e2c8c851ee4de243e12f6b2b1267ec83a42f164736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xc80", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xdcad5f76b99d21a8ba3747106f6a29b5ac04bb3e048b53f0c4d5c6059e86af09", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0x624e405a53d1f3fcdf52cebae469bfd6472294fa", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0x16a2ee", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea2646970667358221220d7c8c2f17efce607284d62466051aec3e13f6f1e6deb7e056420af021f77a8ae64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xc81", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3f5d594bfbbd914eb5fefcb4f062797e025aeb4fbe4f902fd585dcdbe0e6aa57", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0xb50b0c9c835e8f4f9436214f6f5219207c3b58cf", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xb0c56", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea2646970667358221220b9f441923fe75e1f6e0f37bda35dde1cbac73c1e69240288bd35172a90f8e35164736f6c634300081b0033", + "nonce": "0xc82", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x9ff65dedade293e16b745bc1ce54fed43f299d59f8d411197b042d21d9861cae", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "gas": "0x14c09", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000009c9832dd2ead3d0752a22acd50b112fd36e063b500000000000000000000000032d60d4a462f5a4b145aa225643e5066aec1611b0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xc83", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xae9bbc6d4e0d728526ae0d84f9b74788dccd1cd47df8f256c8bf8d35672959ff", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "gas": "0x14c09", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000009c9832dd2ead3d0752a22acd50b112fd36e063b500000000000000000000000003f45de2ab1b976e27acbaa4a9945e5ea7f4ed320000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xc84", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb8c77dd22717d8fb4bb15cdf59204014ecc7060878bb115587ec0745a46852e1", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "gas": "0x14c09", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000009c9832dd2ead3d0752a22acd50b112fd36e063b5000000000000000000000000624e405a53d1f3fcdf52cebae469bfd6472294fa0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xc85", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7830ce9eac36e7ebd3f86ffdf0a65af7ac7a2b35206578bb3eee85eddbee9f26", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "gas": "0x14c09", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000009c9832dd2ead3d0752a22acd50b112fd36e063b5000000000000000000000000b50b0c9c835e8f4f9436214f6f5219207c3b58cf0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xc86", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x134d54", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x23d0595a78fe1792e0fa2938c52af24df12ee20e6740a1057287b3e2aa76890b", + "transactionIndex": "0x2", + "blockHash": "0xe6b68fb89def57c5d3a6e1e67987a06e4cf945e08130cd7c0749d002febe1c76", + "blockNumber": "0x9fec298", + "gasUsed": "0x8f852", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x32d60d4a462f5a4b145aa225643e5066aec1611b", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xb708c", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf4d740f8b40579b2845737dc420c0505335f96513db13a0c38a4762b7076dac4", + "transactionIndex": "0x2", + "blockHash": "0xffd60c91a90fb9bc6336e4850d04a8211359b80ab12a9339ce22ab75ae3d373f", + "blockNumber": "0x9fec2a0", + "gasUsed": "0x9b2a4", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x03f45de2ab1b976e27acbaa4a9945e5ea7f4ed32", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x13b4bf", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xdcad5f76b99d21a8ba3747106f6a29b5ac04bb3e048b53f0c4d5c6059e86af09", + "transactionIndex": "0x3", + "blockHash": "0x217f810ff1e7144d796949c6ea1c4d6211f428e766fb4c8e42427e01d6ffd992", + "blockNumber": "0x9fec2a9", + "gasUsed": "0x114204", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x624e405a53d1f3fcdf52cebae469bfd6472294fa", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x869fd", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x3f5d594bfbbd914eb5fefcb4f062797e025aeb4fbe4f902fd585dcdbe0e6aa57", + "transactionIndex": "0x1", + "blockHash": "0xe3ad43cf645eedbd1b1d916be7f3352161e39dd61791603c822a95b2f5ef1adf", + "blockNumber": "0x9fec2b1", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xb50b0c9c835e8f4f9436214f6f5219207c3b58cf", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2b10d", + "logs": [ + { + "address": "0x9c9832dd2ead3d0752a22acd50b112fd36e063b5", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000032d60d4a462f5a4b145aa225643e5066aec1611b0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x140321df400970d98ed65331a8949656950f7dca0905a6ae8f2c54fedddd62f9", + "blockNumber": "0x9fec2ba", + "transactionHash": "0x9ff65dedade293e16b745bc1ce54fed43f299d59f8d411197b042d21d9861cae", + "transactionIndex": "0x2", + "logIndex": "0x3", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000008000000000000000000000", + "type": "0x2", + "transactionHash": "0x9ff65dedade293e16b745bc1ce54fed43f299d59f8d411197b042d21d9861cae", + "transactionIndex": "0x2", + "blockHash": "0x140321df400970d98ed65331a8949656950f7dca0905a6ae8f2c54fedddd62f9", + "blockNumber": "0x9fec2ba", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "contractAddress": null, + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xe0eee", + "logs": [ + { + "address": "0x9c9832dd2ead3d0752a22acd50b112fd36e063b5", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000003f45de2ab1b976e27acbaa4a9945e5ea7f4ed320000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x9a76221447a2ffe4958a9912512df765cf53b578bb00f434d0002ce3f0d57b8a", + "blockNumber": "0x9fec2c1", + "transactionHash": "0xae9bbc6d4e0d728526ae0d84f9b74788dccd1cd47df8f256c8bf8d35672959ff", + "transactionIndex": "0x6", + "logIndex": "0x1b", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000008000000000000000000000", + "type": "0x2", + "transactionHash": "0xae9bbc6d4e0d728526ae0d84f9b74788dccd1cd47df8f256c8bf8d35672959ff", + "transactionIndex": "0x6", + "blockHash": "0x9a76221447a2ffe4958a9912512df765cf53b578bb00f434d0002ce3f0d57b8a", + "blockNumber": "0x9fec2c1", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "contractAddress": null, + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2b6c9", + "logs": [ + { + "address": "0x9c9832dd2ead3d0752a22acd50b112fd36e063b5", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000624e405a53d1f3fcdf52cebae469bfd6472294fa0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xc1f5d3b7953e154d4eac02ecae9660219590847b01ed909b5707d9b4eea7b4eb", + "blockNumber": "0x9fec2c9", + "transactionHash": "0xb8c77dd22717d8fb4bb15cdf59204014ecc7060878bb115587ec0745a46852e1", + "transactionIndex": "0x2", + "logIndex": "0x4", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000008000000000000000000000", + "type": "0x2", + "transactionHash": "0xb8c77dd22717d8fb4bb15cdf59204014ecc7060878bb115587ec0745a46852e1", + "transactionIndex": "0x2", + "blockHash": "0xc1f5d3b7953e154d4eac02ecae9660219590847b01ed909b5707d9b4eea7b4eb", + "blockNumber": "0x9fec2c9", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "contractAddress": null, + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf8e1", + "logs": [ + { + "address": "0x9c9832dd2ead3d0752a22acd50b112fd36e063b5", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000b50b0c9c835e8f4f9436214f6f5219207c3b58cf0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x47a029380ae77c5ea4fd8bdfc958473c49dad60c59a7208d4207947869d8f4b7", + "blockNumber": "0x9fec2d1", + "transactionHash": "0x7830ce9eac36e7ebd3f86ffdf0a65af7ac7a2b35206578bb3eee85eddbee9f26", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000008000000000000000000000", + "type": "0x2", + "transactionHash": "0x7830ce9eac36e7ebd3f86ffdf0a65af7ac7a2b35206578bb3eee85eddbee9f26", + "transactionIndex": "0x1", + "blockHash": "0x47a029380ae77c5ea4fd8bdfc958473c49dad60c59a7208d4207947869d8f4b7", + "blockNumber": "0x9fec2d1", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "contractAddress": null, + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d137", + "timeboosted": false + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751010328, + "chain": 421614, + "commit": "23b76ca" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/421614/run-latest.json b/broadcast/DeployAdapters.s.sol/421614/run-latest.json new file mode 100644 index 0000000..e3e2cf3 --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/421614/run-latest.json @@ -0,0 +1,374 @@ +{ + "transactions": [ + { + "hash": "0x23d0595a78fe1792e0fa2938c52af24df12ee20e6740a1057287b3e2aa76890b", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0x32d60d4a462f5a4b145aa225643e5066aec1611b", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xbc6d6", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220f6000c9f1bdef97179fd0d632833ccb7f8eb8b0c4e5d5beef7139a47675404a964736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xc7f", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf4d740f8b40579b2845737dc420c0505335f96513db13a0c38a4762b7076dac4", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0x03f45de2ab1b976e27acbaa4a9945e5ea7f4ed32", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xcbaf9", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea26469706673582212201a43e03d554ef4508b4ce4929a5e2c8c851ee4de243e12f6b2b1267ec83a42f164736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xc80", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xdcad5f76b99d21a8ba3747106f6a29b5ac04bb3e048b53f0c4d5c6059e86af09", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0x624e405a53d1f3fcdf52cebae469bfd6472294fa", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0x16a2ee", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea2646970667358221220d7c8c2f17efce607284d62466051aec3e13f6f1e6deb7e056420af021f77a8ae64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xc81", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3f5d594bfbbd914eb5fefcb4f062797e025aeb4fbe4f902fd585dcdbe0e6aa57", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0xb50b0c9c835e8f4f9436214f6f5219207c3b58cf", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xb0c56", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea2646970667358221220b9f441923fe75e1f6e0f37bda35dde1cbac73c1e69240288bd35172a90f8e35164736f6c634300081b0033", + "nonce": "0xc82", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x9ff65dedade293e16b745bc1ce54fed43f299d59f8d411197b042d21d9861cae", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "gas": "0x14c09", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000009c9832dd2ead3d0752a22acd50b112fd36e063b500000000000000000000000032d60d4a462f5a4b145aa225643e5066aec1611b0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xc83", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xae9bbc6d4e0d728526ae0d84f9b74788dccd1cd47df8f256c8bf8d35672959ff", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "gas": "0x14c09", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000009c9832dd2ead3d0752a22acd50b112fd36e063b500000000000000000000000003f45de2ab1b976e27acbaa4a9945e5ea7f4ed320000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xc84", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb8c77dd22717d8fb4bb15cdf59204014ecc7060878bb115587ec0745a46852e1", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "gas": "0x14c09", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000009c9832dd2ead3d0752a22acd50b112fd36e063b5000000000000000000000000624e405a53d1f3fcdf52cebae469bfd6472294fa0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xc85", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7830ce9eac36e7ebd3f86ffdf0a65af7ac7a2b35206578bb3eee85eddbee9f26", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "gas": "0x14c09", + "value": "0x0", + "input": "0xb6b07b8e0000000000000000000000009c9832dd2ead3d0752a22acd50b112fd36e063b5000000000000000000000000b50b0c9c835e8f4f9436214f6f5219207c3b58cf0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0xc86", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x134d54", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x23d0595a78fe1792e0fa2938c52af24df12ee20e6740a1057287b3e2aa76890b", + "transactionIndex": "0x2", + "blockHash": "0xe6b68fb89def57c5d3a6e1e67987a06e4cf945e08130cd7c0749d002febe1c76", + "blockNumber": "0x9fec298", + "gasUsed": "0x8f852", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x32d60d4a462f5a4b145aa225643e5066aec1611b", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xb708c", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf4d740f8b40579b2845737dc420c0505335f96513db13a0c38a4762b7076dac4", + "transactionIndex": "0x2", + "blockHash": "0xffd60c91a90fb9bc6336e4850d04a8211359b80ab12a9339ce22ab75ae3d373f", + "blockNumber": "0x9fec2a0", + "gasUsed": "0x9b2a4", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x03f45de2ab1b976e27acbaa4a9945e5ea7f4ed32", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x13b4bf", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xdcad5f76b99d21a8ba3747106f6a29b5ac04bb3e048b53f0c4d5c6059e86af09", + "transactionIndex": "0x3", + "blockHash": "0x217f810ff1e7144d796949c6ea1c4d6211f428e766fb4c8e42427e01d6ffd992", + "blockNumber": "0x9fec2a9", + "gasUsed": "0x114204", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x624e405a53d1f3fcdf52cebae469bfd6472294fa", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x869fd", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x3f5d594bfbbd914eb5fefcb4f062797e025aeb4fbe4f902fd585dcdbe0e6aa57", + "transactionIndex": "0x1", + "blockHash": "0xe3ad43cf645eedbd1b1d916be7f3352161e39dd61791603c822a95b2f5ef1adf", + "blockNumber": "0x9fec2b1", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xb50b0c9c835e8f4f9436214f6f5219207c3b58cf", + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2b10d", + "logs": [ + { + "address": "0x9c9832dd2ead3d0752a22acd50b112fd36e063b5", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000032d60d4a462f5a4b145aa225643e5066aec1611b0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x140321df400970d98ed65331a8949656950f7dca0905a6ae8f2c54fedddd62f9", + "blockNumber": "0x9fec2ba", + "transactionHash": "0x9ff65dedade293e16b745bc1ce54fed43f299d59f8d411197b042d21d9861cae", + "transactionIndex": "0x2", + "logIndex": "0x3", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000008000000000000000000000", + "type": "0x2", + "transactionHash": "0x9ff65dedade293e16b745bc1ce54fed43f299d59f8d411197b042d21d9861cae", + "transactionIndex": "0x2", + "blockHash": "0x140321df400970d98ed65331a8949656950f7dca0905a6ae8f2c54fedddd62f9", + "blockNumber": "0x9fec2ba", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "contractAddress": null, + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xe0eee", + "logs": [ + { + "address": "0x9c9832dd2ead3d0752a22acd50b112fd36e063b5", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000003f45de2ab1b976e27acbaa4a9945e5ea7f4ed320000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x9a76221447a2ffe4958a9912512df765cf53b578bb00f434d0002ce3f0d57b8a", + "blockNumber": "0x9fec2c1", + "transactionHash": "0xae9bbc6d4e0d728526ae0d84f9b74788dccd1cd47df8f256c8bf8d35672959ff", + "transactionIndex": "0x6", + "logIndex": "0x1b", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000008000000000000000000000", + "type": "0x2", + "transactionHash": "0xae9bbc6d4e0d728526ae0d84f9b74788dccd1cd47df8f256c8bf8d35672959ff", + "transactionIndex": "0x6", + "blockHash": "0x9a76221447a2ffe4958a9912512df765cf53b578bb00f434d0002ce3f0d57b8a", + "blockNumber": "0x9fec2c1", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "contractAddress": null, + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x2b6c9", + "logs": [ + { + "address": "0x9c9832dd2ead3d0752a22acd50b112fd36e063b5", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000624e405a53d1f3fcdf52cebae469bfd6472294fa0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xc1f5d3b7953e154d4eac02ecae9660219590847b01ed909b5707d9b4eea7b4eb", + "blockNumber": "0x9fec2c9", + "transactionHash": "0xb8c77dd22717d8fb4bb15cdf59204014ecc7060878bb115587ec0745a46852e1", + "transactionIndex": "0x2", + "logIndex": "0x4", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000008000000000000000000000", + "type": "0x2", + "transactionHash": "0xb8c77dd22717d8fb4bb15cdf59204014ecc7060878bb115587ec0745a46852e1", + "transactionIndex": "0x2", + "blockHash": "0xc1f5d3b7953e154d4eac02ecae9660219590847b01ed909b5707d9b4eea7b4eb", + "blockNumber": "0x9fec2c9", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "contractAddress": null, + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d136", + "timeboosted": false + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf8e1", + "logs": [ + { + "address": "0x9c9832dd2ead3d0752a22acd50b112fd36e063b5", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000b50b0c9c835e8f4f9436214f6f5219207c3b58cf0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x47a029380ae77c5ea4fd8bdfc958473c49dad60c59a7208d4207947869d8f4b7", + "blockNumber": "0x9fec2d1", + "transactionHash": "0x7830ce9eac36e7ebd3f86ffdf0a65af7ac7a2b35206578bb3eee85eddbee9f26", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000800000100000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000008000000000000000000000", + "type": "0x2", + "transactionHash": "0x7830ce9eac36e7ebd3f86ffdf0a65af7ac7a2b35206578bb3eee85eddbee9f26", + "transactionIndex": "0x1", + "blockHash": "0x47a029380ae77c5ea4fd8bdfc958473c49dad60c59a7208d4207947869d8f4b7", + "blockNumber": "0x9fec2d1", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0x0709f8b7bdea284c7352a5b12505f3d70bf9c21b", + "contractAddress": null, + "gasUsedForL1": "0x0", + "l1BlockNumber": "0x83d137", + "timeboosted": false + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751010328, + "chain": 421614, + "commit": "23b76ca" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/56/run-1751264857.json b/broadcast/DeployAdapters.s.sol/56/run-1751264857.json new file mode 100644 index 0000000..16df07d --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/56/run-1751264857.json @@ -0,0 +1,350 @@ +{ + "transactions": [ + { + "hash": "0x5a8363cd7ce4fe7b65f82b1ea3faf2d6f44fed481f7c30aab763fdae5feebbb9", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0xc82473b4b712440e3fc311d8439f65aa38556c38", + "function": null, + "arguments": [ + "0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xbaa7f", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220c66a6ef0f7fbba462fbafbd2ef2a7ef760baae0e9780be52e06dc1d37795583464736f6c634300081d0033000000000000000000000000b971ef87ede563556b2ed4b1c0b0019111dd85d2", + "nonce": "0x91", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa85ce580b099d8dc8e505fea81d56fb795f70a6719dd24aceea8424d3e1cf59f", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0x5bbc23e84c248b0563fcfd25b100891625de90cd", + "function": null, + "arguments": [ + "0x89b8AA89FDd0507a99d334CBe3C808fAFC7d850E" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xc9ca6", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea2646970667358221220191f3a0969690b852c0fad405075e504d7c37835c39e58743a8dc57c2ad534da64736f6c634300081d003300000000000000000000000089b8aa89fdd0507a99d334cbe3c808fafc7d850e", + "nonce": "0x92", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb2df9e463fe051f79052b99af12b7beff77f8f59e5b76286ea830c67b696bd82", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0x05d171617fe60ba27992f238686d3eb3b3cadca0", + "function": null, + "arguments": [ + "0x888888888889758F76e7103c6CbF23ABbF58F946" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x1670a3", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea26469706673582212205bf94e5371bc2f132405be99261f2b9351cbdbf49e328ca512e068eee1eda9d164736f6c634300081d0033000000000000000000000000888888888889758f76e7103c6cbf23abbf58f946", + "nonce": "0x93", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x01a7ad0206efe61d71d44c27771a17bfd3236340b7099e2d53ac412de3545478", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0x4f97afab57dc87401558059790445c65c3dc58b8", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xaf02f", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea26469706673582212208494a0174c4f07fd048515a6e3e22a540bf8edf31a0e807f0e3019b7d5b7c74464736f6c634300081d0033", + "nonce": "0x94", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x1aa51ef1edbfe18d2df2424e675220763cc6da7b8a8164f10f262ebf04fd2e70", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a4000000000000000000000000c82473b4b712440e3fc311d8439f65aa38556c380000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x95", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3e64090a8e39d325a6c6360879122272bdb7808a0947a2b5023269bcb121a91b", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x16c16", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000005bbc23e84c248b0563fcfd25b100891625de90cd0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x96", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe9c94ee38972d870abd7e19e9f9fe3b2ecfa6187e4598c3e745a25ac7186546b", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a400000000000000000000000005d171617fe60ba27992f238686d3eb3b3cadca00000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x97", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x21ccc140d2149087fd6de3428c89061b7fa5f7c126d70ce7a51f6b3ce3cfcbbd", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000004f97afab57dc87401558059790445c65c3dc58b80000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x98", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1232150", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x5a8363cd7ce4fe7b65f82b1ea3faf2d6f44fed481f7c30aab763fdae5feebbb9", + "transactionIndex": "0x64", + "blockHash": "0x1a876ac50193a1bb2df3420361ba2e5c2c41f5903ef8f1526093806164292455", + "blockNumber": "0x31ee37a", + "gasUsed": "0x8f94e", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xc82473b4b712440e3fc311d8439f65aa38556c38" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf63232", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa85ce580b099d8dc8e505fea81d56fb795f70a6719dd24aceea8424d3e1cf59f", + "transactionIndex": "0x5b", + "blockHash": "0x3f2e355c16e55682dabed4cb0b4586c4789b36b8631ffbfbeb339da5ef747136", + "blockNumber": "0x31ee37e", + "gasUsed": "0x9b394", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x5bbc23e84c248b0563fcfd25b100891625de90cd" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x16456e9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb2df9e463fe051f79052b99af12b7beff77f8f59e5b76286ea830c67b696bd82", + "transactionIndex": "0x85", + "blockHash": "0xa565832078c5e7e77aad47380d4cf9b800c701bb59f25baa07e46fc91faa77f0", + "blockNumber": "0x31ee382", + "gasUsed": "0x1142f4", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x05d171617fe60ba27992f238686d3eb3b3cadca0" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x10dd6f5", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x01a7ad0206efe61d71d44c27771a17bfd3236340b7099e2d53ac412de3545478", + "transactionIndex": "0x77", + "blockHash": "0xab0ef41d455d8f3a57f160fd4d3a85c519f315bc0ef508143868cf8f7965d3b7", + "blockNumber": "0x31ee387", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x4f97afab57dc87401558059790445c65c3dc58b8" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1518178", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000c82473b4b712440e3fc311d8439f65aa38556c380000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x28bcf1f06ef77a9aa314560e9111e1ba6fffb5f632d0ab3bbfc76a6d42bccb13", + "blockNumber": "0x31ee38b", + "transactionHash": "0x1aa51ef1edbfe18d2df2424e675220763cc6da7b8a8164f10f262ebf04fd2e70", + "transactionIndex": "0x7a", + "logIndex": "0x33d", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000008000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x1aa51ef1edbfe18d2df2424e675220763cc6da7b8a8164f10f262ebf04fd2e70", + "transactionIndex": "0x7a", + "blockHash": "0x28bcf1f06ef77a9aa314560e9111e1ba6fffb5f632d0ab3bbfc76a6d42bccb13", + "blockNumber": "0x31ee38b", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x9a4d3b", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x0000000000000000000000005bbc23e84c248b0563fcfd25b100891625de90cd0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x6bd8082b4410f630b00623c95227c81b130b0e6f13edd412e219676b2429e8f8", + "blockNumber": "0x31ee390", + "transactionHash": "0x3e64090a8e39d325a6c6360879122272bdb7808a0947a2b5023269bcb121a91b", + "transactionIndex": "0x3d", + "logIndex": "0x189", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000008000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x3e64090a8e39d325a6c6360879122272bdb7808a0947a2b5023269bcb121a91b", + "transactionIndex": "0x3d", + "blockHash": "0x6bd8082b4410f630b00623c95227c81b130b0e6f13edd412e219676b2429e8f8", + "blockNumber": "0x31ee390", + "gasUsed": "0xf8f3", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xdd243c", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000005d171617fe60ba27992f238686d3eb3b3cadca00000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xbc85ddbeccc09a93289da4f0bfa65daa489f580256b67f913807335e22750b2d", + "blockNumber": "0x31ee394", + "transactionHash": "0xe9c94ee38972d870abd7e19e9f9fe3b2ecfa6187e4598c3e745a25ac7186546b", + "transactionIndex": "0x4b", + "logIndex": "0x1d3", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000008000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe9c94ee38972d870abd7e19e9f9fe3b2ecfa6187e4598c3e745a25ac7186546b", + "transactionIndex": "0x4b", + "blockHash": "0xbc85ddbeccc09a93289da4f0bfa65daa489f580256b67f913807335e22750b2d", + "blockNumber": "0x31ee394", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x192348c", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x0000000000000000000000004f97afab57dc87401558059790445c65c3dc58b80000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xf97fd76c8b3bd016291ea9789351e9024f1fb362b27c792444f70ddefbb9465c", + "blockNumber": "0x31ee398", + "transactionHash": "0x21ccc140d2149087fd6de3428c89061b7fa5f7c126d70ce7a51f6b3ce3cfcbbd", + "transactionIndex": "0x7f", + "logIndex": "0x48d", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000008000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x21ccc140d2149087fd6de3428c89061b7fa5f7c126d70ce7a51f6b3ce3cfcbbd", + "transactionIndex": "0x7f", + "blockHash": "0xf97fd76c8b3bd016291ea9789351e9024f1fb362b27c792444f70ddefbb9465c", + "blockNumber": "0x31ee398", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751264857, + "chain": 56, + "commit": "01db0f8" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/56/run-latest.json b/broadcast/DeployAdapters.s.sol/56/run-latest.json new file mode 100644 index 0000000..16df07d --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/56/run-latest.json @@ -0,0 +1,350 @@ +{ + "transactions": [ + { + "hash": "0x5a8363cd7ce4fe7b65f82b1ea3faf2d6f44fed481f7c30aab763fdae5feebbb9", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0xc82473b4b712440e3fc311d8439f65aa38556c38", + "function": null, + "arguments": [ + "0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xbaa7f", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220c66a6ef0f7fbba462fbafbd2ef2a7ef760baae0e9780be52e06dc1d37795583464736f6c634300081d0033000000000000000000000000b971ef87ede563556b2ed4b1c0b0019111dd85d2", + "nonce": "0x91", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xa85ce580b099d8dc8e505fea81d56fb795f70a6719dd24aceea8424d3e1cf59f", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0x5bbc23e84c248b0563fcfd25b100891625de90cd", + "function": null, + "arguments": [ + "0x89b8AA89FDd0507a99d334CBe3C808fAFC7d850E" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xc9ca6", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea2646970667358221220191f3a0969690b852c0fad405075e504d7c37835c39e58743a8dc57c2ad534da64736f6c634300081d003300000000000000000000000089b8aa89fdd0507a99d334cbe3c808fafc7d850e", + "nonce": "0x92", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb2df9e463fe051f79052b99af12b7beff77f8f59e5b76286ea830c67b696bd82", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0x05d171617fe60ba27992f238686d3eb3b3cadca0", + "function": null, + "arguments": [ + "0x888888888889758F76e7103c6CbF23ABbF58F946" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x1670a3", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea26469706673582212205bf94e5371bc2f132405be99261f2b9351cbdbf49e328ca512e068eee1eda9d164736f6c634300081d0033000000000000000000000000888888888889758f76e7103c6cbf23abbf58f946", + "nonce": "0x93", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x01a7ad0206efe61d71d44c27771a17bfd3236340b7099e2d53ac412de3545478", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0x4f97afab57dc87401558059790445c65c3dc58b8", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0xaf02f", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea26469706673582212208494a0174c4f07fd048515a6e3e22a540bf8edf31a0e807f0e3019b7d5b7c74464736f6c634300081d0033", + "nonce": "0x94", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x1aa51ef1edbfe18d2df2424e675220763cc6da7b8a8164f10f262ebf04fd2e70", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a4000000000000000000000000c82473b4b712440e3fc311d8439f65aa38556c380000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x95", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x3e64090a8e39d325a6c6360879122272bdb7808a0947a2b5023269bcb121a91b", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x16c16", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000005bbc23e84c248b0563fcfd25b100891625de90cd0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x96", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe9c94ee38972d870abd7e19e9f9fe3b2ecfa6187e4598c3e745a25ac7186546b", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a400000000000000000000000005d171617fe60ba27992f238686d3eb3b3cadca00000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x97", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x21ccc140d2149087fd6de3428c89061b7fa5f7c126d70ce7a51f6b3ce3cfcbbd", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x157eb", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000004f97afab57dc87401558059790445c65c3dc58b80000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x98", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1232150", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x5a8363cd7ce4fe7b65f82b1ea3faf2d6f44fed481f7c30aab763fdae5feebbb9", + "transactionIndex": "0x64", + "blockHash": "0x1a876ac50193a1bb2df3420361ba2e5c2c41f5903ef8f1526093806164292455", + "blockNumber": "0x31ee37a", + "gasUsed": "0x8f94e", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0xc82473b4b712440e3fc311d8439f65aa38556c38" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf63232", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa85ce580b099d8dc8e505fea81d56fb795f70a6719dd24aceea8424d3e1cf59f", + "transactionIndex": "0x5b", + "blockHash": "0x3f2e355c16e55682dabed4cb0b4586c4789b36b8631ffbfbeb339da5ef747136", + "blockNumber": "0x31ee37e", + "gasUsed": "0x9b394", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x5bbc23e84c248b0563fcfd25b100891625de90cd" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x16456e9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb2df9e463fe051f79052b99af12b7beff77f8f59e5b76286ea830c67b696bd82", + "transactionIndex": "0x85", + "blockHash": "0xa565832078c5e7e77aad47380d4cf9b800c701bb59f25baa07e46fc91faa77f0", + "blockNumber": "0x31ee382", + "gasUsed": "0x1142f4", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x05d171617fe60ba27992f238686d3eb3b3cadca0" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x10dd6f5", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x01a7ad0206efe61d71d44c27771a17bfd3236340b7099e2d53ac412de3545478", + "transactionIndex": "0x77", + "blockHash": "0xab0ef41d455d8f3a57f160fd4d3a85c519f315bc0ef508143868cf8f7965d3b7", + "blockNumber": "0x31ee387", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x4f97afab57dc87401558059790445c65c3dc58b8" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1518178", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000c82473b4b712440e3fc311d8439f65aa38556c380000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x28bcf1f06ef77a9aa314560e9111e1ba6fffb5f632d0ab3bbfc76a6d42bccb13", + "blockNumber": "0x31ee38b", + "transactionHash": "0x1aa51ef1edbfe18d2df2424e675220763cc6da7b8a8164f10f262ebf04fd2e70", + "transactionIndex": "0x7a", + "logIndex": "0x33d", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000008000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x1aa51ef1edbfe18d2df2424e675220763cc6da7b8a8164f10f262ebf04fd2e70", + "transactionIndex": "0x7a", + "blockHash": "0x28bcf1f06ef77a9aa314560e9111e1ba6fffb5f632d0ab3bbfc76a6d42bccb13", + "blockNumber": "0x31ee38b", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x9a4d3b", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x0000000000000000000000005bbc23e84c248b0563fcfd25b100891625de90cd0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x6bd8082b4410f630b00623c95227c81b130b0e6f13edd412e219676b2429e8f8", + "blockNumber": "0x31ee390", + "transactionHash": "0x3e64090a8e39d325a6c6360879122272bdb7808a0947a2b5023269bcb121a91b", + "transactionIndex": "0x3d", + "logIndex": "0x189", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000008000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x3e64090a8e39d325a6c6360879122272bdb7808a0947a2b5023269bcb121a91b", + "transactionIndex": "0x3d", + "blockHash": "0x6bd8082b4410f630b00623c95227c81b130b0e6f13edd412e219676b2429e8f8", + "blockNumber": "0x31ee390", + "gasUsed": "0xf8f3", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xdd243c", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000005d171617fe60ba27992f238686d3eb3b3cadca00000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xbc85ddbeccc09a93289da4f0bfa65daa489f580256b67f913807335e22750b2d", + "blockNumber": "0x31ee394", + "transactionHash": "0xe9c94ee38972d870abd7e19e9f9fe3b2ecfa6187e4598c3e745a25ac7186546b", + "transactionIndex": "0x4b", + "logIndex": "0x1d3", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000008000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe9c94ee38972d870abd7e19e9f9fe3b2ecfa6187e4598c3e745a25ac7186546b", + "transactionIndex": "0x4b", + "blockHash": "0xbc85ddbeccc09a93289da4f0bfa65daa489f580256b67f913807335e22750b2d", + "blockNumber": "0x31ee394", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x192348c", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x0000000000000000000000004f97afab57dc87401558059790445c65c3dc58b80000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xf97fd76c8b3bd016291ea9789351e9024f1fb362b27c792444f70ddefbb9465c", + "blockNumber": "0x31ee398", + "transactionHash": "0x21ccc140d2149087fd6de3428c89061b7fa5f7c126d70ce7a51f6b3ce3cfcbbd", + "transactionIndex": "0x7f", + "logIndex": "0x48d", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000008000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000020000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x21ccc140d2149087fd6de3428c89061b7fa5f7c126d70ce7a51f6b3ce3cfcbbd", + "transactionIndex": "0x7f", + "blockHash": "0xf97fd76c8b3bd016291ea9789351e9024f1fb362b27c792444f70ddefbb9465c", + "blockNumber": "0x31ee398", + "gasUsed": "0xf8ff", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751264857, + "chain": 56, + "commit": "01db0f8" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/97/run-1751010534.json b/broadcast/DeployAdapters.s.sol/97/run-1751010534.json new file mode 100644 index 0000000..4bccf33 --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/97/run-1751010534.json @@ -0,0 +1,350 @@ +{ + "transactions": [ + { + "hash": "0xba60b43fa9140f38461326c6c7b67e28c5a813c0ec8f7e581880730b71b6332b", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0xc8175570536849923d2a38fdfc33f2ea9ace4134", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xba937", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220f6000c9f1bdef97179fd0d632833ccb7f8eb8b0c4e5d5beef7139a47675404a964736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x30", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x94b7e404499a97ab65c21dfaf519c3a3bb7c4e649ba12e019844f50c9794d472", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0x55f73c3d6f90e0858423a813969270d735ff0015", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xc9b6e", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea26469706673582212201a43e03d554ef4508b4ce4929a5e2c8c851ee4de243e12f6b2b1267ec83a42f164736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x31", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xeee1e911e60cec84f21e5942d1a5241a2717f8294818e959da6c1877ce2153ea", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0x7d799fe4ea4b4fea5ba8545f2b4f04f0c151b2ac", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0x166f6b", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea2646970667358221220d7c8c2f17efce607284d62466051aec3e13f6f1e6deb7e056420af021f77a8ae64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x32", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x1e6a0ea37630efac2d8a94689260a6d137bfe6fa660df6ed543b620e1e936fc1", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0xae3c3a1677ec9f061c768edd6c0d50a6a67f4656", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xaf02f", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea2646970667358221220b9f441923fe75e1f6e0f37bda35dde1cbac73c1e69240288bd35172a90f8e35164736f6c634300081b0033", + "nonce": "0x33", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x10f912a74a9ba8e7cc6236a0036edc34bdf516c9e1edd07e8b58f0b7f9ace78e", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000fe1dfce548e8aebe2964d5c0c9906fce981d7e47000000000000000000000000c8175570536849923d2a38fdfc33f2ea9ace41340000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x34", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x5d3e796e8811e1449d7defe88ab0018e0599377032e4d2922c34ac78616191bd", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "gas": "0x157b2", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000fe1dfce548e8aebe2964d5c0c9906fce981d7e4700000000000000000000000055f73c3d6f90e0858423a813969270d735ff00150000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x35", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb565c3e163ae0d7c79fdc372b42fb7a98f11c6f314e709fa005f106162ab95fa", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000fe1dfce548e8aebe2964d5c0c9906fce981d7e470000000000000000000000007d799fe4ea4b4fea5ba8545f2b4f04f0c151b2ac0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x36", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x97a98efb79292bdae9e410fb5d0a08a8253a9c5b40dd752794294258a2e7549a", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000fe1dfce548e8aebe2964d5c0c9906fce981d7e47000000000000000000000000ae3c3a1677ec9f061c768edd6c0d50a6a67f46560000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x37", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x10d561", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xba60b43fa9140f38461326c6c7b67e28c5a813c0ec8f7e581880730b71b6332b", + "transactionIndex": "0x2", + "blockHash": "0xf4b29dfcc1aff6e328a06c7f07ab957b7258085c448d631c9a8038f6b90cf478", + "blockNumber": "0x35a2bb3", + "gasUsed": "0x8f852", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xc8175570536849923d2a38fdfc33f2ea9ace4134" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xbe116", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x94b7e404499a97ab65c21dfaf519c3a3bb7c4e649ba12e019844f50c9794d472", + "transactionIndex": "0x2", + "blockHash": "0xa8e341316b187d93e6d487d56ae05fc0463549d002fe2d5f9cd0dd4d54b5faf0", + "blockNumber": "0x35a2bb7", + "gasUsed": "0x9b2a4", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x55f73c3d6f90e0858423a813969270d735ff0015" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x17c22c", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xeee1e911e60cec84f21e5942d1a5241a2717f8294818e959da6c1877ce2153ea", + "transactionIndex": "0x2", + "blockHash": "0x151f08407abf0008ac9f0922683b6f02e1ced3940ddf1bda5ef3e48a58090bea", + "blockNumber": "0x35a2bbc", + "gasUsed": "0x114204", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x7d799fe4ea4b4fea5ba8545f2b4f04f0c151b2ac" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xcaca3", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x1e6a0ea37630efac2d8a94689260a6d137bfe6fa660df6ed543b620e1e936fc1", + "transactionIndex": "0x2", + "blockHash": "0xc05e334186d449cf7bce02f985cd64bee5bf65a5ed64305c17c061507d0cec5e", + "blockNumber": "0x35a2bbf", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xae3c3a1677ec9f061c768edd6c0d50a6a67f4656" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf8e1", + "logs": [ + { + "address": "0xfe1dfce548e8aebe2964d5c0c9906fce981d7e47", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000c8175570536849923d2a38fdfc33f2ea9ace41340000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x044c5d2e125ae6bbd630ae8d9d529ae2288d73712158665543bf923e8d76dcd1", + "blockNumber": "0x35a2bc1", + "transactionHash": "0x10f912a74a9ba8e7cc6236a0036edc34bdf516c9e1edd07e8b58f0b7f9ace78e", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000400000000000010000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x10f912a74a9ba8e7cc6236a0036edc34bdf516c9e1edd07e8b58f0b7f9ace78e", + "transactionIndex": "0x0", + "blockHash": "0x044c5d2e125ae6bbd630ae8d9d529ae2288d73712158665543bf923e8d76dcd1", + "blockNumber": "0x35a2bc1", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xd9c7d", + "logs": [ + { + "address": "0xfe1dfce548e8aebe2964d5c0c9906fce981d7e47", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000055f73c3d6f90e0858423a813969270d735ff00150000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x68931ddf7ecd42ff4ca3246cc8ae092c8e6d441de8aeaa0d63dbe802d01c1f24", + "blockNumber": "0x35a2bc5", + "transactionHash": "0x5d3e796e8811e1449d7defe88ab0018e0599377032e4d2922c34ac78616191bd", + "transactionIndex": "0x4", + "logIndex": "0xd", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000400000000000010000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x5d3e796e8811e1449d7defe88ab0018e0599377032e4d2922c34ac78616191bd", + "transactionIndex": "0x4", + "blockHash": "0x68931ddf7ecd42ff4ca3246cc8ae092c8e6d441de8aeaa0d63dbe802d01c1f24", + "blockNumber": "0x35a2bc5", + "gasUsed": "0xf8d5", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x37c62", + "logs": [ + { + "address": "0xfe1dfce548e8aebe2964d5c0c9906fce981d7e47", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x0000000000000000000000007d799fe4ea4b4fea5ba8545f2b4f04f0c151b2ac0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xab9368f282a7005cd30af9b4e137ff6f258e6ebdb7fce384e9ffdd34b28df0ba", + "blockNumber": "0x35a2bc9", + "transactionHash": "0xb565c3e163ae0d7c79fdc372b42fb7a98f11c6f314e709fa005f106162ab95fa", + "transactionIndex": "0x2", + "logIndex": "0x4", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000400000000000010000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb565c3e163ae0d7c79fdc372b42fb7a98f11c6f314e709fa005f106162ab95fa", + "transactionIndex": "0x2", + "blockHash": "0xab9368f282a7005cd30af9b4e137ff6f258e6ebdb7fce384e9ffdd34b28df0ba", + "blockNumber": "0x35a2bc9", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf1904", + "logs": [ + { + "address": "0xfe1dfce548e8aebe2964d5c0c9906fce981d7e47", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000ae3c3a1677ec9f061c768edd6c0d50a6a67f46560000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xc15167a21c521d1e08eb622ee4f96493e672e0194b037de2d2ee54ce019d844b", + "blockNumber": "0x35a2bcb", + "transactionHash": "0x97a98efb79292bdae9e410fb5d0a08a8253a9c5b40dd752794294258a2e7549a", + "transactionIndex": "0x6", + "logIndex": "0xf", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000400000000000010000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x97a98efb79292bdae9e410fb5d0a08a8253a9c5b40dd752794294258a2e7549a", + "transactionIndex": "0x6", + "blockHash": "0xc15167a21c521d1e08eb622ee4f96493e672e0194b037de2d2ee54ce019d844b", + "blockNumber": "0x35a2bcb", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751010534, + "chain": 97, + "commit": "23b76ca" +} \ No newline at end of file diff --git a/broadcast/DeployAdapters.s.sol/97/run-latest.json b/broadcast/DeployAdapters.s.sol/97/run-latest.json new file mode 100644 index 0000000..4bccf33 --- /dev/null +++ b/broadcast/DeployAdapters.s.sol/97/run-latest.json @@ -0,0 +1,350 @@ +{ + "transactions": [ + { + "hash": "0xba60b43fa9140f38461326c6c7b67e28c5a813c0ec8f7e581880730b71b6332b", + "transactionType": "CREATE", + "contractName": "UniswapV3AdapterV2", + "contractAddress": "0xc8175570536849923d2a38fdfc33f2ea9ace4134", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xba937", + "value": "0x0", + "input": "0x60c034607a57601f610a3738819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a0526040516109a4908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106c15780636563c0e9146105f55780639df3032514610495578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b161072d565b6100b9610743565b5060443567ffffffffffffffff8111610094576100da903690600401610797565b60643567ffffffffffffffff8111610094576100fa903690600401610797565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146104865781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529193919290602081604481855afa80156103bd5785905f90610450575b6101b79250610857565b60405163095ea7b360e01b60208083019182526001600160a01b03871660248401526044808401949094529282529091905f906101f5606485610759565b83519082865af15f513d82610434575b5050156103f0575b505080518101916080826020850194031261009457602082015167ffffffffffffffff811161009457820183603f82011215610094576020810151906102528261077b565b946102606040519687610759565b8286526040828401011161009457815f926040602093018388015e85010152604082015191608060608201519101519061029b8187846108d0565b9080156103dc57866102b09309151590610857565b9260405160a081019080821067ffffffffffffffff8311176103c857602095610322935f936040528252868201903082526040830196875260608301988952608083019081526040519889978896879563c04b8d5960e01b87528b60048801525160a0602488015260c4870190610833565b93516001600160a01b031660448601525160648501525160848401525160a483015203925af180156103bd575f90610389575b6103859060405190602082015260208152610371604082610759565b604051918291602083526020830190610833565b0390f35b506020813d6020116103b5575b816103a360209383610759565b81010312610094576103859051610355565b3d9150610396565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b61042d9161042860405163095ea7b360e01b60208201528660248201525f604482015260448152610422606482610759565b82610878565b610878565b838061020d565b9091506104485750813b15155b8680610205565b600114610441565b50506020813d60201161047e575b8161046b60209383610759565b8101031261009457846101b791516101ad565b3d915061045e565b6302f3451d60e21b5f5260045ffd5b34610094576104a3366107dd565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156103bd575f916105c1575b5061054a936105586105176020945f94610857565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610759565b84519082855af15f513d826105a5575b50501561057157005b6104286105a3936040519063095ea7b360e01b602083015260248201525f604482015260448152610422606482610759565b005b9091506105b95750803b15155b8480610568565b6001146105b2565b90506020813d6020116105ed575b816105dc60209383610759565b81010312610094575161054a610502565b3d91506105cf565b346100945760803660031901126100945761060e61072d565b610616610743565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff81116100945761064c903690600401610797565b6020815191818082019384920101031261009457515f1981146106b2576105a393604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526106a4608483610759565b6001600160a01b0316610878565b630d550c3b60e11b5f5260045ffd5b34610094576106cf366107dd565b602081939293519181808201938492010103126100945751905f1982146106b25760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526105a391906106a4606483610759565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff8211176103c857604052565b67ffffffffffffffff81116103c857601f01601f191660200190565b81601f82011215610094578035906107ae8261077b565b926107bc6040519485610759565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff82116100945761083091600401610797565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9190820180921161086457565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156103bd575f513d6108c757506001600160a01b0381163b155b6108a75750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156108a0565b91818302915f198185099383808610950394808603951461096057848311156109485790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103dc57049056fea2646970667358221220f6000c9f1bdef97179fd0d632833ccb7f8eb8b0c4e5d5beef7139a47675404a964736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x30", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x94b7e404499a97ab65c21dfaf519c3a3bb7c4e649ba12e019844f50c9794d472", + "transactionType": "CREATE", + "contractName": "OdosV2AdapterV2", + "contractAddress": "0x55f73c3d6f90e0858423a813969270d735ff0015", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xc9b6e", + "value": "0x0", + "input": "0x60c034607a57601f610b1438819003918201601f19168301916001600160401b03831184841017607e57808492602094604052833981010312607a57516001600160a01b03811690819003607a573060805260a052604051610a81908161009382396080518160fd015260a051818181606501526101610152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146107565780636563c0e91461068a5780639df303251461052a578063e0a80413146100985763f887ea4014610050575f80fd5b34610094575f366003190112610094576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b34610094576080366003190112610094576100b16107c2565b6100b96107d8565b5060443567ffffffffffffffff8111610094576100da90369060040161082c565b60643567ffffffffffffffff8111610094576100fa90369060040161082c565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461051b5781516001600160a01b039190911691602080820192820191909103126100945751604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660248201819052919290602081604481855afa80156104665784905f906104e5575b6101b59250610900565b60405163095ea7b360e01b60208083019182526001600160a01b03861660248401526044808401949094529282529091905f906101f36064856107ee565b83519082865af15f513d826104c9575b505015610485575b505082518301908360208301920361014081126100945760e013610094576040519160e0830183811067ffffffffffffffff82111761047157604052610253602086016108ec565b83526040850151906020840191825261026e606087016108ec565b9360408101948552610282608088016108ec565b966060820197885260a0810151926080830193845260c08201519760a084019889526102b060e084016108ec565b9160c0850192835261010084015167ffffffffffffffff811161009457840181603f82011215610094576020810151906102e982610810565b926102f760405194856107ee565b8284526040828401011161009457815f926040602093018386015e830101526101208401516001600160a01b03811694908590036100945761014001519263ffffffff84168094036100945760209a876103e09461035a5f9a51828d5191610921565b825261036a8351828d5191610921565b83528a52308352604051630ed8d73960e21b815297516001600160a01b0390811660048a0152995160248901529a51891660448801529b518816606487015298516084860152995160a4850152965190941660c483015261014060e48301529096879586948593929091906101448501906108c8565b9161010484015261012483015203925af18015610466575f90610432575b61042e906040519060208201526020815261041a6040826107ee565b6040519182916020835260208301906108c8565b0390f35b506020813d60201161045e575b8161044c602093836107ee565b810103126100945761042e90516103fe565b3d915061043f565b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b6104c2916104bd60405163095ea7b360e01b60208201528560248201525f6044820152604481526104b76064826107ee565b82610955565b610955565b838061020b565b9091506104dd5750813b15155b8680610203565b6001146104d6565b50506020813d602011610513575b81610500602093836107ee565b8101031261009457836101b591516101ab565b3d91506104f3565b6302f3451d60e21b5f5260045ffd5b346100945761053836610872565b80516001600160a01b039093169260208083019291820191909103126100945751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610466575f91610656575b506105df936105ed6105ac6020945f94610900565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866107ee565b84519082855af15f513d8261063a575b50501561060657005b6104bd610638936040519063095ea7b360e01b602083015260248201525f6044820152604481526104b76064826107ee565b005b90915061064e5750803b15155b84806105fd565b600114610647565b90506020813d602011610682575b81610671602093836107ee565b8101031261009457516105df610597565b3d9150610664565b34610094576080366003190112610094576106a36107c2565b6106ab6107d8565b6044356001600160a01b03811692908390036100945760643567ffffffffffffffff8111610094576106e190369060040161082c565b6020815191818082019384920101031261009457515f1981146107475761063893604051936323b872dd60e01b602086015260018060a01b0316602485015260448401526064830152606482526107396084836107ee565b6001600160a01b0316610955565b630d550c3b60e11b5f5260045ffd5b346100945761076436610872565b602081939293519181808201938492010103126100945751905f1982146107475760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261063891906107396064836107ee565b600435906001600160a01b038216820361009457565b602435906001600160a01b038216820361009457565b90601f8019910116810190811067ffffffffffffffff82111761047157604052565b67ffffffffffffffff811161047157601f01601f191660200190565b81601f820112156100945780359061084382610810565b9261085160405194856107ee565b8284526020838301011161009457815f926020809301838601378301015290565b6060600319820112610094576004356001600160a01b038116810361009457916024356001600160a01b038116810361009457916044359067ffffffffffffffff8211610094576108c59160040161082c565b90565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b51906001600160a01b038216820361009457565b9190820180921161090d57565b634e487b7160e01b5f52601160045260245ffd5b9161092d8183856109ad565b918115610941576108c59309151590610900565b634e487b7160e01b5f52601260045260245ffd5b905f602091828151910182855af115610466575f513d6109a457506001600160a01b0381163b155b6109845750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b6001141561097d565b91818302915f1981850993838086109503948086039514610a3d5784831115610a255790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561094157049056fea26469706673582212201a43e03d554ef4508b4ce4929a5e2c8c851ee4de243e12f6b2b1267ec83a42f164736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x31", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xeee1e911e60cec84f21e5942d1a5241a2717f8294818e959da6c1877ce2153ea", + "transactionType": "CREATE", + "contractName": "PendleSwapV3AdapterV2", + "contractAddress": "0x7d799fe4ea4b4fea5ba8545f2b4f04f0c151b2ac", + "function": null, + "arguments": [ + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0x166f6b", + "value": "0x0", + "input": "0x60c0604052346100f757604051601f61132138819003918201601f19168301916001600160401b038311848410176100e3578084926020946040528339810103126100f757516001600160a01b038116908190036100f7573060805260405160a081016001600160401b038111828210176100e357655af3107a4000916080916040525f81525f1960208201525f6040820152610100606082015201525f6008555f196009555f600a55610100600b55655af3107a4000600c5560a05260405161122590816100fc82396080518161025d015260a0518181816089015261031d0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816309316dd314610b30575080633268263b14610ac45780634ebfc81414610a855780636563c0e9146109b95780639df303251461084e578063e0a80413146101f8578063f66a7749146100bc5763f887ea4014610074575f80fd5b346100b8575f3660031901126100b8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5f80fd5b346100b8575f3660031901126100b8575f54604051905f6001548060011c91600182169182156101ee575b6020841083146101da5783865285929081156101bb575060011461015c575b61011292500383610cd2565b60ff60025416610150604051938361012e8660ff819716610e04565b60081c6001600160a01b03166020850152608060408501819052840190610d08565b90151560608301520390f35b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061019f57505090602061011292820101610106565b6020919350806001915483858901015201910190918492610187565b6020925061011294915060ff191682840152151560051b820101610106565b634e487b7160e01b5f52602260045260245ffd5b92607f16926100e7565b346100b85760803660031901126100b857610211610d2c565b610219610d42565b60443567ffffffffffffffff81116100b857610239903690600401610d58565b9160643567ffffffffffffffff81116100b85761025a903690600401610d58565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316301461083f5783516001600160a01b0393841694919093169260208083019291820191909103126100b85751916060828051810103126100b85760208201516001600160a01b03811691908290036100b857606060408401519301519460405195630b2339af60e21b8752606087600481875afa968715610508575f976107d2575b50604051636eb1769f60e11b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602482018190529590602081604481885afa80156105085788905f9061079c575b6103709250611041565b60405163095ea7b360e01b60208083019182526001600160a01b038a1660248401526044808401949094529282529091905f906103ae606485610cd2565b83519082895af15f513d82610780575b50501561073c575b506103d2818884611151565b90801561072857876103e79309151590611041565b956001600160a01b0316818103610513575050935f606094939261047e9661040d611062565b95818752602087015260408601526104906040519788968795869463640fc23d60e11b86523060048701526024860152604485015260085460648501526009546084850152600a5460a4850152600b5460c4850152600c5460e4850152610140610104850152610144840190610e40565b82810360031901610124840152610ff1565b03925af18015610508576104d3915f916104d7575b505b604051906020820152602081526104bf604082610cd2565b604051918291602083526020830190610d08565b0390f35b6104f9915060603d606011610501575b6104f18183610cd2565b810190610e25565b5050826104a5565b503d6104e7565b6040513d5f823e3d90fd5b9150949391604051630bc4ed8360e21b8152602081600481865afa908115610508575f916106ed575b50156106535750936020600494956040519586809263781c18db60e01b82525afa938415610508575f9461060b575b50905f61057f6105bc9660409695946110d2565b938551968795869485936323f8ef1160e11b855230600486015260018060a01b031660248501526044840152608060648401526084830190610e40565b03925af18015610508575f906105d7575b6104d391506104a7565b506040813d604011610603575b816105f160409383610cd2565b810103126100b8576104d390516105cd565b3d91506105e4565b90929193506020813d60201161064b575b8161062960209383610cd2565b810103126100b85751926001600160a01b03841684036100b85790915f61056b565b3d915061061c565b929190505f6106676060956106a0976110d2565b936106b160405197889687958694631652a23360e21b86523060048701526024860152604485015260a0606485015260a4840190610e40565b828103600319016084840152610ff1565b03925af18015610508576104d3915f916106cc575b506104a7565b6106e5915060603d606011610501576104f18183610cd2565b5050826106c6565b90506020813d602011610720575b8161070860209383610cd2565b810103126100b8575180151581036100b8578761053c565b3d91506106fb565b634e487b7160e01b5f52601260045260245ffd5b61077a9061077460405163095ea7b360e01b60208201528960248201525f60448201526044815261076e606482610cd2565b876110f9565b856110f9565b886103c6565b9091506107945750843b15155b8a806103be565b60011461078d565b50506020813d6020116107ca575b816107b760209383610cd2565b810103126100b857876103709151610366565b3d91506107aa565b9096506060813d606011610837575b816107ee60609383610cd2565b810103126100b85780516001600160a01b038116036100b8576020810151906001600160a01b03821682036100b857604001516001600160a01b038116036100b8579587610307565b3d91506107e1565b6302f3451d60e21b5f5260045ffd5b346100b85761085c36610dae565b80516001600160a01b039093169260208083019291820191909103126100b85751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa908115610508575f91610985575b50610903936109116108d06020945f94611041565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f198101875286610cd2565b84519082855af15f513d82610969575b50501561092a57005b610962610967936040519063095ea7b360e01b602083015260248201525f60448201526044815261095c606482610cd2565b826110f9565b6110f9565b005b90915061097d5750803b15155b8480610921565b600114610976565b90506020813d6020116109b1575b816109a060209383610cd2565b810103126100b857516109036108bb565b3d9150610993565b346100b85760803660031901126100b8576109d2610d2c565b6109da610d42565b6044356001600160a01b03811692908390036100b85760643567ffffffffffffffff81116100b857610a10903690600401610d58565b602081519181808201938492010103126100b857515f198114610a765761096793604051936323b872dd60e01b602086015260018060a01b031660248501526044840152606483015260648252610a68608483610cd2565b6001600160a01b03166110f9565b630d550c3b60e11b5f5260045ffd5b346100b8575f3660031901126100b85760a0600854600954600a54600b5490600c54926040519485526020850152604084015260608301526080820152f35b346100b857610ad236610dae565b602081939293519181808201938492010103126100b85751905f198214610a765760405163a9059cbb60e01b60208201526001600160a01b039390931660248401526044808401929092529082526109679190610a68606483610cd2565b346100b8575f3660031901126100b85760018060a01b0360035416600454915f6007548060011c90600181168015610c31575b6020831081146101da57828552908115610c0d5750600114610baf575b5090610b91816104d3930382610cd2565b60405193849384526020840152606060408401526060830190610d08565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610bf357509091508101602001610b91610b80565b919260018160209254838588010152019101909291610bdb565b60ff191660208086019190915291151560051b84019091019150610b919050610b80565b91607f1691610b63565b5f92918154918260011c92600181168015610cc8575b6020851081146101da57848452908115610cab5750600114610c7257505050565b5f9081526020812093945091925b838310610c91575060209250010190565b600181602092949394548385870101520191019190610c80565b915050602093945060ff929192191683830152151560051b010190565b93607f1693610c51565b90601f8019910116810190811067ffffffffffffffff821117610cf457604052565b634e487b7160e01b5f52604160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100b857565b602435906001600160a01b03821682036100b857565b81601f820112156100b85780359067ffffffffffffffff8211610cf45760405192610d8d601f8401601f191660200185610cd2565b828452602083830101116100b857815f926020809301838601378301015290565b60606003198201126100b8576004356001600160a01b03811681036100b857916024356001600160a01b03811681036100b857916044359067ffffffffffffffff82116100b857610e0191600401610d58565b90565b90600b821015610e115752565b634e487b7160e01b5f52602160045260245ffd5b908160609103126100b8578051916040602083015192015190565b60809060018060a01b0381511683526020810151602084015260018060a01b03604082015116604084015260018060a01b03606082015116606084015201519060a06080820152610e9560a082018351610e04565b60208201516001600160a01b031660c08201526040820151608060e083015261010090606090610eca90610120850190610d08565b930151151591015290565b908060208354918281520160208260051b840101935f5260205f20925f905b838210610f0357505050505090565b9091929394601f19828203018452606081528554606082015260018601546080820152600286015460a0820152600386015460ff81166004811015610e115760c08301526001600160a01b03600891821c811660e0840152600488015481166101008401526005880154811661012084015260068801541661014083015260078701546101608301528601546101808083019190915260098701546101a08301526101c0820152600190602090600d90610fd7610fc76101e08301600a8c01610c3b565b82810385840152600b8b01610c3b565b906040600c8b015491015297019401920190939293610ef4565b610e019060018060a01b03600354168152600454602082015260a0604082015261103161102260a083016005610ed5565b82810360608401526006610ed5565b9060808183039101526007610c3b565b9190820180921161104e57565b634e487b7160e01b5f52601160045260245ffd5b6040519060a0820182811067ffffffffffffffff821117610cf457604052815f81525f60208201525f60408201525f606082015260405190608082019082821067ffffffffffffffff831117610cf4576080916040525f83525f6020840152606060408401525f60608401520152565b91906110dc611062565b6001600160a01b0390931680845260208401919091526040830152565b905f602091828151910182855af115610508575f513d61114857506001600160a01b0381163b155b6111285750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611121565b91818302915f19818509938380861095039480860395146111e157848311156111c95790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b50508092501561072857049056fea2646970667358221220d7c8c2f17efce607284d62466051aec3e13f6f1e6deb7e056420af021f77a8ae64736f6c634300081b00330000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x32", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x1e6a0ea37630efac2d8a94689260a6d137bfe6fa660df6ed543b620e1e936fc1", + "transactionType": "CREATE", + "contractName": "ERC4626VaultAdapterV2", + "contractAddress": "0xae3c3a1677ec9f061c768edd6c0d50a6a67f4656", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "gas": "0xaf02f", + "value": "0x0", + "input": "0x60a0806040523460215730608052610900908161002682396080518160aa0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c80633268263b146106395780636563c0e91461056d5780639df303251461040d5763e0a8041314610045575f80fd5b346102a35760803660031901126102a35761005e6106a5565b6100666106bb565b9060443567ffffffffffffffff81116102a357610087903690600401610707565b60643567ffffffffffffffff81116102a3576100a7903690600401610707565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630146103fe5781516001600160a01b039182169490911691602080820192820191909103126102a35751926060838051810103126102a35760208301519260028410156102a357606060408201519101519061012f81878461082c565b9080156103ea578661014493091515906107b3565b92806103525750604051636eb1769f60e11b815230600482015260248101839052602081604481855afa9081156102af575f9161031a575b50846020939261018f5f976044946107b3565b60405163095ea7b360e01b8782019081526001600160a01b038716602483015260448083019390935291815290869089906101cb6064856106d1565b83519082865af188513d826102fb575b5050156102ba575b50506040519586938492636e553f6560e01b845260048401523060248401525af19182156102af575f92610277575b50818181106102625750505b60408051602081019283526020815261023782826106d1565b8151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b63eb7f211d60e01b5f5260045260245260445ffd5b9091506020813d6020116102a7575b81610293602093836106d1565b810103126102a35751905f610212565b5f80fd5b3d9150610286565b6040513d5f823e3d90fd5b6102f4916102ef60405163095ea7b360e01b898201528760248201528a878201528681526102e96064826106d1565b826107d4565b6107d4565b5f806101e3565b9091501589146103125750813b15155b5f806101db565b60011461030b565b90506020929192813d60201161034a575b81610338602093836106d1565b810103126102a357519091908461017c565b3d915061032b565b909391506001036103db575f9260646020926040519586938492635d043b2960e11b845260048401523060248401523060448401525af19182156102af575f926103a7575b508181811061026257505061021e565b9091506020813d6020116103d3575b816103c3602093836106d1565b810103126102a35751905f610397565b3d91506103b6565b634a7f394f60e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6302f3451d60e21b5f5260045ffd5b346102a35761041b3661075d565b80516001600160a01b039093169260208083019291820191909103126102a35751604051636eb1769f60e11b81523060048201526001600160a01b03831660248201819052939190602081604481865afa9081156102af575f91610539575b506104c2936104d061048f6020945f946107b3565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529586906064820190565b03601f1981018752866106d1565b84519082855af15f513d8261051d575b5050156104e957005b6102ef61051b936040519063095ea7b360e01b602083015260248201525f6044820152604481526102e96064826106d1565b005b9091506105315750803b15155b84806104e0565b60011461052a565b90506020813d602011610565575b81610554602093836106d1565b810103126102a357516104c261047a565b3d9150610547565b346102a35760803660031901126102a3576105866106a5565b61058e6106bb565b6044356001600160a01b03811692908390036102a35760643567ffffffffffffffff81116102a3576105c4903690600401610707565b602081519181808201938492010103126102a357515f19811461062a5761051b93604051936323b872dd60e01b602086015260018060a01b03166024850152604484015260648301526064825261061c6084836106d1565b6001600160a01b03166107d4565b630d550c3b60e11b5f5260045ffd5b346102a3576106473661075d565b602081939293519181808201938492010103126102a35751905f19821461062a5760405163a9059cbb60e01b60208201526001600160a01b0393909316602484015260448084019290925290825261051b919061061c6064836106d1565b600435906001600160a01b03821682036102a357565b602435906001600160a01b03821682036102a357565b90601f8019910116810190811067ffffffffffffffff8211176106f357604052565b634e487b7160e01b5f52604160045260245ffd5b81601f820112156102a35780359067ffffffffffffffff82116106f3576040519261073c601f8401601f1916602001856106d1565b828452602083830101116102a357815f926020809301838601378301015290565b60606003198201126102a3576004356001600160a01b03811681036102a357916024356001600160a01b03811681036102a357916044359067ffffffffffffffff82116102a3576107b091600401610707565b90565b919082018092116107c057565b634e487b7160e01b5f52601160045260245ffd5b905f602091828151910182855af1156102af575f513d61082357506001600160a01b0381163b155b6108035750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156107fc565b91818302915f19818509938380861095039480860395146108bc57848311156108a45790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82634e487b715f52156003026011186020526024601cfd5b5050809250156103ea57049056fea2646970667358221220b9f441923fe75e1f6e0f37bda35dde1cbac73c1e69240288bd35172a90f8e35164736f6c634300081b0033", + "nonce": "0x33", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x10f912a74a9ba8e7cc6236a0036edc34bdf516c9e1edd07e8b58f0b7f9ace78e", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000fe1dfce548e8aebe2964d5c0c9906fce981d7e47000000000000000000000000c8175570536849923d2a38fdfc33f2ea9ace41340000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x34", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x5d3e796e8811e1449d7defe88ab0018e0599377032e4d2922c34ac78616191bd", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "gas": "0x157b2", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000fe1dfce548e8aebe2964d5c0c9906fce981d7e4700000000000000000000000055f73c3d6f90e0858423a813969270d735ff00150000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x35", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xb565c3e163ae0d7c79fdc372b42fb7a98f11c6f314e709fa005f106162ab95fa", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000fe1dfce548e8aebe2964d5c0c9906fce981d7e470000000000000000000000007d799fe4ea4b4fea5ba8545f2b4f04f0c151b2ac0000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x36", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x97a98efb79292bdae9e410fb5d0a08a8253a9c5b40dd752794294258a2e7549a", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "function": null, + "arguments": null, + "transaction": { + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "gas": "0x16bfc", + "value": "0x0", + "input": "0xb6b07b8e000000000000000000000000fe1dfce548e8aebe2964d5c0c9906fce981d7e47000000000000000000000000ae3c3a1677ec9f061c768edd6c0d50a6a67f46560000000000000000000000000000000000000000000000000000000000000001", + "nonce": "0x37", + "chainId": "0x61" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x10d561", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xba60b43fa9140f38461326c6c7b67e28c5a813c0ec8f7e581880730b71b6332b", + "transactionIndex": "0x2", + "blockHash": "0xf4b29dfcc1aff6e328a06c7f07ab957b7258085c448d631c9a8038f6b90cf478", + "blockNumber": "0x35a2bb3", + "gasUsed": "0x8f852", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xc8175570536849923d2a38fdfc33f2ea9ace4134" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xbe116", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x94b7e404499a97ab65c21dfaf519c3a3bb7c4e649ba12e019844f50c9794d472", + "transactionIndex": "0x2", + "blockHash": "0xa8e341316b187d93e6d487d56ae05fc0463549d002fe2d5f9cd0dd4d54b5faf0", + "blockNumber": "0x35a2bb7", + "gasUsed": "0x9b2a4", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x55f73c3d6f90e0858423a813969270d735ff0015" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x17c22c", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xeee1e911e60cec84f21e5942d1a5241a2717f8294818e959da6c1877ce2153ea", + "transactionIndex": "0x2", + "blockHash": "0x151f08407abf0008ac9f0922683b6f02e1ced3940ddf1bda5ef3e48a58090bea", + "blockNumber": "0x35a2bbc", + "gasUsed": "0x114204", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0x7d799fe4ea4b4fea5ba8545f2b4f04f0c151b2ac" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xcaca3", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x1e6a0ea37630efac2d8a94689260a6d137bfe6fa660df6ed543b620e1e936fc1", + "transactionIndex": "0x2", + "blockHash": "0xc05e334186d449cf7bce02f985cd64bee5bf65a5ed64305c17c061507d0cec5e", + "blockNumber": "0x35a2bbf", + "gasUsed": "0x869fd", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": null, + "contractAddress": "0xae3c3a1677ec9f061c768edd6c0d50a6a67f4656" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf8e1", + "logs": [ + { + "address": "0xfe1dfce548e8aebe2964d5c0c9906fce981d7e47", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000c8175570536849923d2a38fdfc33f2ea9ace41340000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x044c5d2e125ae6bbd630ae8d9d529ae2288d73712158665543bf923e8d76dcd1", + "blockNumber": "0x35a2bc1", + "transactionHash": "0x10f912a74a9ba8e7cc6236a0036edc34bdf516c9e1edd07e8b58f0b7f9ace78e", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000400000000000010000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x10f912a74a9ba8e7cc6236a0036edc34bdf516c9e1edd07e8b58f0b7f9ace78e", + "transactionIndex": "0x0", + "blockHash": "0x044c5d2e125ae6bbd630ae8d9d529ae2288d73712158665543bf923e8d76dcd1", + "blockNumber": "0x35a2bc1", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xd9c7d", + "logs": [ + { + "address": "0xfe1dfce548e8aebe2964d5c0c9906fce981d7e47", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x00000000000000000000000055f73c3d6f90e0858423a813969270d735ff00150000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x68931ddf7ecd42ff4ca3246cc8ae092c8e6d441de8aeaa0d63dbe802d01c1f24", + "blockNumber": "0x35a2bc5", + "transactionHash": "0x5d3e796e8811e1449d7defe88ab0018e0599377032e4d2922c34ac78616191bd", + "transactionIndex": "0x4", + "logIndex": "0xd", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000400000000000010000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x5d3e796e8811e1449d7defe88ab0018e0599377032e4d2922c34ac78616191bd", + "transactionIndex": "0x4", + "blockHash": "0x68931ddf7ecd42ff4ca3246cc8ae092c8e6d441de8aeaa0d63dbe802d01c1f24", + "blockNumber": "0x35a2bc5", + "gasUsed": "0xf8d5", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x37c62", + "logs": [ + { + "address": "0xfe1dfce548e8aebe2964d5c0c9906fce981d7e47", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x0000000000000000000000007d799fe4ea4b4fea5ba8545f2b4f04f0c151b2ac0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xab9368f282a7005cd30af9b4e137ff6f258e6ebdb7fce384e9ffdd34b28df0ba", + "blockNumber": "0x35a2bc9", + "transactionHash": "0xb565c3e163ae0d7c79fdc372b42fb7a98f11c6f314e709fa005f106162ab95fa", + "transactionIndex": "0x2", + "logIndex": "0x4", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000400000000000010000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xb565c3e163ae0d7c79fdc372b42fb7a98f11c6f314e709fa005f106162ab95fa", + "transactionIndex": "0x2", + "blockHash": "0xab9368f282a7005cd30af9b4e137ff6f258e6ebdb7fce384e9ffdd34b28df0ba", + "blockNumber": "0x35a2bc9", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "contractAddress": null + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xf1904", + "logs": [ + { + "address": "0xfe1dfce548e8aebe2964d5c0c9906fce981d7e47", + "topics": [ + "0x4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca" + ], + "data": "0x000000000000000000000000ae3c3a1677ec9f061c768edd6c0d50a6a67f46560000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xc15167a21c521d1e08eb622ee4f96493e672e0194b037de2d2ee54ce019d844b", + "blockNumber": "0x35a2bcb", + "transactionHash": "0x97a98efb79292bdae9e410fb5d0a08a8253a9c5b40dd752794294258a2e7549a", + "transactionIndex": "0x6", + "logIndex": "0xf", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000400000000000010000000000000000000000000000000800000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x97a98efb79292bdae9e410fb5d0a08a8253a9c5b40dd752794294258a2e7549a", + "transactionIndex": "0x6", + "blockHash": "0xc15167a21c521d1e08eb622ee4f96493e672e0194b037de2d2ee54ce019d844b", + "blockNumber": "0x35a2bcb", + "gasUsed": "0xf8e1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xe355d5d8aa52ef0fbbd037c4a3c5e6fd659cf46b", + "to": "0xf28546cfbbbb0474aa77ec692e35abebb6ba98e1", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1751010534, + "chain": 97, + "commit": "23b76ca" +} \ No newline at end of file diff --git a/broadcast/DeployMarket.s.sol/1/run-1750477645.json b/broadcast/DeployMarket.s.sol/1/run-1750477645.json new file mode 100644 index 0000000..605dbbb --- /dev/null +++ b/broadcast/DeployMarket.s.sol/1/run-1750477645.json @@ -0,0 +1,222 @@ +{ + "transactions": [ + { + "hash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x1a8513", + "value": "0x0", + "input": "0xdc496c2000000000000000000000000037ba9934aaba7a49cc29d0952c6a91d7c7043dbcd9eb2aaa5f19c272f06ea2b4c8449687a8c2ac90aa2cfba9b3c9de0dca6ca69500000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b10da2f9147f9cf2b8826877cd0c95c18a0f42dc000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000da4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000719e77027952929ed3060dbffc5d43ec50c1cf7900000000000000000000000000000000000000000000000000000000691fab8000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000002dc6c000000000000000000000000000000000000000000000000000000000002dc6c0000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000005b8d80000000000000000000000000e3a31690392e8e18dc3d862651c079339e2c1ade0000000000000000000000000000000000000000000000000000000005742de000000000000000000000000000000000000000000000000000000000053724e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000422ca8b0a00a4250000000000000000000000000000000000000000000000000000000000000000000021555344432f50542d635553444f2d32304e4f56323032354032314e4f5632303235000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021555344432f50542d635553444f2d32304e4f56323032354032314e4f563230323500000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x36b", + "chainId": "0x1" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0xb8d33503a851d2d44e02f14fb0321e900c7a89ac", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73883192efdd5a3417b2c0a14b25f7536b2018f8535af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0x52d0713604f23383063ce89cf36801428b0136b8", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73a715005c1a8524c0790029153b8a860f96a2a8565af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0x5aa72d45b2b6381b87eb407288920e3fc4c0e9c3", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73a715005c1a8524c0790029153b8a860f96a2a8565af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0x424a1e95eaad4e768dc925679c63ba230552965b", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d738a2e5bfe2c0b1930575c75a61aad0d81baf93daa5af43d82803e903d91602b57fd5bf3" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x3aac54", + "logs": [ + { + "address": "0xb8d33503a851d2d44e02f14fb0321e900c7a89ac", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000da4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf" + ], + "data": "0x", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x37", + "removed": false + }, + { + "address": "0x52d0713604f23383063ce89cf36801428b0136b8", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b8d33503a851d2d44e02f14fb0321e900c7a89ac" + ], + "data": "0x", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x38", + "removed": false + }, + { + "address": "0x52d0713604f23383063ce89cf36801428b0136b8", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x39", + "removed": false + }, + { + "address": "0x5aa72d45b2b6381b87eb407288920e3fc4c0e9c3", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b8d33503a851d2d44e02f14fb0321e900c7a89ac" + ], + "data": "0x", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x3a", + "removed": false + }, + { + "address": "0x5aa72d45b2b6381b87eb407288920e3fc4c0e9c3", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x3b", + "removed": false + }, + { + "address": "0x424a1e95eaad4e768dc925679c63ba230552965b", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b8d33503a851d2d44e02f14fb0321e900c7a89ac" + ], + "data": "0x", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x3c", + "removed": false + }, + { + "address": "0x424a1e95eaad4e768dc925679c63ba230552965b", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x3d", + "removed": false + }, + { + "address": "0xb8d33503a851d2d44e02f14fb0321e900c7a89ac", + "topics": [ + "0x923c07a7269eb05c7b48c4002081d856ef37b3cbc4c2bae12d7493178477e306", + "0x000000000000000000000000b10da2f9147f9cf2b8826877cd0c95c18a0f42dc", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + ], + "data": "0x00000000000000000000000000000000000000000000000000000000691fab8000000000000000000000000052d0713604f23383063ce89cf36801428b0136b80000000000000000000000005aa72d45b2b6381b87eb407288920e3fc4c0e9c3000000000000000000000000424a1e95eaad4e768dc925679c63ba230552965b", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x3e", + "removed": false + }, + { + "address": "0xb8d33503a851d2d44e02f14fb0321e900c7a89ac", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x3f", + "removed": false + }, + { + "address": "0x37ba9934aaba7a49cc29d0952c6a91d7c7043dbc", + "topics": [ + "0x3f53d2c2743b2b162c0aa5d678be4058d3ae2043700424be52c04105df3e2411", + "0x000000000000000000000000b8d33503a851d2d44e02f14fb0321e900c7a89ac", + "0x000000000000000000000000b10da2f9147f9cf2b8826877cd0c95c18a0f42dc", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + ], + "data": "0x", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "blockTimestamp": "0x68562b4b", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "logIndex": "0x40", + "removed": false + } + ], + "logsBloom": "0x00020024000000000000008002000100000400000000000000800000000000000000008000200000000002000010000000000000000000000000004000000200000080000000000000000000000000000001000000000000000000000000000280000000020200000000000000040800800008000000000000040000000000400000000000002000000800000000000200000000000090000000000000000000000000000000000000000800000000400000000000000000000200000000200000000000000000000000000000000000000000000004000000000000000020000000000000000000200000000000000004002000000000400000002000000000", + "type": "0x2", + "transactionHash": "0x4bd6bc5824a7b615c2163bb893ac1cfbf804991780696e41d41afaaf0c2391c1", + "transactionIndex": "0x31", + "blockHash": "0x9cb4bcfb8c1f1915ca773349d068f5c955302315a7c46c6f3b98f6ad3738e302", + "blockNumber": "0x15b2428", + "gasUsed": "0x13332c", + "effectiveGasPrice": "0x10c899d4", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1750477645, + "chain": 1, + "commit": "53496c4" +} \ No newline at end of file diff --git a/broadcast/DeployMarket.s.sol/1/run-1750907511.json b/broadcast/DeployMarket.s.sol/1/run-1750907511.json new file mode 100644 index 0000000..330a12f --- /dev/null +++ b/broadcast/DeployMarket.s.sol/1/run-1750907511.json @@ -0,0 +1,222 @@ +{ + "transactions": [ + { + "hash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x161ce5", + "value": "0x0", + "input": "0xdc496c2000000000000000000000000037ba9934aaba7a49cc29d0952c6a91d7c7043dbcd9eb2aaa5f19c272f06ea2b4c8449687a8c2ac90aa2cfba9b3c9de0dca6ca69500000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c20059e0317de91738d13af027dfc4a50781b066000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000da4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000719e77027952929ed3060dbffc5d43ec50c1cf790000000000000000000000000000000000000000000000000000000068686b0000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000002dc6c000000000000000000000000000000000000000000000000000000000002dc6c0000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000005b8d80000000000000000000000000e3a31690392e8e18dc3d862651c079339e2c1ade00000000000000000000000000000000000000000000000000000000042c1d8000000000000000000000000000000000000000000000000000000000039387000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000295be96e640669720000000000000000000000000000000000000000000000000000000000000000000012555344432f53504b4030354a554c3230323500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012555344432f53504b4030354a554c323032350000000000000000000000000000", + "nonce": "0x36f", + "chainId": "0x1" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x6b24654f5154214d1a39b09ae0e2342bb48efe08", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73883192efdd5a3417b2c0a14b25f7536b2018f8535af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0xef73a3623a6c23c0271c4fc798cb6a745e211487", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73a715005c1a8524c0790029153b8a860f96a2a8565af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0xa11a440e7720c55caaf5b2155b172e6f32339813", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73a715005c1a8524c0790029153b8a860f96a2a8565af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0x72036ace0d05c6de44a3bd0ff47f59f41efa386e", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d738a2e5bfe2c0b1930575c75a61aad0d81baf93daa5af43d82803e903d91602b57fd5bf3" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x71a95f", + "logs": [ + { + "address": "0x6b24654f5154214d1a39b09ae0e2342bb48efe08", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000da4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa2", + "removed": false + }, + { + "address": "0xef73a3623a6c23c0271c4fc798cb6a745e211487", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000006b24654f5154214d1a39b09ae0e2342bb48efe08" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa3", + "removed": false + }, + { + "address": "0xef73a3623a6c23c0271c4fc798cb6a745e211487", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa4", + "removed": false + }, + { + "address": "0xa11a440e7720c55caaf5b2155b172e6f32339813", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000006b24654f5154214d1a39b09ae0e2342bb48efe08" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa5", + "removed": false + }, + { + "address": "0xa11a440e7720c55caaf5b2155b172e6f32339813", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa6", + "removed": false + }, + { + "address": "0x72036ace0d05c6de44a3bd0ff47f59f41efa386e", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000006b24654f5154214d1a39b09ae0e2342bb48efe08" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa7", + "removed": false + }, + { + "address": "0x72036ace0d05c6de44a3bd0ff47f59f41efa386e", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa8", + "removed": false + }, + { + "address": "0x6b24654f5154214d1a39b09ae0e2342bb48efe08", + "topics": [ + "0x923c07a7269eb05c7b48c4002081d856ef37b3cbc4c2bae12d7493178477e306", + "0x000000000000000000000000c20059e0317de91738d13af027dfc4a50781b066", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000068686b00000000000000000000000000ef73a3623a6c23c0271c4fc798cb6a745e211487000000000000000000000000a11a440e7720c55caaf5b2155b172e6f3233981300000000000000000000000072036ace0d05c6de44a3bd0ff47f59f41efa386e", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa9", + "removed": false + }, + { + "address": "0x6b24654f5154214d1a39b09ae0e2342bb48efe08", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xaa", + "removed": false + }, + { + "address": "0x37ba9934aaba7a49cc29d0952c6a91d7c7043dbc", + "topics": [ + "0x3f53d2c2743b2b162c0aa5d678be4058d3ae2043700424be52c04105df3e2411", + "0x0000000000000000000000006b24654f5154214d1a39b09ae0e2342bb48efe08", + "0x000000000000000000000000c20059e0317de91738d13af027dfc4a50781b066", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xab", + "removed": false + } + ], + "logsBloom": "0x00000014000000000000008000000000010000000000000000a10080000000000000008000000000000002000410008000000000000000000000004000000000000080000000000000000000000000000001000000008000000000000000080200000004020001000000000000000801000008000000000000040000000000400000000000002000000800000010000200000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000010000000000000000000004000000000000000020000000000000020200a00000000000000004000000000000000000002000000000", + "type": "0x2", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "gasUsed": "0xf1eb3", + "effectiveGasPrice": "0x852e900d", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1750907511, + "chain": 1, + "commit": "0e94198" +} \ No newline at end of file diff --git a/broadcast/DeployMarket.s.sol/1/run-latest.json b/broadcast/DeployMarket.s.sol/1/run-latest.json new file mode 100644 index 0000000..330a12f --- /dev/null +++ b/broadcast/DeployMarket.s.sol/1/run-latest.json @@ -0,0 +1,222 @@ +{ + "transactions": [ + { + "hash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x161ce5", + "value": "0x0", + "input": "0xdc496c2000000000000000000000000037ba9934aaba7a49cc29d0952c6a91d7c7043dbcd9eb2aaa5f19c272f06ea2b4c8449687a8c2ac90aa2cfba9b3c9de0dca6ca69500000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c20059e0317de91738d13af027dfc4a50781b066000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000da4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000719e77027952929ed3060dbffc5d43ec50c1cf790000000000000000000000000000000000000000000000000000000068686b0000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000002dc6c000000000000000000000000000000000000000000000000000000000002dc6c0000000000000000000000000000000000000000000000000000000000098968000000000000000000000000000000000000000000000000000000000005b8d80000000000000000000000000e3a31690392e8e18dc3d862651c079339e2c1ade00000000000000000000000000000000000000000000000000000000042c1d8000000000000000000000000000000000000000000000000000000000039387000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000295be96e640669720000000000000000000000000000000000000000000000000000000000000000000012555344432f53504b4030354a554c3230323500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012555344432f53504b4030354a554c323032350000000000000000000000000000", + "nonce": "0x36f", + "chainId": "0x1" + }, + "additionalContracts": [ + { + "transactionType": "CREATE2", + "address": "0x6b24654f5154214d1a39b09ae0e2342bb48efe08", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73883192efdd5a3417b2c0a14b25f7536b2018f8535af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0xef73a3623a6c23c0271c4fc798cb6a745e211487", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73a715005c1a8524c0790029153b8a860f96a2a8565af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0xa11a440e7720c55caaf5b2155b172e6f32339813", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d73a715005c1a8524c0790029153b8a860f96a2a8565af43d82803e903d91602b57fd5bf3" + }, + { + "transactionType": "CREATE", + "address": "0x72036ace0d05c6de44a3bd0ff47f59f41efa386e", + "initCode": "0x3d602d80600a3d3981f3363d3d373d3d3d363d738a2e5bfe2c0b1930575c75a61aad0d81baf93daa5af43d82803e903d91602b57fd5bf3" + } + ], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x71a95f", + "logs": [ + { + "address": "0x6b24654f5154214d1a39b09ae0e2342bb48efe08", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000da4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa2", + "removed": false + }, + { + "address": "0xef73a3623a6c23c0271c4fc798cb6a745e211487", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000006b24654f5154214d1a39b09ae0e2342bb48efe08" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa3", + "removed": false + }, + { + "address": "0xef73a3623a6c23c0271c4fc798cb6a745e211487", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa4", + "removed": false + }, + { + "address": "0xa11a440e7720c55caaf5b2155b172e6f32339813", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000006b24654f5154214d1a39b09ae0e2342bb48efe08" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa5", + "removed": false + }, + { + "address": "0xa11a440e7720c55caaf5b2155b172e6f32339813", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa6", + "removed": false + }, + { + "address": "0x72036ace0d05c6de44a3bd0ff47f59f41efa386e", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x0000000000000000000000006b24654f5154214d1a39b09ae0e2342bb48efe08" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa7", + "removed": false + }, + { + "address": "0x72036ace0d05c6de44a3bd0ff47f59f41efa386e", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa8", + "removed": false + }, + { + "address": "0x6b24654f5154214d1a39b09ae0e2342bb48efe08", + "topics": [ + "0x923c07a7269eb05c7b48c4002081d856ef37b3cbc4c2bae12d7493178477e306", + "0x000000000000000000000000c20059e0317de91738d13af027dfc4a50781b066", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000068686b00000000000000000000000000ef73a3623a6c23c0271c4fc798cb6a745e211487000000000000000000000000a11a440e7720c55caaf5b2155b172e6f3233981300000000000000000000000072036ace0d05c6de44a3bd0ff47f59f41efa386e", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xa9", + "removed": false + }, + { + "address": "0x6b24654f5154214d1a39b09ae0e2342bb48efe08", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xaa", + "removed": false + }, + { + "address": "0x37ba9934aaba7a49cc29d0952c6a91d7c7043dbc", + "topics": [ + "0x3f53d2c2743b2b162c0aa5d678be4058d3ae2043700424be52c04105df3e2411", + "0x0000000000000000000000006b24654f5154214d1a39b09ae0e2342bb48efe08", + "0x000000000000000000000000c20059e0317de91738d13af027dfc4a50781b066", + "0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + ], + "data": "0x", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "blockTimestamp": "0x685cba73", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "logIndex": "0xab", + "removed": false + } + ], + "logsBloom": "0x00000014000000000000008000000000010000000000000000a10080000000000000008000000000000002000410008000000000000000000000004000000000000080000000000000000000000000000001000000008000000000000000080200000004020001000000000000000801000008000000000000040000000000400000000000002000000800000010000200000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000010000000000000000000004000000000000000020000000000000020200a00000000000000004000000000000000000002000000000", + "type": "0x2", + "transactionHash": "0x5638fe1ddc54f99eff2649249929d45ecb177e89906309b719f2350a6bddee3d", + "transactionIndex": "0x4c", + "blockHash": "0xee108a4a662158ecab6e7ac0389cbc2eab60be61f9d6467ea3bb18af4db56f2a", + "blockNumber": "0x15baf38", + "gasUsed": "0xf1eb3", + "effectiveGasPrice": "0x852e900d", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1750907511, + "chain": 1, + "commit": "0e94198" +} \ No newline at end of file diff --git a/broadcast/UpgradeRouterForRepayingGt.s.sol/1/run-1750916028.json b/broadcast/UpgradeRouterForRepayingGt.s.sol/1/run-1750916028.json new file mode 100644 index 0000000..1d04c65 --- /dev/null +++ b/broadcast/UpgradeRouterForRepayingGt.s.sol/1/run-1750916028.json @@ -0,0 +1,97 @@ +{ + "transactions": [ + { + "hash": "0x38269b852581d4528fe48065c5f52a299037abc3175a7c7652d168747a9fb0dc", + "transactionType": "CREATE", + "contractName": "TermMaxRouter_Repay_Gt", + "contractAddress": "0x8ffc4da23ee650ffdd3cb4880a644ce17d2e5623", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x5168df", + "value": "0x0", + "input": "0x60a080604052346029573060805261492c908161002e82396080518181816128dc015261296f0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c80631443c4d61461322c578063150b7a02146131d75780631ac100a41461314f5780632a51cf5114612faa5780632e3e3ef214612f6c5780632f20734514612ee95780633f4ba83a14612e6957806345618d2b14612b195780634f1ef2861461293057806352d1902d146128c95780635c975abb1461289a578063715018a61461281b57806379ba5097146127ce5780638456cb591461275b57806384e090911461252257806389c3584d146121ca5780638da5cb5b14612195578063943189f414611eb257806395320fd014611c1357806399a54a5a14611974578063ad3cb1cc14611927578063c4d66de81461177a578063c71c700c146113bd578063d3e052cf146110a5578063df3e1e0514610d2f578063e30c397814610cfa578063e9919e5c14610c5c578063ef8b4968146109f5578063f1a229ad1461070e578063f2fde38b14610688578063f38743f3146104755763fc1c1b211461017a575f80fd5b3461035057610188366138cc565b91929690959394610197613f9f565b604051634eb1c24560e11b81526001600160a01b039190911697909260a0846004818c5afa9485156103d657839288859486978799610432575b506001600160a01b0390811697169461020291906101f18230338a613fc6565b6001600160a01b031695869061405a565b604061022f8c6102118c6145c3565b8884519e8f9485938492637a0ee4f960e11b84523060048501613b55565b03925af196871561042757859a86986103e5575b509187918961025395948961441d565b92610267846001600160801b038716613d75565b8281610362575b9150503b1561035e57604051632142170760e11b81523060048201526001600160a01b0386166024820152604481018890529082908290818381606481015b03925af180156103535761033b575b602087808a7fdc3efdf28701077a23ef0beb0f3260ca639658ce2676bbc9d83030fac6ce56128a8a6103308b6102f18c6141bf565b604080513381526001600160a01b0390951660208601528401949094526001600160801b039081166060840152909216608082015290819060a0820190565b0390a3604051908152f35b61034682809261353f565b61035057806102bc565b80fd5b6040513d84823e3d90fd5b5080fd5b81610370916103759461405a565b6141bf565b813b156103e1576001600160801b0360405191636f965f9f60e11b8352896004840152166024820152826044820152828160648183865af180156103d6579083916103c1575b8261026e565b816103cb9161353f565b61035e57815f6103bb565b6040513d85823e3d90fd5b8280fd5b610253949391929b508998506104129060403d604011610420575b61040a818361353f565b810190613dd9565b9b909b985091909293610243565b503d610400565b6040513d87823e3d90fd5b9198505061045e919650610202945060a03d60a01161046e575b610456818361353f565b810190613a36565b99909891969193909250906101d1565b503d61044c565b50346103505760a03660031901126103505761048f613478565b9061049861348e565b90604435926064356001600160401b0381116103e1576104bc9036906004016135d8565b608435936104c8613f9f565b604051634eb1c24560e11b81526001600160a01b039190911693909160a083600481885afa928315610353578588918490859661065b575b506105219291906001600160a01b031661051c83303384613fc6565b61405a565b604051633def417960e11b815260048101889052306024820152908282604481838a5af180156103d65783928491610607575b509061055f916145db565b90602082519281808201948592010103126106035761057f915190613d54565b948086106105e2575050602094826105bb867fc1822dac55540066416ffa59d2eb79715d05171ecf435ac5226726b50686d9419560809561455f565b604051918252338783015260018060a01b03166040820152846060820152a2604051908152f35b856064936319aae4c960e11b845260018060a01b0316600452602452604452fd5b5f80fd5b9250503d8084843e610619818461353f565b8201604083820312610657578251926020810151906001600160401b038211610653579161064c9161055f949301613b96565b9091610554565b8580fd5b8380fd5b6105219392965061067b915060a03d60a01161046e57610456818361353f565b9894959250610500915050565b5034610350576020366003190112610350576106a2613478565b6106aa61437f565b5f5160206148d75f395f51905f5280546001600160a01b0319166001600160a01b039283169081179091555f5160206148575f395f51905f52549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b50346103505761010036600319011261035057610729613478565b9061073261348e565b916044356064356001600160401b03811161065757610755903690600401613750565b6084356001600160401b0381116109f1576107749036906004016137be565b9160a435918215158093036106535760c4356001600160401b0381116109ed5760a06107a5600492369084016135d8565b986107ae613f9f565b604051634eb1c24560e11b815292839182905f196001861b01165afa9788156109e25787918890899a6109bb575b506001600160a01b031695863b156109ac57604051635c46a7ef60e11b815233600482015230602482015285604482015260806064820152896084820152898160a481838c5af180156109b057908a91610997575b50506108a69261085d979695949261086f610890936040519a8b9660a0602089015260c0880190613c94565b868103601f1901604088015290613cd0565b6001600160a01b039092166060850152838203601f19016080850152613a88565b60e43560a083015203601f19810186528561353f565b823b1561065357916108e593918680946040519687958694859363078ad17360e31b855260048501526024840152606060448401526064830190613960565b03925af180156103d657908391610982575b50506040516370a0823160e01b81523060048201526020816024816001600160a01b0388165afa9283156109765792610941575b50816109399160209461455f565b604051908152f35b9091506020813d60201161096e575b8161095d6020938361353f565b81010312610603575190602061092b565b3d9150610950565b604051903d90823e3d90fd5b8161098c9161353f565b61035e57815f6108f7565b816109a19161353f565b6109ac57885f610831565b8880fd5b6040513d8c823e3d90fd5b919950506109d8915060a03d60a01161046e57610456818361353f565b9a9250505f6107dc565b6040513d89823e3d90fd5b8680fd5b8480fd5b50346103505760a036600319011261035057610a0f613478565b6024356001600160801b0381168091036103e157610a2b6134a4565b506064356001600160401b03811161065757610a4b903690600401613592565b916084356001600160401b0381116109f157610a6b903690600401613592565b805181019360a082602087019603126106535760208201516001600160401b0381116109ed5782019480603f870112156109ed57602086015195610aae87613560565b96610abc604051988961353f565b808852602080808a019260051b8401010191838311610c2057604001905b828210610c445750505060408301516001600160401b038111610c4057830181603f82011215610c4057602081015190610b1382613560565b91610b21604051938461353f565b8083526020808085019260051b8401010191848311610c3c57604001905b828210610c2457505050610b5560608501613a22565b916080850151946001600160401b038611610c2057610b7e610b8992602060a098840101613df3565b9586910151946145db565b936001600160a01b0386811690841614610bad575b88610baa88338961405a565b80f35b80515f198101908111610c0c576001600160a01b0391604091610bcf91613da7565b51015116966020855195818082019788920101031261060357610baa97610bf9610c0196516141bf565b93309161441d565b505f80808080610b9e565b634e487b7160e01b8a52601160045260248afd5b8980fd5b60208091610c3184613b82565b815201910190610b3f565b8a80fd5b8780fd5b60208091610c5184613a22565b815201910190610ada565b5034610350576020610cd5610330610cdc7f18f137cdb80704341c5da72a0f5776e3361de90e2a157d704a4b79d96b753aa6610ccc610c9a3661382c565b869a9596949992939791610cac613f9f565b84898c8a6001600160801b03851699610cc78b303384613fc6565b61441d565b998a8094613d75565b338a61455f565b6040516001600160a01b039485169890941696939485943386613d0c565b50346103505780600319360112610350575f5160206148d75f395f51905f52546040516001600160a01b039091168152602090f35b503461035057610d3e36613922565b91610d4a939193613f9f565b604051634eb1c24560e11b81526001600160a01b0391909116929060a081600481875afa90811561109a5786908790889361106c575b506040516331a9108f60e11b8152600481018890526001600160a01b0391821693909160209183916024918391165afa908115611018578891611032575b50336001600160a01b039091160361102357604051633f5ffaf560e01b8152602081600481895afa908115611018578891610fe6575b506305f5e1008402908482046305f5e1001485151715610fd2576305f5e10003906305f5e1008211610fd257610e2d9161037091613dbb565b906001600160801b03604051926339a380ed60e01b845230600485015216938460248401528760448401526020836064818c8b5af18015610fc75787938a91610f74575b509293610eaf93859261051c916001600160801b031680821015610f695750809681955b610ea183303388613fc6565b6001600160a01b031661405a565b833b1561065357604051632770a7eb60e21b81526001600160a01b03841660048201526024810182905286908181604481838a5af1801561035357610f50575b5050916001600160801b0360a092610f277fdc3efdf28701077a23ef0beb0f3260ca639658ce2676bbc9d83030fac6ce5612956141bf565b9060405193338552600180871b031660208501528860408501526060840152166080820152a380f35b81610f5d9195939561353f565b6106535791855f610eef565b905080968195610e95565b9350506020833d602011610fbf575b81610f906020938361353f565b810103126109ac57869361051c85926001600160801b03610fb3610eaf97613b82565b93975050929450610e71565b3d9150610f83565b6040513d8b823e3d90fd5b634e487b7160e01b89526011600452602489fd5b90506020813d602011611010575b816110016020938361353f565b8101031261060357515f610df4565b3d9150610ff4565b6040513d8a823e3d90fd5b6315e69dc560e21b8752600487fd5b90506020813d602011611064575b8161104d6020938361353f565b81010312610c405761105e90613a22565b5f610dbe565b3d9150611040565b602493506020925061108d915060a03d60a01161046e57610456818361353f565b5050939192909150610d80565b6040513d88823e3d90fd5b503461035057610100366003190112610350576110c0613478565b6110c861348e565b6064356001600160a01b03811693919084900361035e57608435936110eb6134e4565b936110f46134fa565b9260e435916001600160401b03831161065357604060031984360301126106535760405192604084018481106001600160401b038211176113a95760405280600401356001600160401b038111610c40576111559060043691840101613984565b845260248101356001600160401b038111610c405761117991369101600401613984565b6020840152611186613f9f565b604051634eb1c24560e11b8152966001600160a01b0391909116949060a088600481895afa9687156109765780978199829161137d575b5060405163887bb98960e01b81526001600160a01b03909516600486018190526044803560248801528601979097526080606486015260208580611204608482018a613f75565b0381858c5af1948515610353578295611341575b508a6112dc575b5050927fac20b37c6c923070aa8deac25d6e9bf9f6eecd727d9c2b89d0451685ecf4ba5294926001600160801b03610330938160209c9716998a806112bd575b50501698898061129e575b505060018060a01b031697889760405195869586528b8601526040850152606084015260a0608084015260a0830190613f75565b6112b6916001600160a01b0384811691339116613fc6565b5f8961126a565b6112d5916001600160a01b0386811691339116613fc6565b5f8a61125f565b8a886112ee9261051c83303384613fc6565b863b15610350576040516340c10f1960e01b81526001600160a01b0385166004820152602481018b90528181604481838c5af18015610353571561121f5761133782809261353f565b610350578061121f565b9094506020813d602011611375575b8161135d6020938361353f565b8101031261035e5761136e90613a22565b935f611218565b3d9150611350565b9198505061139b91985060a03d60a01161046e57610456818361353f565b9a939150509790985f6111bd565b634e487b7160e01b88526041600452602488fd5b503461035057610100366003190112610350576113d8613478565b6113e061348e565b6113e86134ce565b92606435926001600160801b038416928385036103e1576084356001600160401b0381116106575761141e903690600401613750565b9460a4356001600160401b0381116109f15761143e9036906004016137be565b916114476134fa565b9260e43591611454613f9f565b604051634eb1c24560e11b81526001600160a01b039190911698909360a0856004818d5afa958615611018578a9b899a9b998b978c99611746575b506001600160a01b03908116976001600160801b0392909216939116908c84111561173457966001600160801b0381985b169a8b906114d086303386613fc6565b6114d99261405a565b898d6114e78e303386613fc6565b6114f09261405a565b8b3b15610c2057604051632770a7eb60e21b81526001600160a01b0389166004820152602481018a90528a818e8183816044810103925af1801561172957908b91611714575b5050899b835185510361170557999b989a8c9a6001600160a01b03998a169a988a16998816989091908c5b8651111561164d578b8f8c8f8d60c4918e8e6001600160801b038f8f986115b5916115b060209b6115998460018060a01b0392613da7565b51169687866115a88686613da7565b51169161405a565b613da7565b51166040519889978896632cfdfa9360e11b8852600488015260248701526044860152606485015282608485015260a48401525af1908115611640578e9161160e575b5061160590600192613d54565b9e019d8e611561565b90506020813d8211611638575b816116286020938361353f565b81010312610603575160016115f8565b3d915061161b565b8e604051903d90823e3d90fd5b858c928f8f906001600160801b038f91611668908d97613d54565b9816908189106116ea57505050602096926116cb7f482c5c16eb3726edd4dc0b4e52fdb8488530e472f26df2a268d3d94edfc135a095936116d9936040519687963388528c8801526040870152606086015260e0608086015260e0850190613c94565b9083820360a0850152613cd0565b8560c08301520390a2604051908152f35b6319aae4c960e11b8352600452602488905260445260649150fd5b631f77022160e11b8b5260048bfd5b8161171e9161353f565b610c2057895f611536565b6040513d8d823e3d90fd5b5082966001600160801b0382986114c0565b90506001600160801b03985061176c91975060a03d60a01161046e57610456818361353f565b9a92999392915061148f9050565b503461035057602036600319011261035057611794613478565b5f5160206148b75f395f51905f52549060ff8260401c1615916001600160401b0381168015908161191f575b6001149081611915575b15908161190c575b506118fd5767ffffffffffffffff1981166001175f5160206148b75f395f51905f5255826118d1575b50611804614775565b61180c614775565b611814614775565b60ff195f5160206148975f395f51905f5254165f5160206148975f395f51905f525561183e614775565b611846614775565b6001600160a01b038116156118bd5761185e906143b2565b6118655780f35b68ff0000000000000000195f5160206148b75f395f51905f5254165f5160206148b75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b631e4fbdf760e01b83526004839052602483fd5b68ffffffffffffffffff191668010000000000000001175f5160206148b75f395f51905f52555f6117fb565b63f92ee8a960e01b8452600484fd5b9050155f6117d2565b303b1591506117ca565b8491506117c0565b50346103505780600319360112610350575061197060405161194a60408261353f565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613960565b0390f35b50346103505760803660031901126103505761198e613478565b5061199761348e565b506064356001600160401b03811161035e576119b7903690600401613592565b908151820160808382031261035e5760208301516001600160a01b03811693908490036103e1576040810151916060820151906001600160401b0382116109f157608091602080611a0c930191850101613df3565b9101519160028310156106575781611a29611a4692604435613d54565b60405190602082015260208152611a4160408261353f565b6145db565b815190915f198201918211611bff5790611a5f91613da7565b5180516001600160a01b031684526020849052604084205490929060ff1615611be25780611b2457505060409081015190516370a0823160e01b81523060048201526001600160a01b039091169190602081602481865afa9182156109765791611af0575b508061197093611ad6611adc936145c3565b9361405a565b604051918291602083526020830190613960565b90506020813d602011611b1c575b81611b0b6020938361353f565b810103126106035751611970611ac4565b3d9150611afe565b9193909291600114611b3d575b50506119709150611adc565b8190604085019460018060a01b0386511690604051926020840192639df3032560e01b84526024850152604484015260606064840152611b9283611b846084820189613960565b03601f19810185528461353f565b519151916001600160a01b03165af491611baa613ed9565b9215611bb65780611b31565b51604051631d039b4360e11b815292839250611bde916001600160a01b031660048401613f08565b0390fd5b825163616d132960e01b85526001600160a01b0316600452602484fd5b634e487b7160e01b85526011600452602485fd5b503461035057611c2236613922565b93929091611c2e613f9f565b604051634eb1c24560e11b81526001600160a01b0391909116949060a081600481895afa8015610427578590858788948993611e81575b506001600160a01b0392831694921691611c979190611c8682303389613fc6565b6001600160a01b031694859061405a565b604051633f5ffaf560e01b81526020816004818c5afa908115611018578891611e4f575b506305f5e1008502908582046305f5e1001486151715610fd2576305f5e10003906305f5e1008211610fd2576103708995949392611cf892613dbb565b946040611d258b611d088b6145c3565b83519c8d80948193637a0ee4f960e11b83528d3060048501613b55565b03925af18015610427579085949392918b969a8691611e12575b509161051c87926001600160801b03611d6e9695168082105f14611e07575080988195610ea183303388613fc6565b873b1561035e57604051632770a7eb60e21b81526001600160a01b0386166004820152602481018490528281604481838d5af180156103d657908391611df2575b5050803b1561035e57604051632142170760e11b81523060048201526001600160a01b0386166024820152604481018890529082908290818381606481016102ad565b81611dfc9161353f565b61035e57815f611daf565b905080988195610e95565b6001600160801b039b50611d6e949391508792611e4061051c9260403d6040116104205761040a818361353f565b9d909d93959650509250611d3f565b90506020813d602011611e79575b81611e6a6020938361353f565b8101031261060357515f611cbb565b3d9150611e5d565b91935050611c979350611ea3915060a03d60a01161046e57610456818361353f565b50909492939092909190611c65565b503461035057611ec1366136be565b9194929593611ece613f9f565b604051634eb1c24560e11b81526001600160a01b03919091169560a0826004818a5afa90811561109a57611f978899611fbc9994602094611f83948b8c938d93612157575b506001600160801b03948516989394611f5894909291611f44918b916001600160a01b031661051c83303384613fc6565b1690309033906001600160a01b0316613fc6565b60018060a01b03169560405192839188868401528a60408401526080606084015260a0830190613a88565b89608083015203601f19810183528261353f565b611fa0836141bf565b604051639ea1c1c960e01b815298899283928960048501613b55565b0381888b5af1958615610427578596612123575b506040516341a4eb5f60e11b815260048101879052918583602481875afa92831561109a5786936120f8575b50606060249394604051948580926350ef5c3560e01b82528b60048301525afa92831561109a5786936120b9575b506001600160801b0392831692168083116120a25750926103307f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b098938796936020999660405195869533875260018060a01b03168c87015260408601526060850152608084015260c060a084015260c0830190613960565b6370d1969b60e01b86526004526024829052604485fd5b6001600160801b039193506120e6829160603d6060116120f1575b6120de818361353f565b810190613c1b565b50905093915061202a565b503d6120d4565b602493506121196060913d808a833e612111818361353f565b810190613bdc565b9150509350611ffc565b9095506020813d60201161214f575b8161213f6020938361353f565b810103126106035751945f611fd0565b3d9150612132565b611f5894506001600160801b03935083929150612185611f449160a03d60a01161046e57610456818361353f565b509097509550929350611f139050565b50346103505780600319360112610350575f5160206148575f395f51905f52546040516001600160a01b039091168152602090f35b5034610350576040366003190112610350576121e4613478565b6121ec61348e565b90608092600460405192612200868561353f565b8536853760a060405191612214888461353f565b87368437604051634eb1c24560e11b815293849182905f196001861b01165afa80156103d6578392848594869287946124f6575b506001600160a01b039081168852908116602088015290811660408701529081166060860152851691835b6004811061247057506040516370a0823160e01b815260048101939093526001600160a01b031690602083602481855afa928315612465578493612431575b5095949391906122c182613560565b916122cf604051938461353f565b8083526122db81613560565b602084019690601f1901368837855b82811061239e575050506040519687966101408801948887905b6004821061237b57505050870185905b600482106123615750505061010086015261014061012086015251809152610160840192915b818110612348575050500390f35b825184528594506020938401939092019160010161233a565b825181528998506020928301926001929092019101612314565b82516001600160a01b031681528b9a506020928301926001929092019101612304565b604051632f745c5960e01b81526001600160a01b038316600482015260248101829052989997989597949593949390602082604481895afa80156110185788906123ff575b600192506123f18289613da7565b5201989796949392986122ea565b506020823d8211612429575b816124186020938361353f565b8101031261060357600191516123e3565b3d915061240b565b9092506020813d60201161245d575b8161244d6020938361353f565b810103126106035751915f6122b2565b3d9150612440565b6040513d86823e3d90fd5b60249060206001600160a01b03612487838a613d82565b5116604051938480926370a0823160e01b82528960048301525afa801561109a5786906124c4575b600192506124bd8286613d82565b5201612273565b506020823d82116124ee575b816124dd6020938361353f565b8101031261060357600191516124af565b3d91506124d0565b935050505061251591925060a03d60a01161046e57610456818361353f565b919493919290915f612248565b503461035057612531366138cc565b909291939461253e613f9f565b604051634eb1c24560e11b81526001600160a01b039190911694909260a084600481895afa928315610fc757898a958b95612728575b506001600160a01b0316956001600160801b038116926125b0926125aa92909186906125a28730338c613fc6565b308b8a61441d565b926141f0565b6040516341a4eb5f60e11b8152600481018990526001600160a01b0390951699909481816024818e5afa90811561035357829161270b575b506001600160801b03811686106126f2575b6001600160801b03169961260f8b828961405a565b803b1561035e57818b60648b836040519586948593636f965f9f60e11b8552600485015260248401528160448401525af18015610353576126dd575b5050977ff2960dbf8545963973c9df7f52bdbdd6803dbf97c4597938fa37510b1218aece948860809561268e8296612686869760209f613d75565b9c8d9161455f565b8381116126c1575b505050506040519133835260018060a01b0316888301526040820152856060820152a3604051908152f35b6126d4936126ce91613d75565b9161455f565b805f8381612696565b6126e882809261353f565b610350578061264b565b506001600160801b03612704866141bf565b90506125fa565b61271f91503d8084833e612111818361353f565b5090505f6125e8565b6125aa96506125b092955061274c915060a03d60a01161046e57610456818361353f565b91985090969391506125749050565b503461035057806003193601126103505761277461437f565b61277c613f9f565b600160ff195f5160206148975f395f51905f525416175f5160206148975f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103505780600319360112610350575f5160206148d75f395f51905f5254336001600160a01b039091160361280857610baa336143b2565b63118cdaa760e01b815233600452602490fd5b503461035057806003193601126103505761283461437f565b5f5160206148d75f395f51905f5280546001600160a01b03199081169091555f5160206148575f395f51905f528054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610350578060031936011261035057602060ff5f5160206148975f395f51905f5254166040519015158152f35b50346103505780600319360112610350577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036129215760206040515f5160206148775f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261035057612945613478565b906024356001600160401b03811161035e57612965903690600401613592565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612af7575b50612ae8576129a761437f565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612ab4575b506129ec57634c9c8ce360e01b84526004839052602484fd5b9091845f5160206148775f395f51905f528103612aa25750813b15612a90575f5160206148775f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612a765780836020612a7295519101845af4612a6c613ed9565b916147f8565b5080f35b50505034612a815780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612ae0575b81612ad06020938361353f565b810103126109f15751945f6129d3565b3d9150612ac3565b63703e46dd60e11b8252600482fd5b5f5160206148775f395f51905f52546001600160a01b0316141590505f61299a565b50346103505761012036600319011261035057612b34613478565b612b3c61348e565b906044356001600160401b03811161065757612b5c903690600401613750565b916064356001600160401b0381116109f157612b7c9036906004016137be565b93608435916001600160801b038316830361035e57612b996134e4565b94612ba26134fa565b9360e4356001600160401b0381116109f157612bc29036906004016135d8565b92612bcb613f9f565b604051634eb1c24560e11b81526001600160a01b039190911698909160a0836004818d5afa91821561109a578997948794602094612cad9c9894612c88948f9d9b9489948a94612e31575b50612c4b612c43612c58969760018060a01b03169d6001600160801b03612c3c866141f0565b9116613d54565b303387613fc6565b61010435938c309161422b565b998a9160018060a01b03169761051c8b612c7a6040519788928d8b8501613b1a565b03601f19810187528661353f565b612c91886141bf565b604051639ea1c1c960e01b8152998a9283928960048501613b55565b0381848c5af1968715612e24578197612df0575b506040516341a4eb5f60e11b815260048101889052918183602481875afa928315610353578293612dcd575b50606060249394604051948580926350ef5c3560e01b82528c60048301525afa928315610353578293612da0575b506001600160801b03166001600160801b03831690808211612d8a575050509260409692612d7b7f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b098938896612d6f896141bf565b8b519586953387613c4a565b0390a382519182526020820152f35b6370d1969b60e01b835260045260245260449150fd5b6001600160801b03919350612dc39060603d6060116120f1576120de818361353f565b5090509290612d1b565b60249350612de66060913d8086833e612111818361353f565b9150509350612ced565b9096506020813d602011612e1c575b81612e0c6020938361353f565b810103126106035751955f612cc1565b3d9150612dff565b50604051903d90823e3d90fd5b612c4b9650612c589550612c439450612e589060a03d60a01161046e57610456818361353f565b92999198509196509150612c169050565b5034610350578060031936011261035057612e8261437f565b5f5160206148975f395f51905f525460ff811615612eda5760ff19165f5160206148975f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461035057604036600319011261035057612f03613478565b602435908115158092036103e1577f4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca91604091612f3e61437f565b60018060a01b0316908185528460205282852060ff1981541660ff831617905582519182526020820152a180f35b50346103505760203660031901126103505760209060ff906040906001600160a01b03612f97613478565b1681528084522054166040519015158152f35b3461060357608036600319011261060357612fc3613478565b60243590612fcf6134ce565b9160643592831515908185036106035760a0600494612fec613f9f565b604051634eb1c24560e11b815295869182905f196001861b01165afa9485156130e1575f945f905f97613124575b506040516341a4eb5f60e11b8152600481018690526001600160a01b0391909116965f826024818b5afa9687156130e1578897613089956001600160801b03945f92613105575b5081851681861611156130fd5750935b156130ec5750915b1694859161051c83303384613fc6565b833b156106035760645f92836040519687948593636f965f9f60e11b8552600485015287602485015260448401525af19182156130e1576020926130d1575b50604051908152f35b5f6130db9161353f565b5f6130c8565b6040513d5f823e3d90fd5b6001600160a01b0316929050613079565b905093613071565b61311a9192503d805f833e612111818361353f565b509050908b613061565b9195505061314291955060a03d60a01161046e57610456818361353f565b979396925088905061301a565b346106035760207f93065b6ca8f9c36086d73ad337c4138513e460fcb4367c4880651b03da29494f6103306131b66131863661382c565b90613198999698939594979299613f9f565b6131ac6131a48b6141f0565b30338c613fc6565b898689878c61422b565b809760405194859460018060a01b03169860018060a01b0316973386613d0c565b34610603576080366003190112610603576131f0613478565b506131f961348e565b506064356001600160401b03811161060357613219903690600401613592565b50604051630a85bd0160e11b8152602090f35b346106035761323a366136be565b9094919293613247613f9f565b604051634eb1c24560e11b81526001600160a01b039190911695909460a0866004818a5afa80156130e157611b84611fa0896103706132e99a6020955f905f915f91613447575b6001600160801b038a16959293506132d0926132bc918791906001600160a01b031661051c83303384613fc6565b6001600160801b038d169030903390613fc6565b60018060a01b0316976040519485918c8b898501613b1a565b03815f8b5af19586156130e1575f96613413575b506040516341a4eb5f60e11b815260048101879052915f83602481875afa9283156130e1575f936133f0575b50606060249394604051948580926350ef5c3560e01b82528b60048301525afa9283156130e1575f936133c3575b506001600160801b03166001600160801b038316908082116133ae57602088808b7f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b0988b8b6103308c8c8c6040519586953387613c4a565b6370d1969b60e01b5f5260045260245260445ffd5b6001600160801b039193506133e69060603d6060116120f1576120de818361353f565b5090509290613357565b602493506134096060913d805f833e612111818361353f565b9150509350613329565b9095506020813d60201161343f575b8161342f6020938361353f565b81010312610603575194876132fd565b3d9150613422565b5050506132d06134686132bc9260a03d60a01161046e57610456818361353f565b91955085945090925061328e9050565b600435906001600160a01b038216820361060357565b602435906001600160a01b038216820361060357565b604435906001600160a01b038216820361060357565b35906001600160a01b038216820361060357565b604435906001600160801b038216820361060357565b60a435906001600160801b038216820361060357565b60c435906001600160801b038216820361060357565b608081019081106001600160401b0382111761352b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761352b57604052565b6001600160401b03811161352b5760051b60200190565b6001600160401b03811161352b57601f01601f191660200190565b81601f82011215610603578035906135a982613577565b926135b7604051948561353f565b8284526020838301011161060357815f926020809301838601378301015290565b9080601f83011215610603578135916135f083613560565b926135fe604051948561353f565b80845260208085019160051b830101918383116106035760208101915b83831061362a57505050505090565b82356001600160401b038111610603578201906080828703601f190112610603576040519061365882613510565b613664602084016134ba565b8252613672604084016134ba565b6020830152613683606084016134ba565b60408301526080830135916001600160401b038311610603576136ae88602080969581960101613592565b606082015281520192019161361b565b9060c0600319830112610603576004356001600160a01b038116810361060357916024356001600160a01b038116810361060357916044356001600160801b038116810361060357916064356001600160801b038116810361060357916084356001600160801b0381168103610603579160a435906001600160401b0382116106035761374d916004016135d8565b90565b9080601f830112156106035781359061376882613560565b92613776604051948561353f565b82845260208085019360051b82010191821161060357602001915b81831061379e5750505090565b82356001600160a01b038116810361060357815260209283019201613791565b9080601f83011215610603578135906137d682613560565b926137e4604051948561353f565b82845260208085019360051b82010191821161060357602001915b81831061380c5750505090565b82356001600160801b0381168103610603578152602092830192016137ff565b60e0600319820112610603576004356001600160a01b038116810361060357916024356001600160a01b038116810361060357916044356001600160a01b038116810361060357916064356001600160401b038111610603578261389291600401613750565b91608435906001600160401b038211610603576138b1916004016137be565b9060a4356001600160801b0381168103610603579060c43590565b60e0600319820112610603576004356001600160a01b038116810361060357916024356001600160a01b03811681036106035791604435916064356001600160401b038111610603578261389291600401613750565b6080906003190112610603576004356001600160a01b038116810361060357906024356001600160a01b038116810361060357906044359060643590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b81601f820112156106035780359061399b82613560565b926139a9604051948561353f565b8284526020606081860194028301019181831161060357602001925b8284106139d3575050505090565b606084830312610603576040519060608201908282106001600160401b0383111761352b57606092602092604052863581528287013583820152604087013560408201528152019301926139c5565b51906001600160a01b038216820361060357565b908160a091031261060357613a4a81613a22565b91613a5760208301613a22565b60408301519092906001600160a01b0381168103610603579161374d6080613a8160608501613a22565b9301613a22565b9080602083519182815201916020808360051b8301019401925f915b838310613ab357505050505090565b9091929394602080613b0b600193601f19868203018752608060608b51878060a01b038151168452878060a01b03868201511686850152878060a01b0360408201511660408501520151918160608201520190613960565b97019301930191939290613aa4565b939290613b4b926001600160801b039160018060a01b03168652166020850152608060408501526080840190613a88565b9160606001910152565b6001600160801b0361374d949360609360018060a01b031683521660208201528160408201520190613960565b51906001600160801b038216820361060357565b81601f8201121561060357805190613bad82613577565b92613bbb604051948561353f565b8284526020838301011161060357815f9260208093018386015e8301015290565b9160608383031261060357613bf083613a22565b92613bfd60208201613b82565b9260408201516001600160401b0381116106035761374d9201613b96565b908160609103126106035780518015158103610603579161374d6040613c4360208501613b82565b9301613b82565b6001600160a01b039182168152911660208201526001600160801b039182166040820152918116606083015291909116608082015260c060a0820181905261374d92910190613960565b90602080835192838152019201905f5b818110613cb15750505090565b82516001600160a01b0316845260209384019390920191600101613ca4565b90602080835192838152019201905f5b818110613ced5750505090565b82516001600160801b0316845260209384019390920191600101613ce0565b6001600160a01b0391821681529116602082015260a06040820181905290949392608092613d4f92613d419190880190613c94565b908682036060880152613cd0565b930152565b91908201809211613d6157565b634e487b7160e01b5f52601160045260245ffd5b91908203918211613d6157565b906004811015613d935760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015613d935760209160051b010190565b8115613dc5570490565b634e487b7160e01b5f52601260045260245ffd5b91908260409103126106035761374d602083519301613b82565b9080601f8301121561060357815191613e0b83613560565b92613e19604051948561353f565b80845260208085019160051b830101918383116106035760208101915b838310613e4557505050505090565b82516001600160401b038111610603578201906080828703601f1901126106035760405190613e7382613510565b613e7f60208401613a22565b8252613e8d60408401613a22565b6020830152613e9e60608401613a22565b60408301526080830151916001600160401b03831161060357613ec988602080969581960101613b96565b6060820152815201920191613e36565b3d15613f03573d90613eea82613577565b91613ef8604051938461353f565b82523d5f602084013e565b606090565b6001600160a01b03909116815260406020820181905261374d92910190613960565b90602080835192838152019201905f5b818110613f475750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091613f3a565b61374d916020613f8e8351604084526040840190613f2a565b920151906020818403910152613f2a565b60ff5f5160206148975f395f51905f525416613fb757565b63d93c066560e01b5f5260045ffd5b90925f19811461404b576001600160a01b03848116908416148015614043575b61403d576040516323b872dd60e01b60208201526001600160a01b039485166024820152929093166044830152606482019290925261403b9161403682608481015b03601f19810184528361353f565b6147a0565b565b50505050565b508015613fe6565b630d550c3b60e11b5f5260045ffd5b821580156141ad575b6141a857604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa9081156130e1575f91614174575b506140f0946140fe6140bd6020945f94613d54565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f19810188528761353f565b85519082865af1903d5f519083614155575b5050501561411d57505050565b61403661403b936040519063095ea7b360e01b602083015260248201525f60448201526044815261414f60648261353f565b826147a0565b9192509061416a57503b15155b5f8080614110565b6001915014614162565b90506020813d6020116141a0575b8161418f6020938361353f565b8101031261060357516140f06140a8565b3d9150614182565b505050565b506001600160a01b0382163014614063565b6001600160801b0381116141d9576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b5f9190825b81518410156142265761421e6001916001600160801b036142168786613da7565b511690613d54565b9301926141f5565b925050565b929590939194955f978151845103614370575f985b82518a101561432f578760208860c4895f8f6001600160801b0361428c828c8f946142729060018060a01b0392613da7565b5116936115b0846142838484613da7565b5116868961405a565b51604051632cfdfa9360e11b81526001600160a01b03958616600482015296851660248801529390971660448601529590911660648401526084830181905260a483018990529193849283915af19081156130e1575f916142fd575b506142f590600192613d54565b990198614240565b90506020813d8211614327575b816143176020938361353f565b81010312610603575160016142e8565b3d915061430a565b9850966001600160801b031695505050838610915061434e9050575050565b83906319aae4c960e11b5f5260018060a01b031660045260245260445260645ffd5b631f77022160e11b5f5260045ffd5b5f5160206148575f395f51905f52546001600160a01b0316330361439f57565b63118cdaa760e01b5f523360045260245ffd5b5f5160206148d75f395f51905f5280546001600160a01b03199081169091555f5160206148575f395f51905f5280549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b92969590939491945f978051825103614370575f985b81518a101561451e578760208860c4895f8f806001600160801b0361447c818f946144668e9160018060a01b0392613da7565b511694169261447684868961405a565b8d613da7565b51166040519889978896637a633c3f60e11b885260018060a01b0316600488015260018060a01b0316602487015260018060a01b03166044860152606485015260848401528a60a48401525af19081156130e1575f916144ec575b506144e490600192613d54565b990198614433565b90506020813d8211614516575b816145066020938361353f565b81010312610603575160016144d7565b3d91506144f9565b98505050509092506001600160801b039150169081841161453d575050565b839063f60dba4560e01b5f5260018060a01b031660045260245260445260645ffd5b9091905f19821461404b576001600160a01b038316301480156145bb575b6141a85760405163a9059cbb60e01b60208201526001600160a01b039093166024840152604483019190915261403b91906140368260648101614028565b50811561457d565b6040519060208201526020815261374d60408261353f565b919091825115614766575f905b8351821015614226576001600160a01b036146038386613da7565b5151165f525f60205260ff60405f2054161561473f575f9081906001600160a01b0360206146318689613da7565b510151166146a76001600160a01b03604061464c888b613da7565b51015116614028606061465f898c613da7565b510151614695604051968794602086019763e0a8041360e01b8952602487015260448601526080606486015260a4850190613960565b83810360231901608485015290613960565b6001600160a01b036146b98689613da7565b5151169151915af46146c9613ed9565b901561470d578051810190602081830312610603576020810151906001600160401b038211610603576020614705928160019501920101613b96565b9101906145e8565b6001600160a01b0361471f8386613da7565b5151604051630de816ad60e31b8152928392611bde921660048401613f08565b6001600160a01b036147518386613da7565b51511663616d132960e01b5f5260045260245ffd5b639f6de0d560e01b5f5260045ffd5b60ff5f5160206148b75f395f51905f525460401c161561479157565b631afcd79f60e31b5f5260045ffd5b905f602091828151910182855af1156130e1575f513d6147ef57506001600160a01b0381163b155b6147cf5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156147c8565b9061481c575080511561480d57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061484d575b61482d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561482556fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbccd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a2646970667358221220e106c62c73be28f2dbb47262f64239ed9170f58d193346eca506e5e79d5afc1364736f6c634300081b0033", + "nonce": "0x370", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xbe5df407fa72780b002befbd26a581cf2da506e2784a251b88c7eb3cbae35f3b", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x1077f", + "value": "0x0", + "input": "0x27e87808000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb110000000000000000000000008ffc4da23ee650ffdd3cb4880a644ce17d2e562300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x371", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x12f48fc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x38269b852581d4528fe48065c5f52a299037abc3175a7c7652d168747a9fb0dc", + "transactionIndex": "0x46", + "blockHash": "0xf81041784fabdec11e163476aa16f818236cb72dcc3567657cf94acc71327bee", + "blockNumber": "0x15bb1f6", + "gasUsed": "0x3e9f71", + "effectiveGasPrice": "0x4955e6ea", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x8ffc4da23ee650ffdd3cb4880a644ce17d2e5623" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x13007c1", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000008ffc4da23ee650ffdd3cb4880a644ce17d2e5623" + ], + "data": "0x", + "blockHash": "0xf81041784fabdec11e163476aa16f818236cb72dcc3567657cf94acc71327bee", + "blockNumber": "0x15bb1f6", + "blockTimestamp": "0x685cdba3", + "transactionHash": "0xbe5df407fa72780b002befbd26a581cf2da506e2784a251b88c7eb3cbae35f3b", + "transactionIndex": "0x47", + "logIndex": "0x160", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000004002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000100000000000000000000000001000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000", + "type": "0x2", + "transactionHash": "0xbe5df407fa72780b002befbd26a581cf2da506e2784a251b88c7eb3cbae35f3b", + "transactionIndex": "0x47", + "blockHash": "0xf81041784fabdec11e163476aa16f818236cb72dcc3567657cf94acc71327bee", + "blockNumber": "0x15bb1f6", + "gasUsed": "0xbec5", + "effectiveGasPrice": "0x4955e6ea", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1750916028, + "chain": 1, + "commit": "c6cbea8" +} \ No newline at end of file diff --git a/broadcast/UpgradeRouterForRepayingGt.s.sol/1/run-latest.json b/broadcast/UpgradeRouterForRepayingGt.s.sol/1/run-latest.json new file mode 100644 index 0000000..1d04c65 --- /dev/null +++ b/broadcast/UpgradeRouterForRepayingGt.s.sol/1/run-latest.json @@ -0,0 +1,97 @@ +{ + "transactions": [ + { + "hash": "0x38269b852581d4528fe48065c5f52a299037abc3175a7c7652d168747a9fb0dc", + "transactionType": "CREATE", + "contractName": "TermMaxRouter_Repay_Gt", + "contractAddress": "0x8ffc4da23ee650ffdd3cb4880a644ce17d2e5623", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x5168df", + "value": "0x0", + "input": "0x60a080604052346029573060805261492c908161002e82396080518181816128dc015261296f0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c80631443c4d61461322c578063150b7a02146131d75780631ac100a41461314f5780632a51cf5114612faa5780632e3e3ef214612f6c5780632f20734514612ee95780633f4ba83a14612e6957806345618d2b14612b195780634f1ef2861461293057806352d1902d146128c95780635c975abb1461289a578063715018a61461281b57806379ba5097146127ce5780638456cb591461275b57806384e090911461252257806389c3584d146121ca5780638da5cb5b14612195578063943189f414611eb257806395320fd014611c1357806399a54a5a14611974578063ad3cb1cc14611927578063c4d66de81461177a578063c71c700c146113bd578063d3e052cf146110a5578063df3e1e0514610d2f578063e30c397814610cfa578063e9919e5c14610c5c578063ef8b4968146109f5578063f1a229ad1461070e578063f2fde38b14610688578063f38743f3146104755763fc1c1b211461017a575f80fd5b3461035057610188366138cc565b91929690959394610197613f9f565b604051634eb1c24560e11b81526001600160a01b039190911697909260a0846004818c5afa9485156103d657839288859486978799610432575b506001600160a01b0390811697169461020291906101f18230338a613fc6565b6001600160a01b031695869061405a565b604061022f8c6102118c6145c3565b8884519e8f9485938492637a0ee4f960e11b84523060048501613b55565b03925af196871561042757859a86986103e5575b509187918961025395948961441d565b92610267846001600160801b038716613d75565b8281610362575b9150503b1561035e57604051632142170760e11b81523060048201526001600160a01b0386166024820152604481018890529082908290818381606481015b03925af180156103535761033b575b602087808a7fdc3efdf28701077a23ef0beb0f3260ca639658ce2676bbc9d83030fac6ce56128a8a6103308b6102f18c6141bf565b604080513381526001600160a01b0390951660208601528401949094526001600160801b039081166060840152909216608082015290819060a0820190565b0390a3604051908152f35b61034682809261353f565b61035057806102bc565b80fd5b6040513d84823e3d90fd5b5080fd5b81610370916103759461405a565b6141bf565b813b156103e1576001600160801b0360405191636f965f9f60e11b8352896004840152166024820152826044820152828160648183865af180156103d6579083916103c1575b8261026e565b816103cb9161353f565b61035e57815f6103bb565b6040513d85823e3d90fd5b8280fd5b610253949391929b508998506104129060403d604011610420575b61040a818361353f565b810190613dd9565b9b909b985091909293610243565b503d610400565b6040513d87823e3d90fd5b9198505061045e919650610202945060a03d60a01161046e575b610456818361353f565b810190613a36565b99909891969193909250906101d1565b503d61044c565b50346103505760a03660031901126103505761048f613478565b9061049861348e565b90604435926064356001600160401b0381116103e1576104bc9036906004016135d8565b608435936104c8613f9f565b604051634eb1c24560e11b81526001600160a01b039190911693909160a083600481885afa928315610353578588918490859661065b575b506105219291906001600160a01b031661051c83303384613fc6565b61405a565b604051633def417960e11b815260048101889052306024820152908282604481838a5af180156103d65783928491610607575b509061055f916145db565b90602082519281808201948592010103126106035761057f915190613d54565b948086106105e2575050602094826105bb867fc1822dac55540066416ffa59d2eb79715d05171ecf435ac5226726b50686d9419560809561455f565b604051918252338783015260018060a01b03166040820152846060820152a2604051908152f35b856064936319aae4c960e11b845260018060a01b0316600452602452604452fd5b5f80fd5b9250503d8084843e610619818461353f565b8201604083820312610657578251926020810151906001600160401b038211610653579161064c9161055f949301613b96565b9091610554565b8580fd5b8380fd5b6105219392965061067b915060a03d60a01161046e57610456818361353f565b9894959250610500915050565b5034610350576020366003190112610350576106a2613478565b6106aa61437f565b5f5160206148d75f395f51905f5280546001600160a01b0319166001600160a01b039283169081179091555f5160206148575f395f51905f52549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b50346103505761010036600319011261035057610729613478565b9061073261348e565b916044356064356001600160401b03811161065757610755903690600401613750565b6084356001600160401b0381116109f1576107749036906004016137be565b9160a435918215158093036106535760c4356001600160401b0381116109ed5760a06107a5600492369084016135d8565b986107ae613f9f565b604051634eb1c24560e11b815292839182905f196001861b01165afa9788156109e25787918890899a6109bb575b506001600160a01b031695863b156109ac57604051635c46a7ef60e11b815233600482015230602482015285604482015260806064820152896084820152898160a481838c5af180156109b057908a91610997575b50506108a69261085d979695949261086f610890936040519a8b9660a0602089015260c0880190613c94565b868103601f1901604088015290613cd0565b6001600160a01b039092166060850152838203601f19016080850152613a88565b60e43560a083015203601f19810186528561353f565b823b1561065357916108e593918680946040519687958694859363078ad17360e31b855260048501526024840152606060448401526064830190613960565b03925af180156103d657908391610982575b50506040516370a0823160e01b81523060048201526020816024816001600160a01b0388165afa9283156109765792610941575b50816109399160209461455f565b604051908152f35b9091506020813d60201161096e575b8161095d6020938361353f565b81010312610603575190602061092b565b3d9150610950565b604051903d90823e3d90fd5b8161098c9161353f565b61035e57815f6108f7565b816109a19161353f565b6109ac57885f610831565b8880fd5b6040513d8c823e3d90fd5b919950506109d8915060a03d60a01161046e57610456818361353f565b9a9250505f6107dc565b6040513d89823e3d90fd5b8680fd5b8480fd5b50346103505760a036600319011261035057610a0f613478565b6024356001600160801b0381168091036103e157610a2b6134a4565b506064356001600160401b03811161065757610a4b903690600401613592565b916084356001600160401b0381116109f157610a6b903690600401613592565b805181019360a082602087019603126106535760208201516001600160401b0381116109ed5782019480603f870112156109ed57602086015195610aae87613560565b96610abc604051988961353f565b808852602080808a019260051b8401010191838311610c2057604001905b828210610c445750505060408301516001600160401b038111610c4057830181603f82011215610c4057602081015190610b1382613560565b91610b21604051938461353f565b8083526020808085019260051b8401010191848311610c3c57604001905b828210610c2457505050610b5560608501613a22565b916080850151946001600160401b038611610c2057610b7e610b8992602060a098840101613df3565b9586910151946145db565b936001600160a01b0386811690841614610bad575b88610baa88338961405a565b80f35b80515f198101908111610c0c576001600160a01b0391604091610bcf91613da7565b51015116966020855195818082019788920101031261060357610baa97610bf9610c0196516141bf565b93309161441d565b505f80808080610b9e565b634e487b7160e01b8a52601160045260248afd5b8980fd5b60208091610c3184613b82565b815201910190610b3f565b8a80fd5b8780fd5b60208091610c5184613a22565b815201910190610ada565b5034610350576020610cd5610330610cdc7f18f137cdb80704341c5da72a0f5776e3361de90e2a157d704a4b79d96b753aa6610ccc610c9a3661382c565b869a9596949992939791610cac613f9f565b84898c8a6001600160801b03851699610cc78b303384613fc6565b61441d565b998a8094613d75565b338a61455f565b6040516001600160a01b039485169890941696939485943386613d0c565b50346103505780600319360112610350575f5160206148d75f395f51905f52546040516001600160a01b039091168152602090f35b503461035057610d3e36613922565b91610d4a939193613f9f565b604051634eb1c24560e11b81526001600160a01b0391909116929060a081600481875afa90811561109a5786908790889361106c575b506040516331a9108f60e11b8152600481018890526001600160a01b0391821693909160209183916024918391165afa908115611018578891611032575b50336001600160a01b039091160361102357604051633f5ffaf560e01b8152602081600481895afa908115611018578891610fe6575b506305f5e1008402908482046305f5e1001485151715610fd2576305f5e10003906305f5e1008211610fd257610e2d9161037091613dbb565b906001600160801b03604051926339a380ed60e01b845230600485015216938460248401528760448401526020836064818c8b5af18015610fc75787938a91610f74575b509293610eaf93859261051c916001600160801b031680821015610f695750809681955b610ea183303388613fc6565b6001600160a01b031661405a565b833b1561065357604051632770a7eb60e21b81526001600160a01b03841660048201526024810182905286908181604481838a5af1801561035357610f50575b5050916001600160801b0360a092610f277fdc3efdf28701077a23ef0beb0f3260ca639658ce2676bbc9d83030fac6ce5612956141bf565b9060405193338552600180871b031660208501528860408501526060840152166080820152a380f35b81610f5d9195939561353f565b6106535791855f610eef565b905080968195610e95565b9350506020833d602011610fbf575b81610f906020938361353f565b810103126109ac57869361051c85926001600160801b03610fb3610eaf97613b82565b93975050929450610e71565b3d9150610f83565b6040513d8b823e3d90fd5b634e487b7160e01b89526011600452602489fd5b90506020813d602011611010575b816110016020938361353f565b8101031261060357515f610df4565b3d9150610ff4565b6040513d8a823e3d90fd5b6315e69dc560e21b8752600487fd5b90506020813d602011611064575b8161104d6020938361353f565b81010312610c405761105e90613a22565b5f610dbe565b3d9150611040565b602493506020925061108d915060a03d60a01161046e57610456818361353f565b5050939192909150610d80565b6040513d88823e3d90fd5b503461035057610100366003190112610350576110c0613478565b6110c861348e565b6064356001600160a01b03811693919084900361035e57608435936110eb6134e4565b936110f46134fa565b9260e435916001600160401b03831161065357604060031984360301126106535760405192604084018481106001600160401b038211176113a95760405280600401356001600160401b038111610c40576111559060043691840101613984565b845260248101356001600160401b038111610c405761117991369101600401613984565b6020840152611186613f9f565b604051634eb1c24560e11b8152966001600160a01b0391909116949060a088600481895afa9687156109765780978199829161137d575b5060405163887bb98960e01b81526001600160a01b03909516600486018190526044803560248801528601979097526080606486015260208580611204608482018a613f75565b0381858c5af1948515610353578295611341575b508a6112dc575b5050927fac20b37c6c923070aa8deac25d6e9bf9f6eecd727d9c2b89d0451685ecf4ba5294926001600160801b03610330938160209c9716998a806112bd575b50501698898061129e575b505060018060a01b031697889760405195869586528b8601526040850152606084015260a0608084015260a0830190613f75565b6112b6916001600160a01b0384811691339116613fc6565b5f8961126a565b6112d5916001600160a01b0386811691339116613fc6565b5f8a61125f565b8a886112ee9261051c83303384613fc6565b863b15610350576040516340c10f1960e01b81526001600160a01b0385166004820152602481018b90528181604481838c5af18015610353571561121f5761133782809261353f565b610350578061121f565b9094506020813d602011611375575b8161135d6020938361353f565b8101031261035e5761136e90613a22565b935f611218565b3d9150611350565b9198505061139b91985060a03d60a01161046e57610456818361353f565b9a939150509790985f6111bd565b634e487b7160e01b88526041600452602488fd5b503461035057610100366003190112610350576113d8613478565b6113e061348e565b6113e86134ce565b92606435926001600160801b038416928385036103e1576084356001600160401b0381116106575761141e903690600401613750565b9460a4356001600160401b0381116109f15761143e9036906004016137be565b916114476134fa565b9260e43591611454613f9f565b604051634eb1c24560e11b81526001600160a01b039190911698909360a0856004818d5afa958615611018578a9b899a9b998b978c99611746575b506001600160a01b03908116976001600160801b0392909216939116908c84111561173457966001600160801b0381985b169a8b906114d086303386613fc6565b6114d99261405a565b898d6114e78e303386613fc6565b6114f09261405a565b8b3b15610c2057604051632770a7eb60e21b81526001600160a01b0389166004820152602481018a90528a818e8183816044810103925af1801561172957908b91611714575b5050899b835185510361170557999b989a8c9a6001600160a01b03998a169a988a16998816989091908c5b8651111561164d578b8f8c8f8d60c4918e8e6001600160801b038f8f986115b5916115b060209b6115998460018060a01b0392613da7565b51169687866115a88686613da7565b51169161405a565b613da7565b51166040519889978896632cfdfa9360e11b8852600488015260248701526044860152606485015282608485015260a48401525af1908115611640578e9161160e575b5061160590600192613d54565b9e019d8e611561565b90506020813d8211611638575b816116286020938361353f565b81010312610603575160016115f8565b3d915061161b565b8e604051903d90823e3d90fd5b858c928f8f906001600160801b038f91611668908d97613d54565b9816908189106116ea57505050602096926116cb7f482c5c16eb3726edd4dc0b4e52fdb8488530e472f26df2a268d3d94edfc135a095936116d9936040519687963388528c8801526040870152606086015260e0608086015260e0850190613c94565b9083820360a0850152613cd0565b8560c08301520390a2604051908152f35b6319aae4c960e11b8352600452602488905260445260649150fd5b631f77022160e11b8b5260048bfd5b8161171e9161353f565b610c2057895f611536565b6040513d8d823e3d90fd5b5082966001600160801b0382986114c0565b90506001600160801b03985061176c91975060a03d60a01161046e57610456818361353f565b9a92999392915061148f9050565b503461035057602036600319011261035057611794613478565b5f5160206148b75f395f51905f52549060ff8260401c1615916001600160401b0381168015908161191f575b6001149081611915575b15908161190c575b506118fd5767ffffffffffffffff1981166001175f5160206148b75f395f51905f5255826118d1575b50611804614775565b61180c614775565b611814614775565b60ff195f5160206148975f395f51905f5254165f5160206148975f395f51905f525561183e614775565b611846614775565b6001600160a01b038116156118bd5761185e906143b2565b6118655780f35b68ff0000000000000000195f5160206148b75f395f51905f5254165f5160206148b75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b631e4fbdf760e01b83526004839052602483fd5b68ffffffffffffffffff191668010000000000000001175f5160206148b75f395f51905f52555f6117fb565b63f92ee8a960e01b8452600484fd5b9050155f6117d2565b303b1591506117ca565b8491506117c0565b50346103505780600319360112610350575061197060405161194a60408261353f565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613960565b0390f35b50346103505760803660031901126103505761198e613478565b5061199761348e565b506064356001600160401b03811161035e576119b7903690600401613592565b908151820160808382031261035e5760208301516001600160a01b03811693908490036103e1576040810151916060820151906001600160401b0382116109f157608091602080611a0c930191850101613df3565b9101519160028310156106575781611a29611a4692604435613d54565b60405190602082015260208152611a4160408261353f565b6145db565b815190915f198201918211611bff5790611a5f91613da7565b5180516001600160a01b031684526020849052604084205490929060ff1615611be25780611b2457505060409081015190516370a0823160e01b81523060048201526001600160a01b039091169190602081602481865afa9182156109765791611af0575b508061197093611ad6611adc936145c3565b9361405a565b604051918291602083526020830190613960565b90506020813d602011611b1c575b81611b0b6020938361353f565b810103126106035751611970611ac4565b3d9150611afe565b9193909291600114611b3d575b50506119709150611adc565b8190604085019460018060a01b0386511690604051926020840192639df3032560e01b84526024850152604484015260606064840152611b9283611b846084820189613960565b03601f19810185528461353f565b519151916001600160a01b03165af491611baa613ed9565b9215611bb65780611b31565b51604051631d039b4360e11b815292839250611bde916001600160a01b031660048401613f08565b0390fd5b825163616d132960e01b85526001600160a01b0316600452602484fd5b634e487b7160e01b85526011600452602485fd5b503461035057611c2236613922565b93929091611c2e613f9f565b604051634eb1c24560e11b81526001600160a01b0391909116949060a081600481895afa8015610427578590858788948993611e81575b506001600160a01b0392831694921691611c979190611c8682303389613fc6565b6001600160a01b031694859061405a565b604051633f5ffaf560e01b81526020816004818c5afa908115611018578891611e4f575b506305f5e1008502908582046305f5e1001486151715610fd2576305f5e10003906305f5e1008211610fd2576103708995949392611cf892613dbb565b946040611d258b611d088b6145c3565b83519c8d80948193637a0ee4f960e11b83528d3060048501613b55565b03925af18015610427579085949392918b969a8691611e12575b509161051c87926001600160801b03611d6e9695168082105f14611e07575080988195610ea183303388613fc6565b873b1561035e57604051632770a7eb60e21b81526001600160a01b0386166004820152602481018490528281604481838d5af180156103d657908391611df2575b5050803b1561035e57604051632142170760e11b81523060048201526001600160a01b0386166024820152604481018890529082908290818381606481016102ad565b81611dfc9161353f565b61035e57815f611daf565b905080988195610e95565b6001600160801b039b50611d6e949391508792611e4061051c9260403d6040116104205761040a818361353f565b9d909d93959650509250611d3f565b90506020813d602011611e79575b81611e6a6020938361353f565b8101031261060357515f611cbb565b3d9150611e5d565b91935050611c979350611ea3915060a03d60a01161046e57610456818361353f565b50909492939092909190611c65565b503461035057611ec1366136be565b9194929593611ece613f9f565b604051634eb1c24560e11b81526001600160a01b03919091169560a0826004818a5afa90811561109a57611f978899611fbc9994602094611f83948b8c938d93612157575b506001600160801b03948516989394611f5894909291611f44918b916001600160a01b031661051c83303384613fc6565b1690309033906001600160a01b0316613fc6565b60018060a01b03169560405192839188868401528a60408401526080606084015260a0830190613a88565b89608083015203601f19810183528261353f565b611fa0836141bf565b604051639ea1c1c960e01b815298899283928960048501613b55565b0381888b5af1958615610427578596612123575b506040516341a4eb5f60e11b815260048101879052918583602481875afa92831561109a5786936120f8575b50606060249394604051948580926350ef5c3560e01b82528b60048301525afa92831561109a5786936120b9575b506001600160801b0392831692168083116120a25750926103307f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b098938796936020999660405195869533875260018060a01b03168c87015260408601526060850152608084015260c060a084015260c0830190613960565b6370d1969b60e01b86526004526024829052604485fd5b6001600160801b039193506120e6829160603d6060116120f1575b6120de818361353f565b810190613c1b565b50905093915061202a565b503d6120d4565b602493506121196060913d808a833e612111818361353f565b810190613bdc565b9150509350611ffc565b9095506020813d60201161214f575b8161213f6020938361353f565b810103126106035751945f611fd0565b3d9150612132565b611f5894506001600160801b03935083929150612185611f449160a03d60a01161046e57610456818361353f565b509097509550929350611f139050565b50346103505780600319360112610350575f5160206148575f395f51905f52546040516001600160a01b039091168152602090f35b5034610350576040366003190112610350576121e4613478565b6121ec61348e565b90608092600460405192612200868561353f565b8536853760a060405191612214888461353f565b87368437604051634eb1c24560e11b815293849182905f196001861b01165afa80156103d6578392848594869287946124f6575b506001600160a01b039081168852908116602088015290811660408701529081166060860152851691835b6004811061247057506040516370a0823160e01b815260048101939093526001600160a01b031690602083602481855afa928315612465578493612431575b5095949391906122c182613560565b916122cf604051938461353f565b8083526122db81613560565b602084019690601f1901368837855b82811061239e575050506040519687966101408801948887905b6004821061237b57505050870185905b600482106123615750505061010086015261014061012086015251809152610160840192915b818110612348575050500390f35b825184528594506020938401939092019160010161233a565b825181528998506020928301926001929092019101612314565b82516001600160a01b031681528b9a506020928301926001929092019101612304565b604051632f745c5960e01b81526001600160a01b038316600482015260248101829052989997989597949593949390602082604481895afa80156110185788906123ff575b600192506123f18289613da7565b5201989796949392986122ea565b506020823d8211612429575b816124186020938361353f565b8101031261060357600191516123e3565b3d915061240b565b9092506020813d60201161245d575b8161244d6020938361353f565b810103126106035751915f6122b2565b3d9150612440565b6040513d86823e3d90fd5b60249060206001600160a01b03612487838a613d82565b5116604051938480926370a0823160e01b82528960048301525afa801561109a5786906124c4575b600192506124bd8286613d82565b5201612273565b506020823d82116124ee575b816124dd6020938361353f565b8101031261060357600191516124af565b3d91506124d0565b935050505061251591925060a03d60a01161046e57610456818361353f565b919493919290915f612248565b503461035057612531366138cc565b909291939461253e613f9f565b604051634eb1c24560e11b81526001600160a01b039190911694909260a084600481895afa928315610fc757898a958b95612728575b506001600160a01b0316956001600160801b038116926125b0926125aa92909186906125a28730338c613fc6565b308b8a61441d565b926141f0565b6040516341a4eb5f60e11b8152600481018990526001600160a01b0390951699909481816024818e5afa90811561035357829161270b575b506001600160801b03811686106126f2575b6001600160801b03169961260f8b828961405a565b803b1561035e57818b60648b836040519586948593636f965f9f60e11b8552600485015260248401528160448401525af18015610353576126dd575b5050977ff2960dbf8545963973c9df7f52bdbdd6803dbf97c4597938fa37510b1218aece948860809561268e8296612686869760209f613d75565b9c8d9161455f565b8381116126c1575b505050506040519133835260018060a01b0316888301526040820152856060820152a3604051908152f35b6126d4936126ce91613d75565b9161455f565b805f8381612696565b6126e882809261353f565b610350578061264b565b506001600160801b03612704866141bf565b90506125fa565b61271f91503d8084833e612111818361353f565b5090505f6125e8565b6125aa96506125b092955061274c915060a03d60a01161046e57610456818361353f565b91985090969391506125749050565b503461035057806003193601126103505761277461437f565b61277c613f9f565b600160ff195f5160206148975f395f51905f525416175f5160206148975f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103505780600319360112610350575f5160206148d75f395f51905f5254336001600160a01b039091160361280857610baa336143b2565b63118cdaa760e01b815233600452602490fd5b503461035057806003193601126103505761283461437f565b5f5160206148d75f395f51905f5280546001600160a01b03199081169091555f5160206148575f395f51905f528054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610350578060031936011261035057602060ff5f5160206148975f395f51905f5254166040519015158152f35b50346103505780600319360112610350577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036129215760206040515f5160206148775f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261035057612945613478565b906024356001600160401b03811161035e57612965903690600401613592565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612af7575b50612ae8576129a761437f565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612ab4575b506129ec57634c9c8ce360e01b84526004839052602484fd5b9091845f5160206148775f395f51905f528103612aa25750813b15612a90575f5160206148775f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612a765780836020612a7295519101845af4612a6c613ed9565b916147f8565b5080f35b50505034612a815780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612ae0575b81612ad06020938361353f565b810103126109f15751945f6129d3565b3d9150612ac3565b63703e46dd60e11b8252600482fd5b5f5160206148775f395f51905f52546001600160a01b0316141590505f61299a565b50346103505761012036600319011261035057612b34613478565b612b3c61348e565b906044356001600160401b03811161065757612b5c903690600401613750565b916064356001600160401b0381116109f157612b7c9036906004016137be565b93608435916001600160801b038316830361035e57612b996134e4565b94612ba26134fa565b9360e4356001600160401b0381116109f157612bc29036906004016135d8565b92612bcb613f9f565b604051634eb1c24560e11b81526001600160a01b039190911698909160a0836004818d5afa91821561109a578997948794602094612cad9c9894612c88948f9d9b9489948a94612e31575b50612c4b612c43612c58969760018060a01b03169d6001600160801b03612c3c866141f0565b9116613d54565b303387613fc6565b61010435938c309161422b565b998a9160018060a01b03169761051c8b612c7a6040519788928d8b8501613b1a565b03601f19810187528661353f565b612c91886141bf565b604051639ea1c1c960e01b8152998a9283928960048501613b55565b0381848c5af1968715612e24578197612df0575b506040516341a4eb5f60e11b815260048101889052918183602481875afa928315610353578293612dcd575b50606060249394604051948580926350ef5c3560e01b82528c60048301525afa928315610353578293612da0575b506001600160801b03166001600160801b03831690808211612d8a575050509260409692612d7b7f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b098938896612d6f896141bf565b8b519586953387613c4a565b0390a382519182526020820152f35b6370d1969b60e01b835260045260245260449150fd5b6001600160801b03919350612dc39060603d6060116120f1576120de818361353f565b5090509290612d1b565b60249350612de66060913d8086833e612111818361353f565b9150509350612ced565b9096506020813d602011612e1c575b81612e0c6020938361353f565b810103126106035751955f612cc1565b3d9150612dff565b50604051903d90823e3d90fd5b612c4b9650612c589550612c439450612e589060a03d60a01161046e57610456818361353f565b92999198509196509150612c169050565b5034610350578060031936011261035057612e8261437f565b5f5160206148975f395f51905f525460ff811615612eda5760ff19165f5160206148975f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461035057604036600319011261035057612f03613478565b602435908115158092036103e1577f4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca91604091612f3e61437f565b60018060a01b0316908185528460205282852060ff1981541660ff831617905582519182526020820152a180f35b50346103505760203660031901126103505760209060ff906040906001600160a01b03612f97613478565b1681528084522054166040519015158152f35b3461060357608036600319011261060357612fc3613478565b60243590612fcf6134ce565b9160643592831515908185036106035760a0600494612fec613f9f565b604051634eb1c24560e11b815295869182905f196001861b01165afa9485156130e1575f945f905f97613124575b506040516341a4eb5f60e11b8152600481018690526001600160a01b0391909116965f826024818b5afa9687156130e1578897613089956001600160801b03945f92613105575b5081851681861611156130fd5750935b156130ec5750915b1694859161051c83303384613fc6565b833b156106035760645f92836040519687948593636f965f9f60e11b8552600485015287602485015260448401525af19182156130e1576020926130d1575b50604051908152f35b5f6130db9161353f565b5f6130c8565b6040513d5f823e3d90fd5b6001600160a01b0316929050613079565b905093613071565b61311a9192503d805f833e612111818361353f565b509050908b613061565b9195505061314291955060a03d60a01161046e57610456818361353f565b979396925088905061301a565b346106035760207f93065b6ca8f9c36086d73ad337c4138513e460fcb4367c4880651b03da29494f6103306131b66131863661382c565b90613198999698939594979299613f9f565b6131ac6131a48b6141f0565b30338c613fc6565b898689878c61422b565b809760405194859460018060a01b03169860018060a01b0316973386613d0c565b34610603576080366003190112610603576131f0613478565b506131f961348e565b506064356001600160401b03811161060357613219903690600401613592565b50604051630a85bd0160e11b8152602090f35b346106035761323a366136be565b9094919293613247613f9f565b604051634eb1c24560e11b81526001600160a01b039190911695909460a0866004818a5afa80156130e157611b84611fa0896103706132e99a6020955f905f915f91613447575b6001600160801b038a16959293506132d0926132bc918791906001600160a01b031661051c83303384613fc6565b6001600160801b038d169030903390613fc6565b60018060a01b0316976040519485918c8b898501613b1a565b03815f8b5af19586156130e1575f96613413575b506040516341a4eb5f60e11b815260048101879052915f83602481875afa9283156130e1575f936133f0575b50606060249394604051948580926350ef5c3560e01b82528b60048301525afa9283156130e1575f936133c3575b506001600160801b03166001600160801b038316908082116133ae57602088808b7f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b0988b8b6103308c8c8c6040519586953387613c4a565b6370d1969b60e01b5f5260045260245260445ffd5b6001600160801b039193506133e69060603d6060116120f1576120de818361353f565b5090509290613357565b602493506134096060913d805f833e612111818361353f565b9150509350613329565b9095506020813d60201161343f575b8161342f6020938361353f565b81010312610603575194876132fd565b3d9150613422565b5050506132d06134686132bc9260a03d60a01161046e57610456818361353f565b91955085945090925061328e9050565b600435906001600160a01b038216820361060357565b602435906001600160a01b038216820361060357565b604435906001600160a01b038216820361060357565b35906001600160a01b038216820361060357565b604435906001600160801b038216820361060357565b60a435906001600160801b038216820361060357565b60c435906001600160801b038216820361060357565b608081019081106001600160401b0382111761352b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761352b57604052565b6001600160401b03811161352b5760051b60200190565b6001600160401b03811161352b57601f01601f191660200190565b81601f82011215610603578035906135a982613577565b926135b7604051948561353f565b8284526020838301011161060357815f926020809301838601378301015290565b9080601f83011215610603578135916135f083613560565b926135fe604051948561353f565b80845260208085019160051b830101918383116106035760208101915b83831061362a57505050505090565b82356001600160401b038111610603578201906080828703601f190112610603576040519061365882613510565b613664602084016134ba565b8252613672604084016134ba565b6020830152613683606084016134ba565b60408301526080830135916001600160401b038311610603576136ae88602080969581960101613592565b606082015281520192019161361b565b9060c0600319830112610603576004356001600160a01b038116810361060357916024356001600160a01b038116810361060357916044356001600160801b038116810361060357916064356001600160801b038116810361060357916084356001600160801b0381168103610603579160a435906001600160401b0382116106035761374d916004016135d8565b90565b9080601f830112156106035781359061376882613560565b92613776604051948561353f565b82845260208085019360051b82010191821161060357602001915b81831061379e5750505090565b82356001600160a01b038116810361060357815260209283019201613791565b9080601f83011215610603578135906137d682613560565b926137e4604051948561353f565b82845260208085019360051b82010191821161060357602001915b81831061380c5750505090565b82356001600160801b0381168103610603578152602092830192016137ff565b60e0600319820112610603576004356001600160a01b038116810361060357916024356001600160a01b038116810361060357916044356001600160a01b038116810361060357916064356001600160401b038111610603578261389291600401613750565b91608435906001600160401b038211610603576138b1916004016137be565b9060a4356001600160801b0381168103610603579060c43590565b60e0600319820112610603576004356001600160a01b038116810361060357916024356001600160a01b03811681036106035791604435916064356001600160401b038111610603578261389291600401613750565b6080906003190112610603576004356001600160a01b038116810361060357906024356001600160a01b038116810361060357906044359060643590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b81601f820112156106035780359061399b82613560565b926139a9604051948561353f565b8284526020606081860194028301019181831161060357602001925b8284106139d3575050505090565b606084830312610603576040519060608201908282106001600160401b0383111761352b57606092602092604052863581528287013583820152604087013560408201528152019301926139c5565b51906001600160a01b038216820361060357565b908160a091031261060357613a4a81613a22565b91613a5760208301613a22565b60408301519092906001600160a01b0381168103610603579161374d6080613a8160608501613a22565b9301613a22565b9080602083519182815201916020808360051b8301019401925f915b838310613ab357505050505090565b9091929394602080613b0b600193601f19868203018752608060608b51878060a01b038151168452878060a01b03868201511686850152878060a01b0360408201511660408501520151918160608201520190613960565b97019301930191939290613aa4565b939290613b4b926001600160801b039160018060a01b03168652166020850152608060408501526080840190613a88565b9160606001910152565b6001600160801b0361374d949360609360018060a01b031683521660208201528160408201520190613960565b51906001600160801b038216820361060357565b81601f8201121561060357805190613bad82613577565b92613bbb604051948561353f565b8284526020838301011161060357815f9260208093018386015e8301015290565b9160608383031261060357613bf083613a22565b92613bfd60208201613b82565b9260408201516001600160401b0381116106035761374d9201613b96565b908160609103126106035780518015158103610603579161374d6040613c4360208501613b82565b9301613b82565b6001600160a01b039182168152911660208201526001600160801b039182166040820152918116606083015291909116608082015260c060a0820181905261374d92910190613960565b90602080835192838152019201905f5b818110613cb15750505090565b82516001600160a01b0316845260209384019390920191600101613ca4565b90602080835192838152019201905f5b818110613ced5750505090565b82516001600160801b0316845260209384019390920191600101613ce0565b6001600160a01b0391821681529116602082015260a06040820181905290949392608092613d4f92613d419190880190613c94565b908682036060880152613cd0565b930152565b91908201809211613d6157565b634e487b7160e01b5f52601160045260245ffd5b91908203918211613d6157565b906004811015613d935760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015613d935760209160051b010190565b8115613dc5570490565b634e487b7160e01b5f52601260045260245ffd5b91908260409103126106035761374d602083519301613b82565b9080601f8301121561060357815191613e0b83613560565b92613e19604051948561353f565b80845260208085019160051b830101918383116106035760208101915b838310613e4557505050505090565b82516001600160401b038111610603578201906080828703601f1901126106035760405190613e7382613510565b613e7f60208401613a22565b8252613e8d60408401613a22565b6020830152613e9e60608401613a22565b60408301526080830151916001600160401b03831161060357613ec988602080969581960101613b96565b6060820152815201920191613e36565b3d15613f03573d90613eea82613577565b91613ef8604051938461353f565b82523d5f602084013e565b606090565b6001600160a01b03909116815260406020820181905261374d92910190613960565b90602080835192838152019201905f5b818110613f475750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091613f3a565b61374d916020613f8e8351604084526040840190613f2a565b920151906020818403910152613f2a565b60ff5f5160206148975f395f51905f525416613fb757565b63d93c066560e01b5f5260045ffd5b90925f19811461404b576001600160a01b03848116908416148015614043575b61403d576040516323b872dd60e01b60208201526001600160a01b039485166024820152929093166044830152606482019290925261403b9161403682608481015b03601f19810184528361353f565b6147a0565b565b50505050565b508015613fe6565b630d550c3b60e11b5f5260045ffd5b821580156141ad575b6141a857604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa9081156130e1575f91614174575b506140f0946140fe6140bd6020945f94613d54565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f19810188528761353f565b85519082865af1903d5f519083614155575b5050501561411d57505050565b61403661403b936040519063095ea7b360e01b602083015260248201525f60448201526044815261414f60648261353f565b826147a0565b9192509061416a57503b15155b5f8080614110565b6001915014614162565b90506020813d6020116141a0575b8161418f6020938361353f565b8101031261060357516140f06140a8565b3d9150614182565b505050565b506001600160a01b0382163014614063565b6001600160801b0381116141d9576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b5f9190825b81518410156142265761421e6001916001600160801b036142168786613da7565b511690613d54565b9301926141f5565b925050565b929590939194955f978151845103614370575f985b82518a101561432f578760208860c4895f8f6001600160801b0361428c828c8f946142729060018060a01b0392613da7565b5116936115b0846142838484613da7565b5116868961405a565b51604051632cfdfa9360e11b81526001600160a01b03958616600482015296851660248801529390971660448601529590911660648401526084830181905260a483018990529193849283915af19081156130e1575f916142fd575b506142f590600192613d54565b990198614240565b90506020813d8211614327575b816143176020938361353f565b81010312610603575160016142e8565b3d915061430a565b9850966001600160801b031695505050838610915061434e9050575050565b83906319aae4c960e11b5f5260018060a01b031660045260245260445260645ffd5b631f77022160e11b5f5260045ffd5b5f5160206148575f395f51905f52546001600160a01b0316330361439f57565b63118cdaa760e01b5f523360045260245ffd5b5f5160206148d75f395f51905f5280546001600160a01b03199081169091555f5160206148575f395f51905f5280549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b92969590939491945f978051825103614370575f985b81518a101561451e578760208860c4895f8f806001600160801b0361447c818f946144668e9160018060a01b0392613da7565b511694169261447684868961405a565b8d613da7565b51166040519889978896637a633c3f60e11b885260018060a01b0316600488015260018060a01b0316602487015260018060a01b03166044860152606485015260848401528a60a48401525af19081156130e1575f916144ec575b506144e490600192613d54565b990198614433565b90506020813d8211614516575b816145066020938361353f565b81010312610603575160016144d7565b3d91506144f9565b98505050509092506001600160801b039150169081841161453d575050565b839063f60dba4560e01b5f5260018060a01b031660045260245260445260645ffd5b9091905f19821461404b576001600160a01b038316301480156145bb575b6141a85760405163a9059cbb60e01b60208201526001600160a01b039093166024840152604483019190915261403b91906140368260648101614028565b50811561457d565b6040519060208201526020815261374d60408261353f565b919091825115614766575f905b8351821015614226576001600160a01b036146038386613da7565b5151165f525f60205260ff60405f2054161561473f575f9081906001600160a01b0360206146318689613da7565b510151166146a76001600160a01b03604061464c888b613da7565b51015116614028606061465f898c613da7565b510151614695604051968794602086019763e0a8041360e01b8952602487015260448601526080606486015260a4850190613960565b83810360231901608485015290613960565b6001600160a01b036146b98689613da7565b5151169151915af46146c9613ed9565b901561470d578051810190602081830312610603576020810151906001600160401b038211610603576020614705928160019501920101613b96565b9101906145e8565b6001600160a01b0361471f8386613da7565b5151604051630de816ad60e31b8152928392611bde921660048401613f08565b6001600160a01b036147518386613da7565b51511663616d132960e01b5f5260045260245ffd5b639f6de0d560e01b5f5260045ffd5b60ff5f5160206148b75f395f51905f525460401c161561479157565b631afcd79f60e31b5f5260045ffd5b905f602091828151910182855af1156130e1575f513d6147ef57506001600160a01b0381163b155b6147cf5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156147c8565b9061481c575080511561480d57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061484d575b61482d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561482556fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbccd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a2646970667358221220e106c62c73be28f2dbb47262f64239ed9170f58d193346eca506e5e79d5afc1364736f6c634300081b0033", + "nonce": "0x370", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xbe5df407fa72780b002befbd26a581cf2da506e2784a251b88c7eb3cbae35f3b", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "gas": "0x1077f", + "value": "0x0", + "input": "0x27e87808000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb110000000000000000000000008ffc4da23ee650ffdd3cb4880a644ce17d2e562300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x371", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x12f48fc", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x38269b852581d4528fe48065c5f52a299037abc3175a7c7652d168747a9fb0dc", + "transactionIndex": "0x46", + "blockHash": "0xf81041784fabdec11e163476aa16f818236cb72dcc3567657cf94acc71327bee", + "blockNumber": "0x15bb1f6", + "gasUsed": "0x3e9f71", + "effectiveGasPrice": "0x4955e6ea", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x8ffc4da23ee650ffdd3cb4880a644ce17d2e5623" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x13007c1", + "logs": [ + { + "address": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000008ffc4da23ee650ffdd3cb4880a644ce17d2e5623" + ], + "data": "0x", + "blockHash": "0xf81041784fabdec11e163476aa16f818236cb72dcc3567657cf94acc71327bee", + "blockNumber": "0x15bb1f6", + "blockTimestamp": "0x685cdba3", + "transactionHash": "0xbe5df407fa72780b002befbd26a581cf2da506e2784a251b88c7eb3cbae35f3b", + "transactionIndex": "0x47", + "logIndex": "0x160", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000004002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000100000000000000000000000001000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000", + "type": "0x2", + "transactionHash": "0xbe5df407fa72780b002befbd26a581cf2da506e2784a251b88c7eb3cbae35f3b", + "transactionIndex": "0x47", + "blockHash": "0xf81041784fabdec11e163476aa16f818236cb72dcc3567657cf94acc71327bee", + "blockNumber": "0x15bb1f6", + "gasUsed": "0xbec5", + "effectiveGasPrice": "0x4955e6ea", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xda4aaf85bb924b53dcc2dffa9e1a9c2ef97acfdf", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1750916028, + "chain": 1, + "commit": "c6cbea8" +} \ No newline at end of file diff --git a/broadcast/UpgradeRouterForRepayingGt.s.sol/42161/run-latest.json b/broadcast/UpgradeRouterForRepayingGt.s.sol/42161/run-latest.json new file mode 100644 index 0000000..d3284ee --- /dev/null +++ b/broadcast/UpgradeRouterForRepayingGt.s.sol/42161/run-latest.json @@ -0,0 +1,106 @@ +{ + "transactions": [ + { + "hash": "0x3cd29d5d965861371409e93ee8dd7d86f83484a66244e19443038390d6d43409", + "transactionType": "CREATE", + "contractName": "TermMaxRouter_Repay_Gt", + "contractAddress": "0x04b945a67b799e87034b5f6ad4dedb57d08ef588", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x5ac26e", + "value": "0x0", + "input": "0x60a080604052346029573060805261492c908161002e82396080518181816128dc015261296f0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c80631443c4d61461322c578063150b7a02146131d75780631ac100a41461314f5780632a51cf5114612faa5780632e3e3ef214612f6c5780632f20734514612ee95780633f4ba83a14612e6957806345618d2b14612b195780634f1ef2861461293057806352d1902d146128c95780635c975abb1461289a578063715018a61461281b57806379ba5097146127ce5780638456cb591461275b57806384e090911461252257806389c3584d146121ca5780638da5cb5b14612195578063943189f414611eb257806395320fd014611c1357806399a54a5a14611974578063ad3cb1cc14611927578063c4d66de81461177a578063c71c700c146113bd578063d3e052cf146110a5578063df3e1e0514610d2f578063e30c397814610cfa578063e9919e5c14610c5c578063ef8b4968146109f5578063f1a229ad1461070e578063f2fde38b14610688578063f38743f3146104755763fc1c1b211461017a575f80fd5b3461035057610188366138cc565b91929690959394610197613f9f565b604051634eb1c24560e11b81526001600160a01b039190911697909260a0846004818c5afa9485156103d657839288859486978799610432575b506001600160a01b0390811697169461020291906101f18230338a613fc6565b6001600160a01b031695869061405a565b604061022f8c6102118c6145c3565b8884519e8f9485938492637a0ee4f960e11b84523060048501613b55565b03925af196871561042757859a86986103e5575b509187918961025395948961441d565b92610267846001600160801b038716613d75565b8281610362575b9150503b1561035e57604051632142170760e11b81523060048201526001600160a01b0386166024820152604481018890529082908290818381606481015b03925af180156103535761033b575b602087808a7fdc3efdf28701077a23ef0beb0f3260ca639658ce2676bbc9d83030fac6ce56128a8a6103308b6102f18c6141bf565b604080513381526001600160a01b0390951660208601528401949094526001600160801b039081166060840152909216608082015290819060a0820190565b0390a3604051908152f35b61034682809261353f565b61035057806102bc565b80fd5b6040513d84823e3d90fd5b5080fd5b81610370916103759461405a565b6141bf565b813b156103e1576001600160801b0360405191636f965f9f60e11b8352896004840152166024820152826044820152828160648183865af180156103d6579083916103c1575b8261026e565b816103cb9161353f565b61035e57815f6103bb565b6040513d85823e3d90fd5b8280fd5b610253949391929b508998506104129060403d604011610420575b61040a818361353f565b810190613dd9565b9b909b985091909293610243565b503d610400565b6040513d87823e3d90fd5b9198505061045e919650610202945060a03d60a01161046e575b610456818361353f565b810190613a36565b99909891969193909250906101d1565b503d61044c565b50346103505760a03660031901126103505761048f613478565b9061049861348e565b90604435926064356001600160401b0381116103e1576104bc9036906004016135d8565b608435936104c8613f9f565b604051634eb1c24560e11b81526001600160a01b039190911693909160a083600481885afa928315610353578588918490859661065b575b506105219291906001600160a01b031661051c83303384613fc6565b61405a565b604051633def417960e11b815260048101889052306024820152908282604481838a5af180156103d65783928491610607575b509061055f916145db565b90602082519281808201948592010103126106035761057f915190613d54565b948086106105e2575050602094826105bb867fc1822dac55540066416ffa59d2eb79715d05171ecf435ac5226726b50686d9419560809561455f565b604051918252338783015260018060a01b03166040820152846060820152a2604051908152f35b856064936319aae4c960e11b845260018060a01b0316600452602452604452fd5b5f80fd5b9250503d8084843e610619818461353f565b8201604083820312610657578251926020810151906001600160401b038211610653579161064c9161055f949301613b96565b9091610554565b8580fd5b8380fd5b6105219392965061067b915060a03d60a01161046e57610456818361353f565b9894959250610500915050565b5034610350576020366003190112610350576106a2613478565b6106aa61437f565b5f5160206148d75f395f51905f5280546001600160a01b0319166001600160a01b039283169081179091555f5160206148575f395f51905f52549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b50346103505761010036600319011261035057610729613478565b9061073261348e565b916044356064356001600160401b03811161065757610755903690600401613750565b6084356001600160401b0381116109f1576107749036906004016137be565b9160a435918215158093036106535760c4356001600160401b0381116109ed5760a06107a5600492369084016135d8565b986107ae613f9f565b604051634eb1c24560e11b815292839182905f196001861b01165afa9788156109e25787918890899a6109bb575b506001600160a01b031695863b156109ac57604051635c46a7ef60e11b815233600482015230602482015285604482015260806064820152896084820152898160a481838c5af180156109b057908a91610997575b50506108a69261085d979695949261086f610890936040519a8b9660a0602089015260c0880190613c94565b868103601f1901604088015290613cd0565b6001600160a01b039092166060850152838203601f19016080850152613a88565b60e43560a083015203601f19810186528561353f565b823b1561065357916108e593918680946040519687958694859363078ad17360e31b855260048501526024840152606060448401526064830190613960565b03925af180156103d657908391610982575b50506040516370a0823160e01b81523060048201526020816024816001600160a01b0388165afa9283156109765792610941575b50816109399160209461455f565b604051908152f35b9091506020813d60201161096e575b8161095d6020938361353f565b81010312610603575190602061092b565b3d9150610950565b604051903d90823e3d90fd5b8161098c9161353f565b61035e57815f6108f7565b816109a19161353f565b6109ac57885f610831565b8880fd5b6040513d8c823e3d90fd5b919950506109d8915060a03d60a01161046e57610456818361353f565b9a9250505f6107dc565b6040513d89823e3d90fd5b8680fd5b8480fd5b50346103505760a036600319011261035057610a0f613478565b6024356001600160801b0381168091036103e157610a2b6134a4565b506064356001600160401b03811161065757610a4b903690600401613592565b916084356001600160401b0381116109f157610a6b903690600401613592565b805181019360a082602087019603126106535760208201516001600160401b0381116109ed5782019480603f870112156109ed57602086015195610aae87613560565b96610abc604051988961353f565b808852602080808a019260051b8401010191838311610c2057604001905b828210610c445750505060408301516001600160401b038111610c4057830181603f82011215610c4057602081015190610b1382613560565b91610b21604051938461353f565b8083526020808085019260051b8401010191848311610c3c57604001905b828210610c2457505050610b5560608501613a22565b916080850151946001600160401b038611610c2057610b7e610b8992602060a098840101613df3565b9586910151946145db565b936001600160a01b0386811690841614610bad575b88610baa88338961405a565b80f35b80515f198101908111610c0c576001600160a01b0391604091610bcf91613da7565b51015116966020855195818082019788920101031261060357610baa97610bf9610c0196516141bf565b93309161441d565b505f80808080610b9e565b634e487b7160e01b8a52601160045260248afd5b8980fd5b60208091610c3184613b82565b815201910190610b3f565b8a80fd5b8780fd5b60208091610c5184613a22565b815201910190610ada565b5034610350576020610cd5610330610cdc7f18f137cdb80704341c5da72a0f5776e3361de90e2a157d704a4b79d96b753aa6610ccc610c9a3661382c565b869a9596949992939791610cac613f9f565b84898c8a6001600160801b03851699610cc78b303384613fc6565b61441d565b998a8094613d75565b338a61455f565b6040516001600160a01b039485169890941696939485943386613d0c565b50346103505780600319360112610350575f5160206148d75f395f51905f52546040516001600160a01b039091168152602090f35b503461035057610d3e36613922565b91610d4a939193613f9f565b604051634eb1c24560e11b81526001600160a01b0391909116929060a081600481875afa90811561109a5786908790889361106c575b506040516331a9108f60e11b8152600481018890526001600160a01b0391821693909160209183916024918391165afa908115611018578891611032575b50336001600160a01b039091160361102357604051633f5ffaf560e01b8152602081600481895afa908115611018578891610fe6575b506305f5e1008402908482046305f5e1001485151715610fd2576305f5e10003906305f5e1008211610fd257610e2d9161037091613dbb565b906001600160801b03604051926339a380ed60e01b845230600485015216938460248401528760448401526020836064818c8b5af18015610fc75787938a91610f74575b509293610eaf93859261051c916001600160801b031680821015610f695750809681955b610ea183303388613fc6565b6001600160a01b031661405a565b833b1561065357604051632770a7eb60e21b81526001600160a01b03841660048201526024810182905286908181604481838a5af1801561035357610f50575b5050916001600160801b0360a092610f277fdc3efdf28701077a23ef0beb0f3260ca639658ce2676bbc9d83030fac6ce5612956141bf565b9060405193338552600180871b031660208501528860408501526060840152166080820152a380f35b81610f5d9195939561353f565b6106535791855f610eef565b905080968195610e95565b9350506020833d602011610fbf575b81610f906020938361353f565b810103126109ac57869361051c85926001600160801b03610fb3610eaf97613b82565b93975050929450610e71565b3d9150610f83565b6040513d8b823e3d90fd5b634e487b7160e01b89526011600452602489fd5b90506020813d602011611010575b816110016020938361353f565b8101031261060357515f610df4565b3d9150610ff4565b6040513d8a823e3d90fd5b6315e69dc560e21b8752600487fd5b90506020813d602011611064575b8161104d6020938361353f565b81010312610c405761105e90613a22565b5f610dbe565b3d9150611040565b602493506020925061108d915060a03d60a01161046e57610456818361353f565b5050939192909150610d80565b6040513d88823e3d90fd5b503461035057610100366003190112610350576110c0613478565b6110c861348e565b6064356001600160a01b03811693919084900361035e57608435936110eb6134e4565b936110f46134fa565b9260e435916001600160401b03831161065357604060031984360301126106535760405192604084018481106001600160401b038211176113a95760405280600401356001600160401b038111610c40576111559060043691840101613984565b845260248101356001600160401b038111610c405761117991369101600401613984565b6020840152611186613f9f565b604051634eb1c24560e11b8152966001600160a01b0391909116949060a088600481895afa9687156109765780978199829161137d575b5060405163887bb98960e01b81526001600160a01b03909516600486018190526044803560248801528601979097526080606486015260208580611204608482018a613f75565b0381858c5af1948515610353578295611341575b508a6112dc575b5050927fac20b37c6c923070aa8deac25d6e9bf9f6eecd727d9c2b89d0451685ecf4ba5294926001600160801b03610330938160209c9716998a806112bd575b50501698898061129e575b505060018060a01b031697889760405195869586528b8601526040850152606084015260a0608084015260a0830190613f75565b6112b6916001600160a01b0384811691339116613fc6565b5f8961126a565b6112d5916001600160a01b0386811691339116613fc6565b5f8a61125f565b8a886112ee9261051c83303384613fc6565b863b15610350576040516340c10f1960e01b81526001600160a01b0385166004820152602481018b90528181604481838c5af18015610353571561121f5761133782809261353f565b610350578061121f565b9094506020813d602011611375575b8161135d6020938361353f565b8101031261035e5761136e90613a22565b935f611218565b3d9150611350565b9198505061139b91985060a03d60a01161046e57610456818361353f565b9a939150509790985f6111bd565b634e487b7160e01b88526041600452602488fd5b503461035057610100366003190112610350576113d8613478565b6113e061348e565b6113e86134ce565b92606435926001600160801b038416928385036103e1576084356001600160401b0381116106575761141e903690600401613750565b9460a4356001600160401b0381116109f15761143e9036906004016137be565b916114476134fa565b9260e43591611454613f9f565b604051634eb1c24560e11b81526001600160a01b039190911698909360a0856004818d5afa958615611018578a9b899a9b998b978c99611746575b506001600160a01b03908116976001600160801b0392909216939116908c84111561173457966001600160801b0381985b169a8b906114d086303386613fc6565b6114d99261405a565b898d6114e78e303386613fc6565b6114f09261405a565b8b3b15610c2057604051632770a7eb60e21b81526001600160a01b0389166004820152602481018a90528a818e8183816044810103925af1801561172957908b91611714575b5050899b835185510361170557999b989a8c9a6001600160a01b03998a169a988a16998816989091908c5b8651111561164d578b8f8c8f8d60c4918e8e6001600160801b038f8f986115b5916115b060209b6115998460018060a01b0392613da7565b51169687866115a88686613da7565b51169161405a565b613da7565b51166040519889978896632cfdfa9360e11b8852600488015260248701526044860152606485015282608485015260a48401525af1908115611640578e9161160e575b5061160590600192613d54565b9e019d8e611561565b90506020813d8211611638575b816116286020938361353f565b81010312610603575160016115f8565b3d915061161b565b8e604051903d90823e3d90fd5b858c928f8f906001600160801b038f91611668908d97613d54565b9816908189106116ea57505050602096926116cb7f482c5c16eb3726edd4dc0b4e52fdb8488530e472f26df2a268d3d94edfc135a095936116d9936040519687963388528c8801526040870152606086015260e0608086015260e0850190613c94565b9083820360a0850152613cd0565b8560c08301520390a2604051908152f35b6319aae4c960e11b8352600452602488905260445260649150fd5b631f77022160e11b8b5260048bfd5b8161171e9161353f565b610c2057895f611536565b6040513d8d823e3d90fd5b5082966001600160801b0382986114c0565b90506001600160801b03985061176c91975060a03d60a01161046e57610456818361353f565b9a92999392915061148f9050565b503461035057602036600319011261035057611794613478565b5f5160206148b75f395f51905f52549060ff8260401c1615916001600160401b0381168015908161191f575b6001149081611915575b15908161190c575b506118fd5767ffffffffffffffff1981166001175f5160206148b75f395f51905f5255826118d1575b50611804614775565b61180c614775565b611814614775565b60ff195f5160206148975f395f51905f5254165f5160206148975f395f51905f525561183e614775565b611846614775565b6001600160a01b038116156118bd5761185e906143b2565b6118655780f35b68ff0000000000000000195f5160206148b75f395f51905f5254165f5160206148b75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b631e4fbdf760e01b83526004839052602483fd5b68ffffffffffffffffff191668010000000000000001175f5160206148b75f395f51905f52555f6117fb565b63f92ee8a960e01b8452600484fd5b9050155f6117d2565b303b1591506117ca565b8491506117c0565b50346103505780600319360112610350575061197060405161194a60408261353f565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613960565b0390f35b50346103505760803660031901126103505761198e613478565b5061199761348e565b506064356001600160401b03811161035e576119b7903690600401613592565b908151820160808382031261035e5760208301516001600160a01b03811693908490036103e1576040810151916060820151906001600160401b0382116109f157608091602080611a0c930191850101613df3565b9101519160028310156106575781611a29611a4692604435613d54565b60405190602082015260208152611a4160408261353f565b6145db565b815190915f198201918211611bff5790611a5f91613da7565b5180516001600160a01b031684526020849052604084205490929060ff1615611be25780611b2457505060409081015190516370a0823160e01b81523060048201526001600160a01b039091169190602081602481865afa9182156109765791611af0575b508061197093611ad6611adc936145c3565b9361405a565b604051918291602083526020830190613960565b90506020813d602011611b1c575b81611b0b6020938361353f565b810103126106035751611970611ac4565b3d9150611afe565b9193909291600114611b3d575b50506119709150611adc565b8190604085019460018060a01b0386511690604051926020840192639df3032560e01b84526024850152604484015260606064840152611b9283611b846084820189613960565b03601f19810185528461353f565b519151916001600160a01b03165af491611baa613ed9565b9215611bb65780611b31565b51604051631d039b4360e11b815292839250611bde916001600160a01b031660048401613f08565b0390fd5b825163616d132960e01b85526001600160a01b0316600452602484fd5b634e487b7160e01b85526011600452602485fd5b503461035057611c2236613922565b93929091611c2e613f9f565b604051634eb1c24560e11b81526001600160a01b0391909116949060a081600481895afa8015610427578590858788948993611e81575b506001600160a01b0392831694921691611c979190611c8682303389613fc6565b6001600160a01b031694859061405a565b604051633f5ffaf560e01b81526020816004818c5afa908115611018578891611e4f575b506305f5e1008502908582046305f5e1001486151715610fd2576305f5e10003906305f5e1008211610fd2576103708995949392611cf892613dbb565b946040611d258b611d088b6145c3565b83519c8d80948193637a0ee4f960e11b83528d3060048501613b55565b03925af18015610427579085949392918b969a8691611e12575b509161051c87926001600160801b03611d6e9695168082105f14611e07575080988195610ea183303388613fc6565b873b1561035e57604051632770a7eb60e21b81526001600160a01b0386166004820152602481018490528281604481838d5af180156103d657908391611df2575b5050803b1561035e57604051632142170760e11b81523060048201526001600160a01b0386166024820152604481018890529082908290818381606481016102ad565b81611dfc9161353f565b61035e57815f611daf565b905080988195610e95565b6001600160801b039b50611d6e949391508792611e4061051c9260403d6040116104205761040a818361353f565b9d909d93959650509250611d3f565b90506020813d602011611e79575b81611e6a6020938361353f565b8101031261060357515f611cbb565b3d9150611e5d565b91935050611c979350611ea3915060a03d60a01161046e57610456818361353f565b50909492939092909190611c65565b503461035057611ec1366136be565b9194929593611ece613f9f565b604051634eb1c24560e11b81526001600160a01b03919091169560a0826004818a5afa90811561109a57611f978899611fbc9994602094611f83948b8c938d93612157575b506001600160801b03948516989394611f5894909291611f44918b916001600160a01b031661051c83303384613fc6565b1690309033906001600160a01b0316613fc6565b60018060a01b03169560405192839188868401528a60408401526080606084015260a0830190613a88565b89608083015203601f19810183528261353f565b611fa0836141bf565b604051639ea1c1c960e01b815298899283928960048501613b55565b0381888b5af1958615610427578596612123575b506040516341a4eb5f60e11b815260048101879052918583602481875afa92831561109a5786936120f8575b50606060249394604051948580926350ef5c3560e01b82528b60048301525afa92831561109a5786936120b9575b506001600160801b0392831692168083116120a25750926103307f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b098938796936020999660405195869533875260018060a01b03168c87015260408601526060850152608084015260c060a084015260c0830190613960565b6370d1969b60e01b86526004526024829052604485fd5b6001600160801b039193506120e6829160603d6060116120f1575b6120de818361353f565b810190613c1b565b50905093915061202a565b503d6120d4565b602493506121196060913d808a833e612111818361353f565b810190613bdc565b9150509350611ffc565b9095506020813d60201161214f575b8161213f6020938361353f565b810103126106035751945f611fd0565b3d9150612132565b611f5894506001600160801b03935083929150612185611f449160a03d60a01161046e57610456818361353f565b509097509550929350611f139050565b50346103505780600319360112610350575f5160206148575f395f51905f52546040516001600160a01b039091168152602090f35b5034610350576040366003190112610350576121e4613478565b6121ec61348e565b90608092600460405192612200868561353f565b8536853760a060405191612214888461353f565b87368437604051634eb1c24560e11b815293849182905f196001861b01165afa80156103d6578392848594869287946124f6575b506001600160a01b039081168852908116602088015290811660408701529081166060860152851691835b6004811061247057506040516370a0823160e01b815260048101939093526001600160a01b031690602083602481855afa928315612465578493612431575b5095949391906122c182613560565b916122cf604051938461353f565b8083526122db81613560565b602084019690601f1901368837855b82811061239e575050506040519687966101408801948887905b6004821061237b57505050870185905b600482106123615750505061010086015261014061012086015251809152610160840192915b818110612348575050500390f35b825184528594506020938401939092019160010161233a565b825181528998506020928301926001929092019101612314565b82516001600160a01b031681528b9a506020928301926001929092019101612304565b604051632f745c5960e01b81526001600160a01b038316600482015260248101829052989997989597949593949390602082604481895afa80156110185788906123ff575b600192506123f18289613da7565b5201989796949392986122ea565b506020823d8211612429575b816124186020938361353f565b8101031261060357600191516123e3565b3d915061240b565b9092506020813d60201161245d575b8161244d6020938361353f565b810103126106035751915f6122b2565b3d9150612440565b6040513d86823e3d90fd5b60249060206001600160a01b03612487838a613d82565b5116604051938480926370a0823160e01b82528960048301525afa801561109a5786906124c4575b600192506124bd8286613d82565b5201612273565b506020823d82116124ee575b816124dd6020938361353f565b8101031261060357600191516124af565b3d91506124d0565b935050505061251591925060a03d60a01161046e57610456818361353f565b919493919290915f612248565b503461035057612531366138cc565b909291939461253e613f9f565b604051634eb1c24560e11b81526001600160a01b039190911694909260a084600481895afa928315610fc757898a958b95612728575b506001600160a01b0316956001600160801b038116926125b0926125aa92909186906125a28730338c613fc6565b308b8a61441d565b926141f0565b6040516341a4eb5f60e11b8152600481018990526001600160a01b0390951699909481816024818e5afa90811561035357829161270b575b506001600160801b03811686106126f2575b6001600160801b03169961260f8b828961405a565b803b1561035e57818b60648b836040519586948593636f965f9f60e11b8552600485015260248401528160448401525af18015610353576126dd575b5050977ff2960dbf8545963973c9df7f52bdbdd6803dbf97c4597938fa37510b1218aece948860809561268e8296612686869760209f613d75565b9c8d9161455f565b8381116126c1575b505050506040519133835260018060a01b0316888301526040820152856060820152a3604051908152f35b6126d4936126ce91613d75565b9161455f565b805f8381612696565b6126e882809261353f565b610350578061264b565b506001600160801b03612704866141bf565b90506125fa565b61271f91503d8084833e612111818361353f565b5090505f6125e8565b6125aa96506125b092955061274c915060a03d60a01161046e57610456818361353f565b91985090969391506125749050565b503461035057806003193601126103505761277461437f565b61277c613f9f565b600160ff195f5160206148975f395f51905f525416175f5160206148975f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103505780600319360112610350575f5160206148d75f395f51905f5254336001600160a01b039091160361280857610baa336143b2565b63118cdaa760e01b815233600452602490fd5b503461035057806003193601126103505761283461437f565b5f5160206148d75f395f51905f5280546001600160a01b03199081169091555f5160206148575f395f51905f528054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610350578060031936011261035057602060ff5f5160206148975f395f51905f5254166040519015158152f35b50346103505780600319360112610350577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036129215760206040515f5160206148775f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261035057612945613478565b906024356001600160401b03811161035e57612965903690600401613592565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612af7575b50612ae8576129a761437f565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612ab4575b506129ec57634c9c8ce360e01b84526004839052602484fd5b9091845f5160206148775f395f51905f528103612aa25750813b15612a90575f5160206148775f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612a765780836020612a7295519101845af4612a6c613ed9565b916147f8565b5080f35b50505034612a815780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612ae0575b81612ad06020938361353f565b810103126109f15751945f6129d3565b3d9150612ac3565b63703e46dd60e11b8252600482fd5b5f5160206148775f395f51905f52546001600160a01b0316141590505f61299a565b50346103505761012036600319011261035057612b34613478565b612b3c61348e565b906044356001600160401b03811161065757612b5c903690600401613750565b916064356001600160401b0381116109f157612b7c9036906004016137be565b93608435916001600160801b038316830361035e57612b996134e4565b94612ba26134fa565b9360e4356001600160401b0381116109f157612bc29036906004016135d8565b92612bcb613f9f565b604051634eb1c24560e11b81526001600160a01b039190911698909160a0836004818d5afa91821561109a578997948794602094612cad9c9894612c88948f9d9b9489948a94612e31575b50612c4b612c43612c58969760018060a01b03169d6001600160801b03612c3c866141f0565b9116613d54565b303387613fc6565b61010435938c309161422b565b998a9160018060a01b03169761051c8b612c7a6040519788928d8b8501613b1a565b03601f19810187528661353f565b612c91886141bf565b604051639ea1c1c960e01b8152998a9283928960048501613b55565b0381848c5af1968715612e24578197612df0575b506040516341a4eb5f60e11b815260048101889052918183602481875afa928315610353578293612dcd575b50606060249394604051948580926350ef5c3560e01b82528c60048301525afa928315610353578293612da0575b506001600160801b03166001600160801b03831690808211612d8a575050509260409692612d7b7f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b098938896612d6f896141bf565b8b519586953387613c4a565b0390a382519182526020820152f35b6370d1969b60e01b835260045260245260449150fd5b6001600160801b03919350612dc39060603d6060116120f1576120de818361353f565b5090509290612d1b565b60249350612de66060913d8086833e612111818361353f565b9150509350612ced565b9096506020813d602011612e1c575b81612e0c6020938361353f565b810103126106035751955f612cc1565b3d9150612dff565b50604051903d90823e3d90fd5b612c4b9650612c589550612c439450612e589060a03d60a01161046e57610456818361353f565b92999198509196509150612c169050565b5034610350578060031936011261035057612e8261437f565b5f5160206148975f395f51905f525460ff811615612eda5760ff19165f5160206148975f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461035057604036600319011261035057612f03613478565b602435908115158092036103e1577f4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca91604091612f3e61437f565b60018060a01b0316908185528460205282852060ff1981541660ff831617905582519182526020820152a180f35b50346103505760203660031901126103505760209060ff906040906001600160a01b03612f97613478565b1681528084522054166040519015158152f35b3461060357608036600319011261060357612fc3613478565b60243590612fcf6134ce565b9160643592831515908185036106035760a0600494612fec613f9f565b604051634eb1c24560e11b815295869182905f196001861b01165afa9485156130e1575f945f905f97613124575b506040516341a4eb5f60e11b8152600481018690526001600160a01b0391909116965f826024818b5afa9687156130e1578897613089956001600160801b03945f92613105575b5081851681861611156130fd5750935b156130ec5750915b1694859161051c83303384613fc6565b833b156106035760645f92836040519687948593636f965f9f60e11b8552600485015287602485015260448401525af19182156130e1576020926130d1575b50604051908152f35b5f6130db9161353f565b5f6130c8565b6040513d5f823e3d90fd5b6001600160a01b0316929050613079565b905093613071565b61311a9192503d805f833e612111818361353f565b509050908b613061565b9195505061314291955060a03d60a01161046e57610456818361353f565b979396925088905061301a565b346106035760207f93065b6ca8f9c36086d73ad337c4138513e460fcb4367c4880651b03da29494f6103306131b66131863661382c565b90613198999698939594979299613f9f565b6131ac6131a48b6141f0565b30338c613fc6565b898689878c61422b565b809760405194859460018060a01b03169860018060a01b0316973386613d0c565b34610603576080366003190112610603576131f0613478565b506131f961348e565b506064356001600160401b03811161060357613219903690600401613592565b50604051630a85bd0160e11b8152602090f35b346106035761323a366136be565b9094919293613247613f9f565b604051634eb1c24560e11b81526001600160a01b039190911695909460a0866004818a5afa80156130e157611b84611fa0896103706132e99a6020955f905f915f91613447575b6001600160801b038a16959293506132d0926132bc918791906001600160a01b031661051c83303384613fc6565b6001600160801b038d169030903390613fc6565b60018060a01b0316976040519485918c8b898501613b1a565b03815f8b5af19586156130e1575f96613413575b506040516341a4eb5f60e11b815260048101879052915f83602481875afa9283156130e1575f936133f0575b50606060249394604051948580926350ef5c3560e01b82528b60048301525afa9283156130e1575f936133c3575b506001600160801b03166001600160801b038316908082116133ae57602088808b7f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b0988b8b6103308c8c8c6040519586953387613c4a565b6370d1969b60e01b5f5260045260245260445ffd5b6001600160801b039193506133e69060603d6060116120f1576120de818361353f565b5090509290613357565b602493506134096060913d805f833e612111818361353f565b9150509350613329565b9095506020813d60201161343f575b8161342f6020938361353f565b81010312610603575194876132fd565b3d9150613422565b5050506132d06134686132bc9260a03d60a01161046e57610456818361353f565b91955085945090925061328e9050565b600435906001600160a01b038216820361060357565b602435906001600160a01b038216820361060357565b604435906001600160a01b038216820361060357565b35906001600160a01b038216820361060357565b604435906001600160801b038216820361060357565b60a435906001600160801b038216820361060357565b60c435906001600160801b038216820361060357565b608081019081106001600160401b0382111761352b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761352b57604052565b6001600160401b03811161352b5760051b60200190565b6001600160401b03811161352b57601f01601f191660200190565b81601f82011215610603578035906135a982613577565b926135b7604051948561353f565b8284526020838301011161060357815f926020809301838601378301015290565b9080601f83011215610603578135916135f083613560565b926135fe604051948561353f565b80845260208085019160051b830101918383116106035760208101915b83831061362a57505050505090565b82356001600160401b038111610603578201906080828703601f190112610603576040519061365882613510565b613664602084016134ba565b8252613672604084016134ba565b6020830152613683606084016134ba565b60408301526080830135916001600160401b038311610603576136ae88602080969581960101613592565b606082015281520192019161361b565b9060c0600319830112610603576004356001600160a01b038116810361060357916024356001600160a01b038116810361060357916044356001600160801b038116810361060357916064356001600160801b038116810361060357916084356001600160801b0381168103610603579160a435906001600160401b0382116106035761374d916004016135d8565b90565b9080601f830112156106035781359061376882613560565b92613776604051948561353f565b82845260208085019360051b82010191821161060357602001915b81831061379e5750505090565b82356001600160a01b038116810361060357815260209283019201613791565b9080601f83011215610603578135906137d682613560565b926137e4604051948561353f565b82845260208085019360051b82010191821161060357602001915b81831061380c5750505090565b82356001600160801b0381168103610603578152602092830192016137ff565b60e0600319820112610603576004356001600160a01b038116810361060357916024356001600160a01b038116810361060357916044356001600160a01b038116810361060357916064356001600160401b038111610603578261389291600401613750565b91608435906001600160401b038211610603576138b1916004016137be565b9060a4356001600160801b0381168103610603579060c43590565b60e0600319820112610603576004356001600160a01b038116810361060357916024356001600160a01b03811681036106035791604435916064356001600160401b038111610603578261389291600401613750565b6080906003190112610603576004356001600160a01b038116810361060357906024356001600160a01b038116810361060357906044359060643590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b81601f820112156106035780359061399b82613560565b926139a9604051948561353f565b8284526020606081860194028301019181831161060357602001925b8284106139d3575050505090565b606084830312610603576040519060608201908282106001600160401b0383111761352b57606092602092604052863581528287013583820152604087013560408201528152019301926139c5565b51906001600160a01b038216820361060357565b908160a091031261060357613a4a81613a22565b91613a5760208301613a22565b60408301519092906001600160a01b0381168103610603579161374d6080613a8160608501613a22565b9301613a22565b9080602083519182815201916020808360051b8301019401925f915b838310613ab357505050505090565b9091929394602080613b0b600193601f19868203018752608060608b51878060a01b038151168452878060a01b03868201511686850152878060a01b0360408201511660408501520151918160608201520190613960565b97019301930191939290613aa4565b939290613b4b926001600160801b039160018060a01b03168652166020850152608060408501526080840190613a88565b9160606001910152565b6001600160801b0361374d949360609360018060a01b031683521660208201528160408201520190613960565b51906001600160801b038216820361060357565b81601f8201121561060357805190613bad82613577565b92613bbb604051948561353f565b8284526020838301011161060357815f9260208093018386015e8301015290565b9160608383031261060357613bf083613a22565b92613bfd60208201613b82565b9260408201516001600160401b0381116106035761374d9201613b96565b908160609103126106035780518015158103610603579161374d6040613c4360208501613b82565b9301613b82565b6001600160a01b039182168152911660208201526001600160801b039182166040820152918116606083015291909116608082015260c060a0820181905261374d92910190613960565b90602080835192838152019201905f5b818110613cb15750505090565b82516001600160a01b0316845260209384019390920191600101613ca4565b90602080835192838152019201905f5b818110613ced5750505090565b82516001600160801b0316845260209384019390920191600101613ce0565b6001600160a01b0391821681529116602082015260a06040820181905290949392608092613d4f92613d419190880190613c94565b908682036060880152613cd0565b930152565b91908201809211613d6157565b634e487b7160e01b5f52601160045260245ffd5b91908203918211613d6157565b906004811015613d935760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015613d935760209160051b010190565b8115613dc5570490565b634e487b7160e01b5f52601260045260245ffd5b91908260409103126106035761374d602083519301613b82565b9080601f8301121561060357815191613e0b83613560565b92613e19604051948561353f565b80845260208085019160051b830101918383116106035760208101915b838310613e4557505050505090565b82516001600160401b038111610603578201906080828703601f1901126106035760405190613e7382613510565b613e7f60208401613a22565b8252613e8d60408401613a22565b6020830152613e9e60608401613a22565b60408301526080830151916001600160401b03831161060357613ec988602080969581960101613b96565b6060820152815201920191613e36565b3d15613f03573d90613eea82613577565b91613ef8604051938461353f565b82523d5f602084013e565b606090565b6001600160a01b03909116815260406020820181905261374d92910190613960565b90602080835192838152019201905f5b818110613f475750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091613f3a565b61374d916020613f8e8351604084526040840190613f2a565b920151906020818403910152613f2a565b60ff5f5160206148975f395f51905f525416613fb757565b63d93c066560e01b5f5260045ffd5b90925f19811461404b576001600160a01b03848116908416148015614043575b61403d576040516323b872dd60e01b60208201526001600160a01b039485166024820152929093166044830152606482019290925261403b9161403682608481015b03601f19810184528361353f565b6147a0565b565b50505050565b508015613fe6565b630d550c3b60e11b5f5260045ffd5b821580156141ad575b6141a857604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa9081156130e1575f91614174575b506140f0946140fe6140bd6020945f94613d54565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f19810188528761353f565b85519082865af1903d5f519083614155575b5050501561411d57505050565b61403661403b936040519063095ea7b360e01b602083015260248201525f60448201526044815261414f60648261353f565b826147a0565b9192509061416a57503b15155b5f8080614110565b6001915014614162565b90506020813d6020116141a0575b8161418f6020938361353f565b8101031261060357516140f06140a8565b3d9150614182565b505050565b506001600160a01b0382163014614063565b6001600160801b0381116141d9576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b5f9190825b81518410156142265761421e6001916001600160801b036142168786613da7565b511690613d54565b9301926141f5565b925050565b929590939194955f978151845103614370575f985b82518a101561432f578760208860c4895f8f6001600160801b0361428c828c8f946142729060018060a01b0392613da7565b5116936115b0846142838484613da7565b5116868961405a565b51604051632cfdfa9360e11b81526001600160a01b03958616600482015296851660248801529390971660448601529590911660648401526084830181905260a483018990529193849283915af19081156130e1575f916142fd575b506142f590600192613d54565b990198614240565b90506020813d8211614327575b816143176020938361353f565b81010312610603575160016142e8565b3d915061430a565b9850966001600160801b031695505050838610915061434e9050575050565b83906319aae4c960e11b5f5260018060a01b031660045260245260445260645ffd5b631f77022160e11b5f5260045ffd5b5f5160206148575f395f51905f52546001600160a01b0316330361439f57565b63118cdaa760e01b5f523360045260245ffd5b5f5160206148d75f395f51905f5280546001600160a01b03199081169091555f5160206148575f395f51905f5280549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b92969590939491945f978051825103614370575f985b81518a101561451e578760208860c4895f8f806001600160801b0361447c818f946144668e9160018060a01b0392613da7565b511694169261447684868961405a565b8d613da7565b51166040519889978896637a633c3f60e11b885260018060a01b0316600488015260018060a01b0316602487015260018060a01b03166044860152606485015260848401528a60a48401525af19081156130e1575f916144ec575b506144e490600192613d54565b990198614433565b90506020813d8211614516575b816145066020938361353f565b81010312610603575160016144d7565b3d91506144f9565b98505050509092506001600160801b039150169081841161453d575050565b839063f60dba4560e01b5f5260018060a01b031660045260245260445260645ffd5b9091905f19821461404b576001600160a01b038316301480156145bb575b6141a85760405163a9059cbb60e01b60208201526001600160a01b039093166024840152604483019190915261403b91906140368260648101614028565b50811561457d565b6040519060208201526020815261374d60408261353f565b919091825115614766575f905b8351821015614226576001600160a01b036146038386613da7565b5151165f525f60205260ff60405f2054161561473f575f9081906001600160a01b0360206146318689613da7565b510151166146a76001600160a01b03604061464c888b613da7565b51015116614028606061465f898c613da7565b510151614695604051968794602086019763e0a8041360e01b8952602487015260448601526080606486015260a4850190613960565b83810360231901608485015290613960565b6001600160a01b036146b98689613da7565b5151169151915af46146c9613ed9565b901561470d578051810190602081830312610603576020810151906001600160401b038211610603576020614705928160019501920101613b96565b9101906145e8565b6001600160a01b0361471f8386613da7565b5151604051630de816ad60e31b8152928392611bde921660048401613f08565b6001600160a01b036147518386613da7565b51511663616d132960e01b5f5260045260245ffd5b639f6de0d560e01b5f5260045ffd5b60ff5f5160206148b75f395f51905f525460401c161561479157565b631afcd79f60e31b5f5260045ffd5b905f602091828151910182855af1156130e1575f513d6147ef57506001600160a01b0381163b155b6147cf5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156147c8565b9061481c575080511561480d57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061484d575b61482d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561482556fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbccd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a2646970667358221220e106c62c73be28f2dbb47262f64239ed9170f58d193346eca506e5e79d5afc1364736f6c634300081b0033", + "nonce": "0x11f", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf12d4709d92bfecaa05ecd23d84f0f3bbc1d23811c27b5ebfc3248689bc4bcfa", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "function": "upgradeSubContract(address,address,bytes)", + "arguments": [ + "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "0x04B945a67B799E87034b5F6AD4dEDb57D08Ef588", + "0x" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "gas": "0x1077f", + "value": "0x0", + "input": "0x27e878080000000000000000000000007fa333b184868d88ac78a82ec06d5e87d4b0322e00000000000000000000000004b945a67b799e87034b5f6ad4dedb57d08ef58800000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x120", + "chainId": "0xa4b1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x570a80", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x3cd29d5d965861371409e93ee8dd7d86f83484a66244e19443038390d6d43409", + "transactionIndex": "0x4", + "blockHash": "0xaaa5012ae19858d6b5be15ae93d945bb7bfdf794c667bae3ddc48fd8b6f386e8", + "blockNumber": "0x14f06b20", + "gasUsed": "0x4487bd", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x04b945a67b799e87034b5f6ad4dedb57d08ef588", + "gasUsedForL1": "0x5e84c", + "l1BlockNumber": "0x15bb212" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x27d2b", + "logs": [ + { + "address": "0x7fa333b184868d88ac78a82ec06d5e87d4b0322e", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000004b945a67b799e87034b5f6ad4dedb57d08ef588" + ], + "data": "0x", + "blockHash": "0xa977dadb9b6cdb2558e4f65dd42a761e58dffba8557937fbfa41c5235cba0534", + "blockNumber": "0x14f06b29", + "transactionHash": "0xf12d4709d92bfecaa05ecd23d84f0f3bbc1d23811c27b5ebfc3248689bc4bcfa", + "transactionIndex": "0x3", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000008002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000001020000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xf12d4709d92bfecaa05ecd23d84f0f3bbc1d23811c27b5ebfc3248689bc4bcfa", + "transactionIndex": "0x3", + "blockHash": "0xa977dadb9b6cdb2558e4f65dd42a761e58dffba8557937fbfa41c5235cba0534", + "blockNumber": "0x14f06b29", + "gasUsed": "0xe0da", + "effectiveGasPrice": "0x989680", + "blobGasUsed": "0x0", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0xfad175caf9b0ac0ebca3b1816ec799884eb04b9c", + "contractAddress": null, + "gasUsedForL1": "0x2215", + "l1BlockNumber": "0x15bb212" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1750916357, + "chain": 42161, + "commit": "c6cbea8" +} \ No newline at end of file diff --git a/broadcast/UpgradeRouterForRepayingGt.s.sol/56/run-latest.json b/broadcast/UpgradeRouterForRepayingGt.s.sol/56/run-latest.json new file mode 100644 index 0000000..b8b939a --- /dev/null +++ b/broadcast/UpgradeRouterForRepayingGt.s.sol/56/run-latest.json @@ -0,0 +1,100 @@ +{ + "transactions": [ + { + "hash": "0x82e7611a8fced5b1ed92a43fa41e87295b4020a568413e277bfbaac3ad81003a", + "transactionType": "CREATE", + "contractName": "TermMaxRouter_Repay_Gt", + "contractAddress": "0x112f47001514d0e16553f9f7683432a5cdada88f", + "function": null, + "arguments": null, + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "gas": "0x5168df", + "value": "0x0", + "input": "0x60a080604052346029573060805261492c908161002e82396080518181816128dc015261296f0152f35b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c80631443c4d61461322c578063150b7a02146131d75780631ac100a41461314f5780632a51cf5114612faa5780632e3e3ef214612f6c5780632f20734514612ee95780633f4ba83a14612e6957806345618d2b14612b195780634f1ef2861461293057806352d1902d146128c95780635c975abb1461289a578063715018a61461281b57806379ba5097146127ce5780638456cb591461275b57806384e090911461252257806389c3584d146121ca5780638da5cb5b14612195578063943189f414611eb257806395320fd014611c1357806399a54a5a14611974578063ad3cb1cc14611927578063c4d66de81461177a578063c71c700c146113bd578063d3e052cf146110a5578063df3e1e0514610d2f578063e30c397814610cfa578063e9919e5c14610c5c578063ef8b4968146109f5578063f1a229ad1461070e578063f2fde38b14610688578063f38743f3146104755763fc1c1b211461017a575f80fd5b3461035057610188366138cc565b91929690959394610197613f9f565b604051634eb1c24560e11b81526001600160a01b039190911697909260a0846004818c5afa9485156103d657839288859486978799610432575b506001600160a01b0390811697169461020291906101f18230338a613fc6565b6001600160a01b031695869061405a565b604061022f8c6102118c6145c3565b8884519e8f9485938492637a0ee4f960e11b84523060048501613b55565b03925af196871561042757859a86986103e5575b509187918961025395948961441d565b92610267846001600160801b038716613d75565b8281610362575b9150503b1561035e57604051632142170760e11b81523060048201526001600160a01b0386166024820152604481018890529082908290818381606481015b03925af180156103535761033b575b602087808a7fdc3efdf28701077a23ef0beb0f3260ca639658ce2676bbc9d83030fac6ce56128a8a6103308b6102f18c6141bf565b604080513381526001600160a01b0390951660208601528401949094526001600160801b039081166060840152909216608082015290819060a0820190565b0390a3604051908152f35b61034682809261353f565b61035057806102bc565b80fd5b6040513d84823e3d90fd5b5080fd5b81610370916103759461405a565b6141bf565b813b156103e1576001600160801b0360405191636f965f9f60e11b8352896004840152166024820152826044820152828160648183865af180156103d6579083916103c1575b8261026e565b816103cb9161353f565b61035e57815f6103bb565b6040513d85823e3d90fd5b8280fd5b610253949391929b508998506104129060403d604011610420575b61040a818361353f565b810190613dd9565b9b909b985091909293610243565b503d610400565b6040513d87823e3d90fd5b9198505061045e919650610202945060a03d60a01161046e575b610456818361353f565b810190613a36565b99909891969193909250906101d1565b503d61044c565b50346103505760a03660031901126103505761048f613478565b9061049861348e565b90604435926064356001600160401b0381116103e1576104bc9036906004016135d8565b608435936104c8613f9f565b604051634eb1c24560e11b81526001600160a01b039190911693909160a083600481885afa928315610353578588918490859661065b575b506105219291906001600160a01b031661051c83303384613fc6565b61405a565b604051633def417960e11b815260048101889052306024820152908282604481838a5af180156103d65783928491610607575b509061055f916145db565b90602082519281808201948592010103126106035761057f915190613d54565b948086106105e2575050602094826105bb867fc1822dac55540066416ffa59d2eb79715d05171ecf435ac5226726b50686d9419560809561455f565b604051918252338783015260018060a01b03166040820152846060820152a2604051908152f35b856064936319aae4c960e11b845260018060a01b0316600452602452604452fd5b5f80fd5b9250503d8084843e610619818461353f565b8201604083820312610657578251926020810151906001600160401b038211610653579161064c9161055f949301613b96565b9091610554565b8580fd5b8380fd5b6105219392965061067b915060a03d60a01161046e57610456818361353f565b9894959250610500915050565b5034610350576020366003190112610350576106a2613478565b6106aa61437f565b5f5160206148d75f395f51905f5280546001600160a01b0319166001600160a01b039283169081179091555f5160206148575f395f51905f52549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b50346103505761010036600319011261035057610729613478565b9061073261348e565b916044356064356001600160401b03811161065757610755903690600401613750565b6084356001600160401b0381116109f1576107749036906004016137be565b9160a435918215158093036106535760c4356001600160401b0381116109ed5760a06107a5600492369084016135d8565b986107ae613f9f565b604051634eb1c24560e11b815292839182905f196001861b01165afa9788156109e25787918890899a6109bb575b506001600160a01b031695863b156109ac57604051635c46a7ef60e11b815233600482015230602482015285604482015260806064820152896084820152898160a481838c5af180156109b057908a91610997575b50506108a69261085d979695949261086f610890936040519a8b9660a0602089015260c0880190613c94565b868103601f1901604088015290613cd0565b6001600160a01b039092166060850152838203601f19016080850152613a88565b60e43560a083015203601f19810186528561353f565b823b1561065357916108e593918680946040519687958694859363078ad17360e31b855260048501526024840152606060448401526064830190613960565b03925af180156103d657908391610982575b50506040516370a0823160e01b81523060048201526020816024816001600160a01b0388165afa9283156109765792610941575b50816109399160209461455f565b604051908152f35b9091506020813d60201161096e575b8161095d6020938361353f565b81010312610603575190602061092b565b3d9150610950565b604051903d90823e3d90fd5b8161098c9161353f565b61035e57815f6108f7565b816109a19161353f565b6109ac57885f610831565b8880fd5b6040513d8c823e3d90fd5b919950506109d8915060a03d60a01161046e57610456818361353f565b9a9250505f6107dc565b6040513d89823e3d90fd5b8680fd5b8480fd5b50346103505760a036600319011261035057610a0f613478565b6024356001600160801b0381168091036103e157610a2b6134a4565b506064356001600160401b03811161065757610a4b903690600401613592565b916084356001600160401b0381116109f157610a6b903690600401613592565b805181019360a082602087019603126106535760208201516001600160401b0381116109ed5782019480603f870112156109ed57602086015195610aae87613560565b96610abc604051988961353f565b808852602080808a019260051b8401010191838311610c2057604001905b828210610c445750505060408301516001600160401b038111610c4057830181603f82011215610c4057602081015190610b1382613560565b91610b21604051938461353f565b8083526020808085019260051b8401010191848311610c3c57604001905b828210610c2457505050610b5560608501613a22565b916080850151946001600160401b038611610c2057610b7e610b8992602060a098840101613df3565b9586910151946145db565b936001600160a01b0386811690841614610bad575b88610baa88338961405a565b80f35b80515f198101908111610c0c576001600160a01b0391604091610bcf91613da7565b51015116966020855195818082019788920101031261060357610baa97610bf9610c0196516141bf565b93309161441d565b505f80808080610b9e565b634e487b7160e01b8a52601160045260248afd5b8980fd5b60208091610c3184613b82565b815201910190610b3f565b8a80fd5b8780fd5b60208091610c5184613a22565b815201910190610ada565b5034610350576020610cd5610330610cdc7f18f137cdb80704341c5da72a0f5776e3361de90e2a157d704a4b79d96b753aa6610ccc610c9a3661382c565b869a9596949992939791610cac613f9f565b84898c8a6001600160801b03851699610cc78b303384613fc6565b61441d565b998a8094613d75565b338a61455f565b6040516001600160a01b039485169890941696939485943386613d0c565b50346103505780600319360112610350575f5160206148d75f395f51905f52546040516001600160a01b039091168152602090f35b503461035057610d3e36613922565b91610d4a939193613f9f565b604051634eb1c24560e11b81526001600160a01b0391909116929060a081600481875afa90811561109a5786908790889361106c575b506040516331a9108f60e11b8152600481018890526001600160a01b0391821693909160209183916024918391165afa908115611018578891611032575b50336001600160a01b039091160361102357604051633f5ffaf560e01b8152602081600481895afa908115611018578891610fe6575b506305f5e1008402908482046305f5e1001485151715610fd2576305f5e10003906305f5e1008211610fd257610e2d9161037091613dbb565b906001600160801b03604051926339a380ed60e01b845230600485015216938460248401528760448401526020836064818c8b5af18015610fc75787938a91610f74575b509293610eaf93859261051c916001600160801b031680821015610f695750809681955b610ea183303388613fc6565b6001600160a01b031661405a565b833b1561065357604051632770a7eb60e21b81526001600160a01b03841660048201526024810182905286908181604481838a5af1801561035357610f50575b5050916001600160801b0360a092610f277fdc3efdf28701077a23ef0beb0f3260ca639658ce2676bbc9d83030fac6ce5612956141bf565b9060405193338552600180871b031660208501528860408501526060840152166080820152a380f35b81610f5d9195939561353f565b6106535791855f610eef565b905080968195610e95565b9350506020833d602011610fbf575b81610f906020938361353f565b810103126109ac57869361051c85926001600160801b03610fb3610eaf97613b82565b93975050929450610e71565b3d9150610f83565b6040513d8b823e3d90fd5b634e487b7160e01b89526011600452602489fd5b90506020813d602011611010575b816110016020938361353f565b8101031261060357515f610df4565b3d9150610ff4565b6040513d8a823e3d90fd5b6315e69dc560e21b8752600487fd5b90506020813d602011611064575b8161104d6020938361353f565b81010312610c405761105e90613a22565b5f610dbe565b3d9150611040565b602493506020925061108d915060a03d60a01161046e57610456818361353f565b5050939192909150610d80565b6040513d88823e3d90fd5b503461035057610100366003190112610350576110c0613478565b6110c861348e565b6064356001600160a01b03811693919084900361035e57608435936110eb6134e4565b936110f46134fa565b9260e435916001600160401b03831161065357604060031984360301126106535760405192604084018481106001600160401b038211176113a95760405280600401356001600160401b038111610c40576111559060043691840101613984565b845260248101356001600160401b038111610c405761117991369101600401613984565b6020840152611186613f9f565b604051634eb1c24560e11b8152966001600160a01b0391909116949060a088600481895afa9687156109765780978199829161137d575b5060405163887bb98960e01b81526001600160a01b03909516600486018190526044803560248801528601979097526080606486015260208580611204608482018a613f75565b0381858c5af1948515610353578295611341575b508a6112dc575b5050927fac20b37c6c923070aa8deac25d6e9bf9f6eecd727d9c2b89d0451685ecf4ba5294926001600160801b03610330938160209c9716998a806112bd575b50501698898061129e575b505060018060a01b031697889760405195869586528b8601526040850152606084015260a0608084015260a0830190613f75565b6112b6916001600160a01b0384811691339116613fc6565b5f8961126a565b6112d5916001600160a01b0386811691339116613fc6565b5f8a61125f565b8a886112ee9261051c83303384613fc6565b863b15610350576040516340c10f1960e01b81526001600160a01b0385166004820152602481018b90528181604481838c5af18015610353571561121f5761133782809261353f565b610350578061121f565b9094506020813d602011611375575b8161135d6020938361353f565b8101031261035e5761136e90613a22565b935f611218565b3d9150611350565b9198505061139b91985060a03d60a01161046e57610456818361353f565b9a939150509790985f6111bd565b634e487b7160e01b88526041600452602488fd5b503461035057610100366003190112610350576113d8613478565b6113e061348e565b6113e86134ce565b92606435926001600160801b038416928385036103e1576084356001600160401b0381116106575761141e903690600401613750565b9460a4356001600160401b0381116109f15761143e9036906004016137be565b916114476134fa565b9260e43591611454613f9f565b604051634eb1c24560e11b81526001600160a01b039190911698909360a0856004818d5afa958615611018578a9b899a9b998b978c99611746575b506001600160a01b03908116976001600160801b0392909216939116908c84111561173457966001600160801b0381985b169a8b906114d086303386613fc6565b6114d99261405a565b898d6114e78e303386613fc6565b6114f09261405a565b8b3b15610c2057604051632770a7eb60e21b81526001600160a01b0389166004820152602481018a90528a818e8183816044810103925af1801561172957908b91611714575b5050899b835185510361170557999b989a8c9a6001600160a01b03998a169a988a16998816989091908c5b8651111561164d578b8f8c8f8d60c4918e8e6001600160801b038f8f986115b5916115b060209b6115998460018060a01b0392613da7565b51169687866115a88686613da7565b51169161405a565b613da7565b51166040519889978896632cfdfa9360e11b8852600488015260248701526044860152606485015282608485015260a48401525af1908115611640578e9161160e575b5061160590600192613d54565b9e019d8e611561565b90506020813d8211611638575b816116286020938361353f565b81010312610603575160016115f8565b3d915061161b565b8e604051903d90823e3d90fd5b858c928f8f906001600160801b038f91611668908d97613d54565b9816908189106116ea57505050602096926116cb7f482c5c16eb3726edd4dc0b4e52fdb8488530e472f26df2a268d3d94edfc135a095936116d9936040519687963388528c8801526040870152606086015260e0608086015260e0850190613c94565b9083820360a0850152613cd0565b8560c08301520390a2604051908152f35b6319aae4c960e11b8352600452602488905260445260649150fd5b631f77022160e11b8b5260048bfd5b8161171e9161353f565b610c2057895f611536565b6040513d8d823e3d90fd5b5082966001600160801b0382986114c0565b90506001600160801b03985061176c91975060a03d60a01161046e57610456818361353f565b9a92999392915061148f9050565b503461035057602036600319011261035057611794613478565b5f5160206148b75f395f51905f52549060ff8260401c1615916001600160401b0381168015908161191f575b6001149081611915575b15908161190c575b506118fd5767ffffffffffffffff1981166001175f5160206148b75f395f51905f5255826118d1575b50611804614775565b61180c614775565b611814614775565b60ff195f5160206148975f395f51905f5254165f5160206148975f395f51905f525561183e614775565b611846614775565b6001600160a01b038116156118bd5761185e906143b2565b6118655780f35b68ff0000000000000000195f5160206148b75f395f51905f5254165f5160206148b75f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b631e4fbdf760e01b83526004839052602483fd5b68ffffffffffffffffff191668010000000000000001175f5160206148b75f395f51905f52555f6117fb565b63f92ee8a960e01b8452600484fd5b9050155f6117d2565b303b1591506117ca565b8491506117c0565b50346103505780600319360112610350575061197060405161194a60408261353f565b60058152640352e302e360dc1b6020820152604051918291602083526020830190613960565b0390f35b50346103505760803660031901126103505761198e613478565b5061199761348e565b506064356001600160401b03811161035e576119b7903690600401613592565b908151820160808382031261035e5760208301516001600160a01b03811693908490036103e1576040810151916060820151906001600160401b0382116109f157608091602080611a0c930191850101613df3565b9101519160028310156106575781611a29611a4692604435613d54565b60405190602082015260208152611a4160408261353f565b6145db565b815190915f198201918211611bff5790611a5f91613da7565b5180516001600160a01b031684526020849052604084205490929060ff1615611be25780611b2457505060409081015190516370a0823160e01b81523060048201526001600160a01b039091169190602081602481865afa9182156109765791611af0575b508061197093611ad6611adc936145c3565b9361405a565b604051918291602083526020830190613960565b90506020813d602011611b1c575b81611b0b6020938361353f565b810103126106035751611970611ac4565b3d9150611afe565b9193909291600114611b3d575b50506119709150611adc565b8190604085019460018060a01b0386511690604051926020840192639df3032560e01b84526024850152604484015260606064840152611b9283611b846084820189613960565b03601f19810185528461353f565b519151916001600160a01b03165af491611baa613ed9565b9215611bb65780611b31565b51604051631d039b4360e11b815292839250611bde916001600160a01b031660048401613f08565b0390fd5b825163616d132960e01b85526001600160a01b0316600452602484fd5b634e487b7160e01b85526011600452602485fd5b503461035057611c2236613922565b93929091611c2e613f9f565b604051634eb1c24560e11b81526001600160a01b0391909116949060a081600481895afa8015610427578590858788948993611e81575b506001600160a01b0392831694921691611c979190611c8682303389613fc6565b6001600160a01b031694859061405a565b604051633f5ffaf560e01b81526020816004818c5afa908115611018578891611e4f575b506305f5e1008502908582046305f5e1001486151715610fd2576305f5e10003906305f5e1008211610fd2576103708995949392611cf892613dbb565b946040611d258b611d088b6145c3565b83519c8d80948193637a0ee4f960e11b83528d3060048501613b55565b03925af18015610427579085949392918b969a8691611e12575b509161051c87926001600160801b03611d6e9695168082105f14611e07575080988195610ea183303388613fc6565b873b1561035e57604051632770a7eb60e21b81526001600160a01b0386166004820152602481018490528281604481838d5af180156103d657908391611df2575b5050803b1561035e57604051632142170760e11b81523060048201526001600160a01b0386166024820152604481018890529082908290818381606481016102ad565b81611dfc9161353f565b61035e57815f611daf565b905080988195610e95565b6001600160801b039b50611d6e949391508792611e4061051c9260403d6040116104205761040a818361353f565b9d909d93959650509250611d3f565b90506020813d602011611e79575b81611e6a6020938361353f565b8101031261060357515f611cbb565b3d9150611e5d565b91935050611c979350611ea3915060a03d60a01161046e57610456818361353f565b50909492939092909190611c65565b503461035057611ec1366136be565b9194929593611ece613f9f565b604051634eb1c24560e11b81526001600160a01b03919091169560a0826004818a5afa90811561109a57611f978899611fbc9994602094611f83948b8c938d93612157575b506001600160801b03948516989394611f5894909291611f44918b916001600160a01b031661051c83303384613fc6565b1690309033906001600160a01b0316613fc6565b60018060a01b03169560405192839188868401528a60408401526080606084015260a0830190613a88565b89608083015203601f19810183528261353f565b611fa0836141bf565b604051639ea1c1c960e01b815298899283928960048501613b55565b0381888b5af1958615610427578596612123575b506040516341a4eb5f60e11b815260048101879052918583602481875afa92831561109a5786936120f8575b50606060249394604051948580926350ef5c3560e01b82528b60048301525afa92831561109a5786936120b9575b506001600160801b0392831692168083116120a25750926103307f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b098938796936020999660405195869533875260018060a01b03168c87015260408601526060850152608084015260c060a084015260c0830190613960565b6370d1969b60e01b86526004526024829052604485fd5b6001600160801b039193506120e6829160603d6060116120f1575b6120de818361353f565b810190613c1b565b50905093915061202a565b503d6120d4565b602493506121196060913d808a833e612111818361353f565b810190613bdc565b9150509350611ffc565b9095506020813d60201161214f575b8161213f6020938361353f565b810103126106035751945f611fd0565b3d9150612132565b611f5894506001600160801b03935083929150612185611f449160a03d60a01161046e57610456818361353f565b509097509550929350611f139050565b50346103505780600319360112610350575f5160206148575f395f51905f52546040516001600160a01b039091168152602090f35b5034610350576040366003190112610350576121e4613478565b6121ec61348e565b90608092600460405192612200868561353f565b8536853760a060405191612214888461353f565b87368437604051634eb1c24560e11b815293849182905f196001861b01165afa80156103d6578392848594869287946124f6575b506001600160a01b039081168852908116602088015290811660408701529081166060860152851691835b6004811061247057506040516370a0823160e01b815260048101939093526001600160a01b031690602083602481855afa928315612465578493612431575b5095949391906122c182613560565b916122cf604051938461353f565b8083526122db81613560565b602084019690601f1901368837855b82811061239e575050506040519687966101408801948887905b6004821061237b57505050870185905b600482106123615750505061010086015261014061012086015251809152610160840192915b818110612348575050500390f35b825184528594506020938401939092019160010161233a565b825181528998506020928301926001929092019101612314565b82516001600160a01b031681528b9a506020928301926001929092019101612304565b604051632f745c5960e01b81526001600160a01b038316600482015260248101829052989997989597949593949390602082604481895afa80156110185788906123ff575b600192506123f18289613da7565b5201989796949392986122ea565b506020823d8211612429575b816124186020938361353f565b8101031261060357600191516123e3565b3d915061240b565b9092506020813d60201161245d575b8161244d6020938361353f565b810103126106035751915f6122b2565b3d9150612440565b6040513d86823e3d90fd5b60249060206001600160a01b03612487838a613d82565b5116604051938480926370a0823160e01b82528960048301525afa801561109a5786906124c4575b600192506124bd8286613d82565b5201612273565b506020823d82116124ee575b816124dd6020938361353f565b8101031261060357600191516124af565b3d91506124d0565b935050505061251591925060a03d60a01161046e57610456818361353f565b919493919290915f612248565b503461035057612531366138cc565b909291939461253e613f9f565b604051634eb1c24560e11b81526001600160a01b039190911694909260a084600481895afa928315610fc757898a958b95612728575b506001600160a01b0316956001600160801b038116926125b0926125aa92909186906125a28730338c613fc6565b308b8a61441d565b926141f0565b6040516341a4eb5f60e11b8152600481018990526001600160a01b0390951699909481816024818e5afa90811561035357829161270b575b506001600160801b03811686106126f2575b6001600160801b03169961260f8b828961405a565b803b1561035e57818b60648b836040519586948593636f965f9f60e11b8552600485015260248401528160448401525af18015610353576126dd575b5050977ff2960dbf8545963973c9df7f52bdbdd6803dbf97c4597938fa37510b1218aece948860809561268e8296612686869760209f613d75565b9c8d9161455f565b8381116126c1575b505050506040519133835260018060a01b0316888301526040820152856060820152a3604051908152f35b6126d4936126ce91613d75565b9161455f565b805f8381612696565b6126e882809261353f565b610350578061264b565b506001600160801b03612704866141bf565b90506125fa565b61271f91503d8084833e612111818361353f565b5090505f6125e8565b6125aa96506125b092955061274c915060a03d60a01161046e57610456818361353f565b91985090969391506125749050565b503461035057806003193601126103505761277461437f565b61277c613f9f565b600160ff195f5160206148975f395f51905f525416175f5160206148975f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346103505780600319360112610350575f5160206148d75f395f51905f5254336001600160a01b039091160361280857610baa336143b2565b63118cdaa760e01b815233600452602490fd5b503461035057806003193601126103505761283461437f565b5f5160206148d75f395f51905f5280546001600160a01b03199081169091555f5160206148575f395f51905f528054918216905581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b5034610350578060031936011261035057602060ff5f5160206148975f395f51905f5254166040519015158152f35b50346103505780600319360112610350577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036129215760206040515f5160206148775f395f51905f528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261035057612945613478565b906024356001600160401b03811161035e57612965903690600401613592565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115612af7575b50612ae8576129a761437f565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596612ab4575b506129ec57634c9c8ce360e01b84526004839052602484fd5b9091845f5160206148775f395f51905f528103612aa25750813b15612a90575f5160206148775f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015612a765780836020612a7295519101845af4612a6c613ed9565b916147f8565b5080f35b50505034612a815780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011612ae0575b81612ad06020938361353f565b810103126109f15751945f6129d3565b3d9150612ac3565b63703e46dd60e11b8252600482fd5b5f5160206148775f395f51905f52546001600160a01b0316141590505f61299a565b50346103505761012036600319011261035057612b34613478565b612b3c61348e565b906044356001600160401b03811161065757612b5c903690600401613750565b916064356001600160401b0381116109f157612b7c9036906004016137be565b93608435916001600160801b038316830361035e57612b996134e4565b94612ba26134fa565b9360e4356001600160401b0381116109f157612bc29036906004016135d8565b92612bcb613f9f565b604051634eb1c24560e11b81526001600160a01b039190911698909160a0836004818d5afa91821561109a578997948794602094612cad9c9894612c88948f9d9b9489948a94612e31575b50612c4b612c43612c58969760018060a01b03169d6001600160801b03612c3c866141f0565b9116613d54565b303387613fc6565b61010435938c309161422b565b998a9160018060a01b03169761051c8b612c7a6040519788928d8b8501613b1a565b03601f19810187528661353f565b612c91886141bf565b604051639ea1c1c960e01b8152998a9283928960048501613b55565b0381848c5af1968715612e24578197612df0575b506040516341a4eb5f60e11b815260048101889052918183602481875afa928315610353578293612dcd575b50606060249394604051948580926350ef5c3560e01b82528c60048301525afa928315610353578293612da0575b506001600160801b03166001600160801b03831690808211612d8a575050509260409692612d7b7f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b098938896612d6f896141bf565b8b519586953387613c4a565b0390a382519182526020820152f35b6370d1969b60e01b835260045260245260449150fd5b6001600160801b03919350612dc39060603d6060116120f1576120de818361353f565b5090509290612d1b565b60249350612de66060913d8086833e612111818361353f565b9150509350612ced565b9096506020813d602011612e1c575b81612e0c6020938361353f565b810103126106035751955f612cc1565b3d9150612dff565b50604051903d90823e3d90fd5b612c4b9650612c589550612c439450612e589060a03d60a01161046e57610456818361353f565b92999198509196509150612c169050565b5034610350578060031936011261035057612e8261437f565b5f5160206148975f395f51905f525460ff811615612eda5760ff19165f5160206148975f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b503461035057604036600319011261035057612f03613478565b602435908115158092036103e1577f4d0e05cb869768b74ed4952b2ce5d7d372bbf3f709dfe4e523da085a593ecfca91604091612f3e61437f565b60018060a01b0316908185528460205282852060ff1981541660ff831617905582519182526020820152a180f35b50346103505760203660031901126103505760209060ff906040906001600160a01b03612f97613478565b1681528084522054166040519015158152f35b3461060357608036600319011261060357612fc3613478565b60243590612fcf6134ce565b9160643592831515908185036106035760a0600494612fec613f9f565b604051634eb1c24560e11b815295869182905f196001861b01165afa9485156130e1575f945f905f97613124575b506040516341a4eb5f60e11b8152600481018690526001600160a01b0391909116965f826024818b5afa9687156130e1578897613089956001600160801b03945f92613105575b5081851681861611156130fd5750935b156130ec5750915b1694859161051c83303384613fc6565b833b156106035760645f92836040519687948593636f965f9f60e11b8552600485015287602485015260448401525af19182156130e1576020926130d1575b50604051908152f35b5f6130db9161353f565b5f6130c8565b6040513d5f823e3d90fd5b6001600160a01b0316929050613079565b905093613071565b61311a9192503d805f833e612111818361353f565b509050908b613061565b9195505061314291955060a03d60a01161046e57610456818361353f565b979396925088905061301a565b346106035760207f93065b6ca8f9c36086d73ad337c4138513e460fcb4367c4880651b03da29494f6103306131b66131863661382c565b90613198999698939594979299613f9f565b6131ac6131a48b6141f0565b30338c613fc6565b898689878c61422b565b809760405194859460018060a01b03169860018060a01b0316973386613d0c565b34610603576080366003190112610603576131f0613478565b506131f961348e565b506064356001600160401b03811161060357613219903690600401613592565b50604051630a85bd0160e11b8152602090f35b346106035761323a366136be565b9094919293613247613f9f565b604051634eb1c24560e11b81526001600160a01b039190911695909460a0866004818a5afa80156130e157611b84611fa0896103706132e99a6020955f905f915f91613447575b6001600160801b038a16959293506132d0926132bc918791906001600160a01b031661051c83303384613fc6565b6001600160801b038d169030903390613fc6565b60018060a01b0316976040519485918c8b898501613b1a565b03815f8b5af19586156130e1575f96613413575b506040516341a4eb5f60e11b815260048101879052915f83602481875afa9283156130e1575f936133f0575b50606060249394604051948580926350ef5c3560e01b82528b60048301525afa9283156130e1575f936133c3575b506001600160801b03166001600160801b038316908082116133ae57602088808b7f6cc7689f3960393f975bc636577345ee34fd6fd0b516b15c923e7885e518b0988b8b6103308c8c8c6040519586953387613c4a565b6370d1969b60e01b5f5260045260245260445ffd5b6001600160801b039193506133e69060603d6060116120f1576120de818361353f565b5090509290613357565b602493506134096060913d805f833e612111818361353f565b9150509350613329565b9095506020813d60201161343f575b8161342f6020938361353f565b81010312610603575194876132fd565b3d9150613422565b5050506132d06134686132bc9260a03d60a01161046e57610456818361353f565b91955085945090925061328e9050565b600435906001600160a01b038216820361060357565b602435906001600160a01b038216820361060357565b604435906001600160a01b038216820361060357565b35906001600160a01b038216820361060357565b604435906001600160801b038216820361060357565b60a435906001600160801b038216820361060357565b60c435906001600160801b038216820361060357565b608081019081106001600160401b0382111761352b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761352b57604052565b6001600160401b03811161352b5760051b60200190565b6001600160401b03811161352b57601f01601f191660200190565b81601f82011215610603578035906135a982613577565b926135b7604051948561353f565b8284526020838301011161060357815f926020809301838601378301015290565b9080601f83011215610603578135916135f083613560565b926135fe604051948561353f565b80845260208085019160051b830101918383116106035760208101915b83831061362a57505050505090565b82356001600160401b038111610603578201906080828703601f190112610603576040519061365882613510565b613664602084016134ba565b8252613672604084016134ba565b6020830152613683606084016134ba565b60408301526080830135916001600160401b038311610603576136ae88602080969581960101613592565b606082015281520192019161361b565b9060c0600319830112610603576004356001600160a01b038116810361060357916024356001600160a01b038116810361060357916044356001600160801b038116810361060357916064356001600160801b038116810361060357916084356001600160801b0381168103610603579160a435906001600160401b0382116106035761374d916004016135d8565b90565b9080601f830112156106035781359061376882613560565b92613776604051948561353f565b82845260208085019360051b82010191821161060357602001915b81831061379e5750505090565b82356001600160a01b038116810361060357815260209283019201613791565b9080601f83011215610603578135906137d682613560565b926137e4604051948561353f565b82845260208085019360051b82010191821161060357602001915b81831061380c5750505090565b82356001600160801b0381168103610603578152602092830192016137ff565b60e0600319820112610603576004356001600160a01b038116810361060357916024356001600160a01b038116810361060357916044356001600160a01b038116810361060357916064356001600160401b038111610603578261389291600401613750565b91608435906001600160401b038211610603576138b1916004016137be565b9060a4356001600160801b0381168103610603579060c43590565b60e0600319820112610603576004356001600160a01b038116810361060357916024356001600160a01b03811681036106035791604435916064356001600160401b038111610603578261389291600401613750565b6080906003190112610603576004356001600160a01b038116810361060357906024356001600160a01b038116810361060357906044359060643590565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b81601f820112156106035780359061399b82613560565b926139a9604051948561353f565b8284526020606081860194028301019181831161060357602001925b8284106139d3575050505090565b606084830312610603576040519060608201908282106001600160401b0383111761352b57606092602092604052863581528287013583820152604087013560408201528152019301926139c5565b51906001600160a01b038216820361060357565b908160a091031261060357613a4a81613a22565b91613a5760208301613a22565b60408301519092906001600160a01b0381168103610603579161374d6080613a8160608501613a22565b9301613a22565b9080602083519182815201916020808360051b8301019401925f915b838310613ab357505050505090565b9091929394602080613b0b600193601f19868203018752608060608b51878060a01b038151168452878060a01b03868201511686850152878060a01b0360408201511660408501520151918160608201520190613960565b97019301930191939290613aa4565b939290613b4b926001600160801b039160018060a01b03168652166020850152608060408501526080840190613a88565b9160606001910152565b6001600160801b0361374d949360609360018060a01b031683521660208201528160408201520190613960565b51906001600160801b038216820361060357565b81601f8201121561060357805190613bad82613577565b92613bbb604051948561353f565b8284526020838301011161060357815f9260208093018386015e8301015290565b9160608383031261060357613bf083613a22565b92613bfd60208201613b82565b9260408201516001600160401b0381116106035761374d9201613b96565b908160609103126106035780518015158103610603579161374d6040613c4360208501613b82565b9301613b82565b6001600160a01b039182168152911660208201526001600160801b039182166040820152918116606083015291909116608082015260c060a0820181905261374d92910190613960565b90602080835192838152019201905f5b818110613cb15750505090565b82516001600160a01b0316845260209384019390920191600101613ca4565b90602080835192838152019201905f5b818110613ced5750505090565b82516001600160801b0316845260209384019390920191600101613ce0565b6001600160a01b0391821681529116602082015260a06040820181905290949392608092613d4f92613d419190880190613c94565b908682036060880152613cd0565b930152565b91908201809211613d6157565b634e487b7160e01b5f52601160045260245ffd5b91908203918211613d6157565b906004811015613d935760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015613d935760209160051b010190565b8115613dc5570490565b634e487b7160e01b5f52601260045260245ffd5b91908260409103126106035761374d602083519301613b82565b9080601f8301121561060357815191613e0b83613560565b92613e19604051948561353f565b80845260208085019160051b830101918383116106035760208101915b838310613e4557505050505090565b82516001600160401b038111610603578201906080828703601f1901126106035760405190613e7382613510565b613e7f60208401613a22565b8252613e8d60408401613a22565b6020830152613e9e60608401613a22565b60408301526080830151916001600160401b03831161060357613ec988602080969581960101613b96565b6060820152815201920191613e36565b3d15613f03573d90613eea82613577565b91613ef8604051938461353f565b82523d5f602084013e565b606090565b6001600160a01b03909116815260406020820181905261374d92910190613960565b90602080835192838152019201905f5b818110613f475750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091613f3a565b61374d916020613f8e8351604084526040840190613f2a565b920151906020818403910152613f2a565b60ff5f5160206148975f395f51905f525416613fb757565b63d93c066560e01b5f5260045ffd5b90925f19811461404b576001600160a01b03848116908416148015614043575b61403d576040516323b872dd60e01b60208201526001600160a01b039485166024820152929093166044830152606482019290925261403b9161403682608481015b03601f19810184528361353f565b6147a0565b565b50505050565b508015613fe6565b630d550c3b60e11b5f5260045ffd5b821580156141ad575b6141a857604051636eb1769f60e11b81523060048201526001600160a01b03838116602483018190529490831691602081604481865afa9081156130e1575f91614174575b506140f0946140fe6140bd6020945f94613d54565b60405163095ea7b360e01b8682019081526001600160a01b03909416602482015260448101919091529687906064820190565b03601f19810188528761353f565b85519082865af1903d5f519083614155575b5050501561411d57505050565b61403661403b936040519063095ea7b360e01b602083015260248201525f60448201526044815261414f60648261353f565b826147a0565b9192509061416a57503b15155b5f8080614110565b6001915014614162565b90506020813d6020116141a0575b8161418f6020938361353f565b8101031261060357516140f06140a8565b3d9150614182565b505050565b506001600160a01b0382163014614063565b6001600160801b0381116141d9576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b5f9190825b81518410156142265761421e6001916001600160801b036142168786613da7565b511690613d54565b9301926141f5565b925050565b929590939194955f978151845103614370575f985b82518a101561432f578760208860c4895f8f6001600160801b0361428c828c8f946142729060018060a01b0392613da7565b5116936115b0846142838484613da7565b5116868961405a565b51604051632cfdfa9360e11b81526001600160a01b03958616600482015296851660248801529390971660448601529590911660648401526084830181905260a483018990529193849283915af19081156130e1575f916142fd575b506142f590600192613d54565b990198614240565b90506020813d8211614327575b816143176020938361353f565b81010312610603575160016142e8565b3d915061430a565b9850966001600160801b031695505050838610915061434e9050575050565b83906319aae4c960e11b5f5260018060a01b031660045260245260445260645ffd5b631f77022160e11b5f5260045ffd5b5f5160206148575f395f51905f52546001600160a01b0316330361439f57565b63118cdaa760e01b5f523360045260245ffd5b5f5160206148d75f395f51905f5280546001600160a01b03199081169091555f5160206148575f395f51905f5280549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b92969590939491945f978051825103614370575f985b81518a101561451e578760208860c4895f8f806001600160801b0361447c818f946144668e9160018060a01b0392613da7565b511694169261447684868961405a565b8d613da7565b51166040519889978896637a633c3f60e11b885260018060a01b0316600488015260018060a01b0316602487015260018060a01b03166044860152606485015260848401528a60a48401525af19081156130e1575f916144ec575b506144e490600192613d54565b990198614433565b90506020813d8211614516575b816145066020938361353f565b81010312610603575160016144d7565b3d91506144f9565b98505050509092506001600160801b039150169081841161453d575050565b839063f60dba4560e01b5f5260018060a01b031660045260245260445260645ffd5b9091905f19821461404b576001600160a01b038316301480156145bb575b6141a85760405163a9059cbb60e01b60208201526001600160a01b039093166024840152604483019190915261403b91906140368260648101614028565b50811561457d565b6040519060208201526020815261374d60408261353f565b919091825115614766575f905b8351821015614226576001600160a01b036146038386613da7565b5151165f525f60205260ff60405f2054161561473f575f9081906001600160a01b0360206146318689613da7565b510151166146a76001600160a01b03604061464c888b613da7565b51015116614028606061465f898c613da7565b510151614695604051968794602086019763e0a8041360e01b8952602487015260448601526080606486015260a4850190613960565b83810360231901608485015290613960565b6001600160a01b036146b98689613da7565b5151169151915af46146c9613ed9565b901561470d578051810190602081830312610603576020810151906001600160401b038211610603576020614705928160019501920101613b96565b9101906145e8565b6001600160a01b0361471f8386613da7565b5151604051630de816ad60e31b8152928392611bde921660048401613f08565b6001600160a01b036147518386613da7565b51511663616d132960e01b5f5260045260245ffd5b639f6de0d560e01b5f5260045ffd5b60ff5f5160206148b75f395f51905f525460401c161561479157565b631afcd79f60e31b5f5260045ffd5b905f602091828151910182855af1156130e1575f513d6147ef57506001600160a01b0381163b155b6147cf5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156147c8565b9061481c575080511561480d57805190602001fd5b63d6bda27560e01b5f5260045ffd5b8151158061484d575b61482d575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561482556fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbccd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00a2646970667358221220925c1201bddd2c612c7e7a01c3eaa77415c87efeb132fc181591bb88087eb69d64736f6c634300081d0033", + "nonce": "0x77", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x06b6b9322aa03be75f51bc6e5bdbcf44ae52866a4bc9a3af3dcfd2b3034a4253", + "transactionType": "CALL", + "contractName": null, + "contractAddress": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "function": "upgradeSubContract(address,address,bytes)", + "arguments": [ + "0xb7634dB4f4710bb992118bC37d1F63e00e2704A4", + "0x112F47001514d0E16553F9F7683432a5cDADa88f", + "0x" + ], + "transaction": { + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "gas": "0x116ee", + "value": "0x0", + "input": "0x27e87808000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a4000000000000000000000000112f47001514d0e16553f9f7683432a5cdada88f00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x78", + "chainId": "0x38" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x23cf29a", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x82e7611a8fced5b1ed92a43fa41e87295b4020a568413e277bfbaac3ad81003a", + "transactionIndex": "0xc3", + "blockHash": "0x8b45825253bfe823e8777e774496168661a9a861bf976cacedba46a98fff3878", + "blockNumber": "0x31b3ff9", + "gasUsed": "0x3e9f71", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": null, + "contractAddress": "0x112f47001514d0e16553f9f7683432a5cdada88f" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x25859ae", + "logs": [ + { + "address": "0xb7634db4f4710bb992118bc37d1f63e00e2704a4", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000112f47001514d0e16553f9f7683432a5cdada88f" + ], + "data": "0x", + "blockHash": "0x8b45825253bfe823e8777e774496168661a9a861bf976cacedba46a98fff3878", + "blockNumber": "0x31b3ff9", + "transactionHash": "0x06b6b9322aa03be75f51bc6e5bdbcf44ae52866a4bc9a3af3dcfd2b3034a4253", + "transactionIndex": "0xd2", + "logIndex": "0x57c", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000400000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000020000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004", + "type": "0x0", + "transactionHash": "0x06b6b9322aa03be75f51bc6e5bdbcf44ae52866a4bc9a3af3dcfd2b3034a4253", + "transactionIndex": "0xd2", + "blockHash": "0x8b45825253bfe823e8777e774496168661a9a861bf976cacedba46a98fff3878", + "blockNumber": "0x31b3ff9", + "gasUsed": "0xbeb9", + "effectiveGasPrice": "0x5f5e100", + "from": "0x56e3665038c5f0b56cc7d81ac66c86521274b251", + "to": "0x9498764f0c62257b83a04e2a757de30908ec793d", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1750920571, + "chain": 56, + "commit": "c6cbea8" +} \ No newline at end of file diff --git a/contracts/factory/TermMaxPriceFeedFactory.sol b/contracts/factory/TermMaxPriceFeedFactory.sol deleted file mode 100644 index 6d1ad58..0000000 --- a/contracts/factory/TermMaxPriceFeedFactory.sol +++ /dev/null @@ -1,36 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {TermMaxERC4626PriceFeed} from "../oracle/priceFeeds/TermMaxERC4626PriceFeed.sol"; -import {TermMaxPriceFeedConverter} from "../oracle/priceFeeds/TermMaxPriceFeedConverter.sol"; -import {TermMaxPTPriceFeed} from "../oracle/priceFeeds/TermMaxPTPriceFeed.sol"; - -contract TermMaxPriceFeedFactory { - event PriceFeedCreated(address indexed priceFeed); - - function createPriceFeedWithERC4626(address _assetPriceFeed, address _vault) external returns (address) { - address priceFeed = address(new TermMaxERC4626PriceFeed(_assetPriceFeed, _vault)); - emit PriceFeedCreated(priceFeed); - return priceFeed; - } - - function createPriceFeedConverter( - address _aTokenToBTokenPriceFeed, - address _bTokenToCTokenPriceFeed, - address _asset - ) external returns (address) { - address priceFeed = - address(new TermMaxPriceFeedConverter(_aTokenToBTokenPriceFeed, _bTokenToCTokenPriceFeed, _asset)); - emit PriceFeedCreated(priceFeed); - return priceFeed; - } - - function createPTWithPriceFeed(address _pendlePYLpOracle, address _market, uint32 _duration, address _priceFeed) - external - returns (address) - { - address priceFeed = address(new TermMaxPTPriceFeed(_pendlePYLpOracle, _market, _duration, _priceFeed)); - emit PriceFeedCreated(priceFeed); - return priceFeed; - } -} diff --git a/contracts/interfaces/IFlashLoanReceiver.sol b/contracts/interfaces/IFlashLoanReceiver.sol new file mode 100644 index 0000000..da3c84d --- /dev/null +++ b/contracts/interfaces/IFlashLoanReceiver.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "../v1/IFlashLoanReceiver.sol"; diff --git a/contracts/interfaces/IFlashRepayer.sol b/contracts/interfaces/IFlashRepayer.sol new file mode 100644 index 0000000..b483015 --- /dev/null +++ b/contracts/interfaces/IFlashRepayer.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "../v1/tokens/IFlashRepayer.sol"; diff --git a/contracts/interfaces/IGearingToken.sol b/contracts/interfaces/IGearingToken.sol new file mode 100644 index 0000000..9de0474 --- /dev/null +++ b/contracts/interfaces/IGearingToken.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IGearingToken as IGearingTokenV1} from "../v1/tokens/IGearingToken.sol"; +import {IGearingTokenV2} from "../v2/tokens/IGearingTokenV2.sol"; + +/** + * @title Gearing Token interface + * @author Term Structure Labs + */ +interface IGearingToken is IGearingTokenV1, IGearingTokenV2 {} diff --git a/contracts/interfaces/IMintableERC20.sol b/contracts/interfaces/IMintableERC20.sol new file mode 100644 index 0000000..d22fa4f --- /dev/null +++ b/contracts/interfaces/IMintableERC20.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IMintableERC20 as IMintableERC20V1} from "../v1/tokens/IMintableERC20.sol"; +import {IMintableERC20V2} from "../v2/tokens/IMintableERC20V2.sol"; + +/** + * @title Mintable ERC20 interface + * @author Term Structure Labs + */ +interface IMintableERC20 is IMintableERC20V1, IMintableERC20V2 {} diff --git a/contracts/interfaces/ISwapCallback.sol b/contracts/interfaces/ISwapCallback.sol new file mode 100644 index 0000000..44622c3 --- /dev/null +++ b/contracts/interfaces/ISwapCallback.sol @@ -0,0 +1,4 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "../v1/ISwapCallback.sol"; diff --git a/contracts/interfaces/ITermMaxMarket.sol b/contracts/interfaces/ITermMaxMarket.sol new file mode 100644 index 0000000..700a67e --- /dev/null +++ b/contracts/interfaces/ITermMaxMarket.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {ITermMaxMarket as ITermMaxMarketV1} from "../v1/ITermMaxMarket.sol"; +import {ITermMaxMarketV2} from "../v2/ITermMaxMarketV2.sol"; + +/** + * @title TermMax Market interface + * @author Term Structure Labs + */ +interface ITermMaxMarket is ITermMaxMarketV1, ITermMaxMarketV2 {} diff --git a/contracts/interfaces/ITermMaxOrder.sol b/contracts/interfaces/ITermMaxOrder.sol new file mode 100644 index 0000000..da88eed --- /dev/null +++ b/contracts/interfaces/ITermMaxOrder.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {ITermMaxOrder as ITermMaxOrderV1} from "../v1/ITermMaxOrder.sol"; + +/** + * @title TermMax Order interface + * @author Term Structure Labs + */ +interface ITermMaxOrder is ITermMaxOrderV1 {} diff --git a/contracts/interfaces/ITermMaxRouter.sol b/contracts/interfaces/ITermMaxRouter.sol new file mode 100644 index 0000000..4e8dde0 --- /dev/null +++ b/contracts/interfaces/ITermMaxRouter.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {ITermMaxRouter as ITermMaxRouterV1} from "../v1/router/ITermMaxRouter.sol"; +import {ITermMaxRouterV2} from "../v2/router/ITermMaxRouterV2.sol"; + +/** + * @title TermMax Router interface + * @author Term Structure Labs + */ +interface ITermMaxRouter is ITermMaxRouterV1, ITermMaxRouterV2 {} diff --git a/contracts/IFlashLoanReceiver.sol b/contracts/v1/IFlashLoanReceiver.sol similarity index 100% rename from contracts/IFlashLoanReceiver.sol rename to contracts/v1/IFlashLoanReceiver.sol diff --git a/contracts/ISwapCallback.sol b/contracts/v1/ISwapCallback.sol similarity index 100% rename from contracts/ISwapCallback.sol rename to contracts/v1/ISwapCallback.sol diff --git a/contracts/ITermMaxMarket.sol b/contracts/v1/ITermMaxMarket.sol similarity index 100% rename from contracts/ITermMaxMarket.sol rename to contracts/v1/ITermMaxMarket.sol diff --git a/contracts/ITermMaxOrder.sol b/contracts/v1/ITermMaxOrder.sol similarity index 100% rename from contracts/ITermMaxOrder.sol rename to contracts/v1/ITermMaxOrder.sol diff --git a/contracts/TermMaxMarket.sol b/contracts/v1/TermMaxMarket.sol similarity index 100% rename from contracts/TermMaxMarket.sol rename to contracts/v1/TermMaxMarket.sol diff --git a/contracts/TermMaxOrder.sol b/contracts/v1/TermMaxOrder.sol similarity index 100% rename from contracts/TermMaxOrder.sol rename to contracts/v1/TermMaxOrder.sol diff --git a/contracts/access/AccessManager.sol b/contracts/v1/access/AccessManager.sol similarity index 90% rename from contracts/access/AccessManager.sol rename to contracts/v1/access/AccessManager.sol index 8a1f3dd..27e59ef 100644 --- a/contracts/access/AccessManager.sol +++ b/contracts/v1/access/AccessManager.sol @@ -3,13 +3,13 @@ pragma solidity ^0.8.27; import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {ITermMaxRouter} from "contracts/router/ITermMaxRouter.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; -import {ITermMaxVault} from "contracts/vault/ITermMaxVault.sol"; -import {MarketConfig, FeeConfig, MarketInitialParams} from "contracts/storage/TermMaxStorage.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {ITermMaxFactory} from "../factory/ITermMaxFactory.sol"; +import {ITermMaxRouter} from "../router/ITermMaxRouter.sol"; +import {ITermMaxOrder} from "../ITermMaxOrder.sol"; +import {IOracle} from "../oracle/IOracle.sol"; +import {ITermMaxVault} from "../vault/ITermMaxVault.sol"; +import {MarketConfig, FeeConfig, MarketInitialParams} from "../storage/TermMaxStorage.sol"; interface IOwnable { function transferOwnership(address newOwner) external; @@ -101,10 +101,6 @@ contract AccessManager is AccessControlUpgradeable, UUPSUpgradeable { aggregator.acceptPendingOracle(asset); } - function revokePendingOracle(IOracle aggregator, address asset) external onlyRole(ORACLE_ROLE) { - aggregator.revokePendingOracle(asset); - } - /// @notice Update the market configuration function updateMarketConfig(ITermMaxMarket market, MarketConfig calldata newConfig) external diff --git a/contracts/errors/FactoryErrors.sol b/contracts/v1/errors/FactoryErrors.sol similarity index 100% rename from contracts/errors/FactoryErrors.sol rename to contracts/v1/errors/FactoryErrors.sol diff --git a/contracts/errors/GearingTokenErrors.sol b/contracts/v1/errors/GearingTokenErrors.sol similarity index 100% rename from contracts/errors/GearingTokenErrors.sol rename to contracts/v1/errors/GearingTokenErrors.sol diff --git a/contracts/errors/MarketErrors.sol b/contracts/v1/errors/MarketErrors.sol similarity index 100% rename from contracts/errors/MarketErrors.sol rename to contracts/v1/errors/MarketErrors.sol diff --git a/contracts/errors/OrderErrors.sol b/contracts/v1/errors/OrderErrors.sol similarity index 100% rename from contracts/errors/OrderErrors.sol rename to contracts/v1/errors/OrderErrors.sol diff --git a/contracts/errors/RouterErrors.sol b/contracts/v1/errors/RouterErrors.sol similarity index 100% rename from contracts/errors/RouterErrors.sol rename to contracts/v1/errors/RouterErrors.sol diff --git a/contracts/errors/VaultErrors.sol b/contracts/v1/errors/VaultErrors.sol similarity index 100% rename from contracts/errors/VaultErrors.sol rename to contracts/v1/errors/VaultErrors.sol diff --git a/contracts/events/FactoryEvents.sol b/contracts/v1/events/FactoryEvents.sol similarity index 94% rename from contracts/events/FactoryEvents.sol rename to contracts/v1/events/FactoryEvents.sol index 33dc3d2..ae55d9d 100644 --- a/contracts/events/FactoryEvents.sol +++ b/contracts/v1/events/FactoryEvents.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {VaultInitialParams} from "contracts/storage/TermMaxStorage.sol"; +import {VaultInitialParams} from "../storage/TermMaxStorage.sol"; /** * @title Factory Events Interface diff --git a/contracts/events/GearingTokenEvents.sol b/contracts/v1/events/GearingTokenEvents.sol similarity index 100% rename from contracts/events/GearingTokenEvents.sol rename to contracts/v1/events/GearingTokenEvents.sol diff --git a/contracts/events/MarketEvents.sol b/contracts/v1/events/MarketEvents.sol similarity index 100% rename from contracts/events/MarketEvents.sol rename to contracts/v1/events/MarketEvents.sol diff --git a/contracts/events/OrderEvents.sol b/contracts/v1/events/OrderEvents.sol similarity index 100% rename from contracts/events/OrderEvents.sol rename to contracts/v1/events/OrderEvents.sol diff --git a/contracts/events/RouterEvents.sol b/contracts/v1/events/RouterEvents.sol similarity index 100% rename from contracts/events/RouterEvents.sol rename to contracts/v1/events/RouterEvents.sol diff --git a/contracts/events/VaultEvents.sol b/contracts/v1/events/VaultEvents.sol similarity index 100% rename from contracts/events/VaultEvents.sol rename to contracts/v1/events/VaultEvents.sol diff --git a/contracts/v1/extensions/PTWithPriceFeed.sol b/contracts/v1/extensions/PTWithPriceFeed.sol new file mode 100644 index 0000000..ab1eb8e --- /dev/null +++ b/contracts/v1/extensions/PTWithPriceFeed.sol @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {PendlePYLpOracle} from "@pendle/core-v2/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol"; +import {PendlePYOracleLib} from "@pendle/core-v2/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol"; +import {PMath} from "@pendle/core-v2/contracts/core/libraries/math/PMath.sol"; +import {IPMarket} from "@pendle/core-v2/contracts/interfaces/IPMarket.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; + +/** + * @title The customized Pendle PT price feed contract mutated from Chainlink AggregatorV3Interface + * @author Term Structure Labs + * @notice Use the customized price feed contract to normalized price feed interface for TermMax Protocol + */ +contract PTWithPriceFeed is AggregatorV3Interface { + using Math for uint256; + using SafeCast for *; + using PendlePYOracleLib for IPMarket; + + // Pendle PY LP oracle, refer to `https://docs.pendle.finance/Developers/Oracles/HowToIntegratePtAndLpOracle` + PendlePYLpOracle public immutable PY_LP_ORACLE; + // Pendle market + IPMarket public immutable MARKET; + // TWAP duration + uint32 public immutable DURATION; + // Price feed interface + AggregatorV3Interface public immutable PRICE_FEED; + + // error to call `getRoundData` function + error GetRoundDataNotSupported(); + // error when Pendle PY LP oracle is not ready + error OracleIsNotReady(); + // error when price is zero + error PriceIsZero(); + + /** + * @notice Construct the PT price feed contract + * @param pendlePYLpOracle The Pendle PY LP oracle contract + * @param market The Pendle market contract + * @param duration The TWAP duration + * @param priceFeed The price feed interface + */ + constructor(address pendlePYLpOracle, address market, uint32 duration, address priceFeed) { + (, int256 answer,,,) = AggregatorV3Interface(priceFeed).latestRoundData(); + if (answer == 0) revert PriceIsZero(); + + PY_LP_ORACLE = PendlePYLpOracle(pendlePYLpOracle); + MARKET = IPMarket(market); + DURATION = duration; + PRICE_FEED = AggregatorV3Interface(priceFeed); + + if (!_oracleIsReady()) revert OracleIsNotReady(); + } + + /** + * @notice Revert this function because cannot get the chi (rate accumulator) at a specific round + */ + function getRoundData(uint80 /* _roundId */ ) + external + pure + returns ( + uint80, /* roundId */ + int256, /* answer */ + uint256, /* startedAt */ + uint256, /* updatedAt */ + uint80 /* answeredInRound */ + ) + { + // error to call this function because cannot get the chi (rate accumulator) at a specific round + revert GetRoundDataNotSupported(); + } + + /** + * @notice Get the latest round data from chainlink and calculate the PT price by multiplying PT rate in SY and SY price + * @return roundId The round ID + * @return answer The calculated PT price + * @return startedAt Timestamp of when the round started + * @return updatedAt Timestamp of when the round was updated + * @return answeredInRound The round ID of the round in which the answer was computed + */ + function latestRoundData() + external + view + returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) + { + // PT price = PT rate in SY * SY price / PT to asset rate base + uint256 ptRateInSy = MARKET.getPtToSyRate(DURATION); // PT -> SY + + (roundId, answer, startedAt, updatedAt, answeredInRound) = PRICE_FEED.latestRoundData(); + answer = ptRateInSy.mulDiv(answer.toUint256(), PMath.ONE).toInt256(); + + return (roundId, answer, startedAt, updatedAt, answeredInRound); + } + + /** + * @notice Check if the Pendle PY LP oracle is ready + * @return True if the oracle is ready, otherwise false + */ + function _oracleIsReady() internal view returns (bool) { + (bool increaseCardinalityRequired,, bool oldestObservationSatisfied) = + PY_LP_ORACLE.getOracleState(address(MARKET), DURATION); + + return !increaseCardinalityRequired && oldestObservationSatisfied; + } + + /** + * ========== Return original price feed data ========== + */ + function decimals() external view returns (uint8) { + return PRICE_FEED.decimals(); + } + + function description() external view returns (string memory) { + return PRICE_FEED.description(); + } + + function version() external view returns (uint256) { + return PRICE_FEED.version(); + } +} diff --git a/contracts/extensions/PendleHelper.sol b/contracts/v1/extensions/PendleHelper.sol similarity index 100% rename from contracts/extensions/PendleHelper.sol rename to contracts/v1/extensions/PendleHelper.sol diff --git a/contracts/v1/extensions/PriceFeedConverter.sol b/contracts/v1/extensions/PriceFeedConverter.sol new file mode 100644 index 0000000..9e6bd69 --- /dev/null +++ b/contracts/v1/extensions/PriceFeedConverter.sol @@ -0,0 +1,61 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {MathLib} from "contracts/v1/lib/MathLib.sol"; + +contract PriceFeedConverter is AggregatorV3Interface { + using MathLib for *; + + error GetRoundDataNotSupported(); + + AggregatorV3Interface public immutable aTokenToBTokenPriceFeed; + AggregatorV3Interface public immutable bTokenToCTokenPriceFeed; + + int256 immutable priceDemonitor; + + constructor(address _aTokenToBTokenPriceFeed, address _bTokenToCTokenPriceFeed) { + aTokenToBTokenPriceFeed = AggregatorV3Interface(_aTokenToBTokenPriceFeed); + bTokenToCTokenPriceFeed = AggregatorV3Interface(_bTokenToCTokenPriceFeed); + priceDemonitor = + int256(10 ** aTokenToBTokenPriceFeed.decimals()) * int256(10 ** bTokenToCTokenPriceFeed.decimals()); + } + + function decimals() public view returns (uint8) { + return 8; + } + + function description() external view returns (string memory) { + return string( + abi.encodePacked(aTokenToBTokenPriceFeed.description(), " - ", bTokenToCTokenPriceFeed.description()) + ); + } + + function version() external view returns (uint256) { + return aTokenToBTokenPriceFeed.version().min(bTokenToCTokenPriceFeed.version()); + } + + function getRoundData(uint80 /* _roundId */ ) + external + view + returns ( + uint80, /* roundId */ + int256, /* answer */ + uint256, /* startedAt */ + uint256, /* updatedAt */ + uint80 /* answeredInRound */ + ) + { + // error to call this function because cannot get the chi (rate accumulator) at a specific round + revert GetRoundDataNotSupported(); + } + + function latestRoundData() external view returns (uint80, int256, uint256, uint256, uint80) { + (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) = + aTokenToBTokenPriceFeed.latestRoundData(); + (, int256 answer2, uint256 startedAt2, uint256 updatedAt2,) = bTokenToCTokenPriceFeed.latestRoundData(); + // tokenPrice = answer * answer2 + answer = answer * answer2 * int256((10 ** decimals())) / priceDemonitor; + return (roundId, answer, startedAt.min(startedAt2), updatedAt.min(updatedAt2), answeredInRound); + } +} diff --git a/contracts/v1/extensions/PriceFeedFactory.sol b/contracts/v1/extensions/PriceFeedFactory.sol new file mode 100644 index 0000000..5939885 --- /dev/null +++ b/contracts/v1/extensions/PriceFeedFactory.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {PriceFeedWithERC4626} from "./PriceFeedWithERC4626.sol"; +import {PriceFeedConverter} from "./PriceFeedConverter.sol"; +import {PTWithPriceFeed} from "./PTWithPriceFeed.sol"; + +contract PriceFeedFactory { + event PriceFeedCreated(address indexed priceFeed); + + function createPriceFeedWithERC4626(address _assetPriceFeed, address _vault) external returns (address) { + address priceFeed = address(new PriceFeedWithERC4626(_assetPriceFeed, _vault)); + emit PriceFeedCreated(priceFeed); + return priceFeed; + } + + function createPriceFeedConverter(address _aTokenToBTokenPriceFeed, address _bTokenToCTokenPriceFeed) + external + returns (address) + { + address priceFeed = address(new PriceFeedConverter(_aTokenToBTokenPriceFeed, _bTokenToCTokenPriceFeed)); + emit PriceFeedCreated(priceFeed); + return priceFeed; + } + + function createPTWithPriceFeed(address _pendlePYLpOracle, address _market, uint32 _duration, address _priceFeed) + external + returns (address) + { + address priceFeed = address(new PTWithPriceFeed(_pendlePYLpOracle, _market, _duration, _priceFeed)); + emit PriceFeedCreated(priceFeed); + return priceFeed; + } +} diff --git a/contracts/v1/extensions/PriceFeedWithERC4626.sol b/contracts/v1/extensions/PriceFeedWithERC4626.sol new file mode 100644 index 0000000..b9e379a --- /dev/null +++ b/contracts/v1/extensions/PriceFeedWithERC4626.sol @@ -0,0 +1,61 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {MathLib} from "contracts/v1/lib/MathLib.sol"; + +contract PriceFeedWithERC4626 is AggregatorV3Interface { + using MathLib for *; + + error GetRoundDataNotSupported(); + + AggregatorV3Interface public immutable assetPriceFeed; + IERC4626 public immutable vault; + int256 immutable priceDemonitor; + uint256 immutable vaultDemonitor; + + constructor(address _assetPriceFeed, address _vault) { + assetPriceFeed = AggregatorV3Interface(_assetPriceFeed); + vault = IERC4626(_vault); + vaultDemonitor = 10 ** vault.decimals(); + uint256 assetDemonitor = 10 ** IERC20Metadata(vault.asset()).decimals(); + priceDemonitor = int256(10 ** assetPriceFeed.decimals()) * int256(assetDemonitor); + } + + function decimals() public view returns (uint8) { + return 8; + } + + function description() external view returns (string memory) { + return string(abi.encodePacked("Price Feed for ", vault.name())); + } + + function version() external view returns (uint256) { + return assetPriceFeed.version(); + } + + function getRoundData(uint80 /* _roundId */ ) + external + view + returns ( + uint80, /* roundId */ + int256, /* answer */ + uint256, /* startedAt */ + uint256, /* updatedAt */ + uint80 /* answeredInRound */ + ) + { + // error to call this function because cannot get the chi (rate accumulator) at a specific round + revert GetRoundDataNotSupported(); + } + + function latestRoundData() external view returns (uint80, int256, uint256, uint256, uint80) { + (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) = + assetPriceFeed.latestRoundData(); + uint256 vaultAnswer = vault.previewRedeem(vaultDemonitor).min(vault.convertToAssets(vaultDemonitor)); + answer = answer * int256(vaultAnswer) * int256((10 ** decimals())) / priceDemonitor; + return (roundId, answer, startedAt, updatedAt, answeredInRound); + } +} diff --git a/contracts/factory/ITermMaxFactory.sol b/contracts/v1/factory/ITermMaxFactory.sol similarity index 100% rename from contracts/factory/ITermMaxFactory.sol rename to contracts/v1/factory/ITermMaxFactory.sol diff --git a/contracts/factory/IVaultFactory.sol b/contracts/v1/factory/IVaultFactory.sol similarity index 94% rename from contracts/factory/IVaultFactory.sol rename to contracts/v1/factory/IVaultFactory.sol index d471035..5220a69 100644 --- a/contracts/factory/IVaultFactory.sol +++ b/contracts/v1/factory/IVaultFactory.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import {VaultInitialParams} from "contracts/storage/TermMaxStorage.sol"; +import {VaultInitialParams} from "../storage/TermMaxStorage.sol"; /** * @title TermMax Vault Factory Interface diff --git a/contracts/factory/TermMaxFactory.sol b/contracts/v1/factory/TermMaxFactory.sol similarity index 100% rename from contracts/factory/TermMaxFactory.sol rename to contracts/v1/factory/TermMaxFactory.sol diff --git a/contracts/factory/VaultFactory.sol b/contracts/v1/factory/VaultFactory.sol similarity index 85% rename from contracts/factory/VaultFactory.sol rename to contracts/v1/factory/VaultFactory.sol index cfb376d..51e018f 100644 --- a/contracts/factory/VaultFactory.sol +++ b/contracts/v1/factory/VaultFactory.sol @@ -2,10 +2,10 @@ pragma solidity ^0.8.27; import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; -import {ITermMaxVault} from "contracts/vault/ITermMaxVault.sol"; -import {VaultInitialParams} from "contracts/storage/TermMaxStorage.sol"; -import {FactoryEvents} from "contracts/events/FactoryEvents.sol"; -import {FactoryErrors} from "contracts/errors/FactoryErrors.sol"; +import {ITermMaxVault} from "../vault/ITermMaxVault.sol"; +import {VaultInitialParams} from "../storage/TermMaxStorage.sol"; +import {FactoryEvents} from "../events/FactoryEvents.sol"; +import {FactoryErrors} from "../errors/FactoryErrors.sol"; import {IVaultFactory} from "./IVaultFactory.sol"; /** diff --git a/contracts/lib/ArrayUtils.sol b/contracts/v1/lib/ArrayUtils.sol similarity index 100% rename from contracts/lib/ArrayUtils.sol rename to contracts/v1/lib/ArrayUtils.sol diff --git a/contracts/lib/Constants.sol b/contracts/v1/lib/Constants.sol similarity index 100% rename from contracts/lib/Constants.sol rename to contracts/v1/lib/Constants.sol diff --git a/contracts/lib/GearingTokenConstants.sol b/contracts/v1/lib/GearingTokenConstants.sol similarity index 100% rename from contracts/lib/GearingTokenConstants.sol rename to contracts/v1/lib/GearingTokenConstants.sol diff --git a/contracts/lib/LinkedList.sol b/contracts/v1/lib/LinkedList.sol similarity index 100% rename from contracts/lib/LinkedList.sol rename to contracts/v1/lib/LinkedList.sol diff --git a/contracts/lib/MarketConstants.sol b/contracts/v1/lib/MarketConstants.sol similarity index 100% rename from contracts/lib/MarketConstants.sol rename to contracts/v1/lib/MarketConstants.sol diff --git a/contracts/lib/MathLib.sol b/contracts/v1/lib/MathLib.sol similarity index 100% rename from contracts/lib/MathLib.sol rename to contracts/v1/lib/MathLib.sol diff --git a/contracts/lib/PendingLib.sol b/contracts/v1/lib/PendingLib.sol similarity index 100% rename from contracts/lib/PendingLib.sol rename to contracts/v1/lib/PendingLib.sol diff --git a/contracts/lib/StringUtil.sol b/contracts/v1/lib/StringUtil.sol similarity index 100% rename from contracts/lib/StringUtil.sol rename to contracts/v1/lib/StringUtil.sol diff --git a/contracts/lib/TermMaxCurve.sol b/contracts/v1/lib/TermMaxCurve.sol similarity index 100% rename from contracts/lib/TermMaxCurve.sol rename to contracts/v1/lib/TermMaxCurve.sol diff --git a/contracts/lib/TransferUtils.sol b/contracts/v1/lib/TransferUtils.sol similarity index 100% rename from contracts/lib/TransferUtils.sol rename to contracts/v1/lib/TransferUtils.sol diff --git a/contracts/lib/VaultConstants.sol b/contracts/v1/lib/VaultConstants.sol similarity index 100% rename from contracts/lib/VaultConstants.sol rename to contracts/v1/lib/VaultConstants.sol diff --git a/contracts/oracle/IOracle.sol b/contracts/v1/oracle/IOracle.sol similarity index 86% rename from contracts/oracle/IOracle.sol rename to contracts/v1/oracle/IOracle.sol index 4a5c578..6228777 100644 --- a/contracts/oracle/IOracle.sol +++ b/contracts/v1/oracle/IOracle.sol @@ -11,9 +11,7 @@ interface IOracle { struct Oracle { AggregatorV3Interface aggregator; AggregatorV3Interface backupAggregator; - int256 maxPrice; uint32 heartbeat; - uint32 backupHeartbeat; } /// @notice Error thrown when the oracle is not working @@ -25,6 +23,4 @@ interface IOracle { function submitPendingOracle(address asset, Oracle memory oracle) external; function acceptPendingOracle(address asset) external; - - function revokePendingOracle(address asset) external; } diff --git a/contracts/oracle/OracleAggregator.sol b/contracts/v1/oracle/OracleAggregator.sol similarity index 57% rename from contracts/oracle/OracleAggregator.sol rename to contracts/v1/oracle/OracleAggregator.sol index 3fd89e2..7b833db 100644 --- a/contracts/oracle/OracleAggregator.sol +++ b/contracts/v1/oracle/OracleAggregator.sol @@ -44,18 +44,14 @@ contract OracleAggregator is IOracle, Ownable2Step { address indexed asset, AggregatorV3Interface indexed aggregator, AggregatorV3Interface indexed backupAggregator, - int256 maxPrice, - uint32 heartbeat, - uint32 backupHeartbeat + uint32 heartbeat ); event SubmitPendingOracle( address indexed asset, AggregatorV3Interface indexed aggregator, AggregatorV3Interface indexed backupAggregator, - int256 maxPrice, uint32 heartbeat, - uint32 backupHeartbeat, uint64 validAt ); @@ -71,31 +67,18 @@ contract OracleAggregator is IOracle, Ownable2Step { } function submitPendingOracle(address asset, Oracle memory oracle) external onlyOwner { + if (asset == address(0)) { + revert InvalidAssetOrOracle(); + } if (address(oracle.aggregator) == address(0) && address(oracle.backupAggregator) == address(0)) { delete oracles[asset]; - emit UpdateOracle(asset, AggregatorV3Interface(address(0)), AggregatorV3Interface(address(0)), 0, 0, 0); + emit UpdateOracle(asset, AggregatorV3Interface(address(0)), AggregatorV3Interface(address(0)), 0); return; } - if (asset == address(0) || oracle.aggregator == AggregatorV3Interface(address(0))) { - revert InvalidAssetOrOracle(); - } - if (address(oracle.backupAggregator) != address(0)) { - if (oracle.aggregator.decimals() != oracle.backupAggregator.decimals()) { - revert InvalidAssetOrOracle(); - } - } pendingOracles[asset].oracle = oracle; uint64 validAt = uint64(block.timestamp + _timeLock); pendingOracles[asset].validAt = validAt; - emit SubmitPendingOracle( - asset, - oracle.aggregator, - oracle.backupAggregator, - oracle.maxPrice, - oracle.heartbeat, - oracle.backupHeartbeat, - validAt - ); + emit SubmitPendingOracle(asset, oracle.aggregator, oracle.backupAggregator, oracle.heartbeat, validAt); } function acceptPendingOracle(address asset) external { @@ -108,44 +91,25 @@ contract OracleAggregator is IOracle, Ownable2Step { Oracle memory oracle = pendingOracles[asset].oracle; oracles[asset] = oracle; delete pendingOracles[asset]; - emit UpdateOracle( - asset, oracle.aggregator, oracle.backupAggregator, oracle.maxPrice, oracle.heartbeat, oracle.backupHeartbeat - ); - } - - function revokePendingOracle(address asset) external onlyOwner { - if (pendingOracles[asset].validAt == 0) { - revert NoPendingValue(); - } - delete pendingOracles[asset]; - emit RevokePendingOracle(asset); + emit UpdateOracle(asset, oracle.aggregator, oracle.backupAggregator, oracle.heartbeat); } /** * @inheritdoc IOracle */ - function getPrice(address asset) external view override returns (uint256, uint8) { + function getPrice(address asset) external view override returns (uint256 price, uint8 decimals) { Oracle memory oracle = oracles[asset]; - { - (, int256 answer,, uint256 updatedAt,) = oracle.aggregator.latestRoundData(); - if ((oracle.heartbeat == 0 || oracle.heartbeat + updatedAt >= block.timestamp) && answer > 0) { - if (oracle.maxPrice == 0 || answer <= oracle.maxPrice) { - return (uint256(answer), oracle.aggregator.decimals()); - } else if (address(oracle.backupAggregator) == address(0)) { - return (uint256(oracle.maxPrice), oracle.aggregator.decimals()); - } - } - } - if (address(oracle.backupAggregator) != address(0)) { - (, int256 answer,, uint256 updatedAt,) = oracle.backupAggregator.latestRoundData(); - if ((oracle.backupHeartbeat == 0 || oracle.backupHeartbeat + updatedAt >= block.timestamp) && answer > 0) { - if (oracle.maxPrice == 0 || answer <= oracle.maxPrice) { - return (uint256(answer), oracle.backupAggregator.decimals()); - } else { - return (uint256(oracle.maxPrice), oracle.backupAggregator.decimals()); - } + (, int256 answer,, uint256 updatedAt,) = oracle.aggregator.latestRoundData(); + if (oracle.heartbeat + updatedAt < block.timestamp || answer <= 0) { + // switch backupAggregator + (, answer,, updatedAt,) = oracle.backupAggregator.latestRoundData(); + if (oracle.heartbeat + updatedAt < block.timestamp || answer <= 0) { + revert OracleIsNotWorking(asset); } + decimals = oracle.backupAggregator.decimals(); + } else { + decimals = oracle.aggregator.decimals(); } - revert OracleIsNotWorking(asset); + price = uint256(answer); } } diff --git a/contracts/v1/router/IGtRepayer.sol b/contracts/v1/router/IGtRepayer.sol new file mode 100644 index 0000000..d3f264b --- /dev/null +++ b/contracts/v1/router/IGtRepayer.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +/** + * @title TermMax Repayer interface + * @author Term Structure Labs + * @notice Interface for the TermMax Gt Repayer contract + */ + +interface IGtRepayer { + /** + * @notice Repays a GT in a TermMax market + * @param market The TermMax market to repay in + * @param gtId The ID of the GT to repay + * @param maxRepayAmt Maximum amount of tokens to repay + * @param byDebtToken Whether to repay using debt tokens + * @return repayAmt The actual amount repaid + */ + function repayGt(ITermMaxMarket market, uint256 gtId, uint128 maxRepayAmt, bool byDebtToken) + external + returns (uint128 repayAmt); +} diff --git a/contracts/router/ISwapAdapter.sol b/contracts/v1/router/ISwapAdapter.sol similarity index 100% rename from contracts/router/ISwapAdapter.sol rename to contracts/v1/router/ISwapAdapter.sol diff --git a/contracts/router/ITermMaxRouter.sol b/contracts/v1/router/ITermMaxRouter.sol similarity index 100% rename from contracts/router/ITermMaxRouter.sol rename to contracts/v1/router/ITermMaxRouter.sol diff --git a/contracts/router/MarketViewer.sol b/contracts/v1/router/MarketViewer.sol similarity index 95% rename from contracts/router/MarketViewer.sol rename to contracts/v1/router/MarketViewer.sol index 1da0d74..0f1a220 100644 --- a/contracts/router/MarketViewer.sol +++ b/contracts/v1/router/MarketViewer.sol @@ -5,15 +5,15 @@ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import {IERC721Enumerable} from "@openzeppelin/contracts/interfaces/IERC721Enumerable.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {OrderConfig, CurveCuts, FeeConfig, GtConfig} from "contracts/storage/TermMaxStorage.sol"; -import {ITermMaxVault} from "contracts/vault/ITermMaxVault.sol"; -import {OrderInfo} from "contracts/vault/VaultStorage.sol"; -import {PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; -import {OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {ITermMaxOrder} from "../ITermMaxOrder.sol"; +import {IMintableERC20} from "../tokens/IMintableERC20.sol"; +import {IGearingToken} from "../tokens/IGearingToken.sol"; +import {OrderConfig, CurveCuts, FeeConfig, GtConfig} from "../storage/TermMaxStorage.sol"; +import {ITermMaxVault} from "../vault/ITermMaxVault.sol"; +import {OrderInfo} from "../vault/VaultStorage.sol"; +import {PendingAddress, PendingUint192} from "../lib/PendingLib.sol"; +import {OracleAggregator} from "../oracle/OracleAggregator.sol"; interface IPausable { function paused() external view returns (bool); diff --git a/contracts/router/TermMaxRouter.sol b/contracts/v1/router/TermMaxRouter.sol similarity index 96% rename from contracts/router/TermMaxRouter.sol rename to contracts/v1/router/TermMaxRouter.sol index fbf44b8..4c62ef6 100644 --- a/contracts/router/TermMaxRouter.sol +++ b/contracts/v1/router/TermMaxRouter.sol @@ -13,20 +13,20 @@ import { } from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {ITermMaxOrder} from "../ITermMaxOrder.sol"; import {SwapUnit, ISwapAdapter} from "./ISwapAdapter.sol"; -import {RouterErrors} from "contracts/errors/RouterErrors.sol"; -import {RouterEvents} from "contracts/events/RouterEvents.sol"; -import {TransferUtils} from "contracts/lib/TransferUtils.sol"; -import {IFlashLoanReceiver} from "contracts/IFlashLoanReceiver.sol"; -import {IFlashRepayer} from "contracts/tokens/IFlashRepayer.sol"; +import {RouterErrors} from "../errors/RouterErrors.sol"; +import {RouterEvents} from "../events/RouterEvents.sol"; +import {TransferUtils} from "../lib/TransferUtils.sol"; +import {IFlashLoanReceiver} from "../IFlashLoanReceiver.sol"; +import {IFlashRepayer} from "../tokens/IFlashRepayer.sol"; import {ITermMaxRouter} from "./ITermMaxRouter.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {CurveCuts} from "contracts/storage/TermMaxStorage.sol"; -import {ISwapCallback} from "contracts/ISwapCallback.sol"; -import {Constants} from "contracts/lib/Constants.sol"; -import {MathLib} from "contracts/lib/MathLib.sol"; +import {IGearingToken} from "../tokens/IGearingToken.sol"; +import {CurveCuts} from "../storage/TermMaxStorage.sol"; +import {ISwapCallback} from "../ISwapCallback.sol"; +import {Constants} from "../lib/Constants.sol"; +import {MathLib} from "../lib/MathLib.sol"; /** * @title TermMax Router diff --git a/contracts/v1/router/TermMaxRouter_Repay_Gt.sol b/contracts/v1/router/TermMaxRouter_Repay_Gt.sol new file mode 100644 index 0000000..0efec5d --- /dev/null +++ b/contracts/v1/router/TermMaxRouter_Repay_Gt.sol @@ -0,0 +1,584 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC721Enumerable} from "@openzeppelin/contracts/interfaces/IERC721Enumerable.sol"; +import {IERC721Receiver} from "@openzeppelin/contracts/interfaces/IERC721Receiver.sol"; +import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import { + Ownable2StepUpgradeable, + OwnableUpgradeable +} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; + +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {ITermMaxOrder} from "../ITermMaxOrder.sol"; +import {SwapUnit, ISwapAdapter} from "./ISwapAdapter.sol"; +import {RouterErrors} from "../errors/RouterErrors.sol"; +import {RouterEvents} from "../events/RouterEvents.sol"; +import {TransferUtils} from "../lib/TransferUtils.sol"; +import {IFlashLoanReceiver} from "../IFlashLoanReceiver.sol"; +import {IFlashRepayer} from "../tokens/IFlashRepayer.sol"; +import {ITermMaxRouter} from "./ITermMaxRouter.sol"; +import {IGearingToken} from "../tokens/IGearingToken.sol"; +import {CurveCuts} from "../storage/TermMaxStorage.sol"; +import {ISwapCallback} from "../ISwapCallback.sol"; +import {Constants} from "../lib/Constants.sol"; +import {MathLib} from "../lib/MathLib.sol"; +import {IGtRepayer} from "./IGtRepayer.sol"; + +/** + * @title TermMax Router for GT Repayment + * @author Term Structure Labs + * @notice Router contract for repaying GTs + */ +contract TermMaxRouter_Repay_Gt is + UUPSUpgradeable, + Ownable2StepUpgradeable, + PausableUpgradeable, + IFlashLoanReceiver, + IFlashRepayer, + IERC721Receiver, + ITermMaxRouter, + RouterErrors, + RouterEvents, + IGtRepayer +{ + using SafeCast for *; + using TransferUtils for IERC20; + using MathLib for uint256; + + enum FlashLoanType { + COLLATERAL, + DEBT + } + + /// @notice whitelist mapping of adapter + mapping(address => bool) public adapterWhitelist; + + function _authorizeUpgrade(address newImplementation) internal virtual override onlyOwner {} + + function initialize(address admin) public initializer { + __UUPSUpgradeable_init(); + __Pausable_init(); + __Ownable_init(admin); + } + + /** + * @inheritdoc ITermMaxRouter + */ + function setAdapterWhitelist(address adapter, bool isWhitelist) external onlyOwner { + adapterWhitelist[adapter] = isWhitelist; + emit UpdateSwapAdapterWhiteList(adapter, isWhitelist); + } + + /** + * @inheritdoc ITermMaxRouter + */ + function assetsWithERC20Collateral(ITermMaxMarket market, address owner) + external + view + override + returns (IERC20[4] memory tokens, uint256[4] memory balances, address gtAddr, uint256[] memory gtIds) + { + (IERC20 ft, IERC20 xt, IGearingToken gt, address collateral, IERC20 underlying) = market.tokens(); + tokens[0] = ft; + tokens[1] = xt; + tokens[2] = IERC20(collateral); + tokens[3] = underlying; + for (uint256 i = 0; i < 4; ++i) { + balances[i] = tokens[i].balanceOf(owner); + } + gtAddr = address(gt); + uint256 balance = IERC721Enumerable(gtAddr).balanceOf(owner); + gtIds = new uint256[](balance); + for (uint256 i = 0; i < balance; ++i) { + gtIds[i] = IERC721Enumerable(gtAddr).tokenOfOwnerByIndex(owner, i); + } + } + + function swapExactTokenToToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + ITermMaxOrder[] memory orders, + uint128[] memory tradingAmts, + uint128 minTokenOut, + uint256 deadline + ) external whenNotPaused returns (uint256 netTokenOut) { + uint256 totalAmtIn = sum(tradingAmts); + tokenIn.safeTransferFrom(msg.sender, address(this), totalAmtIn); + netTokenOut = _swapExactTokenToToken(tokenIn, tokenOut, recipient, orders, tradingAmts, minTokenOut, deadline); + emit SwapExactTokenToToken(tokenIn, tokenOut, msg.sender, recipient, orders, tradingAmts, netTokenOut); + } + + function _swapExactTokenToToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + ITermMaxOrder[] memory orders, + uint128[] memory tradingAmts, + uint128 minTokenOut, + uint256 deadline + ) internal returns (uint256 netTokenOut) { + if (orders.length != tradingAmts.length) revert OrdersAndAmtsLengthNotMatch(); + for (uint256 i = 0; i < orders.length; ++i) { + ITermMaxOrder order = orders[i]; + tokenIn.safeIncreaseAllowance(address(order), tradingAmts[i]); + netTokenOut += order.swapExactTokenToToken(tokenIn, tokenOut, recipient, tradingAmts[i], 0, deadline); + } + if (netTokenOut < minTokenOut) revert InsufficientTokenOut(address(tokenOut), netTokenOut, minTokenOut); + } + + function swapTokenToExactToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + ITermMaxOrder[] memory orders, + uint128[] memory tradingAmts, + uint128 maxTokenIn, + uint256 deadline + ) external whenNotPaused returns (uint256 netTokenIn) { + tokenIn.safeTransferFrom(msg.sender, address(this), maxTokenIn); + netTokenIn = _swapTokenToExactToken(tokenIn, tokenOut, recipient, orders, tradingAmts, maxTokenIn, deadline); + tokenIn.safeTransfer(msg.sender, maxTokenIn - netTokenIn); + emit SwapTokenToExactToken(tokenIn, tokenOut, msg.sender, recipient, orders, tradingAmts, netTokenIn); + } + + function _swapTokenToExactToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + ITermMaxOrder[] memory orders, + uint128[] memory tradingAmts, + uint128 maxTokenIn, + uint256 deadline + ) internal returns (uint256 netTokenIn) { + if (orders.length != tradingAmts.length) revert OrdersAndAmtsLengthNotMatch(); + for (uint256 i = 0; i < orders.length; ++i) { + ITermMaxOrder order = orders[i]; + tokenIn.safeIncreaseAllowance(address(order), maxTokenIn); + netTokenIn += + order.swapTokenToExactToken(tokenIn, tokenOut, recipient, tradingAmts[i], maxTokenIn, deadline); + } + if (netTokenIn > maxTokenIn) revert InsufficientTokenIn(address(tokenIn), netTokenIn, maxTokenIn); + } + + function sum(uint128[] memory values) internal pure returns (uint256 total) { + for (uint256 i = 0; i < values.length; ++i) { + total += values[i]; + } + } + + function sellTokens( + address recipient, + ITermMaxMarket market, + uint128 ftInAmt, + uint128 xtInAmt, + ITermMaxOrder[] memory orders, + uint128[] memory amtsToSellTokens, + uint128 minTokenOut, + uint256 deadline + ) external whenNotPaused returns (uint256 netTokenOut) { + (IERC20 ft, IERC20 xt,,, IERC20 debtToken) = market.tokens(); + (uint256 maxBurn, IERC20 toenToSell) = ftInAmt > xtInAmt ? (xtInAmt, ft) : (ftInAmt, xt); + + ft.safeTransferFrom(msg.sender, address(this), ftInAmt); + ft.safeIncreaseAllowance(address(market), maxBurn); + xt.safeTransferFrom(msg.sender, address(this), xtInAmt); + xt.safeIncreaseAllowance(address(market), maxBurn); + market.burn(recipient, maxBurn); + netTokenOut = _swapExactTokenToToken(toenToSell, debtToken, recipient, orders, amtsToSellTokens, 0, deadline); + netTokenOut += maxBurn; + if (netTokenOut < minTokenOut) revert InsufficientTokenOut(address(debtToken), netTokenOut, minTokenOut); + emit SellTokens(market, msg.sender, recipient, ftInAmt, xtInAmt, orders, amtsToSellTokens, netTokenOut); + } + + function leverageFromToken( + address recipient, + ITermMaxMarket market, + ITermMaxOrder[] memory orders, + uint128[] memory amtsToBuyXt, + uint128 minXtOut, + uint128 tokenToSwap, + uint128 maxLtv, + SwapUnit[] memory units, + uint256 deadline + ) external whenNotPaused returns (uint256 gtId, uint256 netXtOut) { + (, IERC20 xt, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + uint256 totalAmtToBuyXt = sum(amtsToBuyXt); + debtToken.safeTransferFrom(msg.sender, address(this), tokenToSwap + totalAmtToBuyXt); + netXtOut = _swapExactTokenToToken(debtToken, xt, address(this), orders, amtsToBuyXt, minXtOut, deadline); + + bytes memory callbackData = abi.encode(address(gt), tokenToSwap, units, FlashLoanType.DEBT); + xt.safeIncreaseAllowance(address(market), netXtOut); + + gtId = market.leverageByXt(recipient, netXtOut.toUint128(), callbackData); + (,, bytes memory collateralData) = gt.loanInfo(gtId); + (, uint128 ltv,) = gt.getLiquidationInfo(gtId); + if (ltv > maxLtv) { + revert LtvBiggerThanExpected(maxLtv, ltv); + } + emit IssueGt(market, gtId, msg.sender, recipient, tokenToSwap, netXtOut.toUint128(), ltv, collateralData); + } + + /** + * @inheritdoc ITermMaxRouter + */ + function leverageFromXt( + address recipient, + ITermMaxMarket market, + uint128 xtInAmt, + uint128 tokenInAmt, + uint128 maxLtv, + SwapUnit[] memory units + ) external whenNotPaused returns (uint256 gtId) { + (, IERC20 xt, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + xt.safeTransferFrom(msg.sender, address(this), xtInAmt); + xt.safeIncreaseAllowance(address(market), xtInAmt); + + debtToken.safeTransferFrom(msg.sender, address(this), tokenInAmt); + + bytes memory callbackData = abi.encode(address(gt), tokenInAmt, units, FlashLoanType.DEBT); + gtId = market.leverageByXt(recipient, xtInAmt.toUint128(), callbackData); + + (,, bytes memory collateralData) = gt.loanInfo(gtId); + (, uint128 ltv,) = gt.getLiquidationInfo(gtId); + if (ltv > maxLtv) { + revert LtvBiggerThanExpected(maxLtv, ltv); + } + emit IssueGt(market, gtId, msg.sender, recipient, tokenInAmt, xtInAmt, ltv, collateralData); + } + + /** + * @inheritdoc ITermMaxRouter + */ + function leverageFromXtAndCollateral( + address recipient, + ITermMaxMarket market, + uint128 xtInAmt, + uint128 collateralInAmt, + uint128 maxLtv, + SwapUnit[] memory units + ) external whenNotPaused returns (uint256 gtId) { + (, IERC20 xt, IGearingToken gt, address collAddr,) = market.tokens(); + IERC20 collateral = IERC20(collAddr); + xt.safeTransferFrom(msg.sender, address(this), xtInAmt); + xt.safeIncreaseAllowance(address(market), xtInAmt); + + collateral.safeTransferFrom(msg.sender, address(this), collateralInAmt); + + bytes memory callbackData = abi.encode(address(gt), 0, units, FlashLoanType.COLLATERAL); + gtId = market.leverageByXt(recipient, xtInAmt.toUint128(), callbackData); + + (,, bytes memory collateralData) = gt.loanInfo(gtId); + (, uint128 ltv,) = gt.getLiquidationInfo(gtId); + if (ltv > maxLtv) { + revert LtvBiggerThanExpected(maxLtv, ltv); + } + emit IssueGt(market, gtId, msg.sender, recipient, 0, xtInAmt, ltv, collateralData); + } + + /** + * @inheritdoc ITermMaxRouter + */ + function borrowTokenFromCollateral( + address recipient, + ITermMaxMarket market, + uint256 collInAmt, + ITermMaxOrder[] memory orders, + uint128[] memory tokenAmtsWantBuy, + uint128 maxDebtAmt, + uint256 deadline + ) external whenNotPaused returns (uint256) { + (IERC20 ft,, IGearingToken gt, address collateralAddr, IERC20 debtToken) = market.tokens(); + IERC20(collateralAddr).safeTransferFrom(msg.sender, address(this), collInAmt); + IERC20(collateralAddr).safeIncreaseAllowance(address(gt), collInAmt); + + (uint256 gtId, uint128 ftOutAmt) = market.issueFt(address(this), maxDebtAmt, _encodeAmount(collInAmt)); + uint256 netTokenIn = + _swapTokenToExactToken(ft, debtToken, recipient, orders, tokenAmtsWantBuy, ftOutAmt, deadline); + uint256 repayAmt = ftOutAmt - netTokenIn; + if (repayAmt > 0) { + ft.safeIncreaseAllowance(address(gt), repayAmt); + gt.repay(gtId, repayAmt.toUint128(), false); + } + + gt.safeTransferFrom(address(this), recipient, gtId); + emit Borrow(market, gtId, msg.sender, recipient, collInAmt, ftOutAmt, netTokenIn.toUint128()); + return gtId; + } + + function borrowTokenFromCollateral(address recipient, ITermMaxMarket market, uint256 collInAmt, uint256 borrowAmt) + external + whenNotPaused + returns (uint256) + { + (IERC20 ft, IERC20 xt, IGearingToken gt, address collateralAddr,) = market.tokens(); + + IERC20(collateralAddr).safeTransferFrom(msg.sender, address(this), collInAmt); + IERC20(collateralAddr).safeIncreaseAllowance(address(gt), collInAmt); + + uint256 mintGtFeeRatio = market.mintGtFeeRatio(); + uint128 debtAmt = ((borrowAmt * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - mintGtFeeRatio)).toUint128(); + + (uint256 gtId, uint128 ftOutAmt) = market.issueFt(address(this), debtAmt, _encodeAmount(collInAmt)); + borrowAmt = borrowAmt.min(ftOutAmt); + xt.safeTransferFrom(msg.sender, address(this), borrowAmt); + + ft.safeIncreaseAllowance(address(market), borrowAmt); + xt.safeIncreaseAllowance(address(market), borrowAmt); + + market.burn(recipient, borrowAmt); + + gt.safeTransferFrom(address(this), recipient, gtId); + emit Borrow(market, gtId, msg.sender, recipient, collInAmt, debtAmt, borrowAmt.toUint128()); + return gtId; + } + + function borrowTokenFromGt(address recipient, ITermMaxMarket market, uint256 gtId, uint256 borrowAmt) + external + whenNotPaused + { + (IERC20 ft, IERC20 xt, IGearingToken gt,,) = market.tokens(); + + if (gt.ownerOf(gtId) != msg.sender) { + revert GtNotOwnedBySender(); + } + + uint256 mintGtFeeRatio = market.mintGtFeeRatio(); + uint128 debtAmt = ((borrowAmt * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - mintGtFeeRatio)).toUint128(); + + uint256 ftOutAmt = market.issueFtByExistedGt(address(this), debtAmt, gtId); + borrowAmt = borrowAmt.min(ftOutAmt); + xt.safeTransferFrom(msg.sender, address(this), borrowAmt); + + ft.safeIncreaseAllowance(address(market), borrowAmt); + xt.safeIncreaseAllowance(address(market), borrowAmt); + market.burn(recipient, borrowAmt); + + emit Borrow(market, gtId, msg.sender, recipient, 0, debtAmt, borrowAmt.toUint128()); + } + + /** + * @inheritdoc ITermMaxRouter + */ + function flashRepayFromColl( + address recipient, + ITermMaxMarket market, + uint256 gtId, + ITermMaxOrder[] memory orders, + uint128[] memory amtsToBuyFt, + bool byDebtToken, + SwapUnit[] memory units, + uint256 deadline + ) external whenNotPaused returns (uint256 netTokenOut) { + (IERC20 ft,, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + gt.safeTransferFrom(msg.sender, address(this), gtId, ""); + gt.flashRepay(gtId, byDebtToken, abi.encode(orders, amtsToBuyFt, ft, units, deadline)); + netTokenOut = debtToken.balanceOf(address(this)); + debtToken.safeTransfer(recipient, netTokenOut); + } + + /** + * @inheritdoc ITermMaxRouter + */ + function repayByTokenThroughFt( + address recipient, + ITermMaxMarket market, + uint256 gtId, + ITermMaxOrder[] memory orders, + uint128[] memory ftAmtsWantBuy, + uint128 maxTokenIn, + uint256 deadline + ) external whenNotPaused returns (uint256 returnAmt) { + (IERC20 ft,, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + + debtToken.safeTransferFrom(msg.sender, address(this), maxTokenIn); + uint256 netCost = + _swapTokenToExactToken(debtToken, ft, address(this), orders, ftAmtsWantBuy, maxTokenIn, deadline); + uint256 totalFtAmt = sum(ftAmtsWantBuy); + (, uint128 repayAmt,) = gt.loanInfo(gtId); + + if (totalFtAmt < repayAmt) { + repayAmt = totalFtAmt.toUint128(); + } + ft.safeIncreaseAllowance(address(gt), repayAmt); + gt.repay(gtId, repayAmt, false); + + returnAmt = maxTokenIn - netCost; + debtToken.safeTransfer(recipient, returnAmt); + if (totalFtAmt > repayAmt) { + ft.safeTransfer(recipient, totalFtAmt - repayAmt); + } + + emit RepayByTokenThroughFt(market, gtId, msg.sender, recipient, repayAmt, returnAmt); + } + + function redeemAndSwap( + address recipient, + ITermMaxMarket market, + uint256 ftAmount, + SwapUnit[] memory units, + uint256 minTokenOut + ) external whenNotPaused returns (uint256) { + (IERC20 ft,,, address collateralAddr, IERC20 debtToken) = market.tokens(); + ft.safeTransferFrom(msg.sender, address(this), ftAmount); + ft.safeIncreaseAllowance(address(market), ftAmount); + (uint256 redeemedAmt, bytes memory collateralData) = market.redeem(ftAmount, address(this)); + redeemedAmt += _decodeAmount(_doSwap(collateralData, units)); + if (redeemedAmt < minTokenOut) { + revert InsufficientTokenOut(address(debtToken), redeemedAmt, minTokenOut); + } + debtToken.safeTransfer(recipient, redeemedAmt); + emit RedeemAndSwap(market, ftAmount, msg.sender, recipient, redeemedAmt); + return redeemedAmt; + } + + function createOrderAndDeposit( + ITermMaxMarket market, + address maker, + uint256 maxXtReserve, + ISwapCallback swapTrigger, + uint256 debtTokenToDeposit, + uint128 ftToDeposit, + uint128 xtToDeposit, + CurveCuts memory curveCuts + ) external whenNotPaused returns (ITermMaxOrder order) { + (IERC20 ft, IERC20 xt,,, IERC20 debtToken) = market.tokens(); + order = market.createOrder(maker, maxXtReserve, swapTrigger, curveCuts); + if (debtTokenToDeposit > 0) { + debtToken.safeTransferFrom(msg.sender, address(this), debtTokenToDeposit); + debtToken.safeIncreaseAllowance(address(market), debtTokenToDeposit); + market.mint(address(order), debtTokenToDeposit); + } + if (ftToDeposit > 0) { + ft.safeTransferFrom(msg.sender, address(order), ftToDeposit); + } + if (xtToDeposit > 0) { + xt.safeTransferFrom(msg.sender, address(order), xtToDeposit); + } + + emit CreateOrderAndDeposit(market, order, maker, debtTokenToDeposit, ftToDeposit, xtToDeposit, curveCuts); + } + + /// @dev Market flash leverage flashloan callback + function executeOperation(address, IERC20, uint256 amount, bytes memory data) + external + returns (bytes memory collateralData) + { + (address gt, uint256 tokenInAmt, SwapUnit[] memory units, FlashLoanType flashLoanType) = + abi.decode(data, (address, uint256, SwapUnit[], FlashLoanType)); + uint256 totalAmount = amount + tokenInAmt; + collateralData = _doSwap(abi.encode(totalAmount), units); + SwapUnit memory lastUnit = units[units.length - 1]; + if (!adapterWhitelist[lastUnit.adapter]) { + revert AdapterNotWhitelisted(lastUnit.adapter); + } + + if (flashLoanType == FlashLoanType.COLLATERAL) { + IERC20 collateral = IERC20(lastUnit.tokenOut); + uint256 collateralBalance = collateral.balanceOf(address(this)); + collateralData = _encodeAmount(collateralBalance); + // approve all collateral if fashloan type is collateral + collateral.safeIncreaseAllowance(gt, collateralBalance); + } else if (flashLoanType == FlashLoanType.DEBT) { + bytes memory approvalData = + abi.encodeCall(ISwapAdapter.approveOutputToken, (lastUnit.tokenOut, gt, collateralData)); + (bool success, bytes memory returnData) = lastUnit.adapter.delegatecall(approvalData); + if (!success) { + revert ApproveTokenFailWhenSwap(lastUnit.tokenOut, returnData); + } + } + } + + function _balanceOf(IERC20 token, address account) internal view returns (uint256) { + return token.balanceOf(account); + } + + function _encodeAmount(uint256 amount) internal pure returns (bytes memory) { + return abi.encode(amount); + } + + function _decodeAmount(bytes memory collateralData) internal pure returns (uint256) { + return abi.decode(collateralData, (uint256)); + } + + /// @dev Gt flash repay flashloan callback + function executeOperation( + IERC20 repayToken, + uint128 debtAmt, + address, + bytes memory collateralData, + bytes memory callbackData + ) external override { + ( + ITermMaxOrder[] memory orders, + uint128[] memory amtsToBuyFt, + IERC20 ft, + SwapUnit[] memory units, + uint256 deadline + ) = abi.decode(callbackData, (ITermMaxOrder[], uint128[], IERC20, SwapUnit[], uint256)); + bytes memory outData = _doSwap(collateralData, units); + + if (address(repayToken) == address(ft)) { + IERC20 debtToken = IERC20(units[units.length - 1].tokenOut); + uint256 amount = abi.decode(outData, (uint256)); + _swapTokenToExactToken(debtToken, ft, address(this), orders, amtsToBuyFt, amount.toUint128(), deadline); + } + repayToken.safeIncreaseAllowance(msg.sender, debtAmt); + } + + function _doSwap(bytes memory inputData, SwapUnit[] memory units) internal returns (bytes memory outData) { + if (units.length == 0) { + revert SwapUnitsIsEmpty(); + } + for (uint256 i = 0; i < units.length; ++i) { + if (!adapterWhitelist[units[i].adapter]) { + revert AdapterNotWhitelisted(units[i].adapter); + } + bytes memory dataToSwap = + abi.encodeCall(ISwapAdapter.swap, (units[i].tokenIn, units[i].tokenOut, inputData, units[i].swapData)); + + (bool success, bytes memory returnData) = units[i].adapter.delegatecall(dataToSwap); + if (!success) { + revert SwapFailed(units[i].adapter, returnData); + } + inputData = abi.decode(returnData, (bytes)); + } + outData = inputData; + } + + function onERC721Received(address, address, uint256, bytes memory) external pure override returns (bytes4) { + return this.onERC721Received.selector; + } + + function pause() external onlyOwner { + _pause(); + } + + function unpause() external onlyOwner { + _unpause(); + } + + function repayGt(ITermMaxMarket market, uint256 gtId, uint128 maxRepayAmt, bool byDebtToken) + external + override + whenNotPaused + returns (uint128 repayAmt) + { + (IERC20 ft,, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + (, uint128 debtAmt,) = gt.loanInfo(gtId); // Ensure gtId is valid + if (maxRepayAmt > debtAmt) { + repayAmt = debtAmt; + } else { + repayAmt = maxRepayAmt; + } + IERC20 repayToken = byDebtToken ? debtToken : ft; + repayToken.safeTransferFrom(msg.sender, address(this), repayAmt); + repayToken.safeIncreaseAllowance(address(gt), repayAmt); + gt.repay(gtId, repayAmt, byDebtToken); + } +} diff --git a/contracts/v1/router/specAdapters/ERC20SwapAdapterV2.sol b/contracts/v1/router/specAdapters/ERC20SwapAdapterV2.sol new file mode 100644 index 0000000..f7c8029 --- /dev/null +++ b/contracts/v1/router/specAdapters/ERC20SwapAdapterV2.sol @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {TransferUtilsV2} from "../../../v2/lib/TransferUtilsV2.sol"; +import {ISwapAdapter} from "../ISwapAdapter.sol"; +import {OnlyProxyCall} from "../../../v2/lib/OnlyProxyCall.sol"; + +/** + * @title TermMax ERC20SwapAdapter V2 + * @author Term Structure Labs + * @notice This contract is an abstract base for ERC20 swap adapters in the TermMax protocol. + */ +abstract contract ERC20SwapAdapterV2 is ISwapAdapter, OnlyProxyCall { + using TransferUtilsV2 for IERC20; + + /// @notice Error for less than min token out + /// @dev Revert when the actual output token amount is less than the expected minimum + error LessThanMinTokenOut(uint256 actual, uint256 expected); + /// @notice Error for exceeding max token in + /// @dev Revert when the actual required input token amount exceeds the expected maximum + error ExceedMaxTokenIn(uint256 actual, uint256 expected); + + /** + * @inheritdoc ISwapAdapter + */ + function swap(address tokenIn, address tokenOut, bytes memory tokenInAmt, bytes memory swapData) + external + override + onlyProxy + returns (bytes memory) + { + return abi.encode(_swap(IERC20(tokenIn), IERC20(tokenOut), abi.decode(tokenInAmt, (uint256)), swapData)); + } + + function _swap(IERC20 tokenIn, IERC20 tokenOut, uint256 tokenInAmt, bytes memory swapData) + internal + virtual + returns (uint256 tokenOutAmt); + + /** + * @inheritdoc ISwapAdapter + */ + function approveOutputToken(address token, address spender, bytes memory tokenData) external override { + IERC20(token).safeIncreaseAllowance(spender, _decodeAmount(tokenData)); + } + + /** + * @inheritdoc ISwapAdapter + */ + function transferOutputToken(address token, address to, bytes memory tokenData) external override { + IERC20(token).safeTransfer(to, _decodeAmount(tokenData)); + } + + /** + * @inheritdoc ISwapAdapter + */ + function transferInputTokenFrom(address token, address from, address to, bytes memory tokenData) + external + override + { + IERC20(token).safeTransferFrom(from, to, _decodeAmount(tokenData)); + } + + /// @notice Encode uin256 to bytes + function _encodeAmount(uint256 amount) internal pure returns (bytes memory data) { + data = abi.encode(amount); + } + + /// @notice Decode uin256 from bytes + function _decodeAmount(bytes memory data) internal pure returns (uint256 amount) { + amount = abi.decode(data, (uint256)); + } +} diff --git a/contracts/v1/router/specAdapters/ERC4626VaultAdapterV2.sol b/contracts/v1/router/specAdapters/ERC4626VaultAdapterV2.sol new file mode 100644 index 0000000..932e8c4 --- /dev/null +++ b/contracts/v1/router/specAdapters/ERC4626VaultAdapterV2.sol @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; +import "./ERC20SwapAdapterV2.sol"; + +/** + * @title TermMax ERC4626VaultAdapterV2 + * @author Term Structure Labs + */ +contract ERC4626VaultAdapterV2 is ERC20SwapAdapterV2 { + using TransferUtilsV2 for IERC20; + using Math for uint256; + + enum Action { + Deposit, + Redeem + } + + error InvalidAction(); + + function _swap(IERC20 tokenIn, IERC20 tokenOut, uint256 amount, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + (Action action, uint256 inAmount, uint256 minTokenOut) = abi.decode(swapData, (Action, uint256, uint256)); + /** + * Note: Scaling Input/Output amount (round up) + */ + minTokenOut = minTokenOut.mulDiv(amount, inAmount, Math.Rounding.Ceil); + + if (action == Action.Deposit) { + tokenIn.safeIncreaseAllowance(address(tokenOut), amount); + tokenOutAmt = IERC4626(address(tokenOut)).deposit(amount, address(this)); + if (tokenOutAmt < minTokenOut) { + revert LessThanMinTokenOut(tokenOutAmt, minTokenOut); + } + } else if (action == Action.Redeem) { + tokenOutAmt = IERC4626(address(tokenIn)).redeem(amount, address(this), address(this)); + if (tokenOutAmt < minTokenOut) { + revert LessThanMinTokenOut(tokenOutAmt, minTokenOut); + } + } else { + revert InvalidAction(); + } + } +} diff --git a/contracts/v1/router/specAdapters/OdosV2AdapterV2.sol b/contracts/v1/router/specAdapters/OdosV2AdapterV2.sol new file mode 100644 index 0000000..38f287e --- /dev/null +++ b/contracts/v1/router/specAdapters/OdosV2AdapterV2.sol @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "./ERC20SwapAdapterV2.sol"; + +/** + * @title OdosRouterV2 interface + */ +interface IOdosRouterV2 { + /// @notice Struct to hold swap token information + struct SwapTokenInfo { + address inputToken; + uint256 inputAmount; + address inputReceiver; + address outputToken; + uint256 outputQuote; + uint256 outputMin; + address outputReceiver; + } + + function swap(SwapTokenInfo memory tokenInfo, bytes calldata pathDefinition, address executor, uint32 referralCode) + external + payable + returns (uint256 amountOut); +} + +/** + * @title TermMax OdosAdapterV2AdapterV2 + * @author Term Structure Labs + */ +contract OdosV2AdapterV2 is ERC20SwapAdapterV2 { + using TransferUtilsV2 for IERC20; + using Math for uint256; + + IOdosRouterV2 public immutable router; + + constructor(address router_) { + router = IOdosRouterV2(router_); + } + + function _swap(IERC20 tokenIn, IERC20, uint256 amountIn, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + tokenIn.safeIncreaseAllowance(address(router), amountIn); + + ( + IOdosRouterV2.SwapTokenInfo memory tokenInfo, + bytes memory pathDefinition, + address executor, + uint32 referralCode + ) = abi.decode(swapData, (IOdosRouterV2.SwapTokenInfo, bytes, address, uint32)); + + /** + * Note: Scaling Input/Output amount + */ + tokenInfo.outputQuote = tokenInfo.outputQuote.mulDiv(amountIn, tokenInfo.inputAmount, Math.Rounding.Ceil); + tokenInfo.outputMin = tokenInfo.outputMin.mulDiv(amountIn, tokenInfo.inputAmount, Math.Rounding.Ceil); + tokenInfo.inputAmount = amountIn; + tokenInfo.outputReceiver = address(this); + + tokenOutAmt = router.swap(tokenInfo, pathDefinition, executor, referralCode); + } +} diff --git a/contracts/router/swapAdapters/PendleSwapV3Adapter.sol b/contracts/v1/router/specAdapters/PendleSwapV3AdapterV2.sol similarity index 77% rename from contracts/router/swapAdapters/PendleSwapV3Adapter.sol rename to contracts/v1/router/specAdapters/PendleSwapV3AdapterV2.sol index cbc853c..e2fd9ef 100644 --- a/contracts/router/swapAdapters/PendleSwapV3Adapter.sol +++ b/contracts/v1/router/specAdapters/PendleSwapV3AdapterV2.sol @@ -1,17 +1,18 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; +pragma solidity ^0.8.0; -import {PendleHelper} from "../../extensions/PendleHelper.sol"; import {IPAllActionV3} from "@pendle/core-v2/contracts/interfaces/IPAllActionV3.sol"; -import {IPMarket, IPPrincipalToken} from "@pendle/core-v2/contracts/interfaces/IPMarket.sol"; -import "./ERC20SwapAdapter.sol"; +import {IPMarket, IPPrincipalToken, IPYieldToken} from "@pendle/core-v2/contracts/interfaces/IPMarket.sol"; +import {PendleHelper} from "../../../v2/extensions/pendle/PendleHelper.sol"; +import "./ERC20SwapAdapterV2.sol"; + /** - * @title TermMax PendleSwapV3Adapter + * @title TermMax PendleSwapV3AdapterV2 * @author Term Structure Labs */ - -contract PendleSwapV3Adapter is ERC20SwapAdapter, PendleHelper { - using TransferUtils for IERC20; +contract PendleSwapV3AdapterV2 is ERC20SwapAdapterV2, PendleHelper { + using TransferUtilsV2 for IERC20; + using Math for uint256; IPAllActionV3 public immutable router; @@ -23,6 +24,7 @@ contract PendleSwapV3Adapter is ERC20SwapAdapter, PendleHelper { internal virtual override + onlyProxy returns (uint256 tokenOutAmt) { (address ptMarketAddr, uint256 inAmount, uint256 minTokenOut) = @@ -35,7 +37,7 @@ contract PendleSwapV3Adapter is ERC20SwapAdapter, PendleHelper { /** * Note: Scaling Input/Output amount */ - minTokenOut = (minTokenOut * amount) / inAmount; + minTokenOut = minTokenOut.mulDiv(amount, inAmount, Math.Rounding.Ceil); if (tokenOut == PT) { (tokenOutAmt,,) = router.swapExactTokenForPt( address(this), diff --git a/contracts/v1/router/specAdapters/UniswapV3AdapterV2.sol b/contracts/v1/router/specAdapters/UniswapV3AdapterV2.sol new file mode 100644 index 0000000..3cb1500 --- /dev/null +++ b/contracts/v1/router/specAdapters/UniswapV3AdapterV2.sol @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {ISwapRouter} from "@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol"; +import "./ERC20SwapAdapterV2.sol"; + +/** + * @title TermMax UniswapV3AdapterV2 + * @author Term Structure Labs + */ +contract UniswapV3AdapterV2 is ERC20SwapAdapterV2 { + using TransferUtilsV2 for IERC20; + using Math for uint256; + + ISwapRouter public immutable router; + + constructor(address router_) { + router = ISwapRouter(router_); + } + + function _swap(IERC20 tokenIn, IERC20, uint256 amount, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + IERC20(tokenIn).safeIncreaseAllowance(address(router), amount); + (bytes memory path, uint256 deadline, uint256 inAmount, uint256 amountOutMinimum) = + abi.decode(swapData, (bytes, uint256, uint256, uint256)); + /** + * Note: Scaling Input/Output amount + */ + amountOutMinimum = amountOutMinimum.mulDiv(amount, inAmount, Math.Rounding.Ceil); + + tokenOutAmt = router.exactInput( + ISwapRouter.ExactInputParams({ + path: path, + recipient: address(this), + deadline: deadline, + amountIn: amount, + amountOutMinimum: amountOutMinimum + }) + ); + } +} diff --git a/contracts/router/swapAdapters/ERC20SwapAdapter.sol b/contracts/v1/router/swapAdapters/ERC20SwapAdapter.sol similarity index 97% rename from contracts/router/swapAdapters/ERC20SwapAdapter.sol rename to contracts/v1/router/swapAdapters/ERC20SwapAdapter.sol index 4120778..aa0a5d2 100644 --- a/contracts/router/swapAdapters/ERC20SwapAdapter.sol +++ b/contracts/v1/router/swapAdapters/ERC20SwapAdapter.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.27; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {TransferUtils} from "contracts/lib/TransferUtils.sol"; +import {TransferUtils} from "../../lib/TransferUtils.sol"; import {ISwapAdapter} from "../ISwapAdapter.sol"; /** diff --git a/contracts/router/swapAdapters/ERC4626VaultAdapter.sol b/contracts/v1/router/swapAdapters/ERC4626VaultAdapter.sol similarity index 84% rename from contracts/router/swapAdapters/ERC4626VaultAdapter.sol rename to contracts/v1/router/swapAdapters/ERC4626VaultAdapter.sol index e901294..3a5a3c8 100644 --- a/contracts/router/swapAdapters/ERC4626VaultAdapter.sol +++ b/contracts/v1/router/swapAdapters/ERC4626VaultAdapter.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.27; -import {ERC20SwapAdapter, TransferUtils} from "../../router/swapAdapters/ERC20SwapAdapter.sol"; +import {ERC20SwapAdapter} from "../../router/swapAdapters/ERC20SwapAdapter.sol"; import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; @@ -10,8 +10,6 @@ import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; * @author Term Structure Labs */ contract ERC4626VaultAdapter is ERC20SwapAdapter { - using TransferUtils for IERC20; - enum Action { Deposit, Redeem @@ -34,13 +32,13 @@ contract ERC4626VaultAdapter is ERC20SwapAdapter { minTokenOut = (minTokenOut * amount) / inAmount; if (action == Action.Deposit) { - tokenIn.safeIncreaseAllowance(address(tokenOut), amount); + tokenIn.approve(address(tokenOut), amount); tokenOutAmt = IERC4626(address(tokenOut)).deposit(amount, address(this)); if (tokenOutAmt < minTokenOut) { revert LessThanMinTokenOut(tokenOutAmt, minTokenOut); } } else if (action == Action.Redeem) { - tokenIn.safeIncreaseAllowance(address(tokenIn), amount); + tokenIn.approve(address(tokenIn), amount); tokenOutAmt = IERC4626(address(tokenIn)).redeem(amount, address(this), address(this)); if (tokenOutAmt < minTokenOut) { revert LessThanMinTokenOut(tokenOutAmt, minTokenOut); diff --git a/contracts/router/swapAdapters/KyberswapV2Adapter.sol b/contracts/v1/router/swapAdapters/KyberswapV2Adapter.sol similarity index 80% rename from contracts/router/swapAdapters/KyberswapV2Adapter.sol rename to contracts/v1/router/swapAdapters/KyberswapV2Adapter.sol index 70b8308..8f5e699 100644 --- a/contracts/router/swapAdapters/KyberswapV2Adapter.sol +++ b/contracts/v1/router/swapAdapters/KyberswapV2Adapter.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.27; import {Address} from "@openzeppelin/contracts/utils/Address.sol"; -import {ERC20SwapAdapter, TransferUtils, IERC20} from "../../router/swapAdapters/ERC20SwapAdapter.sol"; +import "./ERC20SwapAdapter.sol"; interface IKyberScalingHelper { function getScaledInputData(bytes calldata inputData, uint256 newAmount) @@ -17,9 +17,6 @@ interface IKyberScalingHelper { */ contract KyberswapV2Adapter is ERC20SwapAdapter { using Address for address; - using TransferUtils for IERC20; - - error KyberScalingFailed(); address public immutable router; address public immutable KYBER_SCALING_HELPER; @@ -35,11 +32,11 @@ contract KyberswapV2Adapter is ERC20SwapAdapter { override returns (uint256) { - IERC20(tokenIn).safeIncreaseAllowance(address(router), amountIn); + IERC20(tokenIn).approve(address(router), amountIn); (bool isSuccess, bytes memory newSwapData) = IKyberScalingHelper(KYBER_SCALING_HELPER).getScaledInputData(swapData, amountIn); - require(isSuccess, KyberScalingFailed()); + require(isSuccess, "PendleSwap: Kyber scaling failed"); bytes memory returnData = router.functionCall(newSwapData); (uint256 tokenOutAmt,) = abi.decode(returnData, (uint256, uint256)); diff --git a/contracts/router/swapAdapters/OdosV2Adapter.sol b/contracts/v1/router/swapAdapters/OdosV2Adapter.sol similarity index 87% rename from contracts/router/swapAdapters/OdosV2Adapter.sol rename to contracts/v1/router/swapAdapters/OdosV2Adapter.sol index 99438ea..98d6594 100644 --- a/contracts/router/swapAdapters/OdosV2Adapter.sol +++ b/contracts/v1/router/swapAdapters/OdosV2Adapter.sol @@ -25,10 +25,6 @@ interface IOdosRouterV2 { * @author Term Structure Labs */ contract OdosV2Adapter is ERC20SwapAdapter { - using TransferUtils for IERC20; - - error InvalidOutputToken(); - IOdosRouterV2 public immutable router; constructor(address router_) { @@ -41,7 +37,7 @@ contract OdosV2Adapter is ERC20SwapAdapter { override returns (uint256 tokenOutAmt) { - tokenIn.safeIncreaseAllowance(address(router), amountIn); + IERC20(tokenIn).approve(address(router), amountIn); ( IOdosRouterV2.swapTokenInfo memory tokenInfo, @@ -50,9 +46,7 @@ contract OdosV2Adapter is ERC20SwapAdapter { uint32 referralCode ) = abi.decode(swapData, (IOdosRouterV2.swapTokenInfo, bytes, address, uint32)); - if (tokenInfo.outputToken != address(tokenOut)) { - revert InvalidOutputToken(); - } + require(tokenInfo.outputToken == address(tokenOut), "INVALID_OUTPUT_TOKEN"); /** * Note: Scaling Input/Output amount */ diff --git a/contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol b/contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol new file mode 100644 index 0000000..f4602e0 --- /dev/null +++ b/contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {PendleHelper} from "../../extensions/PendleHelper.sol"; +import {IPAllActionV3} from "@pendle/core-v2/contracts/interfaces/IPAllActionV3.sol"; +import {IPMarket, IPPrincipalToken, IPYieldToken} from "@pendle/core-v2/contracts/interfaces/IPMarket.sol"; +import "./ERC20SwapAdapter.sol"; +/** + * @title TermMax PendleSwapV3Adapter + * @author Term Structure Labs + */ + +contract PendleSwapV3Adapter is ERC20SwapAdapter, PendleHelper { + IPAllActionV3 public immutable router; + + constructor(address router_) { + router = IPAllActionV3(router_); + } + + function _swap(IERC20 tokenIn, IERC20 tokenOut, uint256 amount, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + (address ptMarketAddr, uint256 inAmount, uint256 minTokenOut) = + abi.decode(swapData, (address, uint256, uint256)); + IPMarket market = IPMarket(ptMarketAddr); + + (, IPPrincipalToken PT,) = market.readTokens(); + IERC20(tokenIn).approve(address(router), amount); + + /** + * Note: Scaling Input/Output amount + */ + minTokenOut = (minTokenOut * amount) / inAmount; + + if (tokenOut == PT) { + IERC20(tokenIn).approve(address(router), amount); + (tokenOutAmt,,) = router.swapExactTokenForPt( + address(this), + address(market), + minTokenOut, + defaultApprox, + createTokenInputStruct(address(tokenIn), amount), + emptyLimit + ); + } else { + if (PT.isExpired()) { + IPYieldToken YT = IPYieldToken(PT.YT()); + IERC20(tokenIn).transfer(address(YT), amount); + tokenOutAmt = IPYieldToken(YT).redeemPY(address(this)); + if (tokenOutAmt < minTokenOut) { + revert LessThanMinTokenOut(tokenOutAmt, minTokenOut); + } + } else { + IERC20(tokenIn).approve(address(router), amount); + (tokenOutAmt,,) = router.swapExactPtForToken( + address(this), + address(market), + amount, + createTokenOutputStruct(address(tokenOut), minTokenOut), + emptyLimit + ); + } + } + } +} diff --git a/contracts/router/swapAdapters/UniswapV3Adapter.sol b/contracts/v1/router/swapAdapters/UniswapV3Adapter.sol similarity index 92% rename from contracts/router/swapAdapters/UniswapV3Adapter.sol rename to contracts/v1/router/swapAdapters/UniswapV3Adapter.sol index cddd085..8f438b9 100644 --- a/contracts/router/swapAdapters/UniswapV3Adapter.sol +++ b/contracts/v1/router/swapAdapters/UniswapV3Adapter.sol @@ -10,8 +10,6 @@ import "./ERC20SwapAdapter.sol"; * @author Term Structure Labs */ contract UniswapV3Adapter is ERC20SwapAdapter { - using TransferUtils for IERC20; - ISwapRouter public immutable router; constructor(address router_) { @@ -24,7 +22,7 @@ contract UniswapV3Adapter is ERC20SwapAdapter { override returns (uint256 tokenOutAmt) { - IERC20(tokenIn).safeIncreaseAllowance(address(router), amount); + IERC20(tokenIn).approve(address(router), amount); (bytes memory path, uint256 deadline, uint256 inAmount, uint256 amountOutMinimum) = abi.decode(swapData, (bytes, uint256, uint256, uint256)); /** diff --git a/contracts/storage/TermMaxStorage.sol b/contracts/v1/storage/TermMaxStorage.sol similarity index 100% rename from contracts/storage/TermMaxStorage.sol rename to contracts/v1/storage/TermMaxStorage.sol diff --git a/contracts/test/MockERC20.sol b/contracts/v1/test/MockERC20.sol similarity index 100% rename from contracts/test/MockERC20.sol rename to contracts/v1/test/MockERC20.sol diff --git a/contracts/test/MockFlashLoanReceiver.sol b/contracts/v1/test/MockFlashLoanReceiver.sol similarity index 96% rename from contracts/test/MockFlashLoanReceiver.sol rename to contracts/v1/test/MockFlashLoanReceiver.sol index 1e6ba66..4bca1c2 100644 --- a/contracts/test/MockFlashLoanReceiver.sol +++ b/contracts/v1/test/MockFlashLoanReceiver.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.27; -import {ITermMaxMarket, IFlashLoanReceiver, IGearingToken, IERC20} from "contracts/TermMaxMarket.sol"; +import {ITermMaxMarket, IFlashLoanReceiver, IGearingToken, IERC20} from "../TermMaxMarket.sol"; contract MockFlashLoanReceiver is IFlashLoanReceiver { ITermMaxMarket market; diff --git a/contracts/test/MockFlashRepayer.sol b/contracts/v1/test/MockFlashRepayer.sol similarity index 90% rename from contracts/test/MockFlashRepayer.sol rename to contracts/v1/test/MockFlashRepayer.sol index 836dcfb..4b242bb 100644 --- a/contracts/test/MockFlashRepayer.sol +++ b/contracts/v1/test/MockFlashRepayer.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.27; -import {IGearingToken, IERC20, IFlashRepayer} from "contracts/tokens/AbstractGearingToken.sol"; +import {IGearingToken, IERC20, IFlashRepayer} from "../tokens/AbstractGearingToken.sol"; import {IERC721Receiver} from "@openzeppelin/contracts/interfaces/IERC721Receiver.sol"; contract MockFlashRepayer is IFlashRepayer, IERC721Receiver { diff --git a/contracts/test/MockOrder.sol b/contracts/v1/test/MockOrder.sol similarity index 94% rename from contracts/test/MockOrder.sol rename to contracts/v1/test/MockOrder.sol index 4ffe292..f12e954 100644 --- a/contracts/test/MockOrder.sol +++ b/contracts/v1/test/MockOrder.sol @@ -5,17 +5,17 @@ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Own import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {ITermMaxOrder, IERC20} from "contracts/ITermMaxOrder.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {IFlashLoanReceiver} from "contracts/IFlashLoanReceiver.sol"; -import {Constants} from "contracts/lib/Constants.sol"; -import {TermMaxCurve, MathLib} from "contracts/lib/TermMaxCurve.sol"; -import {OrderErrors} from "contracts/errors/OrderErrors.sol"; -import {OrderEvents} from "contracts/events/OrderEvents.sol"; -import {OrderConfig, MarketConfig, CurveCuts, CurveCut, FeeConfig} from "contracts/storage/TermMaxStorage.sol"; -import {ISwapCallback} from "contracts/ISwapCallback.sol"; -import {TransferUtils} from "contracts/lib/TransferUtils.sol"; +import {ITermMaxOrder, IERC20} from "../ITermMaxOrder.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {IGearingToken} from "../tokens/IGearingToken.sol"; +import {IFlashLoanReceiver} from "../IFlashLoanReceiver.sol"; +import {Constants} from "../lib/Constants.sol"; +import {TermMaxCurve, MathLib} from "../lib/TermMaxCurve.sol"; +import {OrderErrors} from "../errors/OrderErrors.sol"; +import {OrderEvents} from "../events/OrderEvents.sol"; +import {OrderConfig, MarketConfig, CurveCuts, CurveCut, FeeConfig} from "../storage/TermMaxStorage.sol"; +import {ISwapCallback} from "../ISwapCallback.sol"; +import {TransferUtils} from "../lib/TransferUtils.sol"; /** * @title TermMax Order diff --git a/contracts/test/MockPriceFeed.sol b/contracts/v1/test/MockPriceFeed.sol similarity index 86% rename from contracts/test/MockPriceFeed.sol rename to contracts/v1/test/MockPriceFeed.sol index 0be0e69..3cca82c 100644 --- a/contracts/test/MockPriceFeed.sol +++ b/contracts/v1/test/MockPriceFeed.sol @@ -16,18 +16,11 @@ contract MockPriceFeed is AggregatorV3Interface, Ownable { event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt); RoundData private _latestRoundData; - uint8 private _decimals; - constructor(address admin) Ownable(admin) { - _decimals = 8; - } - - function decimals() external view override returns (uint8) { - return _decimals; - } + constructor(address admin) Ownable(admin) {} - function setDecimals(uint8 decimals_) external onlyOwner { - _decimals = decimals_; + function decimals() external pure override returns (uint8) { + return 8; } function description() external pure override returns (string memory) { diff --git a/contracts/test/MockSwapAdapter.sol b/contracts/v1/test/MockSwapAdapter.sol similarity index 81% rename from contracts/test/MockSwapAdapter.sol rename to contracts/v1/test/MockSwapAdapter.sol index 931aa71..c2b444c 100644 --- a/contracts/test/MockSwapAdapter.sol +++ b/contracts/v1/test/MockSwapAdapter.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.27; -import {IMintableERC20, IERC20} from "contracts/tokens/IMintableERC20.sol"; -import "contracts/router/swapAdapters/ERC20SwapAdapter.sol"; +import {IMintableERC20, IERC20} from "../tokens/IMintableERC20.sol"; +import "../router/swapAdapters/ERC20SwapAdapter.sol"; contract MockSwapAdapter is ERC20SwapAdapter { address public immutable pool; diff --git a/contracts/test/testnet/Faucet.sol b/contracts/v1/test/testnet/Faucet.sol similarity index 100% rename from contracts/test/testnet/Faucet.sol rename to contracts/v1/test/testnet/Faucet.sol diff --git a/contracts/test/testnet/FaucetERC20.sol b/contracts/v1/test/testnet/FaucetERC20.sol similarity index 100% rename from contracts/test/testnet/FaucetERC20.sol rename to contracts/v1/test/testnet/FaucetERC20.sol diff --git a/contracts/test/testnet/SwapAdapter.sol b/contracts/v1/test/testnet/SwapAdapter.sol similarity index 88% rename from contracts/test/testnet/SwapAdapter.sol rename to contracts/v1/test/testnet/SwapAdapter.sol index d75bd08..927833f 100644 --- a/contracts/test/testnet/SwapAdapter.sol +++ b/contracts/v1/test/testnet/SwapAdapter.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.27; import {console} from "forge-std/console.sol"; -import {IMintableERC20, IERC20} from "contracts/tokens/IMintableERC20.sol"; -import "contracts/router/swapAdapters/ERC20SwapAdapter.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; +import {IMintableERC20, IERC20} from "../../tokens/IMintableERC20.sol"; +import "../../router/swapAdapters/ERC20SwapAdapter.sol"; +import {MockPriceFeed} from "../../test/MockPriceFeed.sol"; contract SwapAdapter is ERC20SwapAdapter { address public immutable pool; diff --git a/contracts/tokens/AbstractGearingToken.sol b/contracts/v1/tokens/AbstractGearingToken.sol similarity index 99% rename from contracts/tokens/AbstractGearingToken.sol rename to contracts/v1/tokens/AbstractGearingToken.sol index 5acc3fe..3321cd8 100644 --- a/contracts/tokens/AbstractGearingToken.sol +++ b/contracts/v1/tokens/AbstractGearingToken.sol @@ -158,7 +158,7 @@ abstract contract AbstractGearingToken is } id = ++total; loanMapping[id] = loan; - _safeMint(to, id); + _mint(to, id); } /** diff --git a/contracts/tokens/GearingTokenWithERC20.sol b/contracts/v1/tokens/GearingTokenWithERC20.sol similarity index 100% rename from contracts/tokens/GearingTokenWithERC20.sol rename to contracts/v1/tokens/GearingTokenWithERC20.sol diff --git a/contracts/tokens/IFlashRepayer.sol b/contracts/v1/tokens/IFlashRepayer.sol similarity index 100% rename from contracts/tokens/IFlashRepayer.sol rename to contracts/v1/tokens/IFlashRepayer.sol diff --git a/contracts/tokens/IGearingToken.sol b/contracts/v1/tokens/IGearingToken.sol similarity index 100% rename from contracts/tokens/IGearingToken.sol rename to contracts/v1/tokens/IGearingToken.sol diff --git a/contracts/tokens/IMintableERC20.sol b/contracts/v1/tokens/IMintableERC20.sol similarity index 100% rename from contracts/tokens/IMintableERC20.sol rename to contracts/v1/tokens/IMintableERC20.sol diff --git a/contracts/tokens/MintableERC20.sol b/contracts/v1/tokens/MintableERC20.sol similarity index 100% rename from contracts/tokens/MintableERC20.sol rename to contracts/v1/tokens/MintableERC20.sol diff --git a/contracts/vault/IOrderManager.sol b/contracts/v1/vault/IOrderManager.sol similarity index 94% rename from contracts/vault/IOrderManager.sol rename to contracts/v1/vault/IOrderManager.sol index 62dc349..053783e 100644 --- a/contracts/vault/IOrderManager.sol +++ b/contracts/v1/vault/IOrderManager.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.0; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {CurveCuts} from "contracts/storage/TermMaxStorage.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {ITermMaxOrder} from "../ITermMaxOrder.sol"; +import {CurveCuts} from "../storage/TermMaxStorage.sol"; /** * @title Order Manager Interface diff --git a/contracts/vault/ITermMaxVault.sol b/contracts/v1/vault/ITermMaxVault.sol similarity index 97% rename from contracts/vault/ITermMaxVault.sol rename to contracts/v1/vault/ITermMaxVault.sol index d90c035..5cc1549 100644 --- a/contracts/vault/ITermMaxVault.sol +++ b/contracts/v1/vault/ITermMaxVault.sol @@ -3,10 +3,10 @@ pragma solidity ^0.8.27; import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {CurveCuts, VaultInitialParams} from "contracts/storage/TermMaxStorage.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {CurveCuts, VaultInitialParams} from "../storage/TermMaxStorage.sol"; +import {ITermMaxOrder} from "../ITermMaxOrder.sol"; +import {PendingAddress, PendingUint192} from "../lib/PendingLib.sol"; import {OrderInfo} from "./VaultStorage.sol"; /** diff --git a/contracts/vault/OrderManager.sol b/contracts/v1/vault/OrderManager.sol similarity index 94% rename from contracts/vault/OrderManager.sol rename to contracts/v1/vault/OrderManager.sol index 8d8bedb..a8e9df3 100644 --- a/contracts/vault/OrderManager.sol +++ b/contracts/v1/vault/OrderManager.sol @@ -3,21 +3,21 @@ pragma solidity ^0.8.27; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {PendingLib, PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {CurveCuts, OrderConfig} from "contracts/storage/TermMaxStorage.sol"; -import {VaultErrors} from "contracts/errors/VaultErrors.sol"; -import {VaultEvents} from "contracts/events/VaultEvents.sol"; -import {ITermMaxRouter} from "contracts/router/ITermMaxRouter.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {VaultConstants} from "contracts/lib/VaultConstants.sol"; -import {TransferUtils} from "contracts/lib/TransferUtils.sol"; -import {Constants} from "contracts/lib/Constants.sol"; -import {ArrayUtils} from "contracts/lib/ArrayUtils.sol"; -import {MathLib} from "contracts/lib/MathLib.sol"; -import {LinkedList} from "contracts/lib/LinkedList.sol"; +import {PendingLib, PendingAddress, PendingUint192} from "../lib/PendingLib.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {CurveCuts, OrderConfig} from "../storage/TermMaxStorage.sol"; +import {VaultErrors} from "../errors/VaultErrors.sol"; +import {VaultEvents} from "../events/VaultEvents.sol"; +import {ITermMaxRouter} from "../router/ITermMaxRouter.sol"; +import {ITermMaxOrder} from "../ITermMaxOrder.sol"; +import {VaultConstants} from "../lib/VaultConstants.sol"; +import {TransferUtils} from "../lib/TransferUtils.sol"; +import {Constants} from "../lib/Constants.sol"; +import {ArrayUtils} from "../lib/ArrayUtils.sol"; +import {MathLib} from "../lib/MathLib.sol"; +import {LinkedList} from "../lib/LinkedList.sol"; import {IOrderManager} from "./IOrderManager.sol"; -import {ISwapCallback} from "contracts/ISwapCallback.sol"; +import {ISwapCallback} from "../ISwapCallback.sol"; import {OrderInfo, VaultStorage} from "./VaultStorage.sol"; /** * @title Order Manager diff --git a/contracts/vault/TermMaxVault.sol b/contracts/v1/vault/TermMaxVault.sol similarity index 96% rename from contracts/vault/TermMaxVault.sol rename to contracts/v1/vault/TermMaxVault.sol index f5f8d40..9ab0295 100644 --- a/contracts/vault/TermMaxVault.sol +++ b/contracts/v1/vault/TermMaxVault.sol @@ -12,19 +12,19 @@ import { import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; -import {PendingLib, PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {CurveCuts, VaultInitialParams} from "contracts/storage/TermMaxStorage.sol"; -import {ITermMaxRouter} from "contracts/router/ITermMaxRouter.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {VaultConstants} from "contracts/lib/VaultConstants.sol"; -import {TransferUtils} from "contracts/lib/TransferUtils.sol"; -import {ISwapCallback} from "contracts/ISwapCallback.sol"; -import {VaultErrors} from "contracts/errors/VaultErrors.sol"; -import {VaultEvents} from "contracts/events/VaultEvents.sol"; +import {PendingLib, PendingAddress, PendingUint192} from "../lib/PendingLib.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {CurveCuts, VaultInitialParams} from "../storage/TermMaxStorage.sol"; +import {ITermMaxRouter} from "../router/ITermMaxRouter.sol"; +import {ITermMaxOrder} from "../ITermMaxOrder.sol"; +import {VaultConstants} from "../lib/VaultConstants.sol"; +import {TransferUtils} from "../lib/TransferUtils.sol"; +import {ISwapCallback} from "../ISwapCallback.sol"; +import {VaultErrors} from "../errors/VaultErrors.sol"; +import {VaultEvents} from "../events/VaultEvents.sol"; import {IOrderManager} from "./IOrderManager.sol"; import {VaultStorage, OrderInfo} from "./VaultStorage.sol"; -import {Constants} from "contracts/lib/Constants.sol"; +import {Constants} from "../lib/Constants.sol"; import {ITermMaxVault} from "./ITermMaxVault.sol"; contract TermMaxVault is diff --git a/contracts/vault/VaultStorage.sol b/contracts/v1/vault/VaultStorage.sol similarity index 93% rename from contracts/vault/VaultStorage.sol rename to contracts/v1/vault/VaultStorage.sol index a130821..ab2f756 100644 --- a/contracts/vault/VaultStorage.sol +++ b/contracts/v1/vault/VaultStorage.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.27; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; +import {ITermMaxMarket} from "../ITermMaxMarket.sol"; +import {PendingAddress, PendingUint192} from "../lib/PendingLib.sol"; struct OrderInfo { ITermMaxMarket market; diff --git a/contracts/v2/ITermMaxMarketV2.sol b/contracts/v2/ITermMaxMarketV2.sol new file mode 100644 index 0000000..cc4a362 --- /dev/null +++ b/contracts/v2/ITermMaxMarketV2.sol @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {OrderConfig} from "../v1/storage/TermMaxStorage.sol"; +import {ITermMaxOrder} from "../v1/ITermMaxOrder.sol"; + +/** + * @title TermMax Market V2 interface + * @author Term Structure Labs + * @notice Interface for TermMax V2 markets with enhanced functionality over V1 + * @dev Extends the base market functionality with additional features for better user experience + */ +interface ITermMaxMarketV2 { + /** + * @notice Returns the human-readable name of the market + * @dev Used for identification and display purposes in V2 markets + * @return The name string of the market (e.g., "Termmax Market:USDC-24-Dec") + */ + function name() external view returns (string memory); + + /** + * @notice Burns FT and XT tokens on behalf of an owner to redeem underlying tokens + * @dev V2 enhancement allowing third-party burning with proper authorization + * @param owner The address that owns the tokens to be burned + * @param recipient The address that will receive the redeemed underlying tokens + * @param debtTokenAmt The amount of debt tokens (FT/XT pairs) to burn + */ + function burn(address owner, address recipient, uint256 debtTokenAmt) external; + + /** + * @notice Creates a leveraged position using XT tokens from a specified owner + * @dev V2 enhancement allowing leverage creation on behalf of another address + * @param xtOwner The address that owns the XT tokens to be used for leverage + * @param recipient The address that will receive the generated GT (Gearing Token) + * @param xtAmt The amount of XT tokens to use for creating the leveraged position + * @param callbackData Encoded data passed to the flash loan callback for collateral handling + * @return gtId The ID of the newly minted Gearing Token representing the leveraged position + */ + function leverageByXt(address xtOwner, address recipient, uint128 xtAmt, bytes calldata callbackData) + external + returns (uint256 gtId); + + /** + * @notice Redeems FT tokens on behalf of an owner after market maturity + * @dev V2 enhancement allowing third-party redemption with proper authorization + * @param ftOwner The address that owns the FT tokens to be redeemed + * @param recipient The address that will receive the redeemed assets + * @param ftAmount The amount of FT tokens to redeem + * @return debtTokenAmt The amount of underlying debt tokens received + * @return deliveryData Encoded data containing collateral delivery information + */ + function redeem(address ftOwner, address recipient, uint256 ftAmount) external returns (uint256, bytes memory); + + function createOrder(address maker, OrderConfig memory orderconfig) external returns (ITermMaxOrder order); +} diff --git a/contracts/v2/ITermMaxOrderV2.sol b/contracts/v2/ITermMaxOrderV2.sol new file mode 100644 index 0000000..af28d1c --- /dev/null +++ b/contracts/v2/ITermMaxOrderV2.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IERC20} from "../v1/tokens/IMintableERC20.sol"; +import {IGearingToken} from "../v1/tokens/IGearingToken.sol"; +import {OrderConfig, MarketConfig} from "../v1/storage/TermMaxStorage.sol"; +/** + * @title TermMax Order interface v2 + * @author Term Structure Labs + */ + +interface ITermMaxOrderV2 { + /// @notice Initialize the token and configuration of the order + /// @param maker The maker + /// @param tokens The tokens, [0] = FT, [1] = XT, [2] = debtToken + /// @param gt The Gearing Token + /// @param orderConfig The order configuration + function initialize( + address maker, + IERC20[3] memory tokens, + IGearingToken gt, + OrderConfig memory orderConfig, + MarketConfig memory marketConfig + ) external; +} diff --git a/contracts/v2/TermMaxMarketV2.sol b/contracts/v2/TermMaxMarketV2.sol new file mode 100644 index 0000000..7131aed --- /dev/null +++ b/contracts/v2/TermMaxMarketV2.sol @@ -0,0 +1,469 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.27; + +import { + OwnableUpgradeable, + Ownable2StepUpgradeable +} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {ITermMaxMarketV2} from "./ITermMaxMarketV2.sol"; +import {IGearingToken} from "../v1/tokens/IGearingToken.sol"; +import {IFlashLoanReceiver} from "../v1/IFlashLoanReceiver.sol"; +import {ITermMaxOrder} from "../v1/ITermMaxOrder.sol"; +import {Constants} from "../v1/lib/Constants.sol"; +import {MarketConstantsV2} from "./lib/MarketConstantsV2.sol"; +import {StringUtil} from "../v1/lib/StringUtil.sol"; +import {MarketErrors} from "../v1/errors/MarketErrors.sol"; +import {MarketEvents} from "../v1/events/MarketEvents.sol"; +import {StringUtil} from "../v1/lib/StringUtil.sol"; +import { + MarketConfig, + MarketInitialParams, + GtConfig, + CurveCuts, + FeeConfig, + OrderConfig +} from "../v1/storage/TermMaxStorage.sol"; +import {ISwapCallback} from "../v1/ISwapCallback.sol"; +import {TransferUtilsV2} from "./lib/TransferUtilsV2.sol"; +import {ITermMaxMarket, IMintableERC20, IERC20} from "../v1/ITermMaxMarket.sol"; +import {IMintableERC20V2} from "./tokens/IMintableERC20V2.sol"; +import {ITermMaxOrderV2} from "./ITermMaxOrderV2.sol"; + +/** + * @title TermMax Market V2 + * @author Term Structure Labs + */ +contract TermMaxMarketV2 is + ITermMaxMarket, + ITermMaxMarketV2, + ReentrancyGuardUpgradeable, + Ownable2StepUpgradeable, + MarketErrors, + MarketEvents +{ + using SafeCast for uint256; + using SafeCast for int256; + using TransferUtilsV2 for IERC20; + using TransferUtilsV2 for IMintableERC20; + using StringUtil for string; + using Math for *; + + address immutable MINTABLE_ERC20_IMPLEMENT; + address immutable TERMMAX_ORDER_IMPLEMENT; + + MarketConfig private _config; + address private collateral; + IERC20 private debtToken; + IMintableERC20 private ft; + IMintableERC20 private xt; + IGearingToken private gt; + + string public name; + + /// @notice Check if the market is tradable + modifier isOpen() { + if (block.timestamp >= _config.maturity) { + revert TermIsNotOpen(); + } + _; + } + + constructor(address MINTABLE_ERC20_IMPLEMENT_, address TERMMAX_ORDER_IMPLEMENT_) { + MINTABLE_ERC20_IMPLEMENT = MINTABLE_ERC20_IMPLEMENT_; + TERMMAX_ORDER_IMPLEMENT = TERMMAX_ORDER_IMPLEMENT_; + _disableInitializers(); + } + + function mintGtFeeRatio() public view override returns (uint256) { + uint256 daysToMaturity = _daysToMaturity(_config.maturity); + return (daysToMaturity * uint256(_config.feeConfig.mintGtFeeRatio) * uint256(_config.feeConfig.mintGtFeeRef)) + / (Constants.DAYS_IN_YEAR * Constants.DECIMAL_BASE + uint256(_config.feeConfig.mintGtFeeRef) * daysToMaturity); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function initialize(MarketInitialParams memory params) external virtual override initializer { + __Ownable_init_unchained(params.admin); + __ReentrancyGuard_init_unchained(); + if (params.collateral == address(params.debtToken)) revert CollateralCanNotEqualUnderlyinng(); + MarketConfig memory config_ = params.marketConfig; + if (config_.maturity <= block.timestamp) revert InvalidMaturity(); + _checkFee(config_.feeConfig); + + debtToken = params.debtToken; + collateral = params.collateral; + _config = config_; + + (ft, xt, gt) = _deployTokens(params); + name = StringUtil.contact(MarketConstantsV2.PREFIX_MARKET, params.tokenName); + emit MarketInitialized(params.collateral, params.debtToken, _config.maturity, ft, xt, gt); + } + + function _deployTokens(MarketInitialParams memory params) + internal + returns (IMintableERC20 ft_, IMintableERC20 xt_, IGearingToken gt_) + { + ft_ = IMintableERC20(Clones.clone(MINTABLE_ERC20_IMPLEMENT)); + xt_ = IMintableERC20(Clones.clone(MINTABLE_ERC20_IMPLEMENT)); + gt_ = IGearingToken(Clones.clone(params.gtImplementation)); + uint8 decimals = params.debtToken.decimals(); + ft_.initialize( + MarketConstantsV2.PREFIX_FT.contact(params.tokenName), + MarketConstantsV2.PREFIX_FT.contact(params.tokenSymbol), + decimals + ); + xt_.initialize( + MarketConstantsV2.PREFIX_XT.contact(params.tokenName), + MarketConstantsV2.PREFIX_XT.contact(params.tokenSymbol), + decimals + ); + gt_.initialize( + MarketConstantsV2.PREFIX_GT.contact(params.tokenName), + MarketConstantsV2.PREFIX_GT.contact(params.tokenSymbol), + GtConfig( + params.collateral, + params.debtToken, + ft_, + params.marketConfig.treasurer, + params.marketConfig.maturity, + params.loanConfig + ), + params.gtInitalParams + ); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function config() public view override returns (MarketConfig memory) { + return _config; + } + + /** + * @inheritdoc ITermMaxMarket + */ + function tokens() + external + view + virtual + override + returns (IMintableERC20, IMintableERC20, IGearingToken, address, IERC20) + { + return (ft, xt, IGearingToken(gt), collateral, debtToken); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function updateMarketConfig(MarketConfig calldata newConfig) external virtual override onlyOwner { + _checkFee(newConfig.feeConfig); + MarketConfig memory mConfig = _config; + if (newConfig.treasurer != mConfig.treasurer) { + mConfig.treasurer = newConfig.treasurer; + gt.setTreasurer(newConfig.treasurer); + } + mConfig.feeConfig = newConfig.feeConfig; + + _config = mConfig; + emit UpdateMarketConfig(mConfig); + } + + function _checkFee(FeeConfig memory fee) internal pure { + if ( + fee.borrowTakerFeeRatio >= Constants.MAX_FEE_RATIO || fee.borrowMakerFeeRatio >= Constants.MAX_FEE_RATIO + || fee.lendTakerFeeRatio >= Constants.MAX_FEE_RATIO || fee.lendMakerFeeRatio >= Constants.MAX_FEE_RATIO + || fee.mintGtFeeRatio >= Constants.MAX_FEE_RATIO || fee.mintGtFeeRef > 5 * Constants.DECIMAL_BASE + ) revert FeeTooHigh(); + } + + /// @notice Calculate how many days until expiration + function _daysToMaturity(uint256 maturity) internal view returns (uint256 daysToMaturity) { + daysToMaturity = (maturity - block.timestamp + Constants.SECONDS_IN_DAY - 1) / Constants.SECONDS_IN_DAY; + } + + function mint(address recipient, uint256 debtTokenAmt) external virtual override nonReentrant isOpen { + _mint(msg.sender, recipient, debtTokenAmt); + } + + function _mint(address caller, address recipient, uint256 debtTokenAmt) internal { + debtToken.safeTransferFrom(caller, address(this), debtTokenAmt); + + ft.mint(recipient, debtTokenAmt); + xt.mint(recipient, debtTokenAmt); + + emit Mint(caller, recipient, debtTokenAmt); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function burn(address recipient, uint256 debtTokenAmt) external virtual override nonReentrant isOpen { + _burn(msg.sender, msg.sender, recipient, debtTokenAmt); + } + + /** + * @inheritdoc ITermMaxMarketV2 + */ + function burn(address owner, address recipient, uint256 debtTokenAmt) + external + virtual + override + nonReentrant + isOpen + { + _burn(owner, msg.sender, recipient, debtTokenAmt); + } + + function _burn(address owner, address spender, address recipient, uint256 debtTokenAmt) internal { + IMintableERC20V2(address(ft)).burn(owner, spender, debtTokenAmt); + IMintableERC20V2(address(xt)).burn(owner, spender, debtTokenAmt); + + debtToken.safeTransfer(recipient, debtTokenAmt); + + emit Burn(owner, recipient, debtTokenAmt); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function leverageByXt(address recipient, uint128 xtAmt, bytes calldata callbackData) + external + virtual + override + nonReentrant + isOpen + returns (uint256 gtId) + { + return _leverageByXt(msg.sender, msg.sender, recipient, xtAmt, callbackData); + } + + /** + * @inheritdoc ITermMaxMarketV2 + */ + function leverageByXt(address xtOwner, address recipient, uint128 xtAmt, bytes calldata callbackData) + external + virtual + override + nonReentrant + isOpen + returns (uint256 gtId) + { + return _leverageByXt(xtOwner, msg.sender, recipient, xtAmt, callbackData); + } + + function _leverageByXt( + address xtOwner, + address loanReceiver, + address gtReceiver, + uint128 xtAmt, + bytes calldata callbackData + ) internal returns (uint256 gtId) { + // Send debt to borrower + debtToken.safeTransfer(loanReceiver, xtAmt); + // Callback function + bytes memory collateralData = + IFlashLoanReceiver(loanReceiver).executeOperation(gtReceiver, debtToken, xtAmt, callbackData); + + uint128 debt = xtAmt.mulDiv(Constants.DECIMAL_BASE, (Constants.DECIMAL_BASE - mintGtFeeRatio())).toUint128(); + + MarketConfig memory mConfig = _config; + uint128 leverageFee = debt - xtAmt; + ft.mint(mConfig.treasurer, leverageFee); + + // Mint GT + gtId = gt.mint(loanReceiver, gtReceiver, debt, collateralData); + + IMintableERC20V2(address(xt)).burn(xtOwner, msg.sender, xtAmt); + emit LeverageByXt(loanReceiver, gtReceiver, gtId, debt, xtAmt, leverageFee, collateralData); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function issueFt(address recipient, uint128 debt, bytes calldata collateralData) + external + virtual + override + nonReentrant + isOpen + returns (uint256 gtId, uint128 ftOutAmt) + { + return _issueFt(msg.sender, recipient, debt, collateralData); + } + + function _issueFt(address caller, address recipient, uint128 debt, bytes calldata collateralData) + internal + returns (uint256 gtId, uint128 ftOutAmt) + { + // Mint GT + gtId = gt.mint(caller, recipient, debt, collateralData); + + MarketConfig memory mConfig = _config; + uint128 issueFee = debt.mulDiv(mintGtFeeRatio(), Constants.DECIMAL_BASE).toUint128(); + // Mint ft amount = debt amount, send issueFee to treasurer and other to caller + ft.mint(mConfig.treasurer, issueFee); + ftOutAmt = debt - issueFee; + ft.mint(recipient, ftOutAmt); + + emit IssueFt(caller, recipient, gtId, debt, ftOutAmt, issueFee, collateralData); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function issueFtByExistedGt(address recipient, uint128 debt, uint256 gtId) + external + virtual + override + nonReentrant + isOpen + returns (uint128 ftOutAmt) + { + return _issueFtByExistedGt(msg.sender, recipient, debt, gtId); + } + + function _issueFtByExistedGt(address caller, address recipient, uint128 debt, uint256 gtId) + internal + returns (uint128 ftOutAmt) + { + gt.augmentDebt(caller, gtId, debt); + + MarketConfig memory mConfig = _config; + uint128 issueFee = debt.mulDiv(mintGtFeeRatio(), Constants.DECIMAL_BASE).toUint128(); + // Mint ft amount = debt amount, send issueFee to treasurer and other to caller + ft.mint(mConfig.treasurer, issueFee); + ftOutAmt = debt - issueFee; + ft.mint(recipient, ftOutAmt); + + emit IssueFtByExistedGt(caller, recipient, gtId, debt, ftOutAmt, issueFee); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function previewRedeem(uint256 ftAmount) + external + view + virtual + override + returns (uint256 debtTokenAmt, bytes memory deliveryData) + { + _checkDeadline(); + + // The proportion that user will get how many debtToken and collateral should be deliveried + uint256 proportion = + ftAmount.mulDiv(Constants.DECIMAL_BASE_SQ, (ft.totalSupply() - ft.balanceOf(address(this)))); + + deliveryData = gt.previewDelivery(proportion); + + debtTokenAmt = debtToken.balanceOf(address(this)).mulDiv(proportion, Constants.DECIMAL_BASE_SQ); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function redeem(uint256 ftAmount, address recipient) + external + virtual + override + nonReentrant + returns (uint256, bytes memory) + { + return _redeem(msg.sender, msg.sender, recipient, ftAmount); + } + + /** + * @inheritdoc ITermMaxMarketV2 + */ + function redeem(address ftOwner, address recipient, uint256 ftAmount) + external + virtual + override + nonReentrant + returns (uint256, bytes memory) + { + return _redeem(ftOwner, msg.sender, recipient, ftAmount); + } + + function _redeem(address ftOwner, address caller, address recipient, uint256 ftAmount) + internal + returns (uint256 debtTokenAmt, bytes memory deliveryData) + { + _checkDeadline(); + // burn ft reserves(from repayment or liquidation) + uint256 ftReserve = ft.balanceOf(address(this)); + if (ftReserve > 0) { + IMintableERC20V2(address(ft)).burn(address(this), address(this), ftReserve); + } + + // The proportion that user will get how many debtToken and collateral should be deliveried + uint256 proportion = ftAmount.mulDiv(Constants.DECIMAL_BASE_SQ, ft.totalSupply()); + + // Burn ft + IMintableERC20V2(address(ft)).burn(ftOwner, caller, ftAmount); + + deliveryData = gt.delivery(proportion, recipient); + // Transfer debtToken output + debtTokenAmt += debtToken.balanceOf(address(this)).mulDiv(proportion, Constants.DECIMAL_BASE_SQ); + debtToken.safeTransfer(recipient, debtTokenAmt); + emit Redeem(caller, recipient, proportion.toUint128(), debtTokenAmt.toUint128(), deliveryData); + } + + function _checkDeadline() internal view { + MarketConfig memory mConfig = _config; + + uint256 liquidationDeadline = + gt.liquidatable() ? mConfig.maturity + Constants.LIQUIDATION_WINDOW : mConfig.maturity; + if (block.timestamp < liquidationDeadline) { + revert CanNotRedeemBeforeFinalLiquidationDeadline(liquidationDeadline); + } + } + + /** + * @inheritdoc ITermMaxMarket + */ + function updateGtConfig(bytes memory configData) external virtual override onlyOwner { + gt.updateConfig(configData); + } + + /** + * @inheritdoc ITermMaxMarket + */ + function createOrder(address maker, uint256 maxXtReserve, ISwapCallback swapTrigger, CurveCuts memory curveCuts) + external + virtual + nonReentrant + isOpen + returns (ITermMaxOrder) + { + OrderConfig memory orderconfig; + orderconfig.maxXtReserve = maxXtReserve; + orderconfig.swapTrigger = swapTrigger; + orderconfig.curveCuts = curveCuts; + return _createOrder(maker, orderconfig); + } + + /** + * @inheritdoc ITermMaxMarketV2 + */ + function createOrder(address maker, OrderConfig memory orderconfig) external returns (ITermMaxOrder) { + return _createOrder(maker, orderconfig); + } + + function _createOrder(address maker, OrderConfig memory orderconfig) internal returns (ITermMaxOrder) { + address order = Clones.clone(TERMMAX_ORDER_IMPLEMENT); + ITermMaxOrderV2(order).initialize(maker, [ft, xt, debtToken], gt, orderconfig, _config); + emit CreateOrder(maker, ITermMaxOrder(order)); + return ITermMaxOrder(order); + } + + function updateOrderFeeRate(ITermMaxOrder order, FeeConfig memory newFeeConfig) external virtual onlyOwner { + _checkFee(newFeeConfig); + order.updateFeeConfig(newFeeConfig); + } +} diff --git a/contracts/v2/TermMaxOrderV2.sol b/contracts/v2/TermMaxOrderV2.sol new file mode 100644 index 0000000..5bb1cec --- /dev/null +++ b/contracts/v2/TermMaxOrderV2.sol @@ -0,0 +1,784 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.27; + +import { + OwnableUpgradeable, + Ownable2StepUpgradeable +} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {ITermMaxOrder, IERC20} from "../v1/ITermMaxOrder.sol"; +import {ITermMaxMarket} from "../v1/ITermMaxMarket.sol"; +import {IGearingToken} from "../v1/tokens/IGearingToken.sol"; +import {Constants} from "../v1/lib/Constants.sol"; +import {TermMaxCurve, MathLib} from "../v1/lib/TermMaxCurve.sol"; +import {OrderErrors} from "../v1/errors/OrderErrors.sol"; +import {OrderEvents} from "../v1/events/OrderEvents.sol"; +import {OrderConfig, MarketConfig, CurveCuts, CurveCut, FeeConfig} from "../v1/storage/TermMaxStorage.sol"; +import {ISwapCallback} from "../v1/ISwapCallback.sol"; +import {TransferUtils} from "../v1/lib/TransferUtils.sol"; +import {ITermMaxMarketV2} from "./ITermMaxMarketV2.sol"; +import {ITermMaxOrderV2} from "./ITermMaxOrderV2.sol"; +import {OrderEventsV2} from "./events/OrderEventsV2.sol"; +import {OrderErrorsV2} from "./errors/OrderErrorsV2.sol"; + +/** + * @title TermMax Order V2 + * @author Term Structure Labs + */ +contract TermMaxOrderV2 is + ITermMaxOrder, + ITermMaxOrderV2, + ReentrancyGuardUpgradeable, + Ownable2StepUpgradeable, + PausableUpgradeable, + OrderErrors, + OrderEvents +{ + using SafeCast for uint256; + using SafeCast for int256; + using TransferUtils for IERC20; + using MathLib for *; + + ITermMaxMarket public market; + + IERC20 private ft; + IERC20 private xt; + IERC20 private debtToken; + IGearingToken private gt; + + OrderConfig private _orderConfig; + + uint64 private maturity; + + // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.order.ftReserve")) - 1)) & ~bytes32(uint256(0xff)) + uint256 private constant T_FT_RESERVE_STORE = 0x2a12e4f8e6ef46c978fd57eac04c67eb8dcdc9f0eec6327794e0ab372ed36000; + // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.order.xtReserve")) - 1)) & ~bytes32(uint256(0xff)) + uint256 private constant T_XT_RESERVE_STORE = 0x2688c417e2e5b2d9eeee9f203d038d530482d06e29ca0badc05b91bdc9593000; + + function setInitialFtReserve(uint256 ftReserve) private { + assembly { + tstore(T_FT_RESERVE_STORE, ftReserve) + } + } + + function setInitialXtReserve(uint256 xtReserve) private { + assembly { + tstore(T_XT_RESERVE_STORE, xtReserve) + } + } + + function getInitialFtReserve() private view returns (uint256 ftReserve) { + assembly { + ftReserve := tload(T_FT_RESERVE_STORE) + } + } + + function getInitialXtReserve() private view returns (uint256 xtReserve) { + assembly { + xtReserve := tload(T_XT_RESERVE_STORE) + } + } + + /// @notice Check if the market is borrowing allowed + modifier onlyBorrowingIsAllowed(OrderConfig memory config) { + if (config.curveCuts.lendCurveCuts.length == 0) { + revert BorrowIsNotAllowed(); + } + _; + } + + /// @notice Check if the market is lending allowed + modifier onlyLendingIsAllowed(OrderConfig memory config) { + if (config.curveCuts.borrowCurveCuts.length == 0) { + revert LendIsNotAllowed(); + } + _; + } + + /// @notice Check if the order is tradable + modifier isOpen() { + _requireNotPaused(); + if (block.timestamp >= maturity) { + revert TermIsNotOpen(); + } + _; + } + + modifier onlyMarket() { + if (msg.sender != address(market)) revert OnlyMarket(); + _; + } + + constructor() { + _disableInitializers(); + } + + function maker() public view returns (address) { + return owner(); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function initialize( + address, + IERC20[3] memory, + IGearingToken, + uint256, + ISwapCallback, + CurveCuts memory, + MarketConfig memory + ) external virtual override initializer { + revert OrderErrorsV2.UseOrderInitializationFunctionV2(); + } + + /** + * @inheritdoc ITermMaxOrderV2 + */ + function initialize( + address maker_, + IERC20[3] memory tokens, + IGearingToken gt_, + OrderConfig memory orderConfig_, + MarketConfig memory marketConfig + ) external virtual override initializer { + __Ownable_init_unchained(maker_); + __ReentrancyGuard_init_unchained(); + __Pausable_init_unchained(); + market = ITermMaxMarket(_msgSender()); + _updateCurve(orderConfig_.curveCuts); + + _orderConfig.feeConfig = marketConfig.feeConfig; + _orderConfig.maxXtReserve = orderConfig_.maxXtReserve; + _orderConfig.swapTrigger = orderConfig_.swapTrigger; + maturity = marketConfig.maturity; + ft = tokens[0]; + xt = tokens[1]; + debtToken = tokens[2]; + gt = gt_; + + orderConfig_.feeConfig = marketConfig.feeConfig; + emit OrderEventsV2.OrderInitialized(maker_, address(market), orderConfig_); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function orderConfig() external view virtual returns (OrderConfig memory) { + return _orderConfig; + } + + /** + * @inheritdoc ITermMaxOrder + */ + function tokenReserves() public view override returns (uint256, uint256) { + return (ft.balanceOf(address(this)), xt.balanceOf(address(this))); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function apr() external view virtual override returns (uint256 lendApr_, uint256 borrowApr_) { + uint256 daysToMaturity = _daysToMaturity(); + uint256 oriXtReserve = xt.balanceOf(address(this)); + + CurveCuts memory curveCuts = _orderConfig.curveCuts; + if (curveCuts.lendCurveCuts.length == 0) { + lendApr_ = 0; + } else { + uint256 lendCutId = TermMaxCurve.calcCutId(curveCuts.lendCurveCuts, oriXtReserve); + (, uint256 lendVXtReserve, uint256 lendVFtReserve) = TermMaxCurve.calcIntervalProps( + Constants.DECIMAL_BASE, daysToMaturity, curveCuts.lendCurveCuts[lendCutId], oriXtReserve + ); + lendApr_ = + ((lendVFtReserve * Constants.DECIMAL_BASE * Constants.DAYS_IN_YEAR) / (lendVXtReserve * daysToMaturity)); + } + if (curveCuts.borrowCurveCuts.length == 0) { + borrowApr_ = type(uint256).max; + } else { + uint256 borrowCutId = TermMaxCurve.calcCutId(curveCuts.borrowCurveCuts, oriXtReserve); + (, uint256 borrowVXtReserve, uint256 borrowVFtReserve) = TermMaxCurve.calcIntervalProps( + Constants.DECIMAL_BASE, daysToMaturity, curveCuts.borrowCurveCuts[borrowCutId], oriXtReserve + ); + + borrowApr_ = ( + (borrowVFtReserve * Constants.DECIMAL_BASE * Constants.DAYS_IN_YEAR) + / (borrowVXtReserve * daysToMaturity) + ); + } + } + + /** + * @inheritdoc ITermMaxOrder + */ + function updateOrder(OrderConfig memory newOrderConfig, int256 ftChangeAmt, int256 xtChangeAmt) + external + virtual + override + onlyOwner + { + _updateCurve(newOrderConfig.curveCuts); + if (ftChangeAmt > 0) { + ft.safeTransferFrom(msg.sender, address(this), ftChangeAmt.toUint256()); + } else if (ftChangeAmt < 0) { + ft.safeTransfer(msg.sender, (-ftChangeAmt).toUint256()); + } + if (xtChangeAmt > 0) { + xt.safeTransferFrom(msg.sender, address(this), xtChangeAmt.toUint256()); + } else if (xtChangeAmt < 0) { + xt.safeTransfer(msg.sender, (-xtChangeAmt).toUint256()); + } + _orderConfig.maxXtReserve = newOrderConfig.maxXtReserve; + _orderConfig.gtId = newOrderConfig.gtId; + _orderConfig.swapTrigger = newOrderConfig.swapTrigger; + emit UpdateOrder( + newOrderConfig.curveCuts, + ftChangeAmt, + xtChangeAmt, + newOrderConfig.gtId, + newOrderConfig.maxXtReserve, + newOrderConfig.swapTrigger + ); + } + + function _updateCurve(CurveCuts memory newCurveCuts) internal { + bytes32 newCurveCutsHash = keccak256(abi.encode(newCurveCuts)); + CurveCuts memory oldCurveCuts = _orderConfig.curveCuts; + if (keccak256(abi.encode(oldCurveCuts)) != newCurveCutsHash) { + if (newCurveCuts.lendCurveCuts.length > 0) { + if (newCurveCuts.lendCurveCuts[0].liqSquare == 0 || newCurveCuts.lendCurveCuts[0].xtReserve != 0) { + revert InvalidCurveCuts(); + } + } + for (uint256 i = 1; i < newCurveCuts.lendCurveCuts.length; i++) { + if ( + newCurveCuts.lendCurveCuts[i].liqSquare == 0 + || newCurveCuts.lendCurveCuts[i].xtReserve <= newCurveCuts.lendCurveCuts[i - 1].xtReserve + ) { + revert InvalidCurveCuts(); + } + /* + R := (x' + beta') ^ 2 * DECIMAL_BASE / (x' + beta) ^ 2 + L' ^ 2 := L ^ 2 * R / DECIMAL_BASE + */ + if ( + newCurveCuts.lendCurveCuts[i].liqSquare + != ( + newCurveCuts.lendCurveCuts[i - 1].liqSquare + * ( + newCurveCuts.lendCurveCuts[i].xtReserve.plusInt256(newCurveCuts.lendCurveCuts[i].offset) + ** 2 * Constants.DECIMAL_BASE + / newCurveCuts.lendCurveCuts[i].xtReserve.plusInt256( + newCurveCuts.lendCurveCuts[i - 1].offset + ) ** 2 + ) + ) / Constants.DECIMAL_BASE + ) revert InvalidCurveCuts(); + } + if (newCurveCuts.borrowCurveCuts.length > 0) { + if (newCurveCuts.borrowCurveCuts[0].liqSquare == 0 || newCurveCuts.borrowCurveCuts[0].xtReserve != 0) { + revert InvalidCurveCuts(); + } + } + for (uint256 i = 1; i < newCurveCuts.borrowCurveCuts.length; i++) { + if ( + newCurveCuts.borrowCurveCuts[i].liqSquare == 0 + || newCurveCuts.borrowCurveCuts[i].xtReserve <= newCurveCuts.borrowCurveCuts[i - 1].xtReserve + ) { + revert InvalidCurveCuts(); + } + if ( + newCurveCuts.borrowCurveCuts[i].liqSquare + != ( + newCurveCuts.borrowCurveCuts[i - 1].liqSquare + * ( + newCurveCuts.borrowCurveCuts[i].xtReserve.plusInt256(newCurveCuts.borrowCurveCuts[i].offset) + ** 2 * Constants.DECIMAL_BASE + / newCurveCuts.borrowCurveCuts[i].xtReserve.plusInt256( + newCurveCuts.borrowCurveCuts[i - 1].offset + ) ** 2 + ) + ) / Constants.DECIMAL_BASE + ) revert InvalidCurveCuts(); + } + _orderConfig.curveCuts = newCurveCuts; + } + } + + function updateFeeConfig(FeeConfig memory newFeeConfig) external virtual override onlyMarket { + _orderConfig.feeConfig = newFeeConfig; + emit UpdateFeeConfig(newFeeConfig); + } + + /// @notice Calculate how many days until expiration + function _daysToMaturity() internal view returns (uint256 daysToMaturity) { + daysToMaturity = (maturity - block.timestamp + Constants.SECONDS_IN_DAY - 1) / Constants.SECONDS_IN_DAY; + } + + /** + * @inheritdoc ITermMaxOrder + */ + function swapExactTokenToToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + uint128 tokenAmtIn, + uint128 minTokenOut, + uint256 deadline + ) external virtual override nonReentrant isOpen returns (uint256 netTokenOut) { + if (block.timestamp > deadline) revert DeadlineExpired(); + if (tokenIn == tokenOut) revert CantSwapSameToken(); + OrderConfig memory config = _orderConfig; + uint256 feeAmt; + if (tokenAmtIn != 0) { + // Store ft and xt reserve before swap + setInitialFtReserve(ft.balanceOf(address(this))); + setInitialXtReserve(xt.balanceOf(address(this))); + if (tokenIn == ft && tokenOut == debtToken) { + (netTokenOut, feeAmt) = _sellFt(tokenAmtIn, minTokenOut, msg.sender, recipient, config); + } else if (tokenIn == xt && tokenOut == debtToken) { + (netTokenOut, feeAmt) = _sellXt(tokenAmtIn, minTokenOut, msg.sender, recipient, config); + } else if (tokenIn == debtToken && tokenOut == ft) { + (netTokenOut, feeAmt) = _buyFt(tokenAmtIn, minTokenOut, msg.sender, recipient, config); + } else if (tokenIn == debtToken && tokenOut == xt) { + (netTokenOut, feeAmt) = _buyXt(tokenAmtIn, minTokenOut, msg.sender, recipient, config); + } else { + revert CantNotSwapToken(tokenIn, tokenOut); + } + // transfer fee to treasurer + ft.safeTransfer(market.config().treasurer, feeAmt); + /// @dev callback the changes of ft and xt reserve to trigger + if (address(_orderConfig.swapTrigger) != address(0)) { + uint256 ftReserve = ft.balanceOf(address(this)); + uint256 xtReserve = xt.balanceOf(address(this)); + int256 deltaFt = ftReserve.toInt256() - getInitialFtReserve().toInt256(); + int256 deltaXt = xtReserve.toInt256() - getInitialXtReserve().toInt256(); + _orderConfig.swapTrigger.afterSwap(ftReserve, xtReserve, deltaFt, deltaXt); + } + } else { + if (address(_orderConfig.swapTrigger) != address(0)) { + uint256 ftReserve = ft.balanceOf(address(this)); + uint256 xtReserve = xt.balanceOf(address(this)); + _orderConfig.swapTrigger.afterSwap(ftReserve, xtReserve, 0, 0); + } + } + + emit SwapExactTokenToToken( + tokenIn, tokenOut, msg.sender, recipient, tokenAmtIn, netTokenOut.toUint128(), feeAmt.toUint128() + ); + } + + function _buyFt( + uint256 debtTokenAmtIn, + uint256 minTokenOut, + address caller, + address recipient, + OrderConfig memory config + ) internal onlyLendingIsAllowed(config) returns (uint256 netOut, uint256 feeAmt) { + (netOut, feeAmt) = _buyToken(caller, recipient, debtTokenAmtIn, minTokenOut, config, _buyFtStep); + if (xt.balanceOf(address(this)) > config.maxXtReserve) { + revert XtReserveTooHigh(); + } + } + + function _buyXt( + uint256 debtTokenAmtIn, + uint256 minTokenOut, + address caller, + address recipient, + OrderConfig memory config + ) internal onlyBorrowingIsAllowed(config) returns (uint256 netOut, uint256 feeAmt) { + (netOut, feeAmt) = _buyToken(caller, recipient, debtTokenAmtIn, minTokenOut, config, _buyXtStep); + } + + function _sellFt( + uint256 ftAmtIn, + uint256 minDebtTokenOut, + address caller, + address recipient, + OrderConfig memory config + ) internal onlyBorrowingIsAllowed(config) returns (uint256 netOut, uint256 feeAmt) { + (netOut, feeAmt) = _sellToken(caller, recipient, ftAmtIn, minDebtTokenOut, config, _sellFtStep); + } + + function _sellXt( + uint256 xtAmtIn, + uint256 minDebtTokenOut, + address caller, + address recipient, + OrderConfig memory config + ) internal onlyLendingIsAllowed(config) returns (uint256 netOut, uint256 feeAmt) { + (netOut, feeAmt) = _sellToken(caller, recipient, xtAmtIn, minDebtTokenOut, config, _sellXtStep); + if (xt.balanceOf(address(this)) > config.maxXtReserve) { + revert XtReserveTooHigh(); + } + } + + function _buyToken( + address caller, + address recipient, + uint256 debtTokenAmtIn, + uint256 minTokenOut, + OrderConfig memory config, + function(uint, uint, uint, OrderConfig memory) internal view returns (uint, uint, IERC20) func + ) internal returns (uint256, uint256) { + uint256 daysToMaturity = _daysToMaturity(); + uint256 oriXtReserve = getInitialXtReserve(); + + (uint256 tokenAmtOut, uint256 feeAmt, IERC20 tokenOut) = + func(daysToMaturity, oriXtReserve, debtTokenAmtIn, config); + + uint256 netOut = tokenAmtOut + debtTokenAmtIn; + if (netOut < minTokenOut) revert UnexpectedAmount(minTokenOut, netOut); + + debtToken.safeTransferFrom(caller, address(this), debtTokenAmtIn); + + debtToken.safeIncreaseAllowance(address(market), debtTokenAmtIn); + market.mint(address(this), debtTokenAmtIn); + if (tokenOut == ft) { + uint256 ftReserve = getInitialFtReserve(); + _issueFtToSelf(ftReserve + debtTokenAmtIn, netOut + feeAmt, config); + } + + tokenOut.safeTransfer(recipient, netOut); + + return (netOut, feeAmt); + } + + function _buyFtStep(uint256 daysToMaturity, uint256 oriXtReserve, uint256 debtTokenAmtIn, OrderConfig memory config) + internal + view + returns (uint256 tokenAmtOut, uint256 feeAmt, IERC20 tokenOut) + { + FeeConfig memory feeConfig = config.feeConfig; + CurveCut[] memory cuts = config.curveCuts.borrowCurveCuts; + uint256 nif = Constants.DECIMAL_BASE - uint256(feeConfig.lendTakerFeeRatio); + (, tokenAmtOut) = TermMaxCurve.buyFt(nif, daysToMaturity, cuts, oriXtReserve, debtTokenAmtIn); + feeAmt = (tokenAmtOut * (Constants.DECIMAL_BASE + uint256(feeConfig.borrowMakerFeeRatio))) / nif - tokenAmtOut; + tokenOut = ft; + } + + function _buyXtStep(uint256 daysToMaturity, uint256 oriXtReserve, uint256 debtTokenAmtIn, OrderConfig memory config) + internal + view + returns (uint256 tokenAmtOut, uint256 feeAmt, IERC20 tokenOut) + { + FeeConfig memory feeConfig = config.feeConfig; + CurveCut[] memory cuts = config.curveCuts.lendCurveCuts; + uint256 nif = Constants.DECIMAL_BASE + uint256(feeConfig.borrowTakerFeeRatio); + uint256 deltaFt; + (tokenAmtOut, deltaFt) = TermMaxCurve.buyXt(nif, daysToMaturity, cuts, oriXtReserve, debtTokenAmtIn); + feeAmt = deltaFt - (deltaFt * (Constants.DECIMAL_BASE - uint256(feeConfig.lendMakerFeeRatio))) / nif; + tokenOut = xt; + } + + function _sellToken( + address caller, + address recipient, + uint256 tokenAmtIn, + uint256 minDebtTokenOut, + OrderConfig memory config, + function(uint, uint, uint, OrderConfig memory) internal view returns (uint, uint, IERC20) func + ) internal returns (uint256, uint256) { + uint256 daysToMaturity = _daysToMaturity(); + uint256 oriXtReserve = getInitialXtReserve(); + + (uint256 netOut, uint256 feeAmt, IERC20 tokenIn) = func(daysToMaturity, oriXtReserve, tokenAmtIn, config); + if (netOut < minDebtTokenOut) revert UnexpectedAmount(minDebtTokenOut, netOut); + + tokenIn.safeTransferFrom(caller, address(this), tokenAmtIn); + if (tokenIn == xt) { + uint256 ftReserve = getInitialFtReserve(); + _issueFtToSelf(ftReserve, netOut + feeAmt, config); + } + ITermMaxMarketV2(address(market)).burn(address(this), recipient, netOut); + return (netOut, feeAmt); + } + + function _sellFtStep(uint256 daysToMaturity, uint256 oriXtReserve, uint256 tokenAmtIn, OrderConfig memory config) + internal + view + returns (uint256 debtTokenAmtOut, uint256 feeAmt, IERC20 tokenIn) + { + FeeConfig memory feeConfig = config.feeConfig; + CurveCut[] memory cuts = config.curveCuts.lendCurveCuts; + uint256 nif = Constants.DECIMAL_BASE + uint256(feeConfig.borrowTakerFeeRatio); + uint256 deltaFt; + (debtTokenAmtOut, deltaFt) = TermMaxCurve.sellFt(nif, daysToMaturity, cuts, oriXtReserve, tokenAmtIn); + feeAmt = deltaFt - (deltaFt * (Constants.DECIMAL_BASE - uint256(feeConfig.lendMakerFeeRatio))) / nif; + tokenIn = ft; + } + + function _sellXtStep(uint256 daysToMaturity, uint256 oriXtReserve, uint256 tokenAmtIn, OrderConfig memory config) + internal + view + returns (uint256 debtTokenAmtOut, uint256 feeAmt, IERC20 tokenIn) + { + FeeConfig memory feeConfig = config.feeConfig; + CurveCut[] memory cuts = config.curveCuts.borrowCurveCuts; + uint256 nif = Constants.DECIMAL_BASE - uint256(feeConfig.lendTakerFeeRatio); + (, debtTokenAmtOut) = TermMaxCurve.sellXt(nif, daysToMaturity, cuts, oriXtReserve, tokenAmtIn); + feeAmt = (debtTokenAmtOut * (Constants.DECIMAL_BASE + uint256(feeConfig.borrowMakerFeeRatio))) / nif + - debtTokenAmtOut; + tokenIn = xt; + } + + /** + * @inheritdoc ITermMaxOrder + */ + function swapTokenToExactToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + uint128 tokenAmtOut, + uint128 maxTokenIn, + uint256 deadline + ) external virtual override nonReentrant isOpen returns (uint256 netTokenIn) { + if (block.timestamp > deadline) revert DeadlineExpired(); + if (tokenIn == tokenOut) revert CantSwapSameToken(); + OrderConfig memory config = _orderConfig; + uint256 feeAmt; + if (tokenAmtOut != 0 && maxTokenIn != 0) { + // Storage current ft and xt reserve + setInitialFtReserve(ft.balanceOf(address(this))); + setInitialXtReserve(xt.balanceOf(address(this))); + + if (tokenIn == debtToken && tokenOut == ft) { + (netTokenIn, feeAmt) = _buyExactFt(tokenAmtOut, maxTokenIn, msg.sender, recipient, config); + } else if (tokenIn == debtToken && tokenOut == xt) { + (netTokenIn, feeAmt) = _buyExactXt(tokenAmtOut, maxTokenIn, msg.sender, recipient, config); + } else if (tokenIn == ft && tokenOut == debtToken) { + (netTokenIn, feeAmt) = _sellFtForExactToken(tokenAmtOut, maxTokenIn, msg.sender, recipient, config); + } else if (tokenIn == xt && tokenOut == debtToken) { + (netTokenIn, feeAmt) = _sellXtForExactToken(tokenAmtOut, maxTokenIn, msg.sender, recipient, config); + } else { + revert CantNotSwapToken(tokenIn, tokenOut); + } + // transfer fee to treasurer + ft.safeTransfer(market.config().treasurer, feeAmt); + + /// @dev callback the changes of ft and xt reserve to trigger + if (address(_orderConfig.swapTrigger) != address(0)) { + uint256 ftReserve = ft.balanceOf(address(this)); + uint256 xtReserve = xt.balanceOf(address(this)); + int256 deltaFt = ftReserve.toInt256() - getInitialFtReserve().toInt256(); + int256 deltaXt = xtReserve.toInt256() - getInitialXtReserve().toInt256(); + _orderConfig.swapTrigger.afterSwap(ftReserve, xtReserve, deltaFt, deltaXt); + } + } else { + if (address(_orderConfig.swapTrigger) != address(0)) { + uint256 ftReserve = ft.balanceOf(address(this)); + uint256 xtReserve = xt.balanceOf(address(this)); + _orderConfig.swapTrigger.afterSwap(ftReserve, xtReserve, 0, 0); + } + } + + emit SwapTokenToExactToken( + tokenIn, tokenOut, msg.sender, recipient, tokenAmtOut, netTokenIn.toUint128(), feeAmt.toUint128() + ); + } + + function _buyExactFt( + uint256 tokenAmtOut, + uint256 maxTokenIn, + address caller, + address recipient, + OrderConfig memory config + ) internal onlyLendingIsAllowed(config) returns (uint256 netTokenIn, uint256 feeAmt) { + (netTokenIn, feeAmt) = _buyExactToken(caller, recipient, tokenAmtOut, maxTokenIn, config, _buyExactFtStep); + if (xt.balanceOf(address(this)) > config.maxXtReserve) { + revert XtReserveTooHigh(); + } + } + + function _buyExactXt( + uint256 tokenAmtOut, + uint256 maxTokenIn, + address caller, + address recipient, + OrderConfig memory config + ) internal onlyBorrowingIsAllowed(config) returns (uint256 netTokenIn, uint256 feeAmt) { + (netTokenIn, feeAmt) = _buyExactToken(caller, recipient, tokenAmtOut, maxTokenIn, config, _buyExactXtStep); + } + + function _buyExactToken( + address caller, + address recipient, + uint256 tokenAmtOut, + uint256 maxTokenIn, + OrderConfig memory config, + function(uint, uint, uint, OrderConfig memory) internal view returns (uint, uint, IERC20) func + ) internal returns (uint256, uint256) { + uint256 daysToMaturity = _daysToMaturity(); + uint256 oriXtReserve = getInitialXtReserve(); + + (uint256 netTokenIn, uint256 feeAmt, IERC20 tokenOut) = func(daysToMaturity, oriXtReserve, tokenAmtOut, config); + + if (netTokenIn > maxTokenIn) revert UnexpectedAmount(maxTokenIn, netTokenIn); + + debtToken.safeTransferFrom(caller, address(this), netTokenIn); + + debtToken.safeIncreaseAllowance(address(market), netTokenIn); + market.mint(address(this), netTokenIn); + if (tokenOut == ft) { + uint256 ftReserve = getInitialFtReserve(); + _issueFtToSelf(ftReserve + netTokenIn, tokenAmtOut + feeAmt, config); + } + + tokenOut.safeTransfer(recipient, tokenAmtOut); + + return (netTokenIn, feeAmt); + } + + function _buyExactFtStep(uint256 daysToMaturity, uint256 oriXtReserve, uint256 ftAmtOut, OrderConfig memory config) + internal + view + returns (uint256 debtTokenAmtIn, uint256 feeAmt, IERC20 tokenOut) + { + FeeConfig memory feeConfig = config.feeConfig; + CurveCut[] memory cuts = config.curveCuts.borrowCurveCuts; + uint256 nif = Constants.DECIMAL_BASE - uint256(feeConfig.lendTakerFeeRatio); + (uint256 deltaXt, uint256 negDeltaFt) = + TermMaxCurve.buyExactFt(nif, daysToMaturity, cuts, oriXtReserve, ftAmtOut); + debtTokenAmtIn = deltaXt; + feeAmt = (negDeltaFt * (Constants.DECIMAL_BASE + uint256(feeConfig.borrowMakerFeeRatio))) / nif - negDeltaFt; + tokenOut = ft; + } + + function _buyExactXtStep(uint256 daysToMaturity, uint256 oriXtReserve, uint256 xtAmtOut, OrderConfig memory config) + internal + view + returns (uint256 debtTokenAmtIn, uint256 feeAmt, IERC20 tokenOut) + { + FeeConfig memory feeConfig = config.feeConfig; + CurveCut[] memory cuts = config.curveCuts.lendCurveCuts; + uint256 nif = Constants.DECIMAL_BASE + uint256(feeConfig.borrowTakerFeeRatio); + (, uint256 deltaFt) = TermMaxCurve.buyExactXt(nif, daysToMaturity, cuts, oriXtReserve, xtAmtOut); + debtTokenAmtIn = deltaFt; + feeAmt = deltaFt - (deltaFt * (Constants.DECIMAL_BASE - uint256(feeConfig.lendMakerFeeRatio))) / nif; + tokenOut = xt; + } + + function _sellFtForExactToken( + uint256 debtTokenAmtOut, + uint256 maxFtIn, + address caller, + address recipient, + OrderConfig memory config + ) internal onlyBorrowingIsAllowed(config) returns (uint256 netIn, uint256 feeAmt) { + (netIn, feeAmt) = + _sellTokenForExactToken(caller, recipient, debtTokenAmtOut, maxFtIn, config, _sellFtForExactTokenStep); + } + + function _sellXtForExactToken( + uint256 debtTokenAmtOut, + uint256 maxXtIn, + address caller, + address recipient, + OrderConfig memory config + ) internal onlyLendingIsAllowed(config) returns (uint256 netIn, uint256 feeAmt) { + (netIn, feeAmt) = + _sellTokenForExactToken(caller, recipient, debtTokenAmtOut, maxXtIn, config, _sellXtForExactTokenStep); + if (xt.balanceOf(address(this)) > config.maxXtReserve) { + revert XtReserveTooHigh(); + } + } + + function _sellTokenForExactToken( + address caller, + address recipient, + uint256 debtTokenAmtOut, + uint256 maxTokenIn, + OrderConfig memory config, + function(uint, uint, uint, OrderConfig memory) internal view returns (uint, uint, IERC20) func + ) internal returns (uint256, uint256) { + uint256 daysToMaturity = _daysToMaturity(); + uint256 oriXtReserve = getInitialXtReserve(); + + (uint256 netTokenIn, uint256 feeAmt, IERC20 tokenIn) = + func(daysToMaturity, oriXtReserve, debtTokenAmtOut, config); + + if (netTokenIn > maxTokenIn) revert UnexpectedAmount(maxTokenIn, netTokenIn); + + tokenIn.safeTransferFrom(caller, address(this), netTokenIn); + if (tokenIn == xt) { + uint256 ftReserve = getInitialFtReserve(); + _issueFtToSelf(ftReserve, debtTokenAmtOut + feeAmt, config); + } + ITermMaxMarketV2(address(market)).burn(address(this), recipient, debtTokenAmtOut); + return (netTokenIn, feeAmt); + } + + function _sellFtForExactTokenStep( + uint256 daysToMaturity, + uint256 oriXtReserve, + uint256 debtTokenOut, + OrderConfig memory config + ) internal view returns (uint256 ftAmtIn, uint256 feeAmt, IERC20 tokenIn) { + FeeConfig memory feeConfig = config.feeConfig; + CurveCut[] memory cuts = config.curveCuts.lendCurveCuts; + uint256 nif = Constants.DECIMAL_BASE + uint256(feeConfig.borrowTakerFeeRatio); + + (, uint256 deltaFt) = + TermMaxCurve.sellFtForExactDebtToken(nif, daysToMaturity, cuts, oriXtReserve, debtTokenOut); + ftAmtIn = deltaFt + debtTokenOut; + + feeAmt = deltaFt - (deltaFt * (Constants.DECIMAL_BASE - uint256(feeConfig.lendMakerFeeRatio))) / nif; + tokenIn = ft; + } + + function _sellXtForExactTokenStep( + uint256 daysToMaturity, + uint256 oriXtReserve, + uint256 debtTokenOut, + OrderConfig memory config + ) internal view returns (uint256 xtAmtIn, uint256 feeAmt, IERC20 tokenIn) { + FeeConfig memory feeConfig = config.feeConfig; + CurveCut[] memory cuts = config.curveCuts.borrowCurveCuts; + uint256 nif = Constants.DECIMAL_BASE - uint256(feeConfig.lendTakerFeeRatio); + (uint256 deltaXt, uint256 negDeltaFt) = + TermMaxCurve.sellXtForExactDebtToken(nif, daysToMaturity, cuts, oriXtReserve, debtTokenOut); + xtAmtIn = deltaXt + debtTokenOut; + + feeAmt = (negDeltaFt * (Constants.DECIMAL_BASE + uint256(feeConfig.borrowMakerFeeRatio))) / nif - negDeltaFt; + tokenIn = xt; + } + + /** + * @notice Issue ft by existed gt. + * @notice This fuction will be triggered when ft reserve can not cover the output amount. + */ + function _issueFtToSelf(uint256 ftReserve, uint256 targetFtReserve, OrderConfig memory config) internal { + if (ftReserve >= targetFtReserve) return; + if (config.gtId == 0) revert CantNotIssueFtWithoutGt(); + uint256 debtAmtToIssue = ((targetFtReserve - ftReserve) * Constants.DECIMAL_BASE) + / (Constants.DECIMAL_BASE - market.mintGtFeeRatio()); + market.issueFtByExistedGt(address(this), (debtAmtToIssue).toUint128(), config.gtId); + setInitialFtReserve(targetFtReserve); + } + + function withdrawAssets(IERC20 token, address recipient, uint256 amount) external virtual onlyOwner { + if (token == debtToken) { + ITermMaxMarketV2(address(market)).burn(address(this), recipient, amount); + } else { + token.safeTransfer(recipient, amount); + } + emit WithdrawAssets(token, _msgSender(), recipient, amount); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function pause() external virtual override onlyOwner { + _pause(); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function unpause() external virtual override onlyOwner { + _unpause(); + } +} diff --git a/contracts/v2/access/AccessManagerV2.sol b/contracts/v2/access/AccessManagerV2.sol new file mode 100644 index 0000000..94b8cd4 --- /dev/null +++ b/contracts/v2/access/AccessManagerV2.sol @@ -0,0 +1,61 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "../../v1/access/AccessManager.sol"; +import {IOracleV2} from "../oracle/IOracleV2.sol"; + +/** + * @title TermMax Access Manager V2 + * @author Term Structure Labs + * @notice Extended access manager for TermMax V2 protocol with additional oracle and batch operations + * @dev Inherits from AccessManager V1 and adds V2-specific functionality for managing oracles and batch operations + */ +contract AccessManagerV2 is AccessManager { + /** + * @notice Batch pause/unpause multiple entities in a single transaction + * @dev Allows efficient management of multiple pausable contracts simultaneously + * @param entities Array of IPausable contracts to pause/unpause + * @param state True to unpause entities, false to pause them + * @custom:access Requires PAUSER_ROLE + * @custom:gas-optimization Uses a simple loop for batch operations + */ + function batchSetSwitch(IPausable[] calldata entities, bool state) external onlyRole(PAUSER_ROLE) { + if (state) { + for (uint256 i = 0; i < entities.length; ++i) { + entities[i].unpause(); + } + } else { + for (uint256 i = 0; i < entities.length; ++i) { + entities[i].pause(); + } + } + } + + /** + * @notice Submit a pending oracle configuration for a specific asset + * @dev Allows oracle managers to propose new oracle configurations that can be activated later + * @param aggregator The oracle aggregator contract to submit the pending oracle to + * @param asset The asset address for which the oracle is being configured + * @param oracle The oracle configuration structure containing price feed details + * @custom:access Requires ORACLE_ROLE + * @custom:security Oracle updates go through a pending mechanism for security + */ + function submitPendingOracle(IOracleV2 aggregator, address asset, IOracleV2.Oracle memory oracle) + external + onlyRole(ORACLE_ROLE) + { + aggregator.submitPendingOracle(asset, oracle); + } + + /** + * @notice Revoke a pending oracle configuration for a specific asset + * @dev Allows oracle managers to cancel pending oracle updates before they are activated + * @param aggregator The oracle aggregator contract to revoke the pending oracle from + * @param asset The asset address for which the pending oracle should be revoked + * @custom:access Requires ORACLE_ROLE + * @custom:security Provides a way to cancel erroneous oracle submissions + */ + function revokePendingOracle(IOracleV2 aggregator, address asset) external onlyRole(ORACLE_ROLE) { + aggregator.revokePendingOracle(asset); + } +} diff --git a/contracts/v2/errors/GearingTokenErrorsV2.sol b/contracts/v2/errors/GearingTokenErrorsV2.sol new file mode 100644 index 0000000..28af762 --- /dev/null +++ b/contracts/v2/errors/GearingTokenErrorsV2.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +interface GearingTokenErrorsV2 { + /// @notice Error for Liquidation LTV too excess 100% + error InvalidLiquidationLtv(); + /// @notice Error for merge empty Gearing Token id array + error GtIdArrayIsEmpty(); + /// @notice Error for Gearing Token is expired + error GtIsExpired(); +} diff --git a/contracts/v2/errors/OrderErrorsV2.sol b/contracts/v2/errors/OrderErrorsV2.sol new file mode 100644 index 0000000..d3f40b1 --- /dev/null +++ b/contracts/v2/errors/OrderErrorsV2.sol @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title Order Errors v2 + * @author Term Structure Labs + */ +interface OrderErrorsV2 { + /// @notice Error thrown when an invalid or unsupported functions is called + error UseOrderInitializationFunctionV2(); +} diff --git a/contracts/v2/errors/RouterErrorsV2.sol b/contracts/v2/errors/RouterErrorsV2.sol new file mode 100644 index 0000000..06716c6 --- /dev/null +++ b/contracts/v2/errors/RouterErrorsV2.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +interface RouterErrorsV2 { + error CallbackAddressNotMatch(); + error CallbackReentrant(); +} diff --git a/contracts/v2/errors/TermMaxTokenErrors.sol b/contracts/v2/errors/TermMaxTokenErrors.sol new file mode 100644 index 0000000..d0f5a1f --- /dev/null +++ b/contracts/v2/errors/TermMaxTokenErrors.sol @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title TermMax Token Errors + * @author Term Structure Labs + */ +interface TermMaxTokenErrors { + /// @notice Error thrown when an invalid or unsupported token is used + error InvalidToken(); + + /** + * @notice Error thrown when there's insufficient income available for a requested operation + * @dev Used in income withdrawal scenarios where requested amount exceeds available balance + * @param availableAmount The current available income amount + * @param requestedAmount The amount that was requested but cannot be fulfilled + */ + error InsufficientIncomeAmount(uint256 availableAmount, uint256 requestedAmount); + + /** + * @notice Error thrown when an Aave withdrawal operation fails or returns unexpected amounts + * @dev Indicates a mismatch between expected and actual amounts received from Aave protocol + * @param aTokenAmount The amount of aTokens that were attempted to be withdrawn + * @param recieivedAmount The actual amount received from the withdrawal (likely misspelled 'received') + */ + error AaveWithdrawFailed(uint256 aTokenAmount, uint256 recieivedAmount); + + /// @notice Error thrown when trying to accept a change that has no pending value + error NoPendingValue(); + + /// @notice Error thrown when trying to accept a change before the timelock period has elapsed + error TimelockNotElapsed(); + + /// @notice Error thrown when attempting to submit a change that's already pending + error AlreadyPending(); + + /// @notice Error thrown when the implementation address is invalid + error InvalidImplementation(); +} diff --git a/contracts/v2/errors/VaultErrorsV2.sol b/contracts/v2/errors/VaultErrorsV2.sol new file mode 100644 index 0000000..d4d6998 --- /dev/null +++ b/contracts/v2/errors/VaultErrorsV2.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title Vault Errors V2 + * @author Term Structure Labs + */ +interface VaultErrorsV2 { + /// @notice Error thrown when the parameters of updating orders are invalid + error ArrayLengthMismatch(); + /// @notice Error thrown when dealing unexpected collateral + error CollateralIsAsset(); + /// @notice Error thrown when initializing the vault using V1 initializing function + error UseVaultInitialParamsV2(); + /// @notice Error thrown when calling functions about supply queue + error SupplyQueueNoLongerSupported(); + /// @notice Error thrown when calling functions about withdrawal queue + error WithdrawalQueueNoLongerSupported(); + /// @notice Error thrown when calling apr function + error UseApyInsteadOfApr(); + /// @notice Error thrown when the APY is too low + error ApyTooLow(uint256 apy, uint256 minApy); + /// @notice Error thrown when the idle fund rate is too low + error IdleFundRateTooLow(uint256 idleFundRate, uint256 minIdleFundRate); +} diff --git a/contracts/v2/events/FactoryEventsV2.sol b/contracts/v2/events/FactoryEventsV2.sol new file mode 100644 index 0000000..95eb9bc --- /dev/null +++ b/contracts/v2/events/FactoryEventsV2.sol @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {MarketInitialParams} from "../../v1/storage/TermMaxStorage.sol"; +import {VaultInitialParamsV2} from "../storage/TermMaxStorageV2.sol"; + +/** + * @title Factory Events Interface V2 + * @notice Events emitted by the TermMax factory contracts + */ +interface FactoryEventsV2 { + /** + * @notice Emitted when a new market is created + * @param market The address of the newly created market + * @param collateral The address of the collateral token + * @param debtToken The debt token interface + * @param params The initial parameters for the market + */ + event MarketCreated( + address indexed market, address indexed collateral, IERC20 indexed debtToken, MarketInitialParams params + ); + + /** + * @notice Emitted when a new vault is created + * @param vault The address of the newly created vault + * @param creator The address of the vault creator + * @param initialParams The initial parameters used to configure the vault + */ + event VaultCreated(address indexed vault, address indexed creator, VaultInitialParamsV2 initialParams); + + /** + * @notice Emitted when a new price feed is created + * @param priceFeed The address of the newly created price feed contract + */ + event PriceFeedCreated(address indexed priceFeed); +} diff --git a/contracts/v2/events/GearingTokenEventsV2.sol b/contracts/v2/events/GearingTokenEventsV2.sol new file mode 100644 index 0000000..e2fc723 --- /dev/null +++ b/contracts/v2/events/GearingTokenEventsV2.sol @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title Gearing Token Events V2 + * @author Term Structure Labs + * @notice Interface defining events for Gearing Token operations in TermMax V2 protocol + */ +interface GearingTokenEventsV2 { + /** + * @notice Emitted when a new Gearing Token is initialized + * @dev Fired during the setup of a new gearing token with its market association and metadata + * @param market The address of the TermMax market associated with this gearing token + * @param name The human-readable name of the gearing token + * @param symbol The trading symbol of the gearing token + * @param initialData Additional initialization data specific to the token setup + */ + event GearingTokenInitialized(address indexed market, string name, string symbol, bytes initialData); + + /** + * @notice Emitted when repaying the debt of a Gearing Token + * @dev Tracks standard debt repayment operations for accounting and monitoring purposes + * @param id The unique identifier of the Gearing Token position + * @param repayAmt The amount of debt being repaid (in the debt token denomination) + * @param byDebtToken True if repaying using debt tokens, false if using bond tokens + * @param repayAll True if this repayment closes the entire debt position, false for partial repayment + */ + event Repay(uint256 indexed id, uint256 repayAmt, bool byDebtToken, bool repayAll); + + /** + * @notice Emitted when executing a flash repayment operation + * @dev Flash repay allows atomic debt repayment with collateral removal in a single transaction + * @param id The unique identifier of the Gearing Token position being repaid + * @param caller The address that initiated the flash repayment transaction + * @param repayAmt The amount of debt being repaid (uint128 for gas optimization) + * @param byDebtToken True if repaying using debt tokens, false if using bond tokens + * @param repayAll True if this repayment closes the entire debt position, false for partial repayment + * @param removedCollateral Encoded data about collateral that was removed during the flash repay operation + */ + event FlashRepay( + uint256 indexed id, + address indexed caller, + uint128 repayAmt, + bool byDebtToken, + bool repayAll, + bytes removedCollateral + ); +} diff --git a/contracts/v2/events/OrderEventsV2.sol b/contracts/v2/events/OrderEventsV2.sol new file mode 100644 index 0000000..9c726fd --- /dev/null +++ b/contracts/v2/events/OrderEventsV2.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {OrderConfig} from "../../v1/storage/TermMaxStorage.sol"; + +/** + * @title Order Events v2 + * @author Term Structure Labs + */ +interface OrderEventsV2 { + /// @notice Emitted when an order is initialized + /// @param maker The address of the maker who created the order + /// @param market The address of the market associated with the order + /// @param orderConfig The configuration of the order + event OrderInitialized(address indexed maker, address indexed market, OrderConfig orderConfig); +} diff --git a/contracts/v2/events/RouterEventsV2.sol b/contracts/v2/events/RouterEventsV2.sol new file mode 100644 index 0000000..03d5008 --- /dev/null +++ b/contracts/v2/events/RouterEventsV2.sol @@ -0,0 +1,23 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {OrderConfig} from "../../v1/storage/TermMaxStorage.sol"; + +/** + * @title Router Events V2 + * @author Term Structure Labs + * @notice Interface defining events for the TermMax V2 protocol's router operations + */ +interface RouterEventsV2 { + /** + * @notice Emitted when a new order is placed in the TermMax V2 protocol + * @dev This event is triggered when a user places an order, providing details about the maker, + * the order itself, the market involved, and the configuration of the order. + * @param maker The address of the user who placed the order + * @param order The address of the new order contract + * @param market The address of the market where this order is placed + * @param gtId The id of the gearing token + * @param config The configuration details of the order, encapsulated in an OrderConfig struct + */ + event PlaceOrder(address indexed maker, address indexed order, address market, uint256 gtId, OrderConfig config); +} diff --git a/contracts/v2/events/TermMaxTokenEvents.sol b/contracts/v2/events/TermMaxTokenEvents.sol new file mode 100644 index 0000000..f2af610 --- /dev/null +++ b/contracts/v2/events/TermMaxTokenEvents.sol @@ -0,0 +1,74 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title TermMax Token Events + * @author Term Structure Labs + * @notice Interface defining events for TermMax token operations and lifecycle management + * @dev Contains events for token initialization, minting/burning, income withdrawal, buffer management, and upgrade processes + */ +interface TermMaxTokenEvents { + /** + * @notice Emitted when a TermMax token is initialized + * @dev Fired during the initial setup of a TermMax token contract + * @param admin The address of the administrator managing the token + * @param underlying The address of the underlying asset (e.g., USDC for tmxUSDC) + */ + event TermMaxTokenInitialized(address indexed admin, address indexed underlying); + + /** + * @notice Emitted when tokens are minted to an address + * @dev Tracks token creation events for accounting and monitoring purposes + * @param to The recipient address receiving the newly minted tokens + * @param amount The amount of tokens minted (in token's native decimals) + */ + event Mint(address indexed to, uint256 amount); + + /** + * @notice Emitted when tokens are burned from an address + * @dev Tracks token destruction events for accounting and monitoring purposes + * @param to The address from which tokens are being burned + * @param amount The amount of tokens burned (in token's native decimals) + */ + event Burn(address indexed to, uint256 amount); + + /** + * @notice Emitted when income is withdrawn from the token contract + * @dev Tracks income distribution events, typically from yield-generating activities + * @param to The recipient address receiving the income withdrawal + * @param amount The amount of income withdrawn (in underlying asset denomination) + */ + event WithdrawIncome(address indexed to, uint256 amount); + + /** + * @notice Emitted when buffer configuration parameters are updated + * @dev Buffer configuration manages reserve levels for operational stability + * @param minimumBuffer The minimum buffer threshold required + * @param maximumBuffer The maximum buffer threshold allowed + * @param buffer The current buffer amount after the update + */ + event UpdateBufferConfig(uint256 minimumBuffer, uint256 maximumBuffer, uint256 buffer); + + /** + * @notice Event emitted when a new implementation upgrade is submitted with timelock + * @dev Part of the upgrade mechanism that requires timelock for security + * @param newImplementation The address of the new implementation contract + * @param validAt The timestamp when the upgrade can be executed (after timelock period) + */ + event SubmitUpgrade(address indexed newImplementation, uint64 validAt); + + /** + * @notice Event emitted when a pending upgrade is accepted + * @dev Confirms successful execution of a previously submitted upgrade + * @param caller The address that executed the upgrade acceptance + * @param newImplementation The address of the implementation that was activated + */ + event AcceptUpgrade(address indexed caller, address indexed newImplementation); + + /** + * @notice Event emitted when a pending upgrade is revoked + * @dev Allows cancellation of a pending upgrade before execution + * @param caller The address that revoked the pending upgrade + */ + event RevokeUpgrade(address indexed caller); +} diff --git a/contracts/v2/events/VaultEventsV2.sol b/contracts/v2/events/VaultEventsV2.sol new file mode 100644 index 0000000..2367c4a --- /dev/null +++ b/contracts/v2/events/VaultEventsV2.sol @@ -0,0 +1,55 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title Vault Events V2 Interface + * @notice Additional events for TermMax vault V2 operations + */ +interface VaultEventsV2 { + /** + * @notice Emitted when a new minimum APY is proposed + * @param newMinApy The proposed minimum APY + * @param validAt The timestamp when the minimum APY change will take effect + */ + event SubmitMinApy(uint64 newMinApy, uint64 validAt); + + /** + * @notice Emitted when the minimum APY is updated + * @param caller The address that updated the minimum APY + * @param newMinApy The new minimum APY value + */ + event SetMinApy(address indexed caller, uint64 newMinApy); + + /** + * @notice Emitted when a new minimum idle fund rate is proposed + * @param newMinIdleFundRate The proposed minimum idle fund rate + * @param validAt The timestamp when the minimum idle fund rate change will take effect + */ + event SubmitMinIdleFundRate(uint64 newMinIdleFundRate, uint64 validAt); + + /** + * @notice Emitted when the minimum idle fund rate is updated + * @param caller The address that updated the minimum idle fund rate + * @param newMinIdleFundRate The new minimum idle fund rate value + */ + event SetMinIdleFundRate(address indexed caller, uint64 newMinIdleFundRate); + + /** + * @notice Emitted when a pending minimum APY change is revoked + * @param caller The address that initiated the revocation + */ + event RevokePendingMinApy(address indexed caller); + + /** + * @notice Emitted when a pending minimum idle fund rate change is revoked + * @param caller The address that initiated the revocation + */ + event RevokePendingMinIdleFundRate(address indexed caller); + + /** + * @notice Emitted when accrued interest is calculated + * @param newAccretingPrincipal The updated accreting principal + * @param newPerformanceFee The updated performance fee + */ + event AccruedInterest(uint256 newAccretingPrincipal, uint256 newPerformanceFee); +} diff --git a/contracts/v2/extensions/aave/IAaveV3Minimal.sol b/contracts/v2/extensions/aave/IAaveV3Minimal.sol new file mode 100644 index 0000000..56d979f --- /dev/null +++ b/contracts/v2/extensions/aave/IAaveV3Minimal.sol @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +interface IAaveV3Minimal { + struct ReserveData { + //stores the reserve configuration + ReserveConfigurationMap configuration; + //the liquidity index. Expressed in ray + uint128 liquidityIndex; + //the current supply rate. Expressed in ray + uint128 currentLiquidityRate; + //variable borrow index. Expressed in ray + uint128 variableBorrowIndex; + //the current variable borrow rate. Expressed in ray + uint128 currentVariableBorrowRate; + //the current stable borrow rate. Expressed in ray + uint128 currentStableBorrowRate; + //timestamp of last update + uint40 lastUpdateTimestamp; + //the id of the reserve. Represents the position in the list of the active reserves + uint16 id; + //aToken address + address aTokenAddress; + //stableDebtToken address + address stableDebtTokenAddress; + //variableDebtToken address + address variableDebtTokenAddress; + //address of the interest rate strategy + address interestRateStrategyAddress; + //the current treasury balance, scaled + uint128 accruedToTreasury; + //the outstanding unbacked aTokens minted through the bridging feature + uint128 unbacked; + //the outstanding debt borrowed against this asset in isolation mode + uint128 isolationModeTotalDebt; + } + + struct ReserveConfigurationMap { + //bit 0-15: LTV + //bit 16-31: Liq. threshold + //bit 32-47: Liq. bonus + //bit 48-55: Decimals + //bit 56: reserve is active + //bit 57: reserve is frozen + //bit 58: borrowing is enabled + //bit 59: stable rate borrowing enabled + //bit 60: asset is paused + //bit 61: borrowing in isolation mode is enabled + //bit 62: siloed borrowing enabled + //bit 63: flashloaning enabled + //bit 64-79: reserve factor + //bit 80-115 borrow cap in whole tokens, borrowCap == 0 => no cap + //bit 116-151 supply cap in whole tokens, supplyCap == 0 => no cap + //bit 152-167 liquidation protocol fee + //bit 168-175 eMode category + //bit 176-211 unbacked mint cap in whole tokens, unbackedMintCap == 0 => minting disabled + //bit 212-251 debt ceiling for isolation mode with (ReserveConfiguration::DEBT_CEILING_DECIMALS) decimals + //bit 252-255 unused + uint256 data; + } + + /** + * @notice Returns the state and configuration of the reserve + * @param asset The address of the underlying asset of the reserve + * @return The state and configuration data of the reserve + */ + function getReserveData(address asset) external view returns (ReserveData memory); + + /** + * @notice Supplies an `amount` of underlying asset into the reserve, receiving in return overlying aTokens. + * - E.g. User supplies 100 USDC and gets in return 100 aUSDC + * @param asset The address of the underlying asset to supply + * @param amount The amount to be supplied + * @param onBehalfOf The address that will receive the aTokens, same as msg.sender if the user + * wants to receive them on his own wallet, or a different address if the beneficiary of aTokens + * is a different wallet + * @param referralCode Code used to register the integrator originating the operation, for potential rewards. + * 0 if the action is executed directly by the user, without any middle-man + */ + function supply(address asset, uint256 amount, address onBehalfOf, uint16 referralCode) external; + + /** + * @notice Withdraws an `amount` of underlying asset from the reserve, burning the equivalent aTokens owned + * E.g. User has 100 aUSDC, calls withdraw() and receives 100 USDC, burning the 100 aUSDC + * @param asset The address of the underlying asset to withdraw + * @param amount The underlying amount to be withdrawn + * - Send the value type(uint256).max in order to withdraw the whole aToken balance + * @param to The address that will receive the underlying, same as msg.sender if the user + * wants to receive it on his own wallet, or a different address if the beneficiary is a + * different wallet + * @return The final amount withdrawn + */ + function withdraw(address asset, uint256 amount, address to) external returns (uint256); +} diff --git a/contracts/v2/extensions/pendle/PendleHelper.sol b/contracts/v2/extensions/pendle/PendleHelper.sol new file mode 100644 index 0000000..770819f --- /dev/null +++ b/contracts/v2/extensions/pendle/PendleHelper.sol @@ -0,0 +1,39 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "@pendle/core-v2/contracts/interfaces/IPAllActionV3.sol"; + +abstract contract PendleHelper { + // EmptySwap means no swap aggregator is involved + SwapData public emptySwap; + + // EmptyLimit means no limit order is involved + LimitOrderData public emptyLimit; + + // DefaultApprox means no off-chain preparation is involved, more gas consuming (~ 180k gas) + ApproxParams public defaultApprox = ApproxParams(0, type(uint256).max, 0, 256, 1e14); + + /// @notice create a simple TokenInput struct without using any aggregators. For more info please refer to + /// IPAllActionTypeV3.sol + function createTokenInputStruct(address tokenIn, uint256 netTokenIn) + internal + pure + returns (TokenInput memory input) + { + input.tokenIn = tokenIn; + input.netTokenIn = netTokenIn; + input.tokenMintSy = tokenIn; + } + + /// @notice create a simple TokenOutput struct without using any aggregators. For more info please refer to + /// IPAllActionTypeV3.sol + function createTokenOutputStruct(address tokenOut, uint256 minTokenOut) + internal + pure + returns (TokenOutput memory output) + { + output.tokenOut = tokenOut; + output.minTokenOut = minTokenOut; + output.tokenRedeemSy = tokenOut; + } +} diff --git a/contracts/v2/factory/ITermMaxVaultFactoryV2.sol b/contracts/v2/factory/ITermMaxVaultFactoryV2.sol new file mode 100644 index 0000000..1833925 --- /dev/null +++ b/contracts/v2/factory/ITermMaxVaultFactoryV2.sol @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {VaultInitialParamsV2} from "../storage/TermMaxStorageV2.sol"; + +/** + * @title TermMax Vault Factory Interface v2 + * @author Term Structure Labs + * @notice Interface for creating new TermMax vaults + */ +interface ITermMaxVaultFactoryV2 { + /** + * @notice The implementation of TermMax Vault contract + */ + function TERMMAX_VAULT_IMPLEMENTATION() external view returns (address); + + /** + * @notice Predict the address of a new TermMax vault + * @param deployer The address of the vault deployer + * @param asset The address of the asset + * @param name The name of the vault + * @param symbol The symbol of the vault + * @param salt The salt used to create the vault + * @return vault The predicted address of the vault + */ + function predictVaultAddress( + address deployer, + address asset, + string memory name, + string memory symbol, + uint256 salt + ) external view returns (address vault); + + /** + * @notice Creates a new TermMax vault with the specified parameters + * @param initialParams Initial parameters for vault configuration + * @param salt The salt used to create the vault + * @return address The address of the newly created vault + */ + function createVault(VaultInitialParamsV2 memory initialParams, uint256 salt) external returns (address); +} diff --git a/contracts/v2/factory/TermMaxFactoryV2.sol b/contracts/v2/factory/TermMaxFactoryV2.sol new file mode 100644 index 0000000..6140d1c --- /dev/null +++ b/contracts/v2/factory/TermMaxFactoryV2.sol @@ -0,0 +1,123 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Ownable, Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; +import {GearingTokenWithERC20V2} from "../tokens/GearingTokenWithERC20V2.sol"; +import {MarketInitialParams} from "../../v1/storage/TermMaxStorage.sol"; +import {FactoryErrors} from "../../v1/errors/FactoryErrors.sol"; +import {FactoryEvents} from "../../v1/events/FactoryEvents.sol"; +import {ITermMaxMarket} from "../../v1/ITermMaxMarket.sol"; +import {ITermMaxFactory} from "../../v1/factory/ITermMaxFactory.sol"; +import {FactoryEventsV2} from "../events/FactoryEventsV2.sol"; + +/** + * @title TermMax Factory V2 + * @author Term Structure Labs + * @notice Factory contract for creating TermMax V2 markets with enhanced functionality + * @dev Manages market deployment, gearing token implementations, and market configuration validation + * Inherits from V1 factory interface while adding V2-specific features for improved market creation + */ +contract TermMaxFactoryV2 is Ownable2Step, ITermMaxFactory, FactoryEventsV2 { + /// @notice Constant key for the default ERC20 gearing token implementation + bytes32 constant GT_ERC20 = keccak256("GearingTokenWithERC20"); + + /// @notice The implementation of TermMax Market contract used as template for cloning + /// @dev This is set once during construction and cannot be changed + address public immutable TERMMAX_MARKET_IMPLEMENTATION; + + /// @notice Mapping of gearing token implementation names to their contract addresses + /// @dev Based on the abstract GearingToken contract, different GearingTokens can be adapted + /// to various collaterals, such as ERC20 tokens and ERC721 tokens + /// @dev Keys are keccak256 hashes of implementation names for gas efficiency + mapping(bytes32 => address) public gtImplements; + + /** + * @notice Constructs the TermMax Factory V2 with initial configurations + * @dev Sets up the factory with a market implementation and deploys the default ERC20 gearing token + * @param admin The address that will have administrative privileges over the factory + * @param TERMMAX_MARKET_IMPLEMENTATION_ The address of the TermMax market implementation contract + * @custom:security Only the admin can create markets and manage gearing token implementations + */ + constructor(address admin, address TERMMAX_MARKET_IMPLEMENTATION_) Ownable(admin) { + if (TERMMAX_MARKET_IMPLEMENTATION_ == address(0)) { + revert FactoryErrors.InvalidImplementation(); + } + TERMMAX_MARKET_IMPLEMENTATION = TERMMAX_MARKET_IMPLEMENTATION_; + + // Deploy and register the default ERC20 gearing token implementation + gtImplements[GT_ERC20] = address(new GearingTokenWithERC20V2()); + } + + /** + * @notice Registers a new gearing token implementation with a given name + * @dev Allows the factory to support different types of gearing tokens for various collateral types + * @param gtImplementName The string name of the gearing token implementation + * @param gtImplement The contract address of the gearing token implementation + * @custom:access Only the factory owner can register new implementations + * @custom:events Emits SetGtImplement event for tracking implementation changes + */ + function setGtImplement(string memory gtImplementName, address gtImplement) external onlyOwner { + bytes32 key = keccak256(abi.encodePacked(gtImplementName)); + gtImplements[key] = gtImplement; + emit FactoryEvents.SetGtImplement(key, gtImplement); + } + + /** + * @notice Predicts the address where a market will be deployed before actual creation + * @dev Uses CREATE2 deterministic deployment to calculate the future market address + * @param deployer The address that will deploy the market (msg.sender during createMarket) + * @param collateral The address of the collateral token for the market + * @param debtToken The address of the debt token for the market + * @param maturity The maturity timestamp of the market + * @param salt Additional salt value for address generation uniqueness + * @return market The predicted address where the market will be deployed + * @custom:view This is a view function that doesn't modify state + */ + function predictMarketAddress( + address deployer, + address collateral, + address debtToken, + uint64 maturity, + uint256 salt + ) external view returns (address market) { + return Clones.predictDeterministicAddress( + TERMMAX_MARKET_IMPLEMENTATION, keccak256(abi.encode(deployer, collateral, debtToken, maturity, salt)) + ); + } + + /** + * @notice Creates a new TermMax market with specified parameters + * @dev Clones the market implementation and initializes it with the provided parameters + * @param gtKey The key identifying which gearing token implementation to use + * @param params The initial parameters for market configuration including collateral, debt token, and settings + * @param salt Additional entropy for deterministic address generation + * @return market The address of the newly created market contract + * @custom:access Only the factory owner can create new markets + * @custom:validation Validates that the requested gearing token implementation exists + * @custom:events Emits CreateMarket event with market details for indexing and monitoring + */ + function createMarket(bytes32 gtKey, MarketInitialParams memory params, uint256 salt) + external + onlyOwner + returns (address market) + { + // Retrieve the gearing token implementation for the requested key + params.gtImplementation = gtImplements[gtKey]; + if (params.gtImplementation == address(0)) { + revert FactoryErrors.CantNotFindGtImplementation(); + } + + // Deploy market using CREATE2 for deterministic addressing + market = Clones.cloneDeterministic( + TERMMAX_MARKET_IMPLEMENTATION, + keccak256(abi.encode(msg.sender, params.collateral, params.debtToken, params.marketConfig.maturity, salt)) + ); + + // Initialize the newly deployed market with provided parameters + ITermMaxMarket(market).initialize(params); + + // Emit event for market creation tracking + emit FactoryEventsV2.MarketCreated(market, params.collateral, params.debtToken, params); + } +} diff --git a/contracts/v2/factory/TermMaxPriceFeedFactoryV2.sol b/contracts/v2/factory/TermMaxPriceFeedFactoryV2.sol new file mode 100644 index 0000000..03768bd --- /dev/null +++ b/contracts/v2/factory/TermMaxPriceFeedFactoryV2.sol @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {TermMaxERC4626PriceFeed} from "../oracle/priceFeeds/TermMaxERC4626PriceFeed.sol"; +import {TermMaxPriceFeedConverter} from "../oracle/priceFeeds/TermMaxPriceFeedConverter.sol"; +import {TermMaxPTPriceFeed} from "../oracle/priceFeeds/TermMaxPTPriceFeed.sol"; +import {FactoryEventsV2} from "../events/FactoryEventsV2.sol"; + +/** + * @title TermMax Price Feed Factory V2 + * @author Term Structure Labs + * @notice Factory contract for creating various types of price feeds in the TermMax V2 protocol + * @dev Provides standardized creation methods for ERC4626 vault price feeds, price feed converters, and Pendle PT price feeds + * All price feeds implement the ITermMaxPriceFeed interface for consistency + */ +contract TermMaxPriceFeedFactoryV2 { + /** + * @notice Creates a price feed for ERC4626 vaults + * @dev Deploys a TermMaxERC4626PriceFeed that calculates vault token prices based on the underlying asset price and vault exchange rate + * @param _assetPriceFeed The address of the underlying asset's price feed (e.g., USDC/USD feed) + * @param _vault The address of the ERC4626 vault contract + * @return The address of the newly deployed ERC4626 price feed + * @custom:usage Used for vault tokens like stETH, rETH, or other yield-bearing assets that implement ERC4626 + */ + function createPriceFeedWithERC4626(address _assetPriceFeed, address _vault) external returns (address) { + address priceFeed = address(new TermMaxERC4626PriceFeed(_assetPriceFeed, _vault)); + emit FactoryEventsV2.PriceFeedCreated(priceFeed); + return priceFeed; + } + + /** + * @notice Creates a price feed converter that chains two price feeds together + * @dev Deploys a TermMaxPriceFeedConverter that multiplies prices from two feeds (A->B and B->C to get A->C) + * @param _aTokenToBTokenPriceFeed The first price feed in the chain (token A to token B) + * @param _bTokenToCTokenPriceFeed The second price feed in the chain (token B to token C) + * @param _asset The address of the asset being priced (token A) + * @return The address of the newly deployed price feed converter + * @custom:example Converting stETH to USD: stETH->ETH feed × ETH->USD feed = stETH->USD price + * @custom:precision Final price maintains 8 decimal precision regardless of input feed decimals + */ + function createPriceFeedConverter( + address _aTokenToBTokenPriceFeed, + address _bTokenToCTokenPriceFeed, + address _asset + ) external returns (address) { + address priceFeed = + address(new TermMaxPriceFeedConverter(_aTokenToBTokenPriceFeed, _bTokenToCTokenPriceFeed, _asset)); + emit FactoryEventsV2.PriceFeedCreated(priceFeed); + return priceFeed; + } + + /** + * @notice Creates a price feed for Pendle Principal Tokens (PT) + * @dev Deploys a TermMaxPTPriceFeed that calculates PT prices using Pendle's oracle system and underlying asset prices + * @param _pendlePYLpOracle The address of the Pendle PY LP oracle contract + * @param _market The address of the Pendle market contract for the specific PT + * @param _duration The TWAP duration in seconds for price calculation stability + * @param _priceFeed The price feed for the underlying asset that the PT represents + * @return The address of the newly deployed PT price feed + * @custom:usage Used for Pendle Principal Tokens like PT-stETH, PT-USDC, etc. + * @custom:security Includes oracle readiness checks to ensure price feed reliability + * @custom:formula PT Price = PT Rate in SY × SY Price / PT to Asset Rate Base + */ + function createPTWithPriceFeed(address _pendlePYLpOracle, address _market, uint32 _duration, address _priceFeed) + external + returns (address) + { + address priceFeed = address(new TermMaxPTPriceFeed(_pendlePYLpOracle, _market, _duration, _priceFeed)); + emit FactoryEventsV2.PriceFeedCreated(priceFeed); + return priceFeed; + } +} diff --git a/contracts/v2/factory/TermMaxVaultFactoryV2.sol b/contracts/v2/factory/TermMaxVaultFactoryV2.sol new file mode 100644 index 0000000..59be066 --- /dev/null +++ b/contracts/v2/factory/TermMaxVaultFactoryV2.sol @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol"; +import {ITermMaxVaultV2} from "../vault/ITermMaxVaultV2.sol"; +import {FactoryEventsV2} from "../events/FactoryEventsV2.sol"; +import {ITermMaxVaultFactoryV2} from "./ITermMaxVaultFactoryV2.sol"; +import {VaultInitialParamsV2} from "../storage/TermMaxStorageV2.sol"; + +/** + * @title The TermMax vault factory v2 + * @author Term Structure Labs + */ +contract TermMaxVaultFactoryV2 is ITermMaxVaultFactoryV2 { + /** + * @notice The implementation of TermMax Vault contract v2 + */ + address public immutable TERMMAX_VAULT_IMPLEMENTATION; + + constructor(address TERMMAX_VAULT_IMPLEMENTATION_) { + TERMMAX_VAULT_IMPLEMENTATION = TERMMAX_VAULT_IMPLEMENTATION_; + } + + /** + * @inheritdoc ITermMaxVaultFactoryV2 + */ + function predictVaultAddress( + address deployer, + address asset, + string memory name, + string memory symbol, + uint256 salt + ) external view returns (address vault) { + return Clones.predictDeterministicAddress( + TERMMAX_VAULT_IMPLEMENTATION, keccak256(abi.encode(deployer, asset, name, symbol, salt)) + ); + } + + /** + * @inheritdoc ITermMaxVaultFactoryV2 + */ + function createVault(VaultInitialParamsV2 memory initialParams, uint256 salt) public returns (address vault) { + vault = Clones.cloneDeterministic( + TERMMAX_VAULT_IMPLEMENTATION, + keccak256(abi.encode(msg.sender, initialParams.asset, initialParams.name, initialParams.symbol, salt)) + ); + ITermMaxVaultV2(vault).initialize(initialParams); + emit FactoryEventsV2.VaultCreated(vault, msg.sender, initialParams); + } +} diff --git a/contracts/v2/lib/ArrayUtilsV2.sol b/contracts/v2/lib/ArrayUtilsV2.sol new file mode 100644 index 0000000..83a8717 --- /dev/null +++ b/contracts/v2/lib/ArrayUtilsV2.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +library ArrayUtilsV2 { + error IndexOutOfBounds(); + + function indexOf(address[] storage arr, address value) internal view returns (uint256) { + for (uint256 i = 0; i < arr.length; i++) { + if (arr[i] == value) { + return i; + } + } + revert IndexOutOfBounds(); + } + + function remove(address[] storage arr, uint256 index) internal { + for (uint256 i = index; i < arr.length - 1; ++i) { + arr[i] = arr[i + 1]; + } + arr.pop(); + } + + function sum(uint128[] memory values) internal pure returns (uint128 total) { + for (uint256 i = 0; i < values.length; ++i) { + total += values[i]; + } + } + + function sum(uint256[] memory values) internal pure returns (uint256 total) { + for (uint256 i = 0; i < values.length; ++i) { + total += values[i]; + } + } +} diff --git a/contracts/v2/lib/MarketConstantsV2.sol b/contracts/v2/lib/MarketConstantsV2.sol new file mode 100644 index 0000000..33af13a --- /dev/null +++ b/contracts/v2/lib/MarketConstantsV2.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title TermMax Market Constants V2 + * @author Term Structure Labs + * @notice Library containing string constants for token naming conventions in TermMax V2 markets + * @dev Provides standardized prefixes for token names and symbols to ensure consistent naming across the protocol + * Used during token initialization to create human-readable identifiers for market tokens + */ +library MarketConstantsV2 { + /// @notice Prefix for Fixed Term token names and symbols (e.g., "FT:USDC-24-Dec") + /// @dev Fixed Term tokens represent the fixed-rate lending position in a market + string constant PREFIX_FT = "FT:"; + + /// @notice Prefix for Variable Term token names and symbols (e.g., "XT:USDC-24-Dec") + /// @dev Variable Term tokens represent the variable-rate lending position in a market + string constant PREFIX_XT = "XT:"; + + /// @notice Prefix for Gearing Token names and symbols (e.g., "GT:USDC-24-Dec") + /// @dev Gearing Tokens are NFTs representing leveraged positions with collateral backing + string constant PREFIX_GT = "GT:"; + + /// @notice Prefix for TermMax Market contract names (e.g., "Termmax Market:USDC-24-Dec") + /// @dev Used to create human-readable market identifiers for easier recognition and debugging + /// @dev V2-specific addition for enhanced market identification + string constant PREFIX_MARKET = "Termmax Market:"; +} diff --git a/contracts/v2/lib/OnlyProxyCall.sol b/contracts/v2/lib/OnlyProxyCall.sol new file mode 100644 index 0000000..c85613a --- /dev/null +++ b/contracts/v2/lib/OnlyProxyCall.sol @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +abstract contract OnlyProxyCall { + error OnlyCallableThroughProxy(); + + address private immutable addressThis; + + constructor() { + // Store the address of the contract at deployment + addressThis = address(this); + } + + /// @notice Modifier to restrict function calls to only be made through the proxy + /// @dev This ensures that the function can only be called via the proxy contract, preventing direct calls + modifier onlyProxy() { + require(addressThis != address(this), OnlyCallableThroughProxy()); + _; + } +} diff --git a/contracts/v2/lib/TransactionReentrancyGuard.sol b/contracts/v2/lib/TransactionReentrancyGuard.sol new file mode 100644 index 0000000..c6499d3 --- /dev/null +++ b/contracts/v2/lib/TransactionReentrancyGuard.sol @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +abstract contract TransactionReentrancyGuard { + /// @notice Error thrown when a reentrant call is detected in one transaction. + error ReentrantCall(); + /// @notice Error thrown when a reentrant call is detected between actions. + error ReentrantCallBetweenActions(uint256 actionId, uint256 oldActionId); + /// @notice Error thrown when using reserved ID. (0 and 1 are reserved id) + error InvalidActionId(); + + // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.TransactionReentrancyGuard")) - 1)) & ~bytes32(uint256(0xff)) + uint256 private constant T_FLAG_STORE = 0x55d65f3b5821c66716708cd5119fc8b654f479bd23b96d0911cee85241904700; + + /// @notice Modifier to prevent reentrant calls in one transaction. + modifier nonTxReentrant() { + if (_getTxReentrancyGuardStorage() == 1) revert ReentrantCall(); + _setTxReentrancyGuardStorage(1); + _; + } + + modifier nonTxReentrantBetweenActions(uint256 actionId) { + if (actionId <= 1) revert InvalidActionId(); + uint256 oldActionId = _getTxReentrancyGuardStorage(); + if (oldActionId != 0 && oldActionId != actionId) revert ReentrantCallBetweenActions(actionId, oldActionId); + _setTxReentrancyGuardStorage(actionId); + _; + } + + function _getTxReentrancyGuardStorage() private view returns (uint256 reentrancyGuard) { + assembly { + reentrancyGuard := tload(T_FLAG_STORE) + } + } + + function _setTxReentrancyGuardStorage(uint256 reentrancyGuard) private { + assembly { + tstore(T_FLAG_STORE, reentrancyGuard) + } + } +} diff --git a/contracts/v2/lib/TransferUtilsV2.sol b/contracts/v2/lib/TransferUtilsV2.sol new file mode 100644 index 0000000..516730a --- /dev/null +++ b/contracts/v2/lib/TransferUtilsV2.sol @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; + +library TransferUtilsV2 { + using SafeERC20 for IERC20; + + error CanNotTransferUintMax(); + + function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { + // Prevent transferring the maximum uint256 value, which could be a mistake for aave aToken. + if (value == type(uint256).max) { + revert CanNotTransferUintMax(); + } + token.safeTransferFrom(from, to, value); + } + + function safeTransfer(IERC20 token, address to, uint256 value) internal { + // Prevent transferring the maximum uint256 value, which could be a mistake for aave aToken. + if (value == type(uint256).max) { + revert CanNotTransferUintMax(); + } + token.safeTransfer(to, value); + } + + function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { + token.safeIncreaseAllowance(spender, value); + } + + function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { + if (value == 0 || spender == address(this)) { + return; + } + token.safeDecreaseAllowance(spender, value); + } + + function forceApprove(IERC20 token, address spender, uint256 value) internal { + token.forceApprove(spender, value); + } + + function safeTransferFromWithCheck(IERC20 token, address from, address to, uint256 value) internal { + // Prevent transferring the maximum uint256 value, which could be a mistake for aave aToken. + if (value == type(uint256).max) { + revert CanNotTransferUintMax(); + } + if (from == to || value == 0) { + return; + } + token.safeTransferFrom(from, to, value); + } + + function safeTransferWithCheck(IERC20 token, address to, uint256 value) internal { + // Prevent transferring the maximum uint256 value, which could be a mistake for aave aToken. + if (value == type(uint256).max) { + revert CanNotTransferUintMax(); + } + if (to == address(this) || value == 0) { + return; + } + token.safeTransfer(to, value); + } + + function safeIncreaseAllowanceWithCheck(IERC20 token, address spender, uint256 value) internal { + if (value == 0 || spender == address(this)) { + return; + } + token.safeIncreaseAllowance(spender, value); + } + + function safeDecreaseAllowanceWithCheck(IERC20 token, address spender, uint256 value) internal { + if (value == 0 || spender == address(this)) { + return; + } + token.safeDecreaseAllowance(spender, value); + } + + function forceApproveWithCheck(IERC20 token, address spender, uint256 value) internal { + if (spender == address(this)) { + return; + } + token.forceApprove(spender, value); + } +} diff --git a/contracts/v2/oracle/IOracleV2.sol b/contracts/v2/oracle/IOracleV2.sol new file mode 100644 index 0000000..eff1481 --- /dev/null +++ b/contracts/v2/oracle/IOracleV2.sol @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; + +/** + * @title IOracleV2 + * @author Term Structure Labs + * @notice Enhanced oracle interface for TermMax V2 protocol with improved price feed management + * @dev Extends the V1 oracle interface with additional features including price caps, separate backup heartbeats, + * and oracle revocation capabilities for enhanced security and flexibility + */ +interface IOracleV2 { + /** + * @notice Oracle configuration structure for price feed management + * @dev Contains primary and backup aggregators with independent heartbeat configurations + * @param aggregator Primary price feed aggregator (required) + * @param backupAggregator Secondary price feed aggregator for fallback (optional) + * @param maxPrice Maximum allowed price value for this asset (0 = no limit) + * @param minPrice Minimum allowed price value for this asset (0 = no limit) + * @param heartbeat Maximum allowed staleness for primary aggregator in seconds (0 = no staleness check) + * @param backupHeartbeat Maximum allowed staleness for backup aggregator in seconds (0 = no staleness check) + */ + struct Oracle { + AggregatorV3Interface aggregator; + AggregatorV3Interface backupAggregator; + int256 maxPrice; + int256 minPrice; + uint32 heartbeat; + uint32 backupHeartbeat; + } + + /** + * @notice Error thrown when the oracle system cannot provide a reliable price + * @dev Occurs when both primary and backup oracles are stale, returning invalid data, or when no oracle is configured + * @param asset The address of the asset for which the oracle is not working + */ + error OracleIsNotWorking(address asset); + + /** + * @notice Retrieves the current price of an asset in USD from the oracle system + * @dev Uses primary oracle first, falls back to backup if primary is stale or invalid + * Applies maxPrice cap if configured. Returns price with the aggregator's native decimals + * @param asset The address of the asset to get the price for + * @return price The current price of the asset (may be capped by maxPrice) + * @return decimals The number of decimal places in the returned price + * @custom:reverts OracleIsNotWorking if no valid price can be obtained + */ + function getPrice(address asset) external view returns (uint256 price, uint8 decimals); + + /** + * @notice Submits a new oracle configuration for an asset with timelock protection + * @dev Creates a pending oracle update that must wait for the timelock period before activation + * Used for adding new oracles or updating existing ones with enhanced security + * @param asset The address of the asset to configure the oracle for + * @param oracle The oracle configuration structure with primary/backup feeds and settings + * @custom:access Typically restricted to oracle managers or governance + * @custom:security Subject to timelock delay for security + */ + function submitPendingOracle(address asset, Oracle memory oracle) external; + + /** + * @notice Activates a previously submitted pending oracle configuration + * @dev Can only be called after the timelock period has elapsed since submission + * Replaces the current oracle configuration with the pending one + * @param asset The address of the asset to accept the pending oracle for + * @custom:access Usually callable by anyone after timelock expires + * @custom:validation Requires valid pending oracle and elapsed timelock + */ + function acceptPendingOracle(address asset) external; + + /** + * @notice Cancels a pending oracle configuration before it can be accepted + * @dev Allows oracle managers to revoke pending updates if errors are discovered + * Can only revoke pending oracles that haven't been accepted yet + * @param asset The address of the asset to revoke the pending oracle for + * @custom:access Typically restricted to oracle managers or governance + * @custom:security Provides emergency mechanism to cancel erroneous oracle updates + */ + function revokePendingOracle(address asset) external; +} diff --git a/contracts/v2/oracle/OracleAggregatorV2.sol b/contracts/v2/oracle/OracleAggregatorV2.sol new file mode 100644 index 0000000..f806ff9 --- /dev/null +++ b/contracts/v2/oracle/OracleAggregatorV2.sol @@ -0,0 +1,232 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +/** + * @title OracleAggregatorV2 + * @author Term Structure Labs + * @notice Enhanced oracle aggregator for TermMax V2 protocol with improved price feed management + * @dev This contract references design concepts from AAVE's oracle system + * Implements price feed aggregation with primary and backup oracles, + * staleness checks via heartbeats, and governance-controlled updates with timelocks + * similar to AAVE's oracle architecture + * + * Key V2 improvements over V1: + * - Independent heartbeat configuration for backup oracles + * - Price capping mechanism with maxPrice parameter + * - Oracle revocation capability for enhanced security + */ +import {Ownable2Step, Ownable} from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import {AggregatorV3Interface, IOracleV2} from "./IOracleV2.sol"; + +contract OracleAggregatorV2 is IOracleV2, Ownable2Step { + /// @notice The timelock period in seconds that must elapse before pending oracles can be accepted + /// @dev Immutable value set during contract construction for security + uint256 internal immutable _timeLock; + + /** + * @notice Structure for storing pending oracle updates with timelock protection + * @param oracle The oracle configuration waiting to be activated + * @param validAt The timestamp when this pending oracle can be accepted + */ + struct PendingOracle { + Oracle oracle; + uint64 validAt; + } + + /// @notice Error thrown when the asset or oracle address is invalid + error InvalidAssetOrOracle(); + + /** + * @notice Error thrown when trying to accept a change that has no pending value + */ + error NoPendingValue(); + + /** + * @notice Error thrown when trying to accept a change before the timelock period has elapsed + */ + error TimelockNotElapsed(); + + /** + * @notice Event emitted when an oracle configuration is updated + * @param asset The address of the asset whose oracle was updated + * @param aggregator The address of the primary aggregator + * @param backupAggregator The address of the backup aggregator + * @param maxPrice The maximum price cap for this asset (0 = no cap) + * @param minPrice The minimum price floor for this asset (0 = no floor) + * @param heartbeat The staleness threshold for the primary aggregator + * @param backupHeartbeat The staleness threshold for the backup aggregator + */ + event UpdateOracle( + address indexed asset, + AggregatorV3Interface indexed aggregator, + AggregatorV3Interface indexed backupAggregator, + int256 maxPrice, + int256 minPrice, + uint32 heartbeat, + uint32 backupHeartbeat + ); + + /** + * @notice Event emitted when a pending oracle is submitted + * @param asset The address of the asset for the pending oracle + * @param aggregator The address of the primary aggregator + * @param backupAggregator The address of the backup aggregator + * @param maxPrice The maximum price cap for this asset + * @param minPrice The minimum price floor for this asset (0 = no floor) + * @param heartbeat The staleness threshold for the primary aggregator + * @param backupHeartbeat The staleness threshold for the backup aggregator + * @param validAt The timestamp when this pending oracle can be accepted + */ + event SubmitPendingOracle( + address indexed asset, + AggregatorV3Interface indexed aggregator, + AggregatorV3Interface indexed backupAggregator, + int256 maxPrice, + int256 minPrice, + uint32 heartbeat, + uint32 backupHeartbeat, + uint64 validAt + ); + + /** + * @notice Event emitted when a pending oracle is revoked + * @param asset The address of the asset whose pending oracle was revoked + */ + event RevokePendingOracle(address indexed asset); + + /// @notice Mapping of asset addresses to their active oracle configurations + /// @dev Contains the currently live oracle settings for each asset + mapping(address => Oracle) public oracles; + + /// @notice Mapping of asset addresses to their pending oracle configurations + /// @dev Contains oracle updates waiting for timelock expiration + mapping(address => PendingOracle) public pendingOracles; + + constructor(address _owner, uint256 timeLock) Ownable(_owner) { + _timeLock = timeLock; + } + + /** + * @inheritdoc IOracleV2 + */ + function submitPendingOracle(address asset, Oracle memory oracle) external onlyOwner { + // Handle oracle removal case + if (address(oracle.aggregator) == address(0) && address(oracle.backupAggregator) == address(0)) { + delete oracles[asset]; + emit UpdateOracle(asset, AggregatorV3Interface(address(0)), AggregatorV3Interface(address(0)), 0, 0, 0, 0); + return; + } + + // Validate inputs for oracle addition/update + if (asset == address(0) || oracle.aggregator == AggregatorV3Interface(address(0))) { + revert InvalidAssetOrOracle(); + } + + // Ensure backup aggregator has same decimals as primary if both are present + if (address(oracle.backupAggregator) != address(0)) { + if (oracle.aggregator.decimals() != oracle.backupAggregator.decimals()) { + revert InvalidAssetOrOracle(); + } + } + + // Store pending oracle with timelock + uint64 validAt = uint64(block.timestamp + _timeLock); + pendingOracles[asset] = PendingOracle({oracle: oracle, validAt: validAt}); + + emit SubmitPendingOracle( + asset, + oracle.aggregator, + oracle.backupAggregator, + oracle.maxPrice, + oracle.minPrice, + oracle.heartbeat, + oracle.backupHeartbeat, + validAt + ); + } + + /** + * @inheritdoc IOracleV2 + */ + function acceptPendingOracle(address asset) external { + if (pendingOracles[asset].validAt == 0) { + revert NoPendingValue(); + } + if (block.timestamp < pendingOracles[asset].validAt) { + revert TimelockNotElapsed(); + } + + // Activate the pending oracle + Oracle memory oracle = pendingOracles[asset].oracle; + oracles[asset] = oracle; + delete pendingOracles[asset]; + + emit UpdateOracle( + asset, + oracle.aggregator, + oracle.backupAggregator, + oracle.maxPrice, + oracle.minPrice, + oracle.heartbeat, + oracle.backupHeartbeat + ); + } + + /** + * @inheritdoc IOracleV2 + */ + function revokePendingOracle(address asset) external onlyOwner { + if (pendingOracles[asset].validAt == 0) { + revert NoPendingValue(); + } + delete pendingOracles[asset]; + emit RevokePendingOracle(asset); + } + + /** + * @inheritdoc IOracleV2 + */ + function getPrice(address asset) external view override returns (uint256, uint8) { + Oracle memory oracle = oracles[asset]; + + if (oracle.aggregator == AggregatorV3Interface(address(0))) { + revert InvalidAssetOrOracle(); + } + + // Try primary oracle first + { + (, int256 answer,, uint256 updatedAt,) = oracle.aggregator.latestRoundData(); + // Check if primary oracle is fresh and has positive price + if (oracle.heartbeat == 0 || oracle.heartbeat + updatedAt >= block.timestamp) { + if (_checkAnswer(answer, oracle)) { + return (uint256(answer), oracle.aggregator.decimals()); + } + } + } + + // Try backup oracle if available + if (address(oracle.backupAggregator) != address(0)) { + (, int256 answer,, uint256 updatedAt,) = oracle.backupAggregator.latestRoundData(); + // Check if backup oracle is fresh and has positive price + if (oracle.backupHeartbeat == 0 || oracle.backupHeartbeat + updatedAt >= block.timestamp) { + if (_checkAnswer(answer, oracle)) { + return (uint256(answer), oracle.backupAggregator.decimals()); + } + } + } + + // Both oracles failed or are stale + revert OracleIsNotWorking(asset); + } + + function _checkAnswer(int256 answer, Oracle memory oracle) internal pure returns (bool) { + if (answer < 0) { + return false; // Negative prices are invalid + } else if (oracle.maxPrice != 0 && answer > oracle.maxPrice) { + return false; // Price exceeds maximum cap + } else if (oracle.minPrice != 0 && answer < oracle.minPrice) { + return false; // Price is below minimum floor + } + return true; // Price is valid + } +} diff --git a/contracts/oracle/priceFeeds/ITermMaxPriceFeed.sol b/contracts/v2/oracle/priceFeeds/ITermMaxPriceFeed.sol similarity index 95% rename from contracts/oracle/priceFeeds/ITermMaxPriceFeed.sol rename to contracts/v2/oracle/priceFeeds/ITermMaxPriceFeed.sol index fa24904..a3bff1a 100644 --- a/contracts/oracle/priceFeeds/ITermMaxPriceFeed.sol +++ b/contracts/v2/oracle/priceFeeds/ITermMaxPriceFeed.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -pragma solidity ^0.8.20; +pragma solidity ^0.8.0; import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; diff --git a/contracts/oracle/priceFeeds/TermMaxERC4626PriceFeed.sol b/contracts/v2/oracle/priceFeeds/TermMaxERC4626PriceFeed.sol similarity index 76% rename from contracts/oracle/priceFeeds/TermMaxERC4626PriceFeed.sol rename to contracts/v2/oracle/priceFeeds/TermMaxERC4626PriceFeed.sol index 97a99ac..a1f3052 100644 --- a/contracts/oracle/priceFeeds/TermMaxERC4626PriceFeed.sol +++ b/contracts/v2/oracle/priceFeeds/TermMaxERC4626PriceFeed.sol @@ -3,25 +3,29 @@ pragma solidity ^0.8.27; import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; import {ITermMaxPriceFeed, AggregatorV3Interface} from "./ITermMaxPriceFeed.sol"; -import {MathLib} from "contracts/lib/MathLib.sol"; contract TermMaxERC4626PriceFeed is ITermMaxPriceFeed { - using MathLib for *; + using Math for *; + using SafeCast for *; error GetRoundDataNotSupported(); AggregatorV3Interface public immutable assetPriceFeed; address public immutable asset; - int256 immutable priceDemonitor; - uint256 immutable vaultDemonitor; + uint256 private immutable priceDemonitor; + uint256 private immutable vaultDemonitor; + uint256 private constant PRICE_DECIMALS = 10 ** 8; constructor(address _assetPriceFeed, address _asset) { (, int256 answer,,,) = AggregatorV3Interface(_assetPriceFeed).latestRoundData(); assetPriceFeed = AggregatorV3Interface(_assetPriceFeed); asset = _asset; - vaultDemonitor = 10 ** IERC4626(asset).decimals(); - priceDemonitor = int256(10 ** assetPriceFeed.decimals()) * int256(vaultDemonitor); + uint8 assetDecimals = IERC20Metadata(_asset).decimals(); + vaultDemonitor = 10 ** assetDecimals; + priceDemonitor = 10 ** (assetPriceFeed.decimals() + assetDecimals); } function decimals() public view returns (uint8) { @@ -57,7 +61,7 @@ contract TermMaxERC4626PriceFeed is ITermMaxPriceFeed { assetPriceFeed.latestRoundData(); uint256 vaultAnswer = IERC4626(asset).previewRedeem(vaultDemonitor).min(IERC4626(asset).convertToAssets(vaultDemonitor)); - answer = answer * int256(vaultAnswer) * int256((10 ** decimals())) / priceDemonitor; + answer = answer.toUint256().mulDiv(vaultAnswer * PRICE_DECIMALS, priceDemonitor).toInt256(); return (roundId, answer, startedAt, updatedAt, answeredInRound); } } diff --git a/contracts/oracle/priceFeeds/TermMaxPTPriceFeed.sol b/contracts/v2/oracle/priceFeeds/TermMaxPTPriceFeed.sol similarity index 88% rename from contracts/oracle/priceFeeds/TermMaxPTPriceFeed.sol rename to contracts/v2/oracle/priceFeeds/TermMaxPTPriceFeed.sol index abd2a39..f6c55d5 100644 --- a/contracts/oracle/priceFeeds/TermMaxPTPriceFeed.sol +++ b/contracts/v2/oracle/priceFeeds/TermMaxPTPriceFeed.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.27; import {PendlePYLpOracle} from "@pendle/core-v2/contracts/oracles/PtYtLpOracle/PendlePYLpOracle.sol"; import {PendlePYOracleLib} from "@pendle/core-v2/contracts/oracles/PtYtLpOracle/PendlePYOracleLib.sol"; import {PMath} from "@pendle/core-v2/contracts/core/libraries/math/PMath.sol"; -import {IPMarket, IPPrincipalToken} from "@pendle/core-v2/contracts/interfaces/IPMarket.sol"; +import {IPMarket, IPPrincipalToken, IStandardizedYield} from "@pendle/core-v2/contracts/interfaces/IPMarket.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; @@ -30,6 +30,8 @@ contract TermMaxPTPriceFeed is ITermMaxPriceFeed { AggregatorV3Interface public immutable PRICE_FEED; address public immutable asset; + uint256 private immutable PT_TO_SY_RATE_BASE; + // error to call `getRoundData` function error GetRoundDataNotSupported(); // error when Pendle PY LP oracle is not ready @@ -52,7 +54,14 @@ contract TermMaxPTPriceFeed is ITermMaxPriceFeed { MARKET = IPMarket(market); DURATION = duration; PRICE_FEED = AggregatorV3Interface(priceFeed); - (, IPPrincipalToken _PT,) = MARKET.readTokens(); + (IStandardizedYield _SY, IPPrincipalToken _PT,) = MARKET.readTokens(); + uint8 syDecimals = _SY.decimals(); + uint8 ptDecimals = _PT.decimals(); + if (syDecimals < ptDecimals) { + PT_TO_SY_RATE_BASE = PMath.ONE / (10 ** (ptDecimals - syDecimals)); + } else { + PT_TO_SY_RATE_BASE = PMath.ONE * (10 ** (syDecimals - ptDecimals)); + } asset = address(_PT); if (!_oracleIsReady()) revert OracleIsNotReady(); } @@ -92,7 +101,7 @@ contract TermMaxPTPriceFeed is ITermMaxPriceFeed { uint256 ptRateInSy = MARKET.getPtToSyRate(DURATION); // PT -> SY (roundId, answer, startedAt, updatedAt, answeredInRound) = PRICE_FEED.latestRoundData(); - answer = ptRateInSy.mulDiv(answer.toUint256(), PMath.ONE).toInt256(); + answer = ptRateInSy.mulDiv(answer.toUint256(), PT_TO_SY_RATE_BASE).toInt256(); return (roundId, answer, startedAt, updatedAt, answeredInRound); } diff --git a/contracts/oracle/priceFeeds/TermMaxPriceFeedConverter.sol b/contracts/v2/oracle/priceFeeds/TermMaxPriceFeedConverter.sol similarity index 81% rename from contracts/oracle/priceFeeds/TermMaxPriceFeedConverter.sol rename to contracts/v2/oracle/priceFeeds/TermMaxPriceFeedConverter.sol index 60d9754..56e6e5c 100644 --- a/contracts/oracle/priceFeeds/TermMaxPriceFeedConverter.sol +++ b/contracts/v2/oracle/priceFeeds/TermMaxPriceFeedConverter.sol @@ -2,26 +2,28 @@ pragma solidity ^0.8.27; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; import {ITermMaxPriceFeed, AggregatorV3Interface} from "./ITermMaxPriceFeed.sol"; -import {MathLib} from "contracts/lib/MathLib.sol"; contract TermMaxPriceFeedConverter is ITermMaxPriceFeed { - using MathLib for *; + using Math for *; + using SafeCast for *; error GetRoundDataNotSupported(); AggregatorV3Interface public immutable aTokenToBTokenPriceFeed; AggregatorV3Interface public immutable bTokenToCTokenPriceFeed; - int256 immutable priceDemonitor; + uint256 immutable priceDemonitor; address public immutable asset; + uint256 constant PRICE_DENOMINATOR = 10 ** 8; constructor(address _aTokenToBTokenPriceFeed, address _bTokenToCTokenPriceFeed, address _asset) { asset = _asset; aTokenToBTokenPriceFeed = AggregatorV3Interface(_aTokenToBTokenPriceFeed); bTokenToCTokenPriceFeed = AggregatorV3Interface(_bTokenToCTokenPriceFeed); - priceDemonitor = - int256(10 ** aTokenToBTokenPriceFeed.decimals()) * int256(10 ** bTokenToCTokenPriceFeed.decimals()); + priceDemonitor = 10 ** (aTokenToBTokenPriceFeed.decimals() + bTokenToCTokenPriceFeed.decimals()); } function decimals() public view returns (uint8) { @@ -57,7 +59,7 @@ contract TermMaxPriceFeedConverter is ITermMaxPriceFeed { aTokenToBTokenPriceFeed.latestRoundData(); (, int256 answer2, uint256 startedAt2, uint256 updatedAt2,) = bTokenToCTokenPriceFeed.latestRoundData(); // tokenPrice = answer * answer2 - answer = answer * answer2 * int256((10 ** decimals())) / priceDemonitor; + answer = answer.toUint256().mulDiv(answer2.toUint256() * PRICE_DENOMINATOR, priceDemonitor).toInt256(); return (roundId, answer, startedAt.min(startedAt2), updatedAt.min(updatedAt2), answeredInRound); } } diff --git a/contracts/v2/router/IERC20SwapAdapter.sol b/contracts/v2/router/IERC20SwapAdapter.sol new file mode 100644 index 0000000..1ca947f --- /dev/null +++ b/contracts/v2/router/IERC20SwapAdapter.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title TermMax ERC20SwapAdapter interface + * @author Term Structure Labs + */ +interface IERC20SwapAdapter { + /// @notice Swap tokenIn to tokenOut + /// @param recipient Address to receive the output tokens + /// @param tokenIn Input token address + /// @param tokenOut Output token address + /// @param tokenInAmt token input amount + /// @param swapData Encoded swap data + /// @return tokenOutAmt token output amount + function swap(address recipient, address tokenIn, address tokenOut, uint256 tokenInAmt, bytes memory swapData) + external + returns (uint256 tokenOutAmt); +} diff --git a/contracts/v2/router/ITermMaxRouterV2.sol b/contracts/v2/router/ITermMaxRouterV2.sol new file mode 100644 index 0000000..c17f4bc --- /dev/null +++ b/contracts/v2/router/ITermMaxRouterV2.sol @@ -0,0 +1,174 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {ITermMaxMarket, IGearingToken} from "../../v1/ITermMaxMarket.sol"; +import {ITermMaxOrder} from "../../v1/ITermMaxOrder.sol"; +import {SwapUnit} from "../../v1/router/ISwapAdapter.sol"; +import {ISwapCallback} from "../../v1/ISwapCallback.sol"; +import {OrderConfig} from "../../v1/storage/TermMaxStorage.sol"; + +/** + * @title TermMax RouterV2 interface + * @author Term Structure Labs + * @notice Interface for the main router contract that handles all user interactions with TermMax protocol + * @dev This interface defines all external functions for swapping, leveraging, and managing positions + */ +interface ITermMaxRouterV2 { + struct TermMaxSwapData { + address tokenIn; + address tokenOut; + ITermMaxOrder[] orders; + uint128[] tradingAmts; + uint128 netTokenAmt; + uint256 deadline; + } + + /** + * @notice Repays debt from collateral + * @dev Repays debt and closes a position + * @param recipient Address to receive any remaining collateral + * @param market The market to repay debt in + * @param gtId ID of the GT token to repay debt from + * @param byDebtToken True if repaying with debt token, false if using FT token + * @param expectedOutput Expected amount of tokens to receive after swap + * @param units Array of swap units defining the external swap path + * @param swapData Data for the termmax swap operation + * @return netTokenOut Actual amount of tokens received + */ + function flashRepayFromColl( + address recipient, + ITermMaxMarket market, + uint256 gtId, + bool byDebtToken, + uint256 expectedOutput, + SwapUnit[] memory units, + TermMaxSwapData memory swapData + ) external returns (uint256 netTokenOut); + + function flashRepayFromCollV2( + address recipient, + ITermMaxMarket market, + uint256 gtId, + uint128 repayAmt, + bool byDebtToken, + uint256 expectedOutput, + bytes memory removedCollateral, + SwapUnit[] memory units, + TermMaxSwapData memory swapData + ) external returns (uint256 netTokenOut); + + /** + * @notice Repays debt + * @param market The TermMax market to repay in + * @param gtId The ID of the GT to repay + * @param maxRepayAmt Maximum amount of tokens to repay + * @param byDebtToken Whether to repay using debt tokens + * @return repayAmt The actual amount repaid + */ + function repayGt(ITermMaxMarket market, uint256 gtId, uint128 maxRepayAmt, bool byDebtToken) + external + returns (uint128 repayAmt); + + /** + * @notice Rollover GT position to a new market with additional assets(dont support partial rollover) + * @dev This function allows users to rollover their GT position to a new market + * @param recipient The address that will receive the new GT token + * @param gt The GearingToken contract instance + * @param gtId The ID of the GT token being rolled over + * @param additionalAssets Amount of additional assets to add to the position + * @param units Array of swap units defining the external swap path + * @param nextMarket The next market to rollover into + * @param additionalNextCollateral Additional collateral for the next market + * @param swapData Data for the termmax swap operation + * @param maxLtv Maximum loan-to-value ratio for the rollover + * @return newGtId The ID of the newly created GT token in the next market + */ + function rolloverGt( + address recipient, + IGearingToken gt, + uint256 gtId, + uint128 additionalAssets, + SwapUnit[] memory units, + ITermMaxMarket nextMarket, + uint256 additionalNextCollateral, + TermMaxSwapData memory swapData, + uint128 maxLtv + ) external returns (uint256 newGtId); + + /** + * @notice Rollover GT position to a new market with additional assets(allow partial rollover) + * @dev This function allows users to rollover their GT position to a new market + * @param recipient The address that will receive the new GT token + * @param gt The GearingToken contract instance + * @param gtId The ID of the GT token being rolled over + * @param repayAmt Amount of debt to repay + * @param additionalAssets Amount of additional assets to add to the position + * @param removedCollateral Amount of collateral to remove from the position + * @param units Array of swap units defining the external swap path + * @param nextMarket The next market to rollover into + * @param additionalNextCollateral Additional collateral for the next market + * @param swapData Data for the termmax swap operation + * @param maxLtv Maximum loan-to-value ratio for the rollover + * @return newGtId The ID of the newly created GT token in the next market + */ + function rolloverGtV2( + address recipient, + IGearingToken gt, + uint256 gtId, + uint128 repayAmt, + uint128 additionalAssets, + uint256 removedCollateral, + SwapUnit[] memory units, + ITermMaxMarket nextMarket, + uint256 additionalNextCollateral, + TermMaxSwapData memory swapData, + uint128 maxLtv + ) external returns (uint256 newGtId); + + /** + * @notice Places an order and mints a GT token(The gt token will not be linked to the order) + * @dev This function is used to create a new order in the TermMax protocol + * @param market The market to place the order in + * @param maker The address of the maker placing the order + * @param collateralToMintGt Amount of collateral to mint GT tokens + * @param debtTokenToDeposit Amount of debt tokens to deposit + * @param ftToDeposit Amount of FT tokens to deposit + * @param xtToDeposit Amount of XT tokens to deposit + * @param orderConfig Configuration parameters for the order + * @return order The created ITermMaxOrder instance + * @return gtId The ID of the minted GT token + */ + function placeOrderForV1( + ITermMaxMarket market, + address maker, + uint256 collateralToMintGt, + uint256 debtTokenToDeposit, + uint128 ftToDeposit, + uint128 xtToDeposit, + OrderConfig memory orderConfig + ) external returns (ITermMaxOrder order, uint256 gtId); + + /** + * @notice Places an order and mints a GT token(the gt token will be linked to the order) + * @dev This function is used to create a new order in the TermMax protocol + * @param market The market to place the order in + * @param maker The address of the maker placing the order + * @param collateralToMintGt Amount of collateral to mint GT tokens + * @param debtTokenToDeposit Amount of debt tokens to deposit + * @param ftToDeposit Amount of FT tokens to deposit + * @param xtToDeposit Amount of XT tokens to deposit + * @param orderConfig Configuration parameters for the order + * @return order The created ITermMaxOrder instance + * @return gtId The ID of the minted GT token + */ + function placeOrderForV2( + ITermMaxMarket market, + address maker, + uint256 collateralToMintGt, + uint256 debtTokenToDeposit, + uint128 ftToDeposit, + uint128 xtToDeposit, + OrderConfig memory orderConfig + ) external returns (ITermMaxOrder order, uint256 gtId); +} diff --git a/contracts/v2/router/TermMaxRouterV2.sol b/contracts/v2/router/TermMaxRouterV2.sol new file mode 100644 index 0000000..c7948c9 --- /dev/null +++ b/contracts/v2/router/TermMaxRouterV2.sol @@ -0,0 +1,835 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC721Enumerable} from "@openzeppelin/contracts/interfaces/IERC721Enumerable.sol"; +import {IERC721Receiver} from "@openzeppelin/contracts/interfaces/IERC721Receiver.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import { + Ownable2StepUpgradeable, + OwnableUpgradeable +} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {ITermMaxMarket} from "../../v1/ITermMaxMarket.sol"; +import {ITermMaxMarketV2} from "../ITermMaxMarketV2.sol"; +import {ITermMaxOrder} from "../../v1/ITermMaxOrder.sol"; +import {SwapUnit} from "../../v1/router/ISwapAdapter.sol"; +import {RouterErrors} from "../../v1/errors/RouterErrors.sol"; +import {RouterEvents} from "../../v1/events/RouterEvents.sol"; +import {IFlashLoanReceiver} from "../../v1/IFlashLoanReceiver.sol"; +import {IFlashRepayer} from "../../v1/tokens/IFlashRepayer.sol"; +import {ITermMaxRouterV2} from "./ITermMaxRouterV2.sol"; +import {IGearingToken} from "../../v1/tokens/IGearingToken.sol"; +import {IGearingTokenV2} from "../tokens/IGearingTokenV2.sol"; +import {CurveCuts, OrderConfig} from "../../v1/storage/TermMaxStorage.sol"; +import {Constants} from "../../v1/lib/Constants.sol"; +import {IERC20SwapAdapter} from "./IERC20SwapAdapter.sol"; +import {RouterEventsV2} from "../events/RouterEventsV2.sol"; +import {RouterErrorsV2} from "../errors/RouterErrorsV2.sol"; +import {TransferUtilsV2} from "../lib/TransferUtilsV2.sol"; +import {ArrayUtilsV2} from "../lib/ArrayUtilsV2.sol"; + +/** + * @title TermMax Router V2 + * @author Term Structure Labs + */ +contract TermMaxRouterV2 is + UUPSUpgradeable, + Ownable2StepUpgradeable, + PausableUpgradeable, + IFlashLoanReceiver, + IFlashRepayer, + IERC721Receiver, + ITermMaxRouterV2, + RouterErrors, + RouterEvents +{ + using SafeCast for *; + using TransferUtilsV2 for IERC20; + using Math for *; + using ArrayUtilsV2 for *; + + enum FlashLoanType { + COLLATERAL, + DEBT + } + + enum FlashRepayOptions { + REPAY, + ROLLOVER + } + + /// @notice whitelist mapping of adapter + mapping(address => bool) public adapterWhitelist; + + uint256 private constant T_ROLLOVER_GT_RESERVE_STORE = 0; + uint256 private constant T_CALLBACK_ADDRESS_STORE = 1; + + modifier onlyCallbackAddress() { + address callbackAddress; + assembly { + callbackAddress := tload(T_CALLBACK_ADDRESS_STORE) + } + if (msg.sender != callbackAddress) { + revert RouterErrorsV2.CallbackAddressNotMatch(); + } + _; + assembly { + // clear callback address after use + tstore(T_CALLBACK_ADDRESS_STORE, 0) + } + } + + modifier noCallbackReentrant() { + address callbackAddress; + assembly { + callbackAddress := tload(T_CALLBACK_ADDRESS_STORE) + } + if (callbackAddress != address(0)) { + revert RouterErrorsV2.CallbackReentrant(); + } + _; + } + + function _authorizeUpgrade(address newImplementation) internal virtual override onlyOwner {} + + function initialize(address admin) public initializer { + __UUPSUpgradeable_init_unchained(); + __Pausable_init_unchained(); + __Ownable_init_unchained(admin); + } + + function setAdapterWhitelist(address adapter, bool isWhitelist) external onlyOwner { + adapterWhitelist[adapter] = isWhitelist; + emit UpdateSwapAdapterWhiteList(adapter, isWhitelist); + } + + function assetsWithERC20Collateral(ITermMaxMarket market, address owner) + external + view + returns (IERC20[4] memory tokens, uint256[4] memory balances, address gtAddr, uint256[] memory gtIds) + { + (IERC20 ft, IERC20 xt, IGearingToken gt, address collateral, IERC20 underlying) = market.tokens(); + tokens[0] = ft; + tokens[1] = xt; + tokens[2] = IERC20(collateral); + tokens[3] = underlying; + for (uint256 i = 0; i < 4; ++i) { + balances[i] = tokens[i].balanceOf(owner); + } + gtAddr = address(gt); + uint256 balance = IERC721Enumerable(gtAddr).balanceOf(owner); + gtIds = new uint256[](balance); + for (uint256 i = 0; i < balance; ++i) { + gtIds[i] = IERC721Enumerable(gtAddr).tokenOfOwnerByIndex(owner, i); + } + } + + function swapExactTokenToToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + ITermMaxOrder[] memory orders, + uint128[] memory tradingAmts, + uint128 minTokenOut, + uint256 deadline + ) external whenNotPaused returns (uint256 netTokenOut) { + uint256 totalAmtIn = tradingAmts.sum(); + tokenIn.safeTransferFrom(msg.sender, address(this), totalAmtIn); + netTokenOut = _swapExactTokenToToken(tokenIn, tokenOut, recipient, orders, tradingAmts, minTokenOut, deadline); + emit SwapExactTokenToToken(tokenIn, tokenOut, msg.sender, recipient, orders, tradingAmts, netTokenOut); + } + + function _swapExactTokenToToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + ITermMaxOrder[] memory orders, + uint128[] memory tradingAmts, + uint128 minTokenOut, + uint256 deadline + ) internal returns (uint256 netTokenOut) { + if (orders.length != tradingAmts.length) revert OrdersAndAmtsLengthNotMatch(); + for (uint256 i = 0; i < orders.length; ++i) { + ITermMaxOrder order = orders[i]; + tokenIn.safeIncreaseAllowance(address(order), tradingAmts[i]); + netTokenOut += order.swapExactTokenToToken(tokenIn, tokenOut, recipient, tradingAmts[i], 0, deadline); + } + if (netTokenOut < minTokenOut) revert InsufficientTokenOut(address(tokenOut), netTokenOut, minTokenOut); + } + + function swapTokenToExactToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + ITermMaxOrder[] memory orders, + uint128[] memory tradingAmts, + uint128 maxTokenIn, + uint256 deadline + ) external whenNotPaused returns (uint256 netTokenIn) { + tokenIn.safeTransferFrom(msg.sender, address(this), maxTokenIn); + netTokenIn = _swapTokenToExactToken(tokenIn, tokenOut, recipient, orders, tradingAmts, maxTokenIn, deadline); + tokenIn.safeTransfer(msg.sender, maxTokenIn - netTokenIn); + emit SwapTokenToExactToken(tokenIn, tokenOut, msg.sender, recipient, orders, tradingAmts, netTokenIn); + } + + function _swapTokenToExactToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + ITermMaxOrder[] memory orders, + uint128[] memory tradingAmts, + uint128 maxTokenIn, + uint256 deadline + ) internal returns (uint256 netTokenIn) { + if (orders.length != tradingAmts.length) revert OrdersAndAmtsLengthNotMatch(); + for (uint256 i = 0; i < orders.length; ++i) { + ITermMaxOrder order = orders[i]; + tokenIn.forceApprove(address(order), maxTokenIn); + netTokenIn += + order.swapTokenToExactToken(tokenIn, tokenOut, recipient, tradingAmts[i], maxTokenIn, deadline); + } + if (netTokenIn > maxTokenIn) revert InsufficientTokenIn(address(tokenIn), netTokenIn, maxTokenIn); + } + + function sellTokens( + address recipient, + ITermMaxMarket market, + uint128 ftInAmt, + uint128 xtInAmt, + ITermMaxOrder[] memory orders, + uint128[] memory amtsToSellTokens, + uint128 minTokenOut, + uint256 deadline + ) external whenNotPaused returns (uint256 netTokenOut) { + (IERC20 ft, IERC20 xt,,, IERC20 debtToken) = market.tokens(); + (uint256 maxBurn, IERC20 toenToSell) = ftInAmt > xtInAmt ? (xtInAmt, ft) : (ftInAmt, xt); + ft.safeTransferFrom(msg.sender, address(this), ftInAmt); + xt.safeTransferFrom(msg.sender, address(this), xtInAmt); + ft.safeIncreaseAllowance(address(market), ftInAmt); + xt.safeIncreaseAllowance(address(market), xtInAmt); + market.burn(recipient, maxBurn); + + netTokenOut = _swapExactTokenToToken(toenToSell, debtToken, recipient, orders, amtsToSellTokens, 0, deadline); + netTokenOut += maxBurn; + if (netTokenOut < minTokenOut) revert InsufficientTokenOut(address(debtToken), netTokenOut, minTokenOut); + emit SellTokens(market, msg.sender, recipient, ftInAmt, xtInAmt, orders, amtsToSellTokens, netTokenOut); + } + + function leverageFromToken( + address recipient, + ITermMaxMarket market, + ITermMaxOrder[] memory orders, + uint128[] memory amtsToBuyXt, + uint128 minXtOut, + uint128 tokenToSwap, + uint128 maxLtv, + SwapUnit[] memory units, + uint256 deadline + ) external whenNotPaused noCallbackReentrant returns (uint256 gtId, uint256 netXtOut) { + assembly { + tstore(T_CALLBACK_ADDRESS_STORE, market) // set callback address + } + (, IERC20 xt, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + uint256 totalAmtToBuyXt = amtsToBuyXt.sum(); + debtToken.safeTransferFrom(msg.sender, address(this), tokenToSwap + totalAmtToBuyXt); + netXtOut = _swapExactTokenToToken(debtToken, xt, address(this), orders, amtsToBuyXt, minXtOut, deadline); + xt.safeIncreaseAllowance(address(market), netXtOut); + bytes memory callbackData = abi.encode(address(gt), tokenToSwap, units, FlashLoanType.DEBT); + gtId = market.leverageByXt(recipient, netXtOut.toUint128(), callbackData); + (,, bytes memory collateralData) = gt.loanInfo(gtId); + (, uint128 ltv,) = gt.getLiquidationInfo(gtId); + if (ltv > maxLtv) { + revert LtvBiggerThanExpected(maxLtv, ltv); + } + emit IssueGt(market, gtId, msg.sender, recipient, tokenToSwap, netXtOut.toUint128(), ltv, collateralData); + } + + function leverageFromXt( + address recipient, + ITermMaxMarket market, + uint128 xtInAmt, + uint128 tokenInAmt, + uint128 maxLtv, + SwapUnit[] memory units + ) external whenNotPaused noCallbackReentrant returns (uint256 gtId) { + assembly { + tstore(T_CALLBACK_ADDRESS_STORE, market) // set callback address + } + (, IERC20 xt, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + debtToken.safeTransferFrom(msg.sender, address(this), tokenInAmt); + xt.safeTransferFrom(msg.sender, address(this), xtInAmt); + xt.safeIncreaseAllowance(address(market), xtInAmt); + + bytes memory callbackData = abi.encode(address(gt), tokenInAmt, units, FlashLoanType.DEBT); + gtId = market.leverageByXt(recipient, xtInAmt.toUint128(), callbackData); + + (,, bytes memory collateralData) = gt.loanInfo(gtId); + (, uint128 ltv,) = gt.getLiquidationInfo(gtId); + if (ltv > maxLtv) { + revert LtvBiggerThanExpected(maxLtv, ltv); + } + emit IssueGt(market, gtId, msg.sender, recipient, tokenInAmt, xtInAmt, ltv, collateralData); + } + + function leverageFromXtAndCollateral( + address recipient, + ITermMaxMarket market, + uint128 xtInAmt, + uint128 collateralInAmt, + uint128 maxLtv, + SwapUnit[] memory units + ) external whenNotPaused noCallbackReentrant returns (uint256 gtId) { + assembly { + tstore(T_CALLBACK_ADDRESS_STORE, market) // set callback address + } + (, IERC20 xt, IGearingToken gt, address collAddr,) = market.tokens(); + IERC20 collateral = IERC20(collAddr); + + collateral.safeTransferFrom(msg.sender, address(this), collateralInAmt); + collateral.safeIncreaseAllowance(address(market), collateralInAmt); + + xt.safeTransferFrom(msg.sender, address(this), xtInAmt); + xt.safeIncreaseAllowance(address(market), xtInAmt); + + bytes memory callbackData = abi.encode(address(gt), 0, units, FlashLoanType.COLLATERAL); + gtId = market.leverageByXt(recipient, xtInAmt.toUint128(), callbackData); + + (,, bytes memory collateralData) = gt.loanInfo(gtId); + (, uint128 ltv,) = gt.getLiquidationInfo(gtId); + if (ltv > maxLtv) { + revert LtvBiggerThanExpected(maxLtv, ltv); + } + emit IssueGt(market, gtId, msg.sender, recipient, 0, xtInAmt, ltv, collateralData); + } + + function borrowTokenFromCollateral( + address recipient, + ITermMaxMarket market, + uint256 collInAmt, + ITermMaxOrder[] memory orders, + uint128[] memory tokenAmtsWantBuy, + uint128 maxDebtAmt, + uint256 deadline + ) external whenNotPaused returns (uint256) { + (IERC20 ft,, IGearingToken gt, address collateralAddr, IERC20 debtToken) = market.tokens(); + IERC20(collateralAddr).safeTransferFrom(msg.sender, address(this), collInAmt); + IERC20(collateralAddr).safeIncreaseAllowance(address(gt), collInAmt); + + (uint256 gtId, uint128 ftOutAmt) = market.issueFt(address(this), maxDebtAmt, _encodeAmount(collInAmt)); + uint256 netTokenIn = + _swapTokenToExactToken(ft, debtToken, recipient, orders, tokenAmtsWantBuy, ftOutAmt, deadline); + uint256 repayAmt = ftOutAmt - netTokenIn; + if (repayAmt > 0) { + ft.safeIncreaseAllowance(address(gt), repayAmt); + // repay in ft, bool false means not using debt token + gt.repay(gtId, repayAmt.toUint128(), false); + } + + gt.safeTransferFrom(address(this), recipient, gtId); + emit Borrow(market, gtId, msg.sender, recipient, collInAmt, ftOutAmt, netTokenIn.toUint128()); + return gtId; + } + + function borrowTokenFromCollateral(address recipient, ITermMaxMarket market, uint256 collInAmt, uint256 borrowAmt) + external + whenNotPaused + returns (uint256) + { + (IERC20 ft, IERC20 xt, IGearingToken gt, address collateralAddr,) = market.tokens(); + + IERC20(collateralAddr).safeTransferFrom(msg.sender, address(this), collInAmt); + IERC20(collateralAddr).safeIncreaseAllowance(address(gt), collInAmt); + + uint256 mintGtFeeRatio = market.mintGtFeeRatio(); + uint128 debtAmt = ((borrowAmt * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - mintGtFeeRatio)).toUint128(); + + (uint256 gtId, uint128 ftOutAmt) = market.issueFt(address(this), debtAmt, _encodeAmount(collInAmt)); + borrowAmt = borrowAmt.min(ftOutAmt); + xt.safeTransferFrom(msg.sender, address(this), borrowAmt); + ft.safeIncreaseAllowance(address(market), borrowAmt); + xt.safeIncreaseAllowance(address(market), borrowAmt); + market.burn(recipient, borrowAmt); + + gt.safeTransferFrom(address(this), recipient, gtId); + emit Borrow(market, gtId, msg.sender, recipient, collInAmt, debtAmt, borrowAmt.toUint128()); + return gtId; + } + + function borrowTokenFromGt(address recipient, ITermMaxMarket market, uint256 gtId, uint256 borrowAmt) + external + whenNotPaused + { + (IERC20 ft, IERC20 xt, IGearingToken gt,,) = market.tokens(); + + if (gt.ownerOf(gtId) != msg.sender) { + revert GtNotOwnedBySender(); + } + + uint256 mintGtFeeRatio = market.mintGtFeeRatio(); + uint128 debtAmt = ((borrowAmt * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - mintGtFeeRatio)).toUint128(); + + uint256 ftOutAmt = market.issueFtByExistedGt(address(this), debtAmt, gtId); + borrowAmt = borrowAmt.min(ftOutAmt); + xt.safeTransferFrom(msg.sender, address(this), borrowAmt); + ft.safeIncreaseAllowance(address(market), borrowAmt); + xt.safeIncreaseAllowance(address(market), borrowAmt); + market.burn(recipient, borrowAmt); + + emit Borrow(market, gtId, msg.sender, recipient, 0, debtAmt, borrowAmt.toUint128()); + } + + /** + * Deprecated function + * @dev use `flashRepayFromCollV2` instead + */ + function flashRepayFromColl( + address recipient, + ITermMaxMarket market, + uint256 gtId, + bool byDebtToken, + uint256 expectedOutput, + SwapUnit[] memory units, + TermMaxSwapData memory swapData + ) external whenNotPaused noCallbackReentrant returns (uint256 netTokenOut) { + (,, IGearingToken gtToken,, IERC20 debtToken) = market.tokens(); + assembly { + tstore(T_CALLBACK_ADDRESS_STORE, gtToken) // set callback address + } + gtToken.safeTransferFrom(msg.sender, address(this), gtId, ""); + bytes memory callbackData = abi.encode(units, swapData); + callbackData = abi.encode(FlashRepayOptions.REPAY, callbackData); + gtToken.flashRepay(gtId, byDebtToken, callbackData); + netTokenOut = debtToken.balanceOf(address(this)); + if (netTokenOut < expectedOutput) { + revert InsufficientTokenOut(address(debtToken), expectedOutput, netTokenOut); + } + debtToken.safeTransfer(recipient, netTokenOut); + } + + function flashRepayFromCollV2( + address recipient, + ITermMaxMarket market, + uint256 gtId, + uint128 repayAmt, + bool byDebtToken, + uint256 expectedOutput, + bytes memory removedCollateral, + SwapUnit[] memory units, + TermMaxSwapData memory swapData + ) external whenNotPaused noCallbackReentrant returns (uint256 netTokenOut) { + (,, IGearingToken gtToken,, IERC20 debtToken) = market.tokens(); + assembly { + tstore(T_CALLBACK_ADDRESS_STORE, gtToken) // set callback address + } + gtToken.safeTransferFrom(msg.sender, address(this), gtId, ""); + bytes memory callbackData = abi.encode(units, swapData); + callbackData = abi.encode(FlashRepayOptions.REPAY, callbackData); + bool repayAll = + IGearingTokenV2(address(gtToken)).flashRepay(gtId, repayAmt, byDebtToken, removedCollateral, callbackData); + if (!repayAll) { + gtToken.safeTransferFrom(address(this), msg.sender, gtId); + } + netTokenOut = debtToken.balanceOf(address(this)); + if (netTokenOut < expectedOutput) { + revert InsufficientTokenOut(address(debtToken), expectedOutput, netTokenOut); + } + debtToken.safeTransfer(recipient, netTokenOut); + } + + function repayByTokenThroughFt( + address recipient, + ITermMaxMarket market, + uint256 gtId, + ITermMaxOrder[] memory orders, + uint128[] memory ftAmtsWantBuy, + uint128 maxTokenIn, + uint256 deadline + ) external whenNotPaused returns (uint256 returnAmt) { + (IERC20 ft,, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + + debtToken.safeTransferFrom(msg.sender, address(this), maxTokenIn); + uint256 netCost = + _swapTokenToExactToken(debtToken, ft, address(this), orders, ftAmtsWantBuy, maxTokenIn, deadline); + uint256 totalFtAmt = ftAmtsWantBuy.sum(); + (, uint128 repayAmt,) = gt.loanInfo(gtId); + + if (totalFtAmt < repayAmt) { + repayAmt = totalFtAmt.toUint128(); + } + ft.safeIncreaseAllowance(address(gt), repayAmt); + // repay in ft, bool false means not using debt token + gt.repay(gtId, repayAmt, false); + + returnAmt = maxTokenIn - netCost; + debtToken.safeTransfer(recipient, returnAmt); + if (totalFtAmt > repayAmt) { + ft.safeTransfer(recipient, totalFtAmt - repayAmt); + } + + emit RepayByTokenThroughFt(market, gtId, msg.sender, recipient, repayAmt, returnAmt); + } + + /** + * @inheritdoc ITermMaxRouterV2 + */ + function repayGt(ITermMaxMarket market, uint256 gtId, uint128 maxRepayAmt, bool byDebtToken) + external + override + whenNotPaused + returns (uint128 repayAmt) + { + (IERC20 ft,, IGearingToken gt,, IERC20 debtToken) = market.tokens(); + (, uint128 debtAmt,) = gt.loanInfo(gtId); // Ensure gtId is valid + if (maxRepayAmt > debtAmt) { + repayAmt = debtAmt; + } else { + repayAmt = maxRepayAmt; + } + IERC20 repayToken = byDebtToken ? debtToken : ft; + repayToken.safeTransferFrom(msg.sender, address(this), repayAmt); + repayToken.safeIncreaseAllowance(address(gt), repayAmt); + gt.repay(gtId, repayAmt, byDebtToken); + } + + function redeemAndSwap( + address recipient, + ITermMaxMarket market, + uint256 ftAmount, + SwapUnit[] memory units, + uint256 minTokenOut + ) external whenNotPaused returns (uint256) { + (IERC20 ft,,,, IERC20 debtToken) = market.tokens(); + ft.safeTransferFrom(msg.sender, address(this), ftAmount); + ft.safeIncreaseAllowance(address(market), ftAmount); + (uint256 redeemedAmt, bytes memory collateralData) = market.redeem(ftAmount, address(this)); + redeemedAmt += _doSwap(_decodeAmount(collateralData), units); + if (redeemedAmt < minTokenOut) { + revert InsufficientTokenOut(address(debtToken), redeemedAmt, minTokenOut); + } + debtToken.safeTransfer(recipient, redeemedAmt); + emit RedeemAndSwap(market, ftAmount, msg.sender, recipient, redeemedAmt); + return redeemedAmt; + } + + /** + * @inheritdoc ITermMaxRouterV2 + */ + function placeOrderForV1( + ITermMaxMarket market, + address maker, + uint256 collateralToMintGt, + uint256 debtTokenToDeposit, + uint128 ftToDeposit, + uint128 xtToDeposit, + OrderConfig memory orderConfig + ) external whenNotPaused returns (ITermMaxOrder order, uint256 gtId) { + (IERC20 ft, IERC20 xt, IGearingToken gt, address collateral, IERC20 debtToken) = market.tokens(); + if (collateralToMintGt > 0) { + IERC20(collateral).safeTransferFrom(msg.sender, address(this), collateralToMintGt); + IERC20(collateral).safeIncreaseAllowance(address(gt), collateralToMintGt); + (gtId,) = market.issueFt(maker, 0, _encodeAmount(collateralToMintGt)); + } + order = market.createOrder(maker, orderConfig.maxXtReserve, orderConfig.swapTrigger, orderConfig.curveCuts); + + if (debtTokenToDeposit > 0) { + debtToken.safeTransferFrom(msg.sender, address(this), debtTokenToDeposit); + debtToken.safeIncreaseAllowance(address(market), debtTokenToDeposit); + market.mint(address(order), debtTokenToDeposit); + } + ft.safeTransferFrom(msg.sender, address(order), ftToDeposit); + xt.safeTransferFrom(msg.sender, address(order), xtToDeposit); + emit RouterEventsV2.PlaceOrder(maker, address(order), address(market), gtId, orderConfig); + } + + /** + * @inheritdoc ITermMaxRouterV2 + */ + function placeOrderForV2( + ITermMaxMarket market, + address maker, + uint256 collateralToMintGt, + uint256 debtTokenToDeposit, + uint128 ftToDeposit, + uint128 xtToDeposit, + OrderConfig memory orderConfig + ) external whenNotPaused returns (ITermMaxOrder order, uint256 gtId) { + (IERC20 ft, IERC20 xt, IGearingToken gt, address collateral, IERC20 debtToken) = market.tokens(); + if (collateralToMintGt > 0) { + IERC20(collateral).safeTransferFrom(msg.sender, address(this), collateralToMintGt); + IERC20(collateral).safeIncreaseAllowance(address(gt), collateralToMintGt); + (orderConfig.gtId,) = market.issueFt(maker, 0, _encodeAmount(collateralToMintGt)); + } + order = ITermMaxMarketV2(address(market)).createOrder(maker, orderConfig); + + if (debtTokenToDeposit > 0) { + debtToken.safeTransferFrom(msg.sender, address(this), debtTokenToDeposit); + debtToken.safeIncreaseAllowance(address(market), debtTokenToDeposit); + market.mint(address(order), debtTokenToDeposit); + } + ft.safeTransferFrom(msg.sender, address(order), ftToDeposit); + xt.safeTransferFrom(msg.sender, address(order), xtToDeposit); + emit RouterEventsV2.PlaceOrder(maker, address(order), address(market), gtId, orderConfig); + } + + /** + * @inheritdoc ITermMaxRouterV2 + */ + function rolloverGt( + address recipient, + IGearingToken gtToken, + uint256 gtId, + uint128 additionalAssets, + SwapUnit[] memory units, + ITermMaxMarket nextMarket, + uint256 additionalNextCollateral, + TermMaxSwapData memory swapData, + uint128 maxLtv + ) external whenNotPaused noCallbackReentrant returns (uint256 newGtId) { + assembly { + // set callback address + tstore(T_CALLBACK_ADDRESS_STORE, gtToken) + // clear ts stograge + tstore(T_ROLLOVER_GT_RESERVE_STORE, 0) + } + // additional debt token to reduce the ltv + if (additionalAssets != 0) { + IERC20(swapData.tokenOut).safeTransferFrom(msg.sender, address(this), additionalAssets); + } + // additional collateral to reduce the ltv + if (additionalNextCollateral != 0) { + IERC20(units[units.length - 1].tokenOut).safeTransferFrom( + msg.sender, address(this), additionalNextCollateral + ); + } + gtToken.safeTransferFrom(msg.sender, address(this), gtId, ""); + bytes memory callbackData = + abi.encode(recipient, maxLtv, additionalAssets, nextMarket, additionalNextCollateral, units, swapData); + callbackData = abi.encode(FlashRepayOptions.ROLLOVER, callbackData); + gtToken.flashRepay(gtId, true, callbackData); + assembly { + newGtId := tload(T_ROLLOVER_GT_RESERVE_STORE) + } + } + + /** + * @inheritdoc ITermMaxRouterV2 + */ + function rolloverGtV2( + address recipient, + IGearingToken gtToken, + uint256 gtId, + uint128 repayAmt, + uint128 additionalAssets, + uint256 removedCollateral, + SwapUnit[] memory units, + ITermMaxMarket nextMarket, + uint256 additionalNextCollateral, + TermMaxSwapData memory swapData, + uint128 maxLtv + ) external whenNotPaused noCallbackReentrant returns (uint256 newGtId) { + assembly { + // set callback address + tstore(T_CALLBACK_ADDRESS_STORE, gtToken) + // clear ts stograge + tstore(T_ROLLOVER_GT_RESERVE_STORE, 0) + } + // additional debt token to reduce the ltv + if (additionalAssets != 0) { + IERC20(swapData.tokenOut).safeTransferFrom(msg.sender, address(this), additionalAssets); + } + // additional collateral to reduce the ltv + if (additionalNextCollateral != 0) { + IERC20(units[units.length - 1].tokenOut).safeTransferFrom( + msg.sender, address(this), additionalNextCollateral + ); + } + gtToken.safeTransferFrom(msg.sender, address(this), gtId, ""); + bytes memory callbackData = + abi.encode(recipient, maxLtv, additionalAssets, nextMarket, additionalNextCollateral, units, swapData); + callbackData = abi.encode(FlashRepayOptions.ROLLOVER, callbackData); + if ( + !IGearingTokenV2(address(gtToken)).flashRepay( + gtId, repayAmt, true, abi.encode(removedCollateral), callbackData + ) + ) { + gtToken.safeTransferFrom(address(this), recipient, gtId); + } + assembly { + newGtId := tload(T_ROLLOVER_GT_RESERVE_STORE) + } + } + + /// @dev Market flash leverage flashloan callback + function executeOperation(address, IERC20, uint256 amount, bytes memory data) + external + override + onlyCallbackAddress + returns (bytes memory collateralData) + { + (address gt, uint256 tokenInAmt, SwapUnit[] memory units, FlashLoanType flashLoanType) = + abi.decode(data, (address, uint256, SwapUnit[], FlashLoanType)); + uint256 totalAmount = amount + tokenInAmt; + uint256 collateralBalance = _doSwap(totalAmount, units); + SwapUnit memory lastUnit = units[units.length - 1]; + if (!adapterWhitelist[lastUnit.adapter]) { + revert AdapterNotWhitelisted(lastUnit.adapter); + } + IERC20 collateral = IERC20(lastUnit.tokenOut); + if (flashLoanType == FlashLoanType.COLLATERAL) { + collateralBalance = collateral.balanceOf(address(this)); + } + collateral.safeIncreaseAllowance(gt, collateralBalance); + collateralData = _encodeAmount(collateralBalance); + } + + function _balanceOf(IERC20 token, address account) internal view returns (uint256) { + return token.balanceOf(account); + } + + function _encodeAmount(uint256 amount) internal pure returns (bytes memory) { + return abi.encode(amount); + } + + function _decodeAmount(bytes memory collateralData) internal pure returns (uint256) { + return abi.decode(collateralData, (uint256)); + } + + /// @dev Gt flash repay flashloan callback + function executeOperation( + IERC20 repayToken, + uint128 debtAmt, + address, + bytes memory collateralData, + bytes memory callbackData + ) external override onlyCallbackAddress { + (FlashRepayOptions option, bytes memory data) = abi.decode(callbackData, (FlashRepayOptions, bytes)); + if (option == FlashRepayOptions.REPAY) { + _flashRepay(repayToken, collateralData, data); + } else if (option == FlashRepayOptions.ROLLOVER) { + _rollover(repayToken, debtAmt, collateralData, data); + } + repayToken.safeIncreaseAllowance(msg.sender, debtAmt); + } + + function _flashRepay(IERC20, bytes memory collateralData, bytes memory callbackData) internal { + (SwapUnit[] memory units, TermMaxSwapData memory swapData) = + abi.decode(callbackData, (SwapUnit[], TermMaxSwapData)); + uint256 amount = _doSwap(_decodeAmount(collateralData), units); + + if (swapData.orders.length > 0) { + // swap token to exact token + _swapTokenToExactToken( + IERC20(swapData.tokenIn), + IERC20(swapData.tokenOut), + address(this), + swapData.orders, + swapData.tradingAmts, + amount.toUint128(), + swapData.deadline + ); + } + } + + function _rollover(IERC20 debtToken, uint256 debtAmt, bytes memory collateralData, bytes memory callbackData) + internal + { + ( + address recipient, + uint128 maxLtv, + uint128 additionalAssets, + ITermMaxMarket market, + uint256 additionalNextCollateral, + SwapUnit[] memory units, + TermMaxSwapData memory swapData + ) = abi.decode(callbackData, (address, uint128, uint128, ITermMaxMarket, uint256, SwapUnit[], TermMaxSwapData)); + { + // swap collateral + collateralData = + units.length == 0 ? collateralData : _encodeAmount(_doSwap(_decodeAmount(collateralData), units)); + } + (IERC20 ft,, IGearingToken gt, address collateral,) = market.tokens(); + uint256 gtId; + { + // issue new gt + uint256 mintGtFeeRatio = market.mintGtFeeRatio(); + uint128 newDebtAmt = ( + (swapData.netTokenAmt * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - mintGtFeeRatio) + ).toUint128(); + uint256 newCollateralAmt = _decodeAmount(collateralData) + additionalNextCollateral; + IERC20(collateral).safeIncreaseAllowance(address(gt), newCollateralAmt); + (gtId,) = market.issueFt(address(this), newDebtAmt, abi.encode(newCollateralAmt)); + } + { + uint256 netFtIn = _swapTokenToExactToken( + ft, + debtToken, + address(this), + swapData.orders, + swapData.tradingAmts, + swapData.netTokenAmt, + swapData.deadline + ); + // check remaining ft amount + if (swapData.netTokenAmt > netFtIn) { + uint256 repaidFtAmt = swapData.netTokenAmt - netFtIn; + ft.safeIncreaseAllowance(address(gt), repaidFtAmt); + // repay in ft, bool false means not using debt token + gt.repay(gtId, repaidFtAmt.toUint128(), false); + } + // check remaining debt token amount + uint256 totalDebtTokenAmt = swapData.tradingAmts.sum() + additionalAssets; + if (totalDebtTokenAmt > debtAmt) { + uint256 repaidDebtAmt = totalDebtTokenAmt - debtAmt; + debtToken.safeIncreaseAllowance(address(gt), repaidDebtAmt); + // repay in debt token, bool true means using debt token + gt.repay(gtId, repaidDebtAmt.toUint128(), true); + } + (, uint128 ltv,) = gt.getLiquidationInfo(gtId); + if (ltv > maxLtv) { + revert LtvBiggerThanExpected(maxLtv, ltv); + } + } + // transfer new gt to recipient + gt.safeTransferFrom(address(this), recipient, gtId); + assembly { + tstore(T_ROLLOVER_GT_RESERVE_STORE, gtId) + } + } + + function _doSwap(uint256 inputAmt, SwapUnit[] memory units) internal returns (uint256 outputAmt) { + if (units.length == 0) { + revert SwapUnitsIsEmpty(); + } + for (uint256 i = 0; i < units.length; ++i) { + if (!adapterWhitelist[units[i].adapter]) { + revert AdapterNotWhitelisted(units[i].adapter); + } + bytes memory dataToSwap = abi.encodeCall( + IERC20SwapAdapter.swap, + (address(this), units[i].tokenIn, units[i].tokenOut, inputAmt, units[i].swapData) + ); + + (bool success, bytes memory returnData) = units[i].adapter.delegatecall(dataToSwap); + if (!success) { + revert SwapFailed(units[i].adapter, returnData); + } + inputAmt = abi.decode(returnData, (uint256)); + } + outputAmt = inputAmt; + } + + function onERC721Received(address, address, uint256, bytes memory) external pure override returns (bytes4) { + return this.onERC721Received.selector; + } + + function pause() external onlyOwner { + _pause(); + } + + function unpause() external onlyOwner { + _unpause(); + } +} diff --git a/contracts/v2/router/swapAdapters/ERC20SwapAdapterV2.sol b/contracts/v2/router/swapAdapters/ERC20SwapAdapterV2.sol new file mode 100644 index 0000000..084934c --- /dev/null +++ b/contracts/v2/router/swapAdapters/ERC20SwapAdapterV2.sol @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {TransferUtilsV2} from "../../lib/TransferUtilsV2.sol"; +import {IERC20SwapAdapter} from "../IERC20SwapAdapter.sol"; +import {OnlyProxyCall} from "../../lib/OnlyProxyCall.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; + +/** + * @title TermMax ERC20SwapAdapter V2 + * @author Term Structure Labs + * @notice This contract is an abstract base for ERC20 swap adapters in the TermMax protocol. + */ +abstract contract ERC20SwapAdapterV2 is IERC20SwapAdapter, OnlyProxyCall { + using TransferUtilsV2 for IERC20; + + /// @notice Error for less than min token out + /// @dev Revert when the actual output token amount is less than the expected minimum + error LessThanMinTokenOut(uint256 actual, uint256 expected); + /// @notice Error for exceeding max token in + /// @dev Revert when the actual required input token amount exceeds the expected maximum + error ExceedMaxTokenIn(uint256 actual, uint256 expected); + + /** + * @inheritdoc IERC20SwapAdapter + */ + function swap(address recipient, address tokenIn, address tokenOut, uint256 tokenInAmt, bytes memory swapData) + external + override + onlyProxy + returns (uint256) + { + return _swap(recipient, IERC20(tokenIn), IERC20(tokenOut), tokenInAmt, swapData); + } + + function _swap(address recipient, IERC20 tokenIn, IERC20 tokenOut, uint256 tokenInAmt, bytes memory swapData) + internal + virtual + returns (uint256 tokenOutAmt) + {} +} diff --git a/contracts/v2/router/swapAdapters/ERC4626VaultAdapterV2.sol b/contracts/v2/router/swapAdapters/ERC4626VaultAdapterV2.sol new file mode 100644 index 0000000..172612c --- /dev/null +++ b/contracts/v2/router/swapAdapters/ERC4626VaultAdapterV2.sol @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IERC4626} from "@openzeppelin/contracts/interfaces/IERC4626.sol"; +import "./ERC20SwapAdapterV2.sol"; + +/** + * @title TermMax ERC4626VaultAdapterV2 + * @author Term Structure Labs + */ +contract ERC4626VaultAdapterV2 is ERC20SwapAdapterV2 { + using TransferUtilsV2 for IERC20; + using Math for uint256; + + enum Action { + Deposit, + Redeem + } + + error InvalidAction(); + + function _swap(address recipient, IERC20 tokenIn, IERC20 tokenOut, uint256 amount, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + (Action action, uint256 inAmount, uint256 minTokenOut) = abi.decode(swapData, (Action, uint256, uint256)); + /** + * Note: Scaling Input/Output amount (round up) + */ + minTokenOut = minTokenOut.mulDiv(amount, inAmount, Math.Rounding.Ceil); + + if (action == Action.Deposit) { + tokenIn.safeIncreaseAllowance(address(tokenOut), amount); + tokenOutAmt = IERC4626(address(tokenOut)).deposit(amount, recipient); + if (tokenOutAmt < minTokenOut) { + revert LessThanMinTokenOut(tokenOutAmt, minTokenOut); + } + } else if (action == Action.Redeem) { + tokenOutAmt = IERC4626(address(tokenIn)).redeem(amount, recipient, address(this)); + if (tokenOutAmt < minTokenOut) { + revert LessThanMinTokenOut(tokenOutAmt, minTokenOut); + } + } else { + revert InvalidAction(); + } + } +} diff --git a/contracts/v2/router/swapAdapters/KyberswapV2AdapterV2.sol b/contracts/v2/router/swapAdapters/KyberswapV2AdapterV2.sol new file mode 100644 index 0000000..f938734 --- /dev/null +++ b/contracts/v2/router/swapAdapters/KyberswapV2AdapterV2.sol @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {Address} from "@openzeppelin/contracts/utils/Address.sol"; +import "./ERC20SwapAdapterV2.sol"; + +/** + * @title KyberswapV2AdapterV2 Scaling helper interface + */ +interface IKyberScalingHelper { + /// @notice Get scaled input data for KyberswapV2 + /// @param inputData The original swap data + /// @param newAmount The new amount to scale the input data + /// @return isSuccess Boolean indicating if the scaling was successful + /// @return data The scaled input data + function getScaledInputData(bytes calldata inputData, uint256 newAmount) + external + view + returns (bool isSuccess, bytes memory data); +} + +/** + * @title TermMax KyberswapV2AdapterV2 + * @author Term Structure Labs + */ +contract KyberswapV2AdapterV2 is ERC20SwapAdapterV2 { + using Address for address; + using TransferUtilsV2 for IERC20; + + error KyberScalingFailed(bytes errorData); + + address public immutable router; + address public immutable KYBER_SCALING_HELPER; + + constructor(address router_, address scalingHelper_) { + router = router_; + KYBER_SCALING_HELPER = scalingHelper_; + } + + function _swap(address, IERC20 tokenIn, IERC20, uint256 amountIn, bytes memory swapData) + internal + virtual + override + returns (uint256) + { + IERC20(tokenIn).safeIncreaseAllowance(address(router), amountIn); + (bool isSuccess, bytes memory newSwapData) = + IKyberScalingHelper(KYBER_SCALING_HELPER).getScaledInputData(swapData, amountIn); + + require(isSuccess, KyberScalingFailed(newSwapData)); + + bytes memory returnData = router.functionCall(newSwapData); + (uint256 tokenOutAmt,) = abi.decode(returnData, (uint256, uint256)); + return tokenOutAmt; + } +} diff --git a/contracts/v2/router/swapAdapters/OdosV2AdapterV2.sol b/contracts/v2/router/swapAdapters/OdosV2AdapterV2.sol new file mode 100644 index 0000000..45bc86a --- /dev/null +++ b/contracts/v2/router/swapAdapters/OdosV2AdapterV2.sol @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "./ERC20SwapAdapterV2.sol"; + +/** + * @title OdosRouterV2 interface + */ +interface IOdosRouterV2 { + /// @notice Struct to hold swap token information + struct SwapTokenInfo { + address inputToken; + uint256 inputAmount; + address inputReceiver; + address outputToken; + uint256 outputQuote; + uint256 outputMin; + address outputReceiver; + } + + function swap(SwapTokenInfo memory tokenInfo, bytes calldata pathDefinition, address executor, uint32 referralCode) + external + payable + returns (uint256 amountOut); +} + +/** + * @title TermMax OdosAdapterV2AdapterV2 + * @author Term Structure Labs + */ +contract OdosV2AdapterV2 is ERC20SwapAdapterV2 { + using TransferUtilsV2 for IERC20; + using Math for uint256; + + IOdosRouterV2 public immutable router; + + constructor(address router_) { + router = IOdosRouterV2(router_); + } + + function _swap(address recipient, IERC20 tokenIn, IERC20, uint256 amountIn, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + tokenIn.safeIncreaseAllowance(address(router), amountIn); + + ( + IOdosRouterV2.SwapTokenInfo memory tokenInfo, + bytes memory pathDefinition, + address executor, + uint32 referralCode + ) = abi.decode(swapData, (IOdosRouterV2.SwapTokenInfo, bytes, address, uint32)); + + /** + * Note: Scaling Input/Output amount + */ + tokenInfo.outputQuote = tokenInfo.outputQuote.mulDiv(amountIn, tokenInfo.inputAmount, Math.Rounding.Ceil); + tokenInfo.outputMin = tokenInfo.outputMin.mulDiv(amountIn, tokenInfo.inputAmount, Math.Rounding.Ceil); + tokenInfo.inputAmount = amountIn; + tokenInfo.outputReceiver = recipient; + + tokenOutAmt = router.swap(tokenInfo, pathDefinition, executor, referralCode); + } +} diff --git a/contracts/v2/router/swapAdapters/PendleSwapV3AdapterV2.sol b/contracts/v2/router/swapAdapters/PendleSwapV3AdapterV2.sol new file mode 100644 index 0000000..9f01867 --- /dev/null +++ b/contracts/v2/router/swapAdapters/PendleSwapV3AdapterV2.sol @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IPAllActionV3} from "@pendle/core-v2/contracts/interfaces/IPAllActionV3.sol"; +import {IPMarket, IPPrincipalToken, IPYieldToken} from "@pendle/core-v2/contracts/interfaces/IPMarket.sol"; +import {PendleHelper} from "../../extensions/pendle/PendleHelper.sol"; +import "./ERC20SwapAdapterV2.sol"; + +/** + * @title TermMax PendleSwapV3AdapterV2 + * @author Term Structure Labs + */ +contract PendleSwapV3AdapterV2 is ERC20SwapAdapterV2, PendleHelper { + using TransferUtilsV2 for IERC20; + using Math for uint256; + + IPAllActionV3 public immutable router; + + constructor(address router_) { + router = IPAllActionV3(router_); + } + + function _swap(address recipient, IERC20 tokenIn, IERC20 tokenOut, uint256 amount, bytes memory swapData) + internal + virtual + override + onlyProxy + returns (uint256 tokenOutAmt) + { + (address ptMarketAddr, uint256 inAmount, uint256 minTokenOut) = + abi.decode(swapData, (address, uint256, uint256)); + IPMarket market = IPMarket(ptMarketAddr); + + (, IPPrincipalToken PT,) = market.readTokens(); + IERC20(tokenIn).safeIncreaseAllowance(address(router), amount); + + /** + * Note: Scaling Input/Output amount + */ + minTokenOut = minTokenOut.mulDiv(amount, inAmount, Math.Rounding.Ceil); + if (tokenOut == PT) { + (tokenOutAmt,,) = router.swapExactTokenForPt( + recipient, + address(market), + minTokenOut, + defaultApprox, + createTokenInputStruct(address(tokenIn), amount), + emptyLimit + ); + } else { + if (PT.isExpired()) { + (tokenOutAmt,) = router.redeemPyToToken( + recipient, PT.YT(), amount, createTokenOutputStruct(address(tokenOut), minTokenOut) + ); + } else { + (tokenOutAmt,,) = router.swapExactPtForToken( + recipient, + address(market), + amount, + createTokenOutputStruct(address(tokenOut), minTokenOut), + emptyLimit + ); + } + } + } +} diff --git a/contracts/v2/router/swapAdapters/TermMaxSwapAdapter.sol b/contracts/v2/router/swapAdapters/TermMaxSwapAdapter.sol new file mode 100644 index 0000000..fbabda3 --- /dev/null +++ b/contracts/v2/router/swapAdapters/TermMaxSwapAdapter.sol @@ -0,0 +1,53 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {ERC20SwapAdapterV2, IERC20} from "./ERC20SwapAdapterV2.sol"; +import {ITermMaxOrder} from "contracts/interfaces/ITermMaxOrder.sol"; +import {TransferUtilsV2} from "../../lib/TransferUtilsV2.sol"; + +struct TermMaxSwapData { + bool swapExactTokenForToken; + address tokenIn; + address tokenOut; + address[] orders; + uint128[] tradingAmts; + uint128 netTokenAmt; + uint256 deadline; +} + +contract TermMaxSwapAdapter is ERC20SwapAdapterV2 { + using TransferUtilsV2 for IERC20; + + error OrdersAndAmtsLengthNotMatch(); + + function _swap(address recipient, IERC20 tokenIn, IERC20 tokenOut, uint256 tokenInAmt, bytes memory swapData) + internal + virtual + override + returns (uint256 netTokenOutOrIn) + { + TermMaxSwapData memory data = abi.decode(swapData, (TermMaxSwapData)); + if (data.orders.length != data.tradingAmts.length) revert OrdersAndAmtsLengthNotMatch(); + + if (data.swapExactTokenForToken) { + for (uint256 i = 0; i < data.orders.length; ++i) { + address order = data.orders[i]; + tokenIn.forceApprove(order, data.tradingAmts[i]); + netTokenOutOrIn += ITermMaxOrder(order).swapExactTokenToToken( + tokenIn, tokenOut, recipient, data.tradingAmts[i], 0, data.deadline + ); + } + if (netTokenOutOrIn < data.netTokenAmt) revert LessThanMinTokenOut(netTokenOutOrIn, data.netTokenAmt); + } else { + for (uint256 i = 0; i < data.orders.length; ++i) { + address order = data.orders[i]; + // Use maximum allowance for the swap because the final input amount is unknown + tokenIn.forceApprove(order, data.netTokenAmt); + netTokenOutOrIn += ITermMaxOrder(order).swapTokenToExactToken( + tokenIn, tokenOut, recipient, data.tradingAmts[i], data.netTokenAmt, data.deadline + ); + } + if (netTokenOutOrIn > data.netTokenAmt) revert LessThanMinTokenOut(netTokenOutOrIn, data.netTokenAmt); + } + } +} diff --git a/contracts/v2/router/swapAdapters/TermMaxTokenAdapter.sol b/contracts/v2/router/swapAdapters/TermMaxTokenAdapter.sol new file mode 100644 index 0000000..37b3252 --- /dev/null +++ b/contracts/v2/router/swapAdapters/TermMaxTokenAdapter.sol @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "./ERC20SwapAdapterV2.sol"; +import {ITermMaxToken} from "../../tokens/ITermMaxToken.sol"; + +/** + * @title TermMaxTokenAdapter + * @notice Swap adapter for TermMax native tokens that support mint/burn operations + * @dev This adapter enables seamless token conversion between TermMax tokens and their underlying assets + * through mint and burn operations rather than traditional swaps. It's designed to work with + * tokens that implement the ITermMaxToken interface. + * + * @dev Usage patterns: + * - Wrapping: Convert underlying asset to TermMax token via mint operation + * - Unwrapping: Convert TermMax token back to underlying asset via burn operation + * + * @dev The adapter maintains a 1:1 conversion ratio between input and output tokens, + * making it suitable for wrapped token scenarios where no price discovery is needed. + */ +contract TermMaxTokenAdapter is ERC20SwapAdapterV2 { + /** + * @notice Performs token conversion through mint/burn operations + * @dev Overrides the base swap function to implement TermMax token-specific logic + * + * @param tokenIn The input token address + * @param tokenOut The output token address + * @param tokenInAmt The amount of input tokens to convert + * @param swapData Encoded boolean indicating operation type: + * - true: Wrap operation (mint tokenOut using tokenIn) + * - false: Unwrap operation (burn tokenIn to get underlying) + * + * @return tokenOutAmt The amount of output tokens received (always equals tokenInAmt for 1:1 conversion) + * + * @dev Security considerations: + * - Assumes caller has already transferred tokenInAmt to this contract + * - For wrap operations: tokenOut must implement ITermMaxToken.mint() + * - For unwrap operations: tokenIn must implement ITermMaxToken.burn() + * - No slippage protection needed due to 1:1 conversion ratio + */ + function _swap(address recipient, IERC20 tokenIn, IERC20 tokenOut, uint256 tokenInAmt, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + // Decode the operation type from swap data + bool isWrap = abi.decode(swapData, (bool)); + + if (isWrap) { + // Wrap operation: Mint new TermMax tokens + // tokenOut must be a TermMax token that supports minting + ITermMaxToken(address(tokenOut)).mint(recipient, tokenInAmt); + } else { + // Unwrap operation: Burn existing TermMax tokens + // tokenIn must be a TermMax token that supports burning + ITermMaxToken(address(tokenIn)).burn(recipient, tokenInAmt); + } + + // Return the same amount due to 1:1 conversion ratio + tokenOutAmt = tokenInAmt; + } +} diff --git a/contracts/v2/router/swapAdapters/UniswapV3AdapterV2.sol b/contracts/v2/router/swapAdapters/UniswapV3AdapterV2.sol new file mode 100644 index 0000000..f7130c3 --- /dev/null +++ b/contracts/v2/router/swapAdapters/UniswapV3AdapterV2.sol @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {ISwapRouter} from "@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol"; +import "./ERC20SwapAdapterV2.sol"; + +/** + * @title TermMax UniswapV3AdapterV2 + * @author Term Structure Labs + */ +contract UniswapV3AdapterV2 is ERC20SwapAdapterV2 { + using TransferUtilsV2 for IERC20; + using Math for uint256; + + ISwapRouter public immutable router; + + constructor(address router_) { + router = ISwapRouter(router_); + } + + function _swap(address recipient, IERC20 tokenIn, IERC20, uint256 amount, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + IERC20(tokenIn).safeIncreaseAllowance(address(router), amount); + (bytes memory path, uint256 deadline, uint256 inAmount, uint256 amountOutMinimum) = + abi.decode(swapData, (bytes, uint256, uint256, uint256)); + /** + * Note: Scaling Input/Output amount + */ + amountOutMinimum = amountOutMinimum.mulDiv(amount, inAmount, Math.Rounding.Ceil); + + tokenOutAmt = router.exactInput( + ISwapRouter.ExactInputParams({ + path: path, + recipient: recipient, + deadline: deadline, + amountIn: amount, + amountOutMinimum: amountOutMinimum + }) + ); + } +} diff --git a/contracts/v2/storage/TermMaxStorageV2.sol b/contracts/v2/storage/TermMaxStorageV2.sol new file mode 100644 index 0000000..17d6ffb --- /dev/null +++ b/contracts/v2/storage/TermMaxStorageV2.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +struct VaultInitialParamsV2 { + address admin; + address curator; + address guardian; + uint256 timelock; + IERC20 asset; + uint256 maxCapacity; + string name; + string symbol; + /// @notice The performance fee rate in base units, e.g. 20% = 0.2e8 + uint64 performanceFeeRate; + /// @notice The minimum APY in base units, e.g. 2% = 0.02e8 + uint64 minApy; + /// @notice The minimum idle fund rate in base units, e.g. 10% = 0.1e8 + uint64 minIdleFundRate; +} diff --git a/contracts/v2/test/MockAave.sol b/contracts/v2/test/MockAave.sol new file mode 100644 index 0000000..e78f6ec --- /dev/null +++ b/contracts/v2/test/MockAave.sol @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {IAaveV3Minimal} from "../extensions/aave/IAaveV3Minimal.sol"; +import {IMintableERC20, IERC20} from "../../v1/tokens/IMintableERC20.sol"; + +contract MockAave is ERC20, IAaveV3Minimal { + IERC20 public immutable underlying; + + constructor(address underlying_) ERC20("MockAave", "mAAVE") { + underlying = IERC20(underlying_); + } + + function getReserveData(address) external view override returns (ReserveData memory) { + return ReserveData({ + configuration: ReserveConfigurationMap({data: 0}), + liquidityIndex: 1e27, + currentLiquidityRate: 0, + variableBorrowIndex: 1e27, + currentVariableBorrowRate: 0, + currentStableBorrowRate: 0, + lastUpdateTimestamp: uint40(block.timestamp), + id: 0, + aTokenAddress: address(this), + stableDebtTokenAddress: address(0), + variableDebtTokenAddress: address(0), + interestRateStrategyAddress: address(0), + accruedToTreasury: 0, + unbacked: 0, + isolationModeTotalDebt: 0 + }); + } + + function supply(address asset, uint256 amount, address onBehalfOf, uint16 /* referralCode */ ) external override { + // Transfer tokens from sender to this contract + IERC20(asset).transferFrom(msg.sender, address(this), amount); + // Mint aTokens to the onBehalfOf address + _mint(onBehalfOf, amount); + } + + function withdraw(address asset, uint256 amount, address to) external override returns (uint256) { + // Burn aTokens from sender + _burn(msg.sender, amount); + uint256 balance = IERC20(asset).balanceOf(address(this)); + if (balance < amount) { + IMintableERC20(asset).mint(address(this), amount - balance); + } + // Transfer underlying tokens to the recipient + IERC20(asset).transfer(to, amount); + return amount; + } + + function simulateInterestAccrual(address to, uint256 amount) external { + // Simulate interest accrual by minting aTokens + _mint(to, amount); + } +} diff --git a/contracts/v2/test/MockFlashRepayerV2.sol b/contracts/v2/test/MockFlashRepayerV2.sol new file mode 100644 index 0000000..e958578 --- /dev/null +++ b/contracts/v2/test/MockFlashRepayerV2.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {IGearingToken, IGearingTokenV2, IERC20, IFlashRepayer} from "../tokens/AbstractGearingTokenV2.sol"; +import {IERC721Receiver} from "@openzeppelin/contracts/interfaces/IERC721Receiver.sol"; + +contract MockFlashRepayerV2 is IFlashRepayer, IERC721Receiver { + IGearingToken gt; + + constructor(IGearingToken gt_) { + gt = gt_; + } + + function flashRepay(uint256 id, uint128 repayAmt, bool byUnderlying, bytes calldata removedCollateral) external { + gt.safeTransferFrom(msg.sender, address(this), id, ""); + bool repayAll = IGearingTokenV2(address(gt)).flashRepay(id, repayAmt, byUnderlying, removedCollateral, ""); + if (!repayAll) { + gt.safeTransferFrom(address(this), msg.sender, id, ""); + } + } + + function executeOperation(IERC20 repayToken, uint128 debtAmt, address, bytes memory, bytes calldata) + external + override + { + repayToken.approve(address(gt), debtAmt); + } + + function onERC721Received(address, address, uint256, bytes calldata) external pure override returns (bytes4) { + return this.onERC721Received.selector; + } +} diff --git a/contracts/v2/test/MockOrderV2.sol b/contracts/v2/test/MockOrderV2.sol new file mode 100644 index 0000000..0cd4c85 --- /dev/null +++ b/contracts/v2/test/MockOrderV2.sol @@ -0,0 +1,350 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {ITermMaxOrder, IERC20} from "../../v1/ITermMaxOrder.sol"; +import {ITermMaxMarket} from "../../v1/ITermMaxMarket.sol"; +import {IGearingToken} from "../../v1/tokens/IGearingToken.sol"; +import {IFlashLoanReceiver} from "../../v1/IFlashLoanReceiver.sol"; +import {Constants} from "../../v1/lib/Constants.sol"; +import {TermMaxCurve, MathLib} from "../../v1/lib/TermMaxCurve.sol"; +import {OrderErrors} from "../../v1/errors/OrderErrors.sol"; +import {OrderEvents} from "../../v1/events/OrderEvents.sol"; +import {OrderConfig, MarketConfig, CurveCuts, CurveCut, FeeConfig} from "../../v1/storage/TermMaxStorage.sol"; +import {ISwapCallback} from "../../v1/ISwapCallback.sol"; +import {TransferUtils} from "../../v1/lib/TransferUtils.sol"; +import {ITermMaxMarketV2} from "../ITermMaxMarketV2.sol"; +import {OrderEventsV2} from "../events/OrderEventsV2.sol"; +import {ITermMaxOrderV2} from "../ITermMaxOrderV2.sol"; + +/** + * @title TermMax Order + * @author Term Structure Labs + */ +contract MockOrderV2 is + ITermMaxOrder, + ITermMaxOrderV2, + ReentrancyGuardUpgradeable, + OwnableUpgradeable, + PausableUpgradeable, + OrderErrors, + OrderEvents +{ + using SafeCast for uint256; + using SafeCast for int256; + using TransferUtils for IERC20; + + ITermMaxMarket public market; + + IERC20 private ft; + IERC20 private xt; + IERC20 private debtToken; + IGearingToken private gt; + + OrderConfig private _orderConfig; + + address public maker; + + uint64 private maturity; + + /// @notice Check if the market is borrowing allowed + modifier isBorrowingAllowed(OrderConfig memory config) { + if (config.curveCuts.borrowCurveCuts.length == 0) { + revert BorrowIsNotAllowed(); + } + _; + } + + /// @notice Check if the market is lending allowed + modifier isLendingAllowed(OrderConfig memory config) { + if (config.curveCuts.lendCurveCuts.length == 0) { + revert LendIsNotAllowed(); + } + _; + } + + /// @notice Check if the order is tradable + modifier isOpen() { + _requireNotPaused(); + if (block.timestamp >= maturity) { + revert TermIsNotOpen(); + } + _; + } + + modifier onlyMarket() { + if (msg.sender != address(market)) revert OnlyMarket(); + _; + } + + constructor() { + _disableInitializers(); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function initialize( + address maker_, + IERC20[3] memory tokens, + IGearingToken gt_, + uint256 maxXtReserve_, + ISwapCallback swapTrigger, + CurveCuts memory curveCuts_, + MarketConfig memory marketConfig + ) external override initializer { + __Ownable_init(maker_); + __ReentrancyGuard_init(); + __Pausable_init(); + market = ITermMaxMarket(_msgSender()); + maker = maker_; + _orderConfig.curveCuts = curveCuts_; + _orderConfig.feeConfig = marketConfig.feeConfig; + _orderConfig.maxXtReserve = maxXtReserve_; + _orderConfig.swapTrigger = swapTrigger; + maturity = marketConfig.maturity; + + ft = tokens[0]; + xt = tokens[1]; + debtToken = tokens[2]; + gt = gt_; + emit OrderInitialized(market, maker_, maxXtReserve_, swapTrigger, curveCuts_); + } + + /** + * @inheritdoc ITermMaxOrderV2 + */ + function initialize( + address maker_, + IERC20[3] memory tokens, + IGearingToken gt_, + OrderConfig memory orderConfig_, + MarketConfig memory marketConfig + ) external virtual override initializer { + __Ownable_init(maker_); + __ReentrancyGuard_init(); + __Pausable_init(); + market = ITermMaxMarket(_msgSender()); + _updateCurve(orderConfig_.curveCuts); + + _orderConfig.feeConfig = marketConfig.feeConfig; + _orderConfig.maxXtReserve = orderConfig_.maxXtReserve; + _orderConfig.swapTrigger = orderConfig_.swapTrigger; + maturity = marketConfig.maturity; + ft = tokens[0]; + xt = tokens[1]; + debtToken = tokens[2]; + gt = gt_; + + orderConfig_.feeConfig = marketConfig.feeConfig; + emit OrderEventsV2.OrderInitialized(maker_, address(market), orderConfig_); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function orderConfig() external view returns (OrderConfig memory) { + return _orderConfig; + } + + /** + * @inheritdoc ITermMaxOrder + */ + function tokenReserves() public view override returns (uint256, uint256) { + return (ft.balanceOf(address(this)), xt.balanceOf(address(this))); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function apr() external view override returns (uint256 lendApr_, uint256 borrowApr_) { + uint256 daysToMaturity = _daysToMaturity(); + uint256 oriXtReserve = xt.balanceOf(address(this)); + + CurveCuts memory curveCuts = _orderConfig.curveCuts; + + uint256 lendCutId = TermMaxCurve.calcCutId(curveCuts.lendCurveCuts, oriXtReserve); + (, uint256 lendVXtReserve, uint256 lendVFtReserve) = TermMaxCurve.calcIntervalProps( + Constants.DECIMAL_BASE, daysToMaturity, curveCuts.lendCurveCuts[lendCutId], oriXtReserve + ); + lendApr_ = + ((lendVFtReserve * Constants.DECIMAL_BASE * Constants.DAYS_IN_YEAR) / lendVXtReserve) * daysToMaturity; + + uint256 borrowCutId = TermMaxCurve.calcCutId(curveCuts.borrowCurveCuts, oriXtReserve); + (, uint256 borrowVXtReserve, uint256 borrowVFtReserve) = TermMaxCurve.calcIntervalProps( + Constants.DECIMAL_BASE, daysToMaturity, curveCuts.borrowCurveCuts[borrowCutId], oriXtReserve + ); + borrowApr_ = + ((borrowVFtReserve * Constants.DECIMAL_BASE * Constants.DAYS_IN_YEAR) / borrowVXtReserve) * daysToMaturity; + } + + /** + * @inheritdoc ITermMaxOrder + */ + function updateOrder(OrderConfig memory newOrderConfig, int256 ftChangeAmt, int256 xtChangeAmt) + external + override + onlyOwner + { + _updateCurve(newOrderConfig.curveCuts); + if (ftChangeAmt > 0) { + ft.safeTransferFrom(msg.sender, address(this), ftChangeAmt.toUint256()); + } else if (ftChangeAmt < 0) { + ft.safeTransfer(msg.sender, (-ftChangeAmt).toUint256()); + } + if (xtChangeAmt > 0) { + xt.safeTransferFrom(msg.sender, address(this), xtChangeAmt.toUint256()); + } else if (xtChangeAmt < 0) { + xt.safeTransfer(msg.sender, (-xtChangeAmt).toUint256()); + } + _orderConfig.maxXtReserve = newOrderConfig.maxXtReserve; + _orderConfig.gtId = newOrderConfig.gtId; + _orderConfig.swapTrigger = newOrderConfig.swapTrigger; + emit UpdateOrder( + newOrderConfig.curveCuts, + ftChangeAmt, + xtChangeAmt, + newOrderConfig.gtId, + newOrderConfig.maxXtReserve, + newOrderConfig.swapTrigger + ); + } + + function _updateCurve(CurveCuts memory newCurveCuts) internal { + bytes32 newCurveCutsHash = keccak256(abi.encode(newCurveCuts)); + CurveCuts memory oldCurveCuts = _orderConfig.curveCuts; + if (keccak256(abi.encode(oldCurveCuts)) != newCurveCutsHash) { + if (newCurveCuts.lendCurveCuts.length > 0) { + if (newCurveCuts.lendCurveCuts[0].xtReserve != 0) revert InvalidCurveCuts(); + } + for (uint256 i = 1; i < newCurveCuts.lendCurveCuts.length; i++) { + if (newCurveCuts.lendCurveCuts[i].xtReserve <= newCurveCuts.lendCurveCuts[i - 1].xtReserve) { + revert InvalidCurveCuts(); + } + } + if (newCurveCuts.borrowCurveCuts.length > 0) { + if (newCurveCuts.borrowCurveCuts[0].xtReserve != 0) revert InvalidCurveCuts(); + } + for (uint256 i = 1; i < newCurveCuts.borrowCurveCuts.length; i++) { + if (newCurveCuts.borrowCurveCuts[i].xtReserve <= newCurveCuts.borrowCurveCuts[i - 1].xtReserve) { + revert InvalidCurveCuts(); + } + } + _orderConfig.curveCuts = newCurveCuts; + } + } + + function updateFeeConfig(FeeConfig memory newFeeConfig) external override onlyMarket { + _orderConfig.feeConfig = newFeeConfig; + emit UpdateFeeConfig(newFeeConfig); + } + + /// @notice Calculate how many days until expiration + function _daysToMaturity() internal view returns (uint256 daysToMaturity) { + daysToMaturity = (maturity - block.timestamp + Constants.SECONDS_IN_DAY - 1) / Constants.SECONDS_IN_DAY; + } + + /** + * @inheritdoc ITermMaxOrder + */ + function swapExactTokenToToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + uint128 tokenAmtIn, + uint128 minTokenOut, + uint256 + ) external override nonReentrant isOpen returns (uint256 netTokenOut) { + if (tokenIn == tokenOut) revert CantSwapSameToken(); + uint256 feeAmt = 0; + uint256 ftBlanceBefore = ft.balanceOf(address(this)); + uint256 xtBlanceBefore = xt.balanceOf(address(this)); + + tokenIn.safeTransferFrom(msg.sender, address(this), tokenAmtIn); + if (tokenIn == debtToken) { + tokenIn.safeIncreaseAllowance(address(market), tokenAmtIn); + market.mint(address(this), tokenAmtIn); + } + if (tokenOut == debtToken) { + ITermMaxMarketV2(address(market)).burn(address(this), recipient, minTokenOut); + } else { + tokenOut.safeTransfer(recipient, minTokenOut); + } + + netTokenOut = minTokenOut; + + if (address(_orderConfig.swapTrigger) != address(0)) { + uint256 ftReserve = ft.balanceOf(address(this)); + uint256 xtReserve = xt.balanceOf(address(this)); + int256 deltaFt = ftReserve.toInt256() - ftBlanceBefore.toInt256(); + int256 deltaXt = xtReserve.toInt256() - xtBlanceBefore.toInt256(); + _orderConfig.swapTrigger.afterSwap(ftReserve, xtReserve, deltaFt, deltaXt); + } + emit SwapExactTokenToToken( + tokenIn, tokenOut, msg.sender, recipient, tokenAmtIn, netTokenOut.toUint128(), feeAmt.toUint128() + ); + } + + function swapTokenToExactToken( + IERC20 tokenIn, + IERC20 tokenOut, + address recipient, + uint128 tokenAmtOut, + uint128 maxTokenIn, + uint256 + ) external nonReentrant isOpen returns (uint256 netTokenIn) { + if (tokenIn == tokenOut) revert CantSwapSameToken(); + uint256 feeAmt = 0; + uint256 ftBlanceBefore = ft.balanceOf(address(this)); + uint256 xtBlanceBefore = xt.balanceOf(address(this)); + + tokenIn.safeTransferFrom(msg.sender, address(this), maxTokenIn); + if (tokenIn == debtToken) { + tokenIn.safeIncreaseAllowance(address(market), maxTokenIn); + market.mint(address(this), maxTokenIn); + } + if (tokenOut == debtToken) { + ITermMaxMarketV2(address(market)).burn(address(this), recipient, tokenAmtOut); + } else { + tokenOut.safeTransfer(recipient, tokenAmtOut); + } + netTokenIn = maxTokenIn; + + if (address(_orderConfig.swapTrigger) != address(0)) { + uint256 ftReserve = ft.balanceOf(address(this)); + uint256 xtReserve = xt.balanceOf(address(this)); + int256 deltaFt = ftReserve.toInt256() - ftBlanceBefore.toInt256(); + int256 deltaXt = xtReserve.toInt256() - xtBlanceBefore.toInt256(); + _orderConfig.swapTrigger.afterSwap(ftReserve, xtReserve, deltaFt, deltaXt); + } + emit SwapTokenToExactToken( + tokenIn, tokenOut, msg.sender, recipient, tokenAmtOut, netTokenIn.toUint128(), feeAmt.toUint128() + ); + } + + function withdrawAssets(IERC20 token, address recipient, uint256 amount) external onlyOwner { + if (token == debtToken) { + ITermMaxMarketV2(address(market)).burn(address(this), recipient, amount); + } else { + token.safeTransfer(recipient, amount); + } + emit WithdrawAssets(token, _msgSender(), recipient, amount); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function pause() external override onlyOwner { + _pause(); + } + + /** + * @inheritdoc ITermMaxOrder + */ + function unpause() external override onlyOwner { + _unpause(); + } +} diff --git a/contracts/v2/test/MockPriceFeedV2.sol b/contracts/v2/test/MockPriceFeedV2.sol new file mode 100644 index 0000000..4a455e3 --- /dev/null +++ b/contracts/v2/test/MockPriceFeedV2.sol @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; + +contract MockPriceFeedV2 is AggregatorV3Interface, Ownable { + struct RoundData { + uint80 roundId; + int256 answer; + uint256 startedAt; + uint256 updatedAt; + uint80 answeredInRound; + } + + event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt); + + RoundData private _latestRoundData; + uint8 private _decimals; + + constructor(address admin) Ownable(admin) { + _decimals = 8; + } + + function decimals() external view override returns (uint8) { + return _decimals; + } + + function setDecimals(uint8 decimals_) external onlyOwner { + _decimals = decimals_; + } + + function description() external pure override returns (string memory) { + return "Test Oracle"; + } + + function version() external pure override returns (uint256) { + return 1; + } + + function getRoundData(uint80) + external + view + override + returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) + { + return ( + _latestRoundData.roundId, + _latestRoundData.answer, + _latestRoundData.startedAt, + _latestRoundData.updatedAt, + _latestRoundData.answeredInRound + ); + } + + function latestRoundData() + external + view + override + returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) + { + return ( + _latestRoundData.roundId, + _latestRoundData.answer, + _latestRoundData.startedAt, + _latestRoundData.updatedAt, + _latestRoundData.answeredInRound + ); + } + + function updateRoundData(RoundData memory roundData) external onlyOwner { + _latestRoundData = roundData; + emit AnswerUpdated(roundData.answer, roundData.roundId, roundData.updatedAt); + } +} diff --git a/contracts/v2/test/MockSwapAdapterV2.sol b/contracts/v2/test/MockSwapAdapterV2.sol new file mode 100644 index 0000000..29c6605 --- /dev/null +++ b/contracts/v2/test/MockSwapAdapterV2.sol @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {IMintableERC20, IERC20} from "../../v1/tokens/IMintableERC20.sol"; +import "../router/swapAdapters/ERC20SwapAdapterV2.sol"; + +contract MockSwapAdapterV2 is ERC20SwapAdapterV2 { + address public immutable pool; + + constructor(address pool_) { + pool = pool_; + } + + function _swap(address recipient, IERC20 tokenIn, IERC20 tokenOut, uint256 amount, bytes memory swapData) + internal + virtual + override + returns (uint256 tokenOutAmt) + { + uint256 minTokenOut = abi.decode(swapData, (uint256)); + + IERC20(tokenIn).transfer(pool, amount); + + tokenOutAmt = minTokenOut; + IMintableERC20(address(tokenOut)).mint(recipient, tokenOutAmt); + } +} diff --git a/contracts/v2/tokenomics/PreTMX.sol b/contracts/v2/tokenomics/PreTMX.sol new file mode 100644 index 0000000..4566b35 --- /dev/null +++ b/contracts/v2/tokenomics/PreTMX.sol @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {Ownable2Step, Ownable} from "@openzeppelin/contracts/access/Ownable2Step.sol"; + +contract PreTMX is ERC20, Ownable2Step { + struct WhitelistInfo { + bool isTransferFromWhitelisted; + bool isTransferToWhitelisted; + } + + bool public transferRestricted; + + mapping(address => WhitelistInfo) public whitelistMapping; + + error TransferNotWhitelisted(address from, address to); + + event TransferRestricted(bool restricted); + event TransferWhitelisted(address indexed user, bool isTransferFromWhitelisted, bool isTransferToWhitelisted); + + constructor(address admin) ERC20("Pre TermMax Token", "pTMX") Ownable(admin) { + _mint(admin, 1e9 ether); + _setTransferRestricted(true); + _setTransferWhitelisted(admin, true, true); + } + + function enableTransfer() external onlyOwner { + _setTransferRestricted(false); + } + + function disableTransfer() external onlyOwner { + _setTransferRestricted(true); + } + + function whitelistTransfer(address user, bool isTransferFromWhitelisted, bool isTransferToWhitelisted) + external + onlyOwner + { + _setTransferWhitelisted(user, isTransferFromWhitelisted, isTransferToWhitelisted); + } + + function transfer(address to, uint256 amount) public override returns (bool) { + _beforeTokenTransfer(msg.sender, to); + return super.transfer(to, amount); + } + + function transferFrom(address from, address to, uint256 amount) public override returns (bool) { + _beforeTokenTransfer(from, to); + return super.transferFrom(from, to, amount); + } + + function mint(address to, uint256 amount) external onlyOwner { + _mint(to, amount); + } + + function burn(uint256 amount) external onlyOwner { + _burn(msg.sender, amount); + } + + function _beforeTokenTransfer(address from, address to) internal view { + if ( + transferRestricted && !whitelistMapping[from].isTransferFromWhitelisted + && !whitelistMapping[to].isTransferToWhitelisted + ) { + revert TransferNotWhitelisted(from, to); + } + } + + function _setTransferRestricted(bool restricted) internal { + transferRestricted = restricted; + emit TransferRestricted(restricted); + } + + function _setTransferWhitelisted(address user, bool isTransferFromWhitelisted, bool isTransferToWhitelisted) + internal + { + whitelistMapping[user].isTransferFromWhitelisted = isTransferFromWhitelisted; + whitelistMapping[user].isTransferToWhitelisted = isTransferToWhitelisted; + emit TransferWhitelisted(user, isTransferFromWhitelisted, isTransferToWhitelisted); + } +} diff --git a/contracts/v2/tokens/AbstractGearingTokenV2.sol b/contracts/v2/tokens/AbstractGearingTokenV2.sol new file mode 100644 index 0000000..57336bb --- /dev/null +++ b/contracts/v2/tokens/AbstractGearingTokenV2.sol @@ -0,0 +1,614 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.27; + +import {ERC721EnumerableUpgradeable} from + "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol"; +import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {Constants} from "../../v1/lib/Constants.sol"; +import {GearingTokenConstants} from "../../v1/lib/GearingTokenConstants.sol"; +import {TransferUtils} from "../../v1/lib/TransferUtils.sol"; +import {IFlashRepayer} from "../../v1/tokens/IFlashRepayer.sol"; +import {IGearingToken, IERC20Metadata, IERC20} from "../../v1/tokens/IGearingToken.sol"; +import {GearingTokenErrors} from "../../v1/errors/GearingTokenErrors.sol"; +import {GearingTokenEvents} from "../../v1/events/GearingTokenEvents.sol"; +import {GtConfig, IOracle} from "../../v1/storage/TermMaxStorage.sol"; +import {IGearingTokenV2} from "./IGearingTokenV2.sol"; +import {GearingTokenEventsV2} from "../events/GearingTokenEventsV2.sol"; +import {GearingTokenErrorsV2} from "../errors/GearingTokenErrorsV2.sol"; +/** + * @title TermMax Gearing Token + * @author Term Structure Labs + */ + +abstract contract AbstractGearingTokenV2 is + OwnableUpgradeable, + ERC721EnumerableUpgradeable, + ReentrancyGuardUpgradeable, + IGearingToken, + IGearingTokenV2, + GearingTokenErrors, + GearingTokenEvents +{ + using SafeCast for uint256; + using SafeCast for int256; + using TransferUtils for IERC20; + using TransferUtils for IERC20Metadata; + using Math for *; + + struct LoanInfo { + /// @notice Debt amount in debtToken token + uint128 debtAmt; + /// @notice Encoded collateral data + bytes collateralData; + } + + struct ValueAndPrice { + /// @notice USD value of collateral + uint256 collateralValue; + /// @notice USD value of debt contains price and token decimals + uint256 debtValueWithDecimals; + /// @notice USD price of debt token + uint256 debtPrice; + /// @notice Denominator of USD price, e.g. 10**priceDecimals + uint256 priceDenominator; + /// @notice Denominator of debt token, e.g. 10**debtToken.decimals() + uint256 debtDenominator; + /// @notice Encoded USD price of collateral token, e.g. priceData is + /// abi.encode(price, priceDenominator, collateralDenominator) + /// where gt is GearingTokenWithERC20 + bytes collateralPriceData; + } + + /// @notice Configuration of Gearing Token + GtConfig internal _config; + /// @notice Total supply of Gearing Token + uint256 internal totalIds; + /// @notice Denominator of debt token + uint256 internal debtDenominator; + /// @notice Mapping relationship between Gearing Token id and loan + mapping(uint256 => LoanInfo) internal loanMapping; + + /** + * @inheritdoc IGearingToken + */ + function initialize(string memory name, string memory symbol, GtConfig memory config_, bytes memory initalParams) + external + virtual + override + initializer + { + __AbstractGearingToken_init(name, symbol, config_); + __GearingToken_Implement_init(initalParams); + emit GearingTokenEventsV2.GearingTokenInitialized(msg.sender, name, symbol, initalParams); + } + + function __AbstractGearingToken_init(string memory name, string memory symbol, GtConfig memory config_) + internal + onlyInitializing + { + if (config_.loanConfig.liquidationLtv <= config_.loanConfig.maxLtv) { + revert LiquidationLtvMustBeGreaterThanMaxLtv(); + } + if (config_.loanConfig.liquidationLtv > Constants.DECIMAL_BASE) { + revert GearingTokenErrorsV2.InvalidLiquidationLtv(); + } + __ERC721_init_unchained(name, symbol); + __Ownable_init_unchained(msg.sender); + _config = config_; + debtDenominator = 10 ** _config.debtToken.decimals(); + } + + function __GearingToken_Implement_init(bytes memory initalParams) internal virtual; + + /** + * @inheritdoc IGearingToken + */ + function setTreasurer(address treasurer) external virtual onlyOwner { + _config.treasurer = treasurer; + } + + /** + * @inheritdoc IGearingToken + */ + function updateConfig(bytes memory configData) external virtual onlyOwner { + _updateConfig(configData); + emit UpdateConfig(configData); + } + + function _updateConfig(bytes memory configData) internal virtual; + + /** + * @inheritdoc IGearingToken + */ + function getGtConfig() external view virtual override returns (GtConfig memory) { + return _config; + } + + /** + * @inheritdoc IGearingToken + */ + function marketAddr() public view override returns (address) { + return owner(); + } + + /** + * @inheritdoc IGearingToken + */ + function liquidatable() external view virtual returns (bool) { + return _config.loanConfig.liquidatable; + } + + /** + * @inheritdoc IGearingToken + */ + function mint(address collateralProvider, address to, uint128 debtAmt, bytes memory collateralData) + external + virtual + override + nonReentrant + onlyOwner + returns (uint256 id) + { + _checkBeforeMint(debtAmt, collateralData); + _transferCollateralFrom(collateralProvider, address(this), collateralData); + id = _mintInternal(to, debtAmt, collateralData, _config); + } + + /// @notice Check if the loan can be minted + function _checkBeforeMint(uint128 debtAmt, bytes memory collateralData) internal virtual; + + function _mintInternal(address to, uint128 debtAmt, bytes memory collateralData, GtConfig memory config) + internal + returns (uint256 id) + { + LoanInfo memory loan = LoanInfo(debtAmt, collateralData); + ValueAndPrice memory valueAndPrice = _getValueAndPrice(config, loan); + uint128 ltv = _calculateLtv(valueAndPrice); + if (ltv > config.loanConfig.maxLtv) { + revert GtIsNotHealthy(0, to, ltv); + } + id = ++totalIds; + loanMapping[id] = loan; + _safeMint(to, id); + } + + /** + * @inheritdoc IGearingToken + */ + function augmentDebt(address caller, uint256 id, uint256 ftAmt) external virtual override nonReentrant onlyOwner { + if (caller != ownerOf(id) && caller != getApproved(id)) { + revert AuthorizationFailed(id, caller); + } + GtConfig memory config = _config; + if (config.maturity <= block.timestamp) { + revert GearingTokenErrorsV2.GtIsExpired(); + } + + LoanInfo memory loan = loanMapping[id]; + loan.debtAmt += ftAmt.toUint128(); + + ValueAndPrice memory valueAndPrice = _getValueAndPrice(config, loan); + uint128 ltv = _calculateLtv(valueAndPrice); + if (ltv > config.loanConfig.maxLtv) { + revert GtIsNotHealthy(id, msg.sender, ltv); + } + loanMapping[id] = loan; + + emit AugmentDebt(id, ftAmt); + } + + /** + * @inheritdoc IGearingToken + */ + function loanInfo(uint256 id) + external + view + virtual + override + returns (address owner, uint128 debtAmt, bytes memory collateralData) + { + owner = ownerOf(id); + LoanInfo memory loan = loanMapping[id]; + debtAmt = loan.debtAmt; + collateralData = loan.collateralData; + } + + function _burnInternal(uint256 id) internal { + _burn(id); + delete loanMapping[id]; + } + + /** + * @inheritdoc IGearingToken + */ + function merge(uint256[] memory ids) external virtual nonReentrant returns (uint256 newId) { + if (ids.length == 0) { + revert GearingTokenErrorsV2.GtIdArrayIsEmpty(); + } + GtConfig memory config = _config; + if (config.maturity <= block.timestamp) { + revert GearingTokenErrorsV2.GtIsExpired(); + } + newId = ids[0]; + LoanInfo memory firstLoan = loanMapping[newId]; + + for (uint256 i = 0; i < ids.length; ++i) { + uint256 id = ids[i]; + address owner = ownerOf(id); + if (msg.sender != owner) { + revert AuthorizationFailed(id, msg.sender); + } + LoanInfo memory loan = loanMapping[id]; + if (i != 0) { + firstLoan.debtAmt += loanMapping[id].debtAmt; + firstLoan.collateralData = _mergeCollateral(firstLoan.collateralData, loan.collateralData); + _burnInternal(id); + } + } + loanMapping[newId] = firstLoan; + emit MergeGts(msg.sender, newId, ids); + } + + /** + * @inheritdoc IGearingToken + */ + function repay(uint256 id, uint128 repayAmt, bool byDebtToken) external virtual override nonReentrant { + GtConfig memory config = _config; + if (config.maturity <= block.timestamp) { + revert GearingTokenErrorsV2.GtIsExpired(); + } + + if (byDebtToken) { + config.debtToken.safeTransferFrom(msg.sender, marketAddr(), repayAmt); + } else { + // Those ft tokens have been approved to market and will be burn after maturity + config.ft.safeTransferFrom(msg.sender, marketAddr(), repayAmt); + } + (, bool repayAll) = _repay(id, repayAmt); + emit GearingTokenEventsV2.Repay(id, repayAmt, byDebtToken, repayAll); + } + + /// @inheritdoc IGearingToken + /// @notice This function is deprecated, please use `flashRepay( + // uint256 id, + // uint128 repayAmt, + // bool byDebtToken, + // bytes memory removedCollateral, + // bytes calldata callbackData + // )` instead + function flashRepay(uint256 id, bool byDebtToken, bytes calldata callbackData) + external + virtual + override + nonReentrant + { + LoanInfo memory loan = loanMapping[id]; + _flashRepay(id, loan.debtAmt, byDebtToken, loan.collateralData, callbackData); + } + + function flashRepay( + uint256 id, + uint128 repayAmt, + bool byDebtToken, + bytes memory removedCollateral, + bytes calldata callbackData + ) external virtual override nonReentrant returns (bool) { + return _flashRepay(id, repayAmt, byDebtToken, removedCollateral, callbackData); + } + + function _flashRepay( + uint256 id, + uint128 repayAmt, + bool byDebtToken, + bytes memory removedCollateral, + bytes calldata callbackData + ) internal returns (bool) { + GtConfig memory config = _config; + if (config.maturity <= block.timestamp) { + revert GearingTokenErrorsV2.GtIsExpired(); + } + if (ownerOf(id) != msg.sender) { + revert CallerIsNotTheOwner(id); + } + // All collteral will be removed in _repay function if repayAll is true + (LoanInfo memory loan, bool repayAll) = _repay(id, repayAmt); + // Check ltv after partial repayment + if (!repayAll) { + loan.collateralData = _removeCollateral(loan, removedCollateral); + ValueAndPrice memory valueAndPrice = _getValueAndPrice(config, loan); + uint128 ltv = _calculateLtv(valueAndPrice); + require(ltv <= config.loanConfig.maxLtv, GtIsNotHealthy(id, msg.sender, ltv)); + loanMapping[id] = loan; + // Transfer collateral to the owner + _transferCollateral(msg.sender, removedCollateral); + } + + IERC20 repayToken = byDebtToken ? config.debtToken : config.ft; + + IFlashRepayer(msg.sender).executeOperation( + repayToken, repayAmt, config.collateral, removedCollateral, callbackData + ); + repayToken.safeTransferFrom(msg.sender, owner(), repayAmt); + emit GearingTokenEventsV2.FlashRepay(id, msg.sender, repayAmt, byDebtToken, repayAll, removedCollateral); + return repayAll; + } + + function _repay(uint256 id, uint128 repayAmt) internal returns (LoanInfo memory loan, bool repayAll) { + loan = loanMapping[id]; + if (repayAmt > loan.debtAmt) { + revert RepayAmtExceedsMaxRepayAmt(id, repayAmt, loan.debtAmt); + } + loan.debtAmt = loan.debtAmt - repayAmt; + if (loan.debtAmt == 0) { + address gtOwner = ownerOf(id); + // Burn this nft + _burnInternal(id); + _transferCollateral(gtOwner, loan.collateralData); + repayAll = true; + } else { + loanMapping[id].debtAmt = loan.debtAmt; + } + } + + /** + * @inheritdoc IGearingToken + */ + function removeCollateral(uint256 id, bytes memory collateralData) external virtual override nonReentrant { + if (msg.sender != ownerOf(id)) { + revert CallerIsNotTheOwner(id); + } + + GtConfig memory config = _config; + if (config.maturity <= block.timestamp) { + revert GearingTokenErrorsV2.GtIsExpired(); + } + + LoanInfo memory loan = loanMapping[id]; + loan.collateralData = _removeCollateral(loan, collateralData); + + ValueAndPrice memory valueAndPrice = _getValueAndPrice(config, loan); + uint128 ltv = _calculateLtv(valueAndPrice); + if (ltv > config.loanConfig.maxLtv) { + revert GtIsNotHealthy(id, msg.sender, ltv); + } + loanMapping[id] = loan; + + // Transfer collateral to the owner + _transferCollateral(msg.sender, collateralData); + + emit RemoveCollateral(id, loan.collateralData); + } + + function _removeCollateral(LoanInfo memory loan, bytes memory collateralData) + internal + virtual + returns (bytes memory); + + /** + * @inheritdoc IGearingToken + */ + function addCollateral(uint256 id, bytes memory collateralData) external virtual override nonReentrant { + if (_config.maturity <= block.timestamp) { + revert GearingTokenErrorsV2.GtIsExpired(); + } + LoanInfo memory loan = loanMapping[id]; + + _transferCollateralFrom(msg.sender, address(this), collateralData); + loan.collateralData = _addCollateral(loan, collateralData); + loanMapping[id] = loan; + emit AddCollateral(id, loan.collateralData); + } + + function _addCollateral(LoanInfo memory loan, bytes memory collateralData) + internal + virtual + returns (bytes memory); + + /** + * @inheritdoc IGearingToken + */ + function getLiquidationInfo(uint256 id) + external + view + virtual + returns (bool isLiquidable, uint128 ltv, uint128 maxRepayAmt) + { + LoanInfo memory loan = loanMapping[id]; + GtConfig memory config = _config; + (isLiquidable, maxRepayAmt, ltv,) = _getLiquidationInfo(loan, config); + } + + function _getLiquidationInfo(LoanInfo memory loan, GtConfig memory config) + internal + view + returns (bool isLiquidable, uint128 maxRepayAmt, uint128 ltv, ValueAndPrice memory valueAndPrice) + { + valueAndPrice = _getValueAndPrice(config, loan); + ltv = _calculateLtv(valueAndPrice); + + if (config.loanConfig.liquidatable) { + // Liquidation cases: + // t >= m + w => F, "No liquidation after maturity plus liquidation window + // t >= m && t < m + w => T, "Liquidation allowed during liquidation window" + // t < m => ltv >= lltv => T, "Liquidation only allowed before maturity if ltv >= lltv" + + if (block.timestamp >= config.maturity + Constants.LIQUIDATION_WINDOW) { + isLiquidable = false; + } else if (block.timestamp >= config.maturity) { + isLiquidable = true; + maxRepayAmt = loan.debtAmt; + } else if (ltv >= config.loanConfig.liquidationLtv) { + isLiquidable = true; + // collateralValue(price decimals) and HALF_LIQUIDATION_THRESHOLD(base decimals 1e8) + maxRepayAmt = valueAndPrice.collateralValue.mulDiv( + Constants.DECIMAL_BASE, valueAndPrice.priceDenominator + ) < GearingTokenConstants.HALF_LIQUIDATION_THRESHOLD ? loan.debtAmt : loan.debtAmt / 2; + } + } + } + + /** + * @inheritdoc IGearingToken + */ + function liquidate(uint256 id, uint128 repayAmt, bool byDebtToken) external virtual override nonReentrant { + LoanInfo memory loan = loanMapping[id]; + GtConfig memory config = _config; + if (!config.loanConfig.liquidatable) { + revert GtDoNotSupportLiquidation(); + } + (bool isLiquidable, uint128 maxRepayAmt,, ValueAndPrice memory valueAndPrice) = + _getLiquidationInfo(loan, config); + + if (!isLiquidable) { + uint256 liquidationDeadline = config.maturity + Constants.LIQUIDATION_WINDOW; + if (block.timestamp >= liquidationDeadline) { + revert CanNotLiquidationAfterFinalDeadline(id, liquidationDeadline); + } + revert GtIsSafe(id); + } + if (repayAmt > maxRepayAmt) { + revert RepayAmtExceedsMaxRepayAmt(id, repayAmt, maxRepayAmt); + } + // Transfer token + if (byDebtToken) { + config.debtToken.safeTransferFrom(msg.sender, marketAddr(), repayAmt); + } else { + config.ft.safeTransferFrom(msg.sender, marketAddr(), repayAmt); + } + + // Do liquidate + (bytes memory cToLiquidator, bytes memory cToTreasurer, bytes memory remainningC) = + _calcLiquidationResult(loan, repayAmt, valueAndPrice); + + if (repayAmt == loan.debtAmt) { + if (remainningC.length > 0) { + _transferCollateral(ownerOf(id), remainningC); + } + // update storage + _burnInternal(id); + } else { + loan.debtAmt -= repayAmt; + loan.collateralData = remainningC; + // update storage + loanMapping[id] = loan; + } + // Transfer collateral + if (cToTreasurer.length > 0) { + _transferCollateral(config.treasurer, cToTreasurer); + } + _transferCollateral(msg.sender, cToLiquidator); + + emit Liquidate(id, msg.sender, repayAmt, byDebtToken, cToLiquidator, cToTreasurer, remainningC); + } + + /// @notice Return the collateral distribution plan after liquidation + /// @param loan The loan data, contains debt amount and collateral data + /// @param repayAmt The amount of the debt to be liquidate + /// @param valueAndPrice Debt and collateral prices, values + /// @return cToLiquidator Collateral data assigned to liquidator + /// @return cToTreasurer Collateral data assigned to protocol + /// @return remainningC Remainning collateral data, will assigned to debt's owner + /// if the debt is fully liquidated. + function _calcLiquidationResult(LoanInfo memory loan, uint128 repayAmt, ValueAndPrice memory valueAndPrice) + internal + virtual + returns (bytes memory cToLiquidator, bytes memory cToTreasurer, bytes memory remainningC); + + /** + * @inheritdoc IGearingToken + */ + function getCollateralValue(bytes memory collateralData) + external + view + virtual + override + returns (uint256 collateralValue) + { + bytes memory priceData = _getCollateralPriceData(_config); + return _getCollateralValue(collateralData, priceData); + } + + /** + * @inheritdoc IGearingToken + */ + function previewDelivery(uint256 proportion) external view virtual override returns (bytes memory deliveryData) { + deliveryData = _delivery(proportion); + } + + /** + * @inheritdoc IGearingToken + */ + function delivery(uint256 proportion, address to) + external + virtual + override + nonReentrant + onlyOwner + returns (bytes memory deliveryData) + { + deliveryData = _delivery(proportion); + _transferCollateral(to, deliveryData); + } + + function _delivery(uint256 proportion) internal view virtual returns (bytes memory deliveryData); + + function _getValueAndPrice(GtConfig memory config, LoanInfo memory loan) + internal + view + returns (ValueAndPrice memory valueAndPrice) + { + valueAndPrice.collateralPriceData = _getCollateralPriceData(config); + valueAndPrice.collateralValue = _getCollateralValue(loan.collateralData, valueAndPrice.collateralPriceData); + + uint8 priceDecimals; + (valueAndPrice.debtPrice, priceDecimals) = config.loanConfig.oracle.getPrice(address(config.debtToken)); + // Price decimals may change, so we need to calculate the price denominator + valueAndPrice.priceDenominator = 10 ** priceDecimals; + + valueAndPrice.debtDenominator = debtDenominator; + + valueAndPrice.debtValueWithDecimals = + loan.debtAmt.mulDiv(valueAndPrice.debtPrice, valueAndPrice.debtDenominator); + } + + /// @notice Return the loan to value of this loan + /// @param valueAndPrice Debt and collateral prices, values + /// @return ltv The loan to value of this loan + function _calculateLtv(ValueAndPrice memory valueAndPrice) internal pure returns (uint128 ltv) { + if (valueAndPrice.collateralValue == 0) { + return type(uint128).max; + } + // debtValueWithDecimals(price decimals) collateralValue(base decimals) + ltv = valueAndPrice.debtValueWithDecimals.mulDiv( + Constants.DECIMAL_BASE_SQ, valueAndPrice.collateralValue * valueAndPrice.priceDenominator + ).toUint128(); + } + + /// @notice Merge collateral data + function _mergeCollateral(bytes memory collateralDataA, bytes memory collateralDataB) + internal + virtual + returns (bytes memory collateralData); + + /// @notice Transfer collateral from 'from' to 'to' + function _transferCollateralFrom(address from, address to, bytes memory collateralData) internal virtual; + + /// @notice Transfer collateral from this contracct to 'to' + function _transferCollateral(address to, bytes memory collateralData) internal virtual; + + /// @notice Return the value of collateral in USD with base decimals + /// @param collateralData encoded collateral data + /// @param priceData encoded price data of the collateral + /// @return collateralValue collateral's value in USD + function _getCollateralValue(bytes memory collateralData, bytes memory priceData) + internal + view + virtual + returns (uint256 collateralValue); + + /// @notice Return the encoded price of collateral in USD + function _getCollateralPriceData(GtConfig memory config) internal view virtual returns (bytes memory priceData); +} diff --git a/contracts/v2/tokens/GearingTokenWithERC20V2.sol b/contracts/v2/tokens/GearingTokenWithERC20V2.sol new file mode 100644 index 0000000..24f8587 --- /dev/null +++ b/contracts/v2/tokens/GearingTokenWithERC20V2.sol @@ -0,0 +1,203 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.27; + +import "./AbstractGearingTokenV2.sol"; + +/** + * @title TermMax Gearing Token, using ERC20 token as collateral + * @author Term Structure Labs + */ +contract GearingTokenWithERC20V2 is AbstractGearingTokenV2 { + using SafeCast for uint256; + using SafeCast for int256; + using TransferUtils for IERC20; + using TransferUtils for IERC20Metadata; + using Math for *; + + /// @notice The operation failed because the collateral capacity is exceeded + error CollateralCapacityExceeded(); + + /// @notice The operation failed because the amount can not be uint256 max + error AmountCanNotBeUint256Max(); + + /// @notice Emitted when the collateral capacity is updated + event CollateralCapacityUpdated(uint256 newCapacity); + + /// @notice The max capacity of collateral token + uint256 public collateralCapacity; + + uint256 private collateralDenominator; + + constructor() { + _disableInitializers(); + } + + function __GearingToken_Implement_init(bytes memory initalParams) internal override onlyInitializing { + _updateConfig(initalParams); + collateralDenominator = 10 ** IERC20Metadata(_config.collateral).decimals(); + } + + function _updateConfig(bytes memory configData) internal virtual override { + collateralCapacity = abi.decode(configData, (uint256)); + emit CollateralCapacityUpdated(collateralCapacity); + } + + function _checkBeforeMint(uint128, bytes memory collateralData) internal virtual override { + if (IERC20(_config.collateral).balanceOf(address(this)) + _decodeAmount(collateralData) > collateralCapacity) { + revert CollateralCapacityExceeded(); + } + } + + function _delivery(uint256 proportion) internal view virtual override returns (bytes memory deliveryData) { + uint256 collateralReserve = IERC20(_config.collateral).balanceOf(address(this)); + uint256 amount = collateralReserve.mulDiv(proportion, Constants.DECIMAL_BASE_SQ); + deliveryData = abi.encode(amount); + } + + /** + * @inheritdoc AbstractGearingTokenV2 + */ + function _mergeCollateral(bytes memory collateralDataA, bytes memory collateralDataB) + internal + virtual + override + returns (bytes memory collateralData) + { + uint256 total = _decodeAmount(collateralDataA) + _decodeAmount(collateralDataB); + collateralData = abi.encode(total); + } + + /** + * @inheritdoc AbstractGearingTokenV2 + */ + function _transferCollateralFrom(address from, address to, bytes memory collateralData) internal virtual override { + uint256 amount = _decodeAmount(collateralData); + IERC20(_config.collateral).safeTransferFrom(from, to, amount); + } + + /** + * @inheritdoc AbstractGearingTokenV2 + */ + function _transferCollateral(address to, bytes memory collateralData) internal virtual override { + uint256 amount = _decodeAmount(collateralData); + IERC20(_config.collateral).safeTransfer(to, amount); + } + + /** + * @inheritdoc AbstractGearingTokenV2 + */ + function _getCollateralValue(bytes memory collateralData, bytes memory priceData) + internal + view + virtual + override + returns (uint256) + { + uint256 collateralAmt = _decodeAmount(collateralData); + (uint256 price, uint256 priceDenominator, uint256 collateralDemonimator) = + abi.decode(priceData, (uint256, uint256, uint256)); + return collateralAmt.mulDiv(price * Constants.DECIMAL_BASE, priceDenominator * collateralDemonimator); + } + + /** + * @inheritdoc AbstractGearingTokenV2 + */ + function _getCollateralPriceData(GtConfig memory config) + internal + view + virtual + override + returns (bytes memory priceData) + { + (uint256 price, uint8 decimals) = config.loanConfig.oracle.getPrice(config.collateral); + uint256 priceDenominator = 10 ** decimals; + + priceData = abi.encode(price, priceDenominator, collateralDenominator); + } + + /// @notice Encode amount to collateral data + function _decodeAmount(bytes memory collateralData) internal pure returns (uint256 amount) { + amount = abi.decode(collateralData, (uint256)); + if (amount == type(uint256).max) { + revert AmountCanNotBeUint256Max(); + } + } + + /// @notice Decode amount from collateral data + function _encodeAmount(uint256 amount) internal pure returns (bytes memory) { + return abi.encode(amount); + } + + /** + * @inheritdoc AbstractGearingTokenV2 + */ + function _removeCollateral(LoanInfo memory loan, bytes memory collateralData) + internal + virtual + override + returns (bytes memory) + { + uint256 amount = _decodeAmount(loan.collateralData) - _decodeAmount(collateralData); + return _encodeAmount(amount); + } + + /** + * @inheritdoc AbstractGearingTokenV2 + */ + function _addCollateral(LoanInfo memory loan, bytes memory collateralData) + internal + virtual + override + returns (bytes memory) + { + uint256 amount = _decodeAmount(loan.collateralData) + _decodeAmount(collateralData); + return _encodeAmount(amount); + } + + /** + * @inheritdoc AbstractGearingTokenV2 + */ + function _calcLiquidationResult(LoanInfo memory loan, uint128 repayAmt, ValueAndPrice memory valueAndPrice) + internal + virtual + override + returns (bytes memory, bytes memory, bytes memory) + { + uint256 collateralAmt = _decodeAmount(loan.collateralData); + + uint256 removedCollateralAmt; + uint256 cEqualRepayAmt; + uint256 rewardToLiquidator; + uint256 rewardToProtocol; + + if (loan.debtAmt != 0) { + (uint256 collateralPrice, uint256 cPriceDenominator, uint256 cTokenDenominator) = + abi.decode(valueAndPrice.collateralPriceData, (uint256, uint256, uint256)); + + /* DP := debt token price (valueAndPrice.debtPrice) + * DPD := debt token price decimal (valueAndPrice.priceDenominator) + * CP := collateral token price (collateralPrice) + * CPD := collateral token price decimal (cPriceDenominator) + * liquidate value = repayAmt * DP / debt token decimals + * collateral amount to remove = liquidate value * collateral decimals * cpd / (CP * DPD) + */ + uint256 liquidateValueInPriceScale = repayAmt.mulDiv(valueAndPrice.debtPrice, valueAndPrice.debtDenominator); + + cEqualRepayAmt = liquidateValueInPriceScale.mulDiv( + cPriceDenominator * cTokenDenominator, collateralPrice * valueAndPrice.priceDenominator + ); + + rewardToLiquidator = + cEqualRepayAmt.mulDiv(GearingTokenConstants.REWARD_TO_LIQUIDATOR, Constants.DECIMAL_BASE); + rewardToProtocol = cEqualRepayAmt.mulDiv(GearingTokenConstants.REWARD_TO_PROTOCOL, Constants.DECIMAL_BASE); + + removedCollateralAmt = cEqualRepayAmt + rewardToLiquidator + rewardToProtocol; + removedCollateralAmt = removedCollateralAmt.min(collateralAmt.mulDiv(repayAmt, loan.debtAmt)); + } + uint256 cToLiquidatorAmount = removedCollateralAmt.min(cEqualRepayAmt + rewardToLiquidator); + removedCollateralAmt -= cToLiquidatorAmount; + uint256 cToTreasurerAmount = removedCollateralAmt.min(rewardToProtocol); + uint256 remainingCollateralAmt = collateralAmt - cToLiquidatorAmount - cToTreasurerAmount; + return (abi.encode(cToLiquidatorAmount), abi.encode(cToTreasurerAmount), abi.encode(remainingCollateralAmt)); + } +} diff --git a/contracts/v2/tokens/IGearingTokenV2.sol b/contracts/v2/tokens/IGearingTokenV2.sol new file mode 100644 index 0000000..ee7bd03 --- /dev/null +++ b/contracts/v2/tokens/IGearingTokenV2.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title TermMax Gearing token interface V2 + * @author Term Structure Labs + */ +interface IGearingTokenV2 { + /// @notice Repay the debt of Gearing Token, + /// The borrower can repay the debt after receiving the collateral + /// @param id The id of Gearing Token + /// @param byDebtToken Repay using debtToken token or bonds token + /// @param repayAmt The amount of debt you want to repay + /// @param removedCollateral The collateral data to be removed + /// @param callbackData The data to be passed to the callback function + /// @return repayAll Whether the repayment is complete + function flashRepay( + uint256 id, + uint128 repayAmt, + bool byDebtToken, + bytes memory removedCollateral, + bytes calldata callbackData + ) external returns (bool repayAll); +} diff --git a/contracts/v2/tokens/IMintableERC20V2.sol b/contracts/v2/tokens/IMintableERC20V2.sol new file mode 100644 index 0000000..c8ceab0 --- /dev/null +++ b/contracts/v2/tokens/IMintableERC20V2.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +/** + * @title TermMax ERC20 token interface + * @author Term Structure Labs + */ +interface IMintableERC20V2 { + /// @notice Burn tokens from owner, allowing spender to burn the tokens + /// @param owner The address of the token holder + /// @param spender The address of the token spender + /// @param amount The number of tokens to be burned + /// @dev Only the market can burn TermMax tokens + function burn(address owner, address spender, uint256 amount) external; +} diff --git a/contracts/v2/tokens/ITermMaxToken.sol b/contracts/v2/tokens/ITermMaxToken.sol new file mode 100644 index 0000000..39dae57 --- /dev/null +++ b/contracts/v2/tokens/ITermMaxToken.sol @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +/** + * @title ITermMaxToken + * @notice Interface for TermMax protocol tokens that support advanced mint and burn operations + * @dev This interface defines the standard for tokens within the TermMax ecosystem that require + * controlled minting and burning capabilities. It extends beyond basic ERC20 functionality + * to support protocol-specific operations for wrapped tokens and yield-bearing assets. + * + * @dev Key features: + * - Controlled minting for token wrapping operations + * - Standard burning for token unwrapping + * - Special burnToAToken functionality for yield token conversions + * + * @dev Implementation requirements: + * - Must implement proper access control for mint/burn operations + * - Should emit appropriate events for transparency + * - Must handle edge cases (zero amounts, invalid addresses, etc.) + */ +interface ITermMaxToken { + /** + * @notice Returns the address of the aToken associated with this TermMax token + * @dev This function provides the address of the aToken that this TermMax token can be converted to. + * It is typically used for yield-bearing operations where TermMax tokens are converted to aTokens. + * + * @return The address of the associated aToken (e.g., yield-bearing token address) + */ + function aToken() external view returns (address); + + /** + * @notice Returns the address of the underlying asset for this TermMax token + * @dev This function provides the address of the asset that this TermMax token represents. + * It is typically used to identify the underlying asset for wrapping or unwrapping operations. + * + * @return The address of the underlying asset (e.g., ERC20 token address) + */ + function asset() external view returns (address); + /** + * @notice Mints new tokens to a specified address + * @dev Creates new token supply and assigns it to the recipient address. + * This function is typically used for wrapping underlying assets into TermMax tokens + * or for protocol rewards distribution. + * + * @param to The address that will receive the newly minted tokens + * @param amount The amount of tokens to mint (in token's smallest unit/decimals) + * + * @dev Requirements: + * - Caller must have minting permissions (typically restricted to authorized contracts) + * - `to` address must not be zero address + * - `amount` must be greater than zero + * - Must not exceed any maximum supply limits if implemented + * + * @dev Events: + * Should emit Transfer(address(0), to, amount) event as per ERC20 standard + */ + function mint(address to, uint256 amount) external; + + /** + * @notice Burns tokens from a specified address + * @dev Destroys existing tokens, reducing the total supply. + * This function is typically used for unwrapping TermMax tokens back to underlying assets + * or for protocol fee collection mechanisms. + * + * @param to The address from which tokens will be burned + * @param amount The amount of tokens to burn (in token's smallest unit/decimals) + * + * @dev Requirements: + * - Caller must have burning permissions (typically restricted to authorized contracts) + * - `to` address must have sufficient token balance + * - `amount` must be greater than zero and not exceed available balance + * + * @dev Events: + * Should emit Transfer(to, address(0), amount) event as per ERC20 standard + */ + function burn(address to, uint256 amount) external; + + /** + * @notice Burns tokens and converts them to aTokens (yield-bearing tokens) + * @dev Special burning function that destroys TermMax tokens and simultaneously + * mints or transfers equivalent aTokens to the specified address. This is used + * for direct conversion between TermMax tokens and yield-bearing variants. + * + * @param to The address that will receive the resulting aTokens + * @param amount The amount of tokens to burn and convert (in token's smallest unit/decimals) + * + * @dev Requirements: + * - Caller must have burning permissions + * - `to` address must not be zero address + * - `amount` must be greater than zero and not exceed available balance + * - Underlying aToken contract must be properly configured and functional + * + * @dev Implementation notes: + * - Conversion rate between burned tokens and minted aTokens should be clearly defined + * - May involve external calls to aToken contracts + * - Should handle potential failures in aToken minting gracefully + * + * @dev Events: + * Should emit both burn and aToken mint events for full transparency + */ + function burnToAToken(address to, uint256 amount) external; +} diff --git a/contracts/v2/tokens/MintableERC20V2.sol b/contracts/v2/tokens/MintableERC20V2.sol new file mode 100644 index 0000000..0dc6063 --- /dev/null +++ b/contracts/v2/tokens/MintableERC20V2.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {IMintableERC20V2} from "./IMintableERC20V2.sol"; +import {MintableERC20} from "../../v1/tokens/MintableERC20.sol"; + +/** + * @title TermMax ERC20 token + * @author Term Structure Labs + */ +contract MintableERC20V2 is MintableERC20, IMintableERC20V2 { + /** + * @inheritdoc IMintableERC20V2 + */ + function burn(address owner, address spender, uint256 amount) external virtual override onlyOwner { + if (owner != spender) { + _spendAllowance(owner, spender, amount); + } + _burn(owner, amount); + } +} diff --git a/contracts/v2/tokens/StakingBuffer.sol b/contracts/v2/tokens/StakingBuffer.sol new file mode 100644 index 0000000..031eb4f --- /dev/null +++ b/contracts/v2/tokens/StakingBuffer.sol @@ -0,0 +1,62 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {TransferUtils, IERC20} from "../../v1/lib/TransferUtils.sol"; + +abstract contract StakingBuffer { + using TransferUtils for IERC20; + + error InvalidBuffer(uint256 minimumBuffer, uint256 maximumBuffer, uint256 buffer); + + struct BufferConfig { + uint256 minimumBuffer; + uint256 maximumBuffer; + uint256 buffer; + } + + function _depositWithBuffer(address assetAddr) internal { + uint256 assetBalance = IERC20(assetAddr).balanceOf(address(this)); + BufferConfig memory bufferConfig = _bufferConfig(assetAddr); + if (assetBalance > bufferConfig.maximumBuffer) { + _depositToPool(assetAddr, assetBalance - bufferConfig.buffer); + } + } + + function _withdrawWithBuffer(address assetAddr, address to, uint256 amount) internal { + uint256 assetBalance = IERC20(assetAddr).balanceOf(address(this)); + BufferConfig memory bufferConfig = _bufferConfig(assetAddr); + + if (assetBalance >= amount && assetBalance - amount >= bufferConfig.minimumBuffer) { + // Sufficient buffer, transfer directly from contract balance + IERC20(assetAddr).safeTransfer(to, amount); + return; + } + // Not enough buffer, withdraw from pool + uint256 targetBalance = bufferConfig.buffer + amount; + uint256 amountFromPool = targetBalance - assetBalance; + uint256 aTokenBalance = _aTokenBalance(assetAddr); + if (amountFromPool > aTokenBalance) { + amountFromPool = aTokenBalance; + } + if (amountFromPool == amount) { + _withdrawFromPool(assetAddr, to, amountFromPool); + } else { + _withdrawFromPool(assetAddr, address(this), amountFromPool); + IERC20(assetAddr).safeTransfer(to, amount); + } + } + + function _bufferConfig(address assetAddr) internal view virtual returns (BufferConfig memory); + + function _depositToPool(address assetAddr, uint256 amount) internal virtual; + + function _withdrawFromPool(address assetAddr, address to, uint256 amount) internal virtual; + + function _aTokenBalance(address assetAddr) internal view virtual returns (uint256 amount); + + function _checkBufferConfig(uint256 minimumBuffer, uint256 maximumBuffer, uint256 buffer) internal pure { + if (minimumBuffer > maximumBuffer || buffer < minimumBuffer || buffer > maximumBuffer) { + revert InvalidBuffer(minimumBuffer, maximumBuffer, buffer); + } + } +} diff --git a/contracts/v2/tokens/TermMaxToken.sol b/contracts/v2/tokens/TermMaxToken.sol new file mode 100644 index 0000000..97d994f --- /dev/null +++ b/contracts/v2/tokens/TermMaxToken.sol @@ -0,0 +1,180 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import { + OwnableUpgradeable, + Ownable2StepUpgradeable +} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +import {IERC20Metadata, IERC20} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import {IAaveV3Minimal} from "../extensions/aave/IAaveV3Minimal.sol"; +import {TransferUtils} from "../../v1/lib/TransferUtils.sol"; +import {StakingBuffer} from "./StakingBuffer.sol"; +import {TermMaxTokenEvents} from "../events/TermMaxTokenEvents.sol"; +import {TermMaxTokenErrors} from "../errors/TermMaxTokenErrors.sol"; +import {PendingLib, PendingAddress} from "../../v1/lib/PendingLib.sol"; + +contract TermMaxToken is + StakingBuffer, + ERC20Upgradeable, + Ownable2StepUpgradeable, + UUPSUpgradeable, + ReentrancyGuardUpgradeable, + TermMaxTokenEvents, + TermMaxTokenErrors +{ + using TransferUtils for IERC20; + using PendingLib for PendingAddress; + + IAaveV3Minimal public immutable aavePool; + uint16 public immutable referralCode; + + IERC20 public aToken; + IERC20 public underlying; + BufferConfig public bufferConfig; + /// @notice The token's decimals + uint8 _decimals; + uint256 internal withdawedIncomeAssets; + + /// @notice The timelock period for upgrade operations (in seconds) + uint256 public constant UPGRADE_TIMELOCK = 1 days; + + /// @notice Pending upgrade implementation address with timelock + PendingAddress internal _pendingImplementation; + + constructor(address aavePool_, uint16 referralCode_) { + aavePool = IAaveV3Minimal(aavePool_); + referralCode = referralCode_; + _disableInitializers(); + } + + function initialize(address admin, address underlying_, BufferConfig memory bufferConfig_) public initializer { + underlying = IERC20(underlying_); + string memory name = string(abi.encodePacked("TermMax ", IERC20Metadata(underlying_).name())); + string memory symbol = string(abi.encodePacked("tmx", IERC20Metadata(underlying_).symbol())); + _decimals = IERC20Metadata(underlying_).decimals(); + __ERC20_init(name, symbol); + __Ownable_init(admin); + __ReentrancyGuard_init(); + _updateBufferConfig(bufferConfig_); + aToken = IERC20(aavePool.getReserveData(underlying_).aTokenAddress); + + emit TermMaxTokenInitialized(admin, underlying_); + } + + function mint(address to, uint256 amount) external nonReentrant { + _mint(to, amount); + underlying.safeTransferFrom(msg.sender, address(this), amount); + _depositWithBuffer(address(underlying)); + } + + function burn(address to, uint256 amount) external nonReentrant { + _burn(msg.sender, amount); + _withdrawWithBuffer(address(underlying), to, amount); + } + + function burnToAToken(address to, uint256 amount) external nonReentrant { + _burn(msg.sender, amount); + aToken.safeTransfer(to, amount); + } + + function totalIncomeAssets() external view returns (uint256) { + uint256 aTokenBalance = aToken.balanceOf(address(this)); + uint256 underlyingBalance = underlying.balanceOf(address(this)); + return aTokenBalance + underlyingBalance - totalSupply() + withdawedIncomeAssets; + } + + function withdrawIncomeAssets(address asset, address to, uint256 amount) external nonReentrant onlyOwner { + uint256 aTokenBalance = aToken.balanceOf(address(this)); + uint256 underlyingBalance = underlying.balanceOf(address(this)); + uint256 avaliableAmount = aTokenBalance + underlyingBalance - totalSupply(); + require(avaliableAmount >= amount, InsufficientIncomeAmount(avaliableAmount, amount)); + withdawedIncomeAssets += amount; + if (asset == address(underlying)) { + _withdrawWithBuffer(address(underlying), to, amount); + } else if (asset == address(aToken)) { + aToken.safeTransfer(to, amount); + } else { + revert InvalidToken(); + } + emit WithdrawIncome(to, amount); + } + + function updateBufferConfigAndAddReserves(uint256 additionalReserves, BufferConfig memory bufferConfig_) + external + onlyOwner + { + // Admin may add additional reserves when liquidity is low + // to avoid the situation that the underlying liquidity is too low to withdraw + underlying.safeTransferFrom(msg.sender, address(this), additionalReserves); + _updateBufferConfig(bufferConfig_); + } + + function _updateBufferConfig(BufferConfig memory bufferConfig_) internal { + _checkBufferConfig(bufferConfig_.minimumBuffer, bufferConfig_.maximumBuffer, bufferConfig_.buffer); + bufferConfig = BufferConfig(bufferConfig_.minimumBuffer, bufferConfig_.maximumBuffer, bufferConfig_.buffer); + emit UpdateBufferConfig(bufferConfig_.minimumBuffer, bufferConfig_.maximumBuffer, bufferConfig_.buffer); + } + + function decimals() public view override(ERC20Upgradeable) returns (uint8) { + return _decimals; + } + + function _bufferConfig(address) internal view virtual override returns (BufferConfig memory) { + return bufferConfig; + } + + function _depositToPool(address assetAddr, uint256 amount) internal virtual override { + IERC20(assetAddr).safeIncreaseAllowance(address(aavePool), amount); + aavePool.supply(assetAddr, amount, address(this), referralCode); + } + + function _withdrawFromPool(address assetAddr, address to, uint256 amount) internal virtual override { + aToken.safeIncreaseAllowance(address(aavePool), amount); + uint256 receivedAmount = aavePool.withdraw(assetAddr, amount, to); + require(receivedAmount == amount, AaveWithdrawFailed(amount, receivedAmount)); + } + + function _aTokenBalance(address) internal view virtual override returns (uint256 amount) { + amount = aToken.balanceOf(address(this)); + } + + /// @notice Submit a new implementation for upgrade with timelock + /// @param newImplementation The address of the new implementation contract + function submitPendingUpgrade(address newImplementation) external onlyOwner { + if (newImplementation == address(0)) revert InvalidImplementation(); + if (_pendingImplementation.validAt != 0) revert AlreadyPending(); + + _pendingImplementation.update(newImplementation, UPGRADE_TIMELOCK); + + emit SubmitUpgrade(newImplementation, _pendingImplementation.validAt); + } + + /// @notice Revoke the pending implementation upgrade + function revokeUpgrade() external onlyOwner { + if (_pendingImplementation.validAt == 0) revert NoPendingValue(); + + delete _pendingImplementation; + + emit RevokeUpgrade(msg.sender); + } + + /// @notice Get the pending implementation upgrade details + /// @return implementation The pending implementation address + /// @return validAt The timestamp when the upgrade becomes valid + function pendingImplementation() external view returns (address implementation, uint64 validAt) { + return (_pendingImplementation.value, _pendingImplementation.validAt); + } + + /// @notice Override _authorizeUpgrade to prevent direct upgrades without timelock + /// @dev This function should never allow upgrades as they must go through the timelock process + function _authorizeUpgrade(address newImplementation) internal virtual override onlyOwner { + if (_pendingImplementation.validAt == 0) revert NoPendingValue(); + if (newImplementation != _pendingImplementation.value) revert InvalidImplementation(); + if (block.timestamp < _pendingImplementation.validAt) revert TimelockNotElapsed(); + delete _pendingImplementation; + emit AcceptUpgrade(msg.sender, newImplementation); + } +} diff --git a/contracts/v2/vault/ITermMaxVaultV2.sol b/contracts/v2/vault/ITermMaxVaultV2.sol new file mode 100644 index 0000000..d53a3a9 --- /dev/null +++ b/contracts/v2/vault/ITermMaxVaultV2.sol @@ -0,0 +1,97 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import {PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol"; +import {VaultInitialParamsV2} from "../storage/TermMaxStorageV2.sol"; + +/** + * @title ITermMaxVaultV2 + * @notice Interface for TermMax Vault V2 contract + * @dev This interface defines the core functionality for vault operations including + * initialization, APY management, and pending parameter updates with timelock mechanism + */ +interface ITermMaxVaultV2 { + /** + * @notice Initializes the vault with the provided parameters + * @dev This function should only be called once during contract deployment + * @param params The initial configuration parameters for the vault + */ + function initialize(VaultInitialParamsV2 memory params) external; + + /** + * @notice Returns the current annual percentage yield based on accreting principal, eg. 5% APY = 0.05e8 + * @dev APY is calculated based on the vault's current performance and accruing interest + * @return The current APY as a uint256 value + */ + function apy() external view returns (uint256); + + /** + * @notice Returns the minimum guaranteed APY for the vault, e.g. 5% APY = 0.05e8 + * @dev This represents the floor APY that the vault aims to maintain + * @return The minimum APY as a uint64 value + */ + function minApy() external view returns (uint64); + + /** + * @notice Returns the minimum rate for idle funds in the vault, e.g. 10% idle fund rate = 0.05e8 + * @dev This rate applies to funds that are not actively deployed in strategies + * @return The minimum idle fund rate as a uint64 value + */ + function minIdleFundRate() external view returns (uint64); + + /** + * @notice Returns the pending minimum APY update details + * @dev Contains the proposed new value and timing information for the pending change + * @return PendingUint192 struct with pending minimum APY data, structure includes: + * - new value: the proposed new minimum APY + * - valid at: the timestamp when the change was proposed + */ + function pendingMinApy() external view returns (PendingUint192 memory); + + /** + * @notice Returns the pending minimum idle fund rate update details + * @dev Contains the proposed new value and timing information for the pending change + * @return PendingUint192 struct with pending minimum idle fund rate data, structure includes: + * - new value: the proposed new minimum idle fund rate + * - valid at: the timestamp when the change was proposed + */ + function pendingMinIdleFundRate() external view returns (PendingUint192 memory); + + /** + * @notice Submits a new minimum APY for pending approval + * @dev Initiates a timelock period before the new minimum APY can be applied + * @param newMinApy The proposed new minimum APY value, e.g. 5% APY = 0.05e8 + */ + function submitPendingMinApy(uint64 newMinApy) external; + + /** + * @notice Submits a new minimum idle fund rate for pending approval + * @dev Initiates a timelock period before the new rate can be applied + * @param newMinIdleFundRate The proposed new minimum idle fund rate, e.g. 10% idle fund rate = 0.10e8 + */ + function submitPendingMinIdleFundRate(uint64 newMinIdleFundRate) external; + + /** + * @notice Accepts and applies the pending minimum APY change + * @dev Can only be called after the timelock period has elapsed + */ + function acceptPendingMinApy() external; + + /** + * @notice Accepts and applies the pending minimum idle fund rate change + * @dev Can only be called after the timelock period has elapsed + */ + function acceptPendingMinIdleFundRate() external; + + /** + * @notice Revokes the pending minimum APY change + * @dev Cancels the pending change and resets the pending state + */ + function revokePendingMinApy() external; + + /** + * @notice Revokes the pending minimum idle fund rate change + * @dev Cancels the pending change and resets the pending state + */ + function revokePendingMinIdleFundRate() external; +} diff --git a/contracts/v2/vault/OrderManagerV2.sol b/contracts/v2/vault/OrderManagerV2.sol new file mode 100644 index 0000000..db21894 --- /dev/null +++ b/contracts/v2/vault/OrderManagerV2.sol @@ -0,0 +1,349 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.27; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {ITermMaxMarket} from "../../v1/ITermMaxMarket.sol"; +import {CurveCuts, OrderConfig} from "../../v1/storage/TermMaxStorage.sol"; +import {VaultErrors} from "../../v1/errors/VaultErrors.sol"; +import {VaultEvents} from "../../v1/events/VaultEvents.sol"; +import {ITermMaxOrder} from "../../v1/ITermMaxOrder.sol"; +import {TransferUtils} from "../../v1/lib/TransferUtils.sol"; +import {Constants} from "../../v1/lib/Constants.sol"; +import {ArrayUtils} from "../../v1/lib/ArrayUtils.sol"; +import {MathLib} from "../../v1/lib/MathLib.sol"; +import {LinkedList} from "../../v1/lib/LinkedList.sol"; +import {IOrderManager} from "../../v1/vault/IOrderManager.sol"; +import {ISwapCallback} from "../../v1/ISwapCallback.sol"; +import {OrderInfo, VaultStorageV2} from "./VaultStorageV2.sol"; +import {VaultErrorsV2} from "../errors/VaultErrorsV2.sol"; +import {VaultEventsV2} from "../events/VaultEventsV2.sol"; +/** + * @title Order Manager V2 + * @author Term Structure Labs + * @notice The extension of the TermMaxVault that manages orders and calculates interest + */ + +contract OrderManagerV2 is VaultStorageV2, VaultErrors, VaultEvents, IOrderManager { + using SafeCast for uint256; + using SafeCast for int256; + using TransferUtils for IERC20; + using ArrayUtils for address[]; + using MathLib for uint256; + using LinkedList for mapping(uint64 => uint64); + + address private immutable ORDER_MANAGER_SINGLETON; + + /** + * @notice Reverts if the caller is not the proxy + */ + modifier onlyProxy() { + if (address(this) == ORDER_MANAGER_SINGLETON) revert OnlyProxy(); + _; + } + + constructor() { + ORDER_MANAGER_SINGLETON = address(this); + } + + /** + * @inheritdoc IOrderManager + */ + function updateOrders( + IERC20 asset, + ITermMaxOrder[] memory orders, + int256[] memory changes, + uint256[] memory maxSupplies, + CurveCuts[] memory curveCuts + ) external override onlyProxy { + uint256 length = orders.length; + if (length != changes.length || length != maxSupplies.length || length != curveCuts.length) { + revert VaultErrorsV2.ArrayLengthMismatch(); + } + + _accruedInterest(); + int256 totalChanges = 0; + for (uint256 i = 0; i < orders.length; ++i) { + totalChanges += changes[i]; + _updateOrder(asset, ITermMaxOrder(orders[i]), changes[i], maxSupplies[i], curveCuts[i]); + } + /// @dev Check idle fund rate after all orders are updated if deposit funds to orders + if (totalChanges > 0) { + _checkIdleFundRate(asset); + } + } + + /** + * @inheritdoc IOrderManager + */ + function withdrawPerformanceFee(IERC20 asset, address recipient, uint256 amount) external override onlyProxy { + _accruedInterest(); + _withdrawPerformanceFee(asset, recipient, amount); + } + + /** + * @inheritdoc IOrderManager + */ + function redeemOrder(ITermMaxOrder order) external override onlyProxy { + _redeemFromMarket(address(order), _orderMapping[address(order)]); + } + + /** + * @inheritdoc IOrderManager + */ + function createOrder( + IERC20 asset, + ITermMaxMarket market, + uint256 maxSupply, + uint256 initialReserve, + CurveCuts memory curveCuts + ) external onlyProxy returns (ITermMaxOrder order) { + _accruedInterest(); + (IERC20 ft, IERC20 xt,,, IERC20 debtToken) = market.tokens(); + + order = market.createOrder(address(this), maxSupply, ISwapCallback(address(this)), curveCuts); + if (initialReserve > 0) { + asset.safeIncreaseAllowance(address(market), initialReserve); + market.mint(address(order), initialReserve); + _checkIdleFundRate(asset); + } + + uint64 orderMaturity = market.config().maturity; + _orderMapping[address(order)] = + OrderInfo({market: market, ft: ft, xt: xt, maxSupply: maxSupply.toUint128(), maturity: orderMaturity}); + _maturityMapping.insertWhenZeroAsRoot(orderMaturity); + emit CreateOrder(msg.sender, address(market), address(order), maxSupply, initialReserve, curveCuts); + } + + function _updateOrder( + IERC20 asset, + ITermMaxOrder order, + int256 changes, + uint256 maxSupply, + CurveCuts memory curveCuts + ) internal { + _checkOrder(address(order)); + OrderInfo memory orderInfo = _orderMapping[address(order)]; + orderInfo.maxSupply = maxSupply.toUint128(); + OrderConfig memory newOrderConfig; + newOrderConfig.curveCuts = curveCuts; + newOrderConfig.maxXtReserve = maxSupply; + newOrderConfig.swapTrigger = ISwapCallback(address(this)); + if (changes < 0) { + // withdraw assets from order and burn to assets + order.updateOrder(newOrderConfig, changes, changes); + uint256 withdrawChanges = (-changes).toUint256(); + orderInfo.ft.safeIncreaseAllowance(address(orderInfo.market), withdrawChanges); + orderInfo.xt.safeIncreaseAllowance(address(orderInfo.market), withdrawChanges); + orderInfo.market.burn(address(this), withdrawChanges); + } else if (changes > 0) { + // deposit assets to order + uint256 depositChanges = uint256(changes); + asset.safeIncreaseAllowance(address(orderInfo.market), depositChanges); + orderInfo.market.mint(address(order), depositChanges); + // update curve cuts + order.updateOrder(newOrderConfig, 0, 0); + } else { + // no changes, just update curve cuts + order.updateOrder(newOrderConfig, 0, 0); + } + _orderMapping[address(order)] = orderInfo; + emit UpdateOrder(msg.sender, address(order), changes, maxSupply, curveCuts); + } + + function _checkIdleFundRate(IERC20 asset) internal view { + uint256 __minIdleFundRate = _minIdleFundRate; + if (__minIdleFundRate > 0) { + uint256 idleFundBalance = asset.balanceOf(address(this)); + uint256 currentIdleFundRate = _accretingPrincipal == 0 + ? Constants.DECIMAL_BASE + : idleFundBalance * Constants.DECIMAL_BASE_SQ * Constants.DECIMAL_BASE / _accretingPrincipal; + + if (currentIdleFundRate < __minIdleFundRate) { + revert VaultErrorsV2.IdleFundRateTooLow(currentIdleFundRate, __minIdleFundRate); + } + } + } + + /** + * @inheritdoc IOrderManager + */ + function depositAssets(IERC20, uint256 amount) external override onlyProxy { + _accruedInterest(); + // deposit to lpers + uint256 amplifiedAmt = amount * Constants.DECIMAL_BASE_SQ; + _totalFt += amplifiedAmt; + _accretingPrincipal += amplifiedAmt; + } + + /** + * @inheritdoc IOrderManager + */ + function withdrawAssets(IERC20 asset, address recipient, uint256 amount) external override onlyProxy { + _accruedInterest(); + uint256 amplifiedAmt = amount * Constants.DECIMAL_BASE_SQ; + _totalFt -= amplifiedAmt; + _accretingPrincipal -= amplifiedAmt; + + asset.safeTransfer(recipient, amount); + } + + function _withdrawPerformanceFee(IERC20 asset, address recipient, uint256 amount) internal { + uint256 amplifiedAmt = amount * Constants.DECIMAL_BASE_SQ; + _performanceFee -= amplifiedAmt; + _totalFt -= amplifiedAmt; + + asset.safeTransfer(recipient, amount); + emit WithdrawPerformanceFee(msg.sender, recipient, amount); + } + + /** + * @inheritdoc IOrderManager + */ + function dealBadDebt(address recipient, address collateral, uint256 amount) + external + onlyProxy + returns (uint256 collateralOut) + { + _accruedInterest(); + uint256 badDebtAmt = _badDebtMapping[collateral]; + if (badDebtAmt == 0) revert NoBadDebt(collateral); + if (amount > badDebtAmt) revert InsufficientFunds(badDebtAmt, amount); + uint256 collateralBalance = IERC20(collateral).balanceOf(address(this)); + collateralOut = (amount * collateralBalance) / badDebtAmt; + IERC20(collateral).safeTransfer(recipient, collateralOut); + + _badDebtMapping[collateral] -= amount; + uint256 amplifiedAmt = amount * Constants.DECIMAL_BASE_SQ; + _accretingPrincipal -= amplifiedAmt; + _totalFt -= amplifiedAmt; + } + + function _redeemFromMarket(address order, OrderInfo memory orderInfo) internal returns (uint256 totalRedeem) { + uint256 ftReserve = orderInfo.ft.balanceOf(order); + if (ftReserve != 0) { + ITermMaxOrder(order).withdrawAssets(orderInfo.ft, address(this), ftReserve); + orderInfo.ft.safeIncreaseAllowance(address(orderInfo.market), ftReserve); + (totalRedeem,) = orderInfo.market.redeem(ftReserve, address(this)); + if (totalRedeem < ftReserve) { + // storage bad debt + (,,, address collateral,) = orderInfo.market.tokens(); + _badDebtMapping[collateral] += ftReserve - totalRedeem; + } + } + emit RedeemOrder(msg.sender, order, ftReserve.toUint128(), totalRedeem.toUint128()); + + delete _orderMapping[order]; + } + + /// @notice Calculate and distribute accrued the interest from start to end time + function _accruedPeriodInterest(uint256 startTime, uint256 endTime) internal { + uint256 interest = (_annualizedInterest * (endTime - startTime)) / 365 days; + uint256 _performanceFeeToCurator = (interest * _performanceFeeRate) / Constants.DECIMAL_BASE; + // accrue interest + _performanceFee += _performanceFeeToCurator; + _accretingPrincipal += (interest - _performanceFeeToCurator); + } + + /** + * @inheritdoc IOrderManager + */ + function accruedInterest() external onlyProxy { + _accruedInterest(); + } + + /// @notice Distribute interest + function _accruedInterest() internal { + uint64 currentTime = block.timestamp.toUint64(); + uint256 lastTime = _lastUpdateTime; + if (currentTime == lastTime) return; + uint64 recentMaturity = _maturityMapping[0]; + if (recentMaturity == 0) return; + while (recentMaturity != 0 && recentMaturity <= currentTime) { + // pop first maturity + _maturityMapping.popWhenZeroAsRoot(); + _accruedPeriodInterest(lastTime, recentMaturity); + // update last time + lastTime = recentMaturity; + // update annualized interest + _annualizedInterest -= _maturityToInterest[recentMaturity]; + delete _maturityToInterest[recentMaturity]; + // get next maturity + recentMaturity = _maturityMapping[0]; + } + // accrued interest for the remaining maturity + if (recentMaturity > 0) { + _accruedPeriodInterest(lastTime, currentTime); + } else { + // all orders are expired + _annualizedInterest = 0; + } + emit VaultEventsV2.AccruedInterest(_accretingPrincipal, _performanceFee); + _lastUpdateTime = currentTime; + } + + function _checkLockedFt() internal view { + if (_accretingPrincipal + _performanceFee > _totalFt) revert LockedFtGreaterThanTotalFt(); + } + + function _checkOrder(address orderAddress) internal view { + if (address(_orderMapping[orderAddress].market) == address(0)) { + revert UnauthorizedOrder(orderAddress); + } + } + + function _checkApy() internal view { + uint256 __minAPy = _minApy; + if (__minAPy > 0) { + uint256 currentApy = _accretingPrincipal == 0 + ? 0 + : (_annualizedInterest * (Constants.DECIMAL_BASE - _performanceFeeRate)) / (_accretingPrincipal); + if (currentApy < __minAPy) { + revert VaultErrorsV2.ApyTooLow(currentApy, __minAPy); + } + } + } + + /// @notice Callback function for the swap + /// @param deltaFt The change in the ft balance of the order + function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt) external onlyProxy { + if (ftReserve < xtReserve) { + revert OrderHasNegativeInterest(); + } + address orderAddress = msg.sender; + /// @dev Check if the order is valid + _checkOrder(orderAddress); + uint64 maturity = _orderMapping[orderAddress].maturity; + /// @dev Calculate interest from last update time to now + _accruedInterest(); + + /// @dev If ft increases, interest increases, and if ft decreases, + /// interest decreases. Update the expected annualized return based on the change + uint256 ftChanges; + + if (deltaFt > 0) { + ftChanges = uint256(deltaFt) * Constants.DECIMAL_BASE_SQ; + _totalFt += ftChanges; + uint256 deltaAnnualizedInterest = ftChanges * 365 days / uint256(maturity - block.timestamp); + + _maturityToInterest[maturity] += deltaAnnualizedInterest; + + _annualizedInterest += deltaAnnualizedInterest; + } else { + ftChanges = uint256(-deltaFt) * Constants.DECIMAL_BASE_SQ; + _totalFt -= ftChanges; + uint256 deltaAnnualizedInterest = (ftChanges * 365 days) / uint256(maturity - block.timestamp); + if ( + _maturityToInterest[maturity] < deltaAnnualizedInterest || _annualizedInterest < deltaAnnualizedInterest + ) { + revert LockedFtGreaterThanTotalFt(); + } + _maturityToInterest[maturity] -= deltaAnnualizedInterest; + _annualizedInterest -= deltaAnnualizedInterest; + _checkApy(); + } + /// @dev Ensure that the total assets after the transaction are + /// greater than or equal to the principal and the allocated interest + _checkLockedFt(); + } +} diff --git a/contracts/v2/vault/TermMaxVaultV1Plus.sol b/contracts/v2/vault/TermMaxVaultV1Plus.sol new file mode 100644 index 0000000..5a77638 --- /dev/null +++ b/contracts/v2/vault/TermMaxVaultV1Plus.sol @@ -0,0 +1,853 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.8.27; + +/** + * @title TermMaxVaultV1Plus + * @notice This contract is inspired by MetaMorphoV1_1 (https://github.com/morpho-org/metamorpho-v1.1/blob/main/src/MetaMorphoV1_1.sol) + * @dev The role management structure is based on Morpho's role system (https://docs.morpho.org/curation/concepts/roles/) + * with similar separation of curator, guardian, and allocator roles for enhanced governance and risk management. + */ +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import { + IERC4626, + ERC4626Upgradeable, + ERC20Upgradeable +} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol"; +import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import {PendingLib, PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol"; +import {ITermMaxMarket} from "../../v1/ITermMaxMarket.sol"; +import {VaultInitialParams, CurveCuts} from "../../v1/storage/TermMaxStorage.sol"; +import {VaultInitialParamsV2} from "../storage/TermMaxStorageV2.sol"; +import {ITermMaxOrder} from "../../v1/ITermMaxOrder.sol"; +import {VaultConstants} from "../../v1/lib/VaultConstants.sol"; +import {TransferUtils} from "../../v1/lib/TransferUtils.sol"; +import {ISwapCallback} from "../../v1/ISwapCallback.sol"; +import {VaultErrors} from "../../v1/errors/VaultErrors.sol"; +import {VaultEvents} from "../../v1/events/VaultEvents.sol"; +import {VaultEventsV2} from "../events/VaultEventsV2.sol"; +import {IOrderManager} from "../../v1/vault/IOrderManager.sol"; +import {VaultStorageV2, OrderInfo} from "./VaultStorageV2.sol"; +import {Constants} from "../../v1/lib/Constants.sol"; +import {ITermMaxVault} from "../../v1/vault/ITermMaxVault.sol"; +import {ITermMaxVaultV2} from "./ITermMaxVaultV2.sol"; +import {VaultErrorsV2} from "../errors/VaultErrorsV2.sol"; +import {TransactionReentrancyGuard} from "../lib/TransactionReentrancyGuard.sol"; + +contract TermMaxVaultV1Plus is + VaultStorageV2, + ITermMaxVault, + Ownable2StepUpgradeable, + ReentrancyGuardUpgradeable, + ERC4626Upgradeable, + PausableUpgradeable, + VaultErrors, + VaultEvents, + ISwapCallback, + ITermMaxVaultV2, + TransactionReentrancyGuard +{ + using SafeCast for uint256; + using TransferUtils for IERC20; + using PendingLib for *; + + address public immutable ORDER_MANAGER_SINGLETON; + + // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.vault.actionDeposit")) - 1)) & ~bytes32(uint256(0xff)) + uint256 private constant ACTION_DEPOSIT = 0x1d9ff85e70b948f53a2cc45fa6f42c020b2a8eec3349351855dea946b0635700; + // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.vault.actionWithdraw")) - 1)) & ~bytes32(uint256(0xff)) + uint256 private constant ACTION_WITHDRAW = 0xfcb0c32c4f653382a412cb0caa6a29f9e46d74bae452ca200c67f1e5e6389300; + + modifier onlyCuratorRole() { + address sender = _msgSender(); + if (sender != _curator && sender != owner()) revert NotCuratorRole(); + _; + } + + /// @dev Reverts if the caller doesn't have the guardian role. + modifier onlyGuardianRole() { + address sender = _msgSender(); + if (sender != _guardian && sender != owner()) revert NotGuardianRole(); + + _; + } + + /// @dev Reverts if the caller doesn't have the allocator role. + modifier onlyAllocatorRole() { + address sender = _msgSender(); + if (!_isAllocator[sender] && sender != _curator && sender != owner()) { + revert NotAllocatorRole(); + } + _; + } + + modifier marketIsWhitelisted(address market) { + if (!_marketWhitelist[market]) revert MarketNotWhitelisted(); + _; + } + + /// @dev Makes sure conditions are met to accept a pending value. + /// @dev Reverts if: + /// - there's no pending value; + /// - the timelock has not elapsed since the pending value has been submitted. + modifier afterTimelock(uint256 validAt) { + if (validAt == 0) revert NoPendingValue(); + if (block.timestamp < validAt) revert TimelockNotElapsed(); + _; + } + + constructor(address ORDER_MANAGER_SINGLETON_) { + ORDER_MANAGER_SINGLETON = ORDER_MANAGER_SINGLETON_; + _disableInitializers(); + } + + function initialize(VaultInitialParamsV2 memory params) external virtual initializer { + __ERC20_init_unchained(params.name, params.symbol); + __Ownable_init_unchained(params.admin); + __ERC4626_init_unchained(params.asset); + __ReentrancyGuard_init_unchained(); + __Pausable_init_unchained(); + + _checkPerformanceFeeRateBounds(params.performanceFeeRate); + _setPerformanceFeeRate(params.performanceFeeRate); + _checkTimelockBounds(params.timelock); + _setTimelock(params.timelock); + _setMinApy(params.minApy); + _setMinIdleFundRate(params.minIdleFundRate); + _setGuardian(params.guardian); + _setCapacity(params.maxCapacity); + _setCurator(params.curator); + } + + function initialize(VaultInitialParams memory) external virtual initializer { + revert VaultErrorsV2.UseVaultInitialParamsV2(); + } + + function _setPerformanceFeeRate(uint64 newPerformanceFeeRate) internal { + _delegateCall(abi.encodeCall(IOrderManager.accruedInterest, ())); + _performanceFeeRate = newPerformanceFeeRate; + emit SetPerformanceFeeRate(_msgSender(), newPerformanceFeeRate); + } + + /// @notice View functions + + /** + * @inheritdoc ITermMaxVault + */ + function guardian() external view virtual returns (address) { + return _guardian; + } + + /** + * @inheritdoc ITermMaxVault + */ + function curator() external view virtual returns (address) { + return _curator; + } + + /** + * @inheritdoc ITermMaxVault + */ + function isAllocator(address allocator) external view virtual returns (bool) { + return _isAllocator[allocator]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function marketWhitelist(address market) external view virtual returns (bool) { + return _marketWhitelist[market]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function timelock() external view virtual returns (uint256) { + return _timelock; + } + + /** + * @inheritdoc ITermMaxVault + */ + function pendingMarkets(address market) external view virtual returns (PendingUint192 memory) { + return _pendingMarkets[market]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function pendingTimelock() external view virtual returns (PendingUint192 memory) { + return _pendingTimelock; + } + + /** + * @inheritdoc ITermMaxVault + */ + function pendingPerformanceFeeRate() external view virtual returns (PendingUint192 memory) { + return _pendingPerformanceFeeRate; + } + + /** + * @inheritdoc ITermMaxVault + */ + function pendingGuardian() external view virtual returns (PendingAddress memory) { + return _pendingGuardian; + } + + /** + * @inheritdoc ITermMaxVault + */ + function performanceFeeRate() external view virtual returns (uint64) { + return _performanceFeeRate; + } + + /** + * @inheritdoc ITermMaxVault + */ + function totalFt() external view virtual returns (uint256) { + return _totalFt / Constants.DECIMAL_BASE_SQ; + } + + /** + * @inheritdoc ITermMaxVault + */ + function accretingPrincipal() external view virtual returns (uint256) { + (uint256 ap,) = _previewAccruedInterest(); + return ap / Constants.DECIMAL_BASE_SQ; + } + + /** + * @inheritdoc ITermMaxVault + */ + function annualizedInterest() external view virtual returns (uint256) { + return _annualizedInterest / Constants.DECIMAL_BASE_SQ; + } + + /** + * @inheritdoc ITermMaxVault + */ + function performanceFee() external view virtual returns (uint256) { + (, uint256 pf) = _previewAccruedInterest(); + return pf / Constants.DECIMAL_BASE_SQ; + } + + /** + * @inheritdoc ITermMaxVault + */ + function supplyQueue(uint256) external view virtual returns (address) { + revert VaultErrorsV2.SupplyQueueNoLongerSupported(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function withdrawQueue(uint256) external view virtual returns (address) { + revert VaultErrorsV2.WithdrawalQueueNoLongerSupported(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function orderMapping(address order) external view virtual returns (OrderInfo memory) { + return _orderMapping[order]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function badDebtMapping(address collateral) external view virtual returns (uint256) { + return _badDebtMapping[collateral]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function apr() external view virtual returns (uint256) { + revert VaultErrorsV2.UseApyInsteadOfApr(); + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function apy() external view virtual override returns (uint256) { + uint256 accretingPrincipal_ = _accretingPrincipal; + if (accretingPrincipal_ == 0) return 0; + return (_annualizedInterest * (Constants.DECIMAL_BASE - _performanceFeeRate)) / (accretingPrincipal_); + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function minApy() external view virtual override returns (uint64) { + return _minApy; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function minIdleFundRate() external view virtual override returns (uint64) { + return _minIdleFundRate; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function pendingMinApy() external view virtual override returns (PendingUint192 memory) { + return _pendingMinApy; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function pendingMinIdleFundRate() external view virtual override returns (PendingUint192 memory) { + return _pendingMinIdleFundRate; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function submitPendingMinApy(uint64 newMinApy) external virtual override onlyCuratorRole { + if (newMinApy == _minApy) revert AlreadySet(); + if (_pendingMinApy.validAt != 0) revert AlreadyPending(); + + if (newMinApy > _minApy) { + _setMinApy(newMinApy); + } else { + _pendingMinApy.update(uint184(newMinApy), _timelock); + emit VaultEventsV2.SubmitMinApy(newMinApy, _pendingMinApy.validAt); + } + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function submitPendingMinIdleFundRate(uint64 newMinIdleFundRate) external virtual override onlyCuratorRole { + if (newMinIdleFundRate == _minIdleFundRate) revert AlreadySet(); + if (_pendingMinIdleFundRate.validAt != 0) revert AlreadyPending(); + + if (newMinIdleFundRate > _minIdleFundRate) { + _setMinIdleFundRate(newMinIdleFundRate); + } else { + _pendingMinIdleFundRate.update(uint184(newMinIdleFundRate), _timelock); + emit VaultEventsV2.SubmitMinIdleFundRate(newMinIdleFundRate, _pendingMinIdleFundRate.validAt); + } + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function acceptPendingMinApy() external virtual override afterTimelock(_pendingMinApy.validAt) { + _setMinApy(uint64(_pendingMinApy.value)); + delete _pendingMinApy; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function acceptPendingMinIdleFundRate() external virtual override afterTimelock(_pendingMinIdleFundRate.validAt) { + _setMinIdleFundRate(uint64(_pendingMinIdleFundRate.value)); + delete _pendingMinIdleFundRate; + } + + /// @dev Sets `_minApy` to `newMinApy`. + function _setMinApy(uint64 newMinApy) internal { + _minApy = newMinApy; + emit VaultEventsV2.SetMinApy(_msgSender(), newMinApy); + } + + /// @dev Sets `_minIdleFundRate` to `newMinIdleFundRate`. + function _setMinIdleFundRate(uint64 newMinIdleFundRate) internal { + _minIdleFundRate = newMinIdleFundRate; + emit VaultEventsV2.SetMinIdleFundRate(_msgSender(), newMinIdleFundRate); + } + + // Ordermanager functions + /** + * @inheritdoc ITermMaxVault + */ + function createOrder(ITermMaxMarket market, uint256 maxSupply, uint256 initialReserve, CurveCuts memory curveCuts) + external + virtual + onlyCuratorRole + marketIsWhitelisted(address(market)) + whenNotPaused + returns (ITermMaxOrder order) + { + order = abi.decode( + _delegateCall( + abi.encodeCall( + IOrderManager.createOrder, (IERC20(asset()), market, maxSupply, initialReserve, curveCuts) + ) + ), + (ITermMaxOrder) + ); + } + + /** + * @inheritdoc ITermMaxVault + */ + function updateOrders( + ITermMaxOrder[] memory orders, + int256[] memory changes, + uint256[] memory maxSupplies, + CurveCuts[] memory curveCuts + ) external virtual onlyCuratorRole whenNotPaused { + _delegateCall( + abi.encodeCall(IOrderManager.updateOrders, (IERC20(asset()), orders, changes, maxSupplies, curveCuts)) + ); + } + + /** + * @inheritdoc ITermMaxVault + */ + function redeemOrder(ITermMaxOrder order) external virtual { + _delegateCall(abi.encodeCall(IOrderManager.redeemOrder, (order))); + } + + /** + * @inheritdoc ITermMaxVault + */ + function withdrawPerformanceFee(address recipient, uint256 amount) + external + virtual + nonReentrant + whenNotPaused + onlyCuratorRole + { + _delegateCall(abi.encodeCall(IOrderManager.withdrawPerformanceFee, (IERC20(asset()), recipient, amount))); + } + + // ERC4626 functions + + /** + * @dev See {IERC4626-maxDeposit}. + */ + function maxDeposit(address) public view override(IERC4626, ERC4626Upgradeable) returns (uint256) { + if (paused()) return 0; + if (totalAssets() >= _maxCapacity) return 0; + return _maxCapacity - totalAssets(); + } + + /** + * @dev See {IERC4626-maxMint}. + */ + function maxMint(address) public view override(IERC4626, ERC4626Upgradeable) returns (uint256) { + if (paused()) return 0; + return convertToShares(maxDeposit(address(0))); + } + + /** + * @dev Get total assets, falling back to real assets if virtual assets exceed limit + */ + function totalAssets() public view override(IERC4626, ERC4626Upgradeable) returns (uint256) { + (uint256 previewPrincipal,) = _previewAccruedInterest(); + return previewPrincipal / Constants.DECIMAL_BASE_SQ; + } + + /** + * @dev Deposit/mint common workflow. + */ + function _deposit(address caller, address recipient, uint256 assets, uint256 shares) + internal + override + nonReentrant + nonTxReentrantBetweenActions(ACTION_DEPOSIT) + whenNotPaused + { + IERC20(asset()).safeTransferFrom(caller, address(this), assets); + + _delegateCall(abi.encodeCall(IOrderManager.depositAssets, (IERC20(asset()), assets))); + _mint(recipient, shares); + + emit Deposit(caller, recipient, assets, shares); + } + + /** + * @dev Withdraw/redeem common workflow. + */ + function _withdraw(address caller, address receiver, address owner, uint256 assets, uint256 shares) + internal + override + nonReentrant + nonTxReentrantBetweenActions(ACTION_WITHDRAW) + { + if (caller != owner) { + _spendAllowance(owner, caller, shares); + } + + _delegateCall(abi.encodeCall(IOrderManager.withdrawAssets, (IERC20(asset()), receiver, assets))); + _burn(owner, shares); + + emit Withdraw(caller, receiver, owner, assets, shares); + } + + function _delegateCall(bytes memory data) internal returns (bytes memory) { + (bool success, bytes memory returnData) = ORDER_MANAGER_SINGLETON.delegatecall(data); + if (!success) { + assembly { + let ptr := add(returnData, 0x20) + let len := mload(returnData) + revert(ptr, len) + } + } + return returnData; + } + + /** + * @inheritdoc ITermMaxVault + */ + function dealBadDebt(address collateral, uint256 badDebtAmt, address recipient, address owner) + external + virtual + nonReentrant + returns (uint256 shares, uint256 collateralOut) + { + if (collateral == asset()) revert VaultErrorsV2.CollateralIsAsset(); + address caller = msg.sender; + shares = previewWithdraw(badDebtAmt); + uint256 maxShares = maxRedeem(owner); + if (shares > maxShares) { + revert ERC4626ExceededMaxRedeem(recipient, shares, maxShares); + } + + if (caller != owner) { + _spendAllowance(owner, caller, shares); + } + + _burn(owner, shares); + + collateralOut = abi.decode( + _delegateCall(abi.encodeCall(IOrderManager.dealBadDebt, (recipient, collateral, badDebtAmt))), (uint256) + ); + + emit DealBadDebt(caller, recipient, collateral, badDebtAmt, shares, collateralOut); + } + + // Guardian functions + function _setTimelock(uint256 newTimelock) internal { + _timelock = newTimelock; + + emit SetTimelock(msg.sender, newTimelock); + + delete _pendingTimelock; + } + + /** + * @inheritdoc ITermMaxVault + */ + function submitTimelock(uint256 newTimelock) external virtual onlyCuratorRole { + if (newTimelock == _timelock) revert AlreadySet(); + if (_pendingTimelock.validAt != 0) revert AlreadyPending(); + _checkTimelockBounds(newTimelock); + + if (newTimelock > _timelock) { + _setTimelock(newTimelock); + } else { + // Safe "unchecked" cast because newTimelock <= MAX_TIMELOCK. + _pendingTimelock.update(uint184(newTimelock), _timelock); + + emit SubmitTimelock(newTimelock, _pendingTimelock.validAt); + } + } + + /** + * @inheritdoc ITermMaxVault + */ + function setCapacity(uint256 newCapacity) external virtual onlyCuratorRole { + if (newCapacity == _maxCapacity) revert AlreadySet(); + _setCapacity(newCapacity); + } + + function _setCapacity(uint256 newCapacity) internal { + _maxCapacity = newCapacity; + emit SetCapacity(_msgSender(), newCapacity); + } + + function _checkTimelockBounds(uint256 newTimelock) internal pure { + if (newTimelock > VaultConstants.MAX_TIMELOCK) revert AboveMaxTimelock(); + if (newTimelock < VaultConstants.POST_INITIALIZATION_MIN_TIMELOCK) revert BelowMinTimelock(); + } + + function _checkPerformanceFeeRateBounds(uint256 newPerformanceFeeRate) internal pure { + if (newPerformanceFeeRate > VaultConstants.MAX_PERFORMANCE_FEE_RATE) revert PerformanceFeeRateExceeded(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function submitPerformanceFeeRate(uint184 newPerformanceFeeRate) external virtual onlyCuratorRole { + if (newPerformanceFeeRate == _performanceFeeRate) revert AlreadySet(); + if (_pendingPerformanceFeeRate.validAt != 0) revert AlreadyPending(); + _checkPerformanceFeeRateBounds(newPerformanceFeeRate); + if (newPerformanceFeeRate < _performanceFeeRate) { + _setPerformanceFeeRate(uint256(newPerformanceFeeRate).toUint64()); + emit SetPerformanceFeeRate(_msgSender(), newPerformanceFeeRate); + return; + } else { + _pendingPerformanceFeeRate.update(newPerformanceFeeRate, _timelock); + emit SubmitPerformanceFeeRate(newPerformanceFeeRate, _pendingPerformanceFeeRate.validAt); + } + } + + /** + * @inheritdoc ITermMaxVault + */ + function submitGuardian(address newGuardian) external virtual onlyOwner { + if (newGuardian == _guardian) revert AlreadySet(); + if (_pendingGuardian.validAt != 0) revert AlreadyPending(); + + if (_guardian == address(0)) { + _setGuardian(newGuardian); + } else { + _pendingGuardian.update(newGuardian, _timelock); + emit SubmitGuardian(newGuardian, _pendingGuardian.validAt); + } + } + + /// @dev Sets `guardian` to `newGuardian`. + function _setGuardian(address newGuardian) internal { + _guardian = newGuardian; + emit SetGuardian(_msgSender(), newGuardian); + + delete _pendingGuardian; + } + + /** + * @inheritdoc ITermMaxVault + */ + function submitMarket(address market, bool isWhitelisted) external virtual onlyCuratorRole { + if (_marketWhitelist[market] && isWhitelisted) revert AlreadySet(); + if (_pendingMarkets[market].validAt != 0) revert AlreadyPending(); + if (!isWhitelisted) { + _setMarketWhitelist(market, isWhitelisted); + } else { + _pendingMarkets[market].update(0, _timelock); + emit SubmitMarketToWhitelist(market, _pendingMarkets[market].validAt); + } + } + + function _setMarketWhitelist(address market, bool isWhitelisted) internal { + _marketWhitelist[market] = isWhitelisted; + emit SetMarketWhitelist(_msgSender(), market, isWhitelisted); + delete _pendingMarkets[market]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function setIsAllocator(address newAllocator, bool newIsAllocator) external virtual onlyOwner { + if (_isAllocator[newAllocator] == newIsAllocator) revert AlreadySet(); + + _isAllocator[newAllocator] = newIsAllocator; + + emit SetIsAllocator(newAllocator, newIsAllocator); + } + + /** + * @inheritdoc ITermMaxVault + */ + function setCurator(address newCurator) external virtual onlyOwner { + if (newCurator == _curator) revert AlreadySet(); + _setCurator(newCurator); + } + + function _setCurator(address newCurator) internal { + _curator = newCurator; + emit SetCurator(newCurator); + } + + /** + * @inheritdoc ITermMaxVault + */ + function updateSupplyQueue(uint256[] memory) external virtual onlyAllocatorRole { + revert VaultErrorsV2.SupplyQueueNoLongerSupported(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function updateWithdrawQueue(uint256[] memory) external virtual onlyAllocatorRole { + revert VaultErrorsV2.WithdrawalQueueNoLongerSupported(); + } + + /** + * Revoke functions + */ + + /** + * @inheritdoc ITermMaxVault + */ + function revokePendingTimelock() external virtual onlyGuardianRole { + delete _pendingTimelock; + + emit RevokePendingTimelock(_msgSender()); + } + + /** + * @inheritdoc ITermMaxVault + */ + function revokePendingGuardian() external virtual onlyGuardianRole { + delete _pendingGuardian; + + emit RevokePendingGuardian(_msgSender()); + } + + /** + * @inheritdoc ITermMaxVault + */ + function revokePendingMarket(address market) external virtual onlyGuardianRole { + delete _pendingMarkets[market]; + + emit RevokePendingMarket(_msgSender(), market); + } + + /** + * @inheritdoc ITermMaxVault + */ + function revokePendingPerformanceFeeRate() external virtual onlyGuardianRole { + delete _pendingPerformanceFeeRate; + + emit RevokePendingPerformanceFeeRate(_msgSender()); + } + + /** + * @notice Revoke pending minimum APY change + */ + function revokePendingMinApy() external virtual onlyGuardianRole { + delete _pendingMinApy; + + emit VaultEventsV2.RevokePendingMinApy(_msgSender()); + } + + /** + * @notice Revoke pending minimum idle fund rate change + */ + function revokePendingMinIdleFundRate() external virtual onlyGuardianRole { + delete _pendingMinIdleFundRate; + + emit VaultEventsV2.RevokePendingMinIdleFundRate(_msgSender()); + } + + /** + * @inheritdoc ITermMaxVault + */ + function acceptTimelock() external virtual afterTimelock(_pendingTimelock.validAt) { + _setTimelock(_pendingTimelock.value); + } + + /** + * @inheritdoc ITermMaxVault + */ + function acceptGuardian() external virtual afterTimelock(_pendingGuardian.validAt) { + _setGuardian(_pendingGuardian.value); + } + + /** + * @inheritdoc ITermMaxVault + */ + function acceptMarket(address market) external virtual afterTimelock(_pendingMarkets[market].validAt) { + _setMarketWhitelist(market, true); + } + + /** + * @inheritdoc ITermMaxVault + */ + function acceptPerformanceFeeRate() external virtual afterTimelock(_pendingPerformanceFeeRate.validAt) { + _setPerformanceFeeRate(uint256(_pendingPerformanceFeeRate.value).toUint64()); + delete _pendingPerformanceFeeRate; + emit SetPerformanceFeeRate(_msgSender(), _performanceFeeRate); + } + + /** + * @notice Pauses the contract + */ + function pause() external virtual onlyOwner { + _pause(); + } + + /** + * @notice Unpauses the contract + */ + function unpause() external virtual onlyOwner { + _unpause(); + } + + function _previewAccruedInterest() + internal + view + returns (uint256 previewPrincipal, uint256 previewPerformanceFee) + { + uint64 currentTime = block.timestamp.toUint64(); + + uint256 lastTime = _lastUpdateTime; + if (lastTime == 0) { + return (_accretingPrincipal, _performanceFee); + } + uint64 recentMaturity = _maturityMapping[0]; + uint256 previewAnnualizedInterest = _annualizedInterest; + previewPrincipal = _accretingPrincipal; + previewPerformanceFee = _performanceFee; + + while (currentTime >= recentMaturity && recentMaturity != 0) { + (uint256 previewInterest, uint256 previewPerformanceFeeToCurator) = + _previewAccruedPeriodInterest(lastTime, recentMaturity, previewAnnualizedInterest); + lastTime = recentMaturity; + uint64 nextMaturity = _maturityMapping[recentMaturity]; + // update annualized interest + previewAnnualizedInterest -= _maturityToInterest[recentMaturity]; + + previewPerformanceFee += previewPerformanceFeeToCurator; + previewPrincipal += previewInterest; + + recentMaturity = nextMaturity; + } + if (recentMaturity > 0) { + (uint256 previewInterest, uint256 previewPerformanceFeeToCurator) = + _previewAccruedPeriodInterest(lastTime, currentTime, previewAnnualizedInterest); + previewPerformanceFee += previewPerformanceFeeToCurator; + previewPrincipal += previewInterest; + } + } + + function _previewAccruedPeriodInterest(uint256 startTime, uint256 endTime, uint256 previewAnnualizedInterest) + internal + view + returns (uint256, uint256) + { + uint256 interest = (previewAnnualizedInterest * (endTime - startTime)) / 365 days; + uint256 performanceFeeToCurator = (interest * _performanceFeeRate) / Constants.DECIMAL_BASE; + return (interest - performanceFeeToCurator, performanceFeeToCurator); + } + + /// @notice Callback function for the swap + /// @param deltaFt The change in the ft balance of the order + function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256) + external + virtual + override + whenNotPaused + { + _delegateCall(abi.encodeCall(IOrderManager.afterSwap, (ftReserve, xtReserve, deltaFt))); + } + + /** + * @inheritdoc ITermMaxVault + */ + function supplyQueueLength() external view virtual returns (uint256) { + revert VaultErrorsV2.SupplyQueueNoLongerSupported(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function withdrawQueueLength() external view virtual returns (uint256) { + revert VaultErrorsV2.WithdrawalQueueNoLongerSupported(); + } + + // Function to get the version number + function getVersion() external pure returns (string memory) { + return "1.1.0"; + } +} diff --git a/contracts/v2/vault/TermMaxVaultV2.sol b/contracts/v2/vault/TermMaxVaultV2.sol new file mode 100644 index 0000000..6e3a2db --- /dev/null +++ b/contracts/v2/vault/TermMaxVaultV2.sol @@ -0,0 +1,848 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +pragma solidity ^0.8.27; + +/** + * @title TermMaxVaultV2 + * @notice This contract is inspired by MetaMorphoV1_1 (https://github.com/morpho-org/metamorpho-v1.1/blob/main/src/MetaMorphoV1_1.sol) + * @dev The role management structure is based on Morpho's role system (https://docs.morpho.org/curation/concepts/roles/) + * with similar separation of curator, guardian, and allocator roles for enhanced governance and risk management. + */ +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import { + IERC4626, + ERC4626Upgradeable, + ERC20Upgradeable +} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC4626Upgradeable.sol"; +import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol"; +import {PendingLib, PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol"; +import {ITermMaxMarket} from "../../v1/ITermMaxMarket.sol"; +import {VaultInitialParams, CurveCuts} from "../../v1/storage/TermMaxStorage.sol"; +import {VaultInitialParamsV2} from "../storage/TermMaxStorageV2.sol"; +import {ITermMaxOrder} from "../../v1/ITermMaxOrder.sol"; +import {VaultConstants} from "../../v1/lib/VaultConstants.sol"; +import {TransferUtils} from "../../v1/lib/TransferUtils.sol"; +import {ISwapCallback} from "../../v1/ISwapCallback.sol"; +import {VaultErrors} from "../../v1/errors/VaultErrors.sol"; +import {VaultEvents} from "../../v1/events/VaultEvents.sol"; +import {VaultEventsV2} from "../events/VaultEventsV2.sol"; +import {IOrderManager} from "../../v1/vault/IOrderManager.sol"; +import {VaultStorageV2, OrderInfo} from "./VaultStorageV2.sol"; +import {Constants} from "../../v1/lib/Constants.sol"; +import {ITermMaxVault} from "../../v1/vault/ITermMaxVault.sol"; +import {ITermMaxVaultV2} from "./ITermMaxVaultV2.sol"; +import {VaultErrorsV2} from "../errors/VaultErrorsV2.sol"; +import {TransactionReentrancyGuard} from "../lib/TransactionReentrancyGuard.sol"; + +contract TermMaxVaultV2 is + VaultStorageV2, + ITermMaxVault, + Ownable2StepUpgradeable, + ReentrancyGuardUpgradeable, + ERC4626Upgradeable, + PausableUpgradeable, + VaultErrors, + VaultEvents, + ISwapCallback, + ITermMaxVaultV2, + TransactionReentrancyGuard +{ + using SafeCast for uint256; + using TransferUtils for IERC20; + using PendingLib for *; + + address public immutable ORDER_MANAGER_SINGLETON; + + // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.vault.actionDeposit")) - 1)) & ~bytes32(uint256(0xff)) + uint256 private constant ACTION_DEPOSIT = 0x1d9ff85e70b948f53a2cc45fa6f42c020b2a8eec3349351855dea946b0635700; + // keccak256(abi.encode(uint256(keccak256("termmax.tsstorage.vault.actionWithdraw")) - 1)) & ~bytes32(uint256(0xff)) + uint256 private constant ACTION_WITHDRAW = 0xfcb0c32c4f653382a412cb0caa6a29f9e46d74bae452ca200c67f1e5e6389300; + + modifier onlyCuratorRole() { + address sender = _msgSender(); + if (sender != _curator && sender != owner()) revert NotCuratorRole(); + _; + } + + /// @dev Reverts if the caller doesn't have the guardian role. + modifier onlyGuardianRole() { + address sender = _msgSender(); + if (sender != _guardian && sender != owner()) revert NotGuardianRole(); + + _; + } + + /// @dev Reverts if the caller doesn't have the allocator role. + modifier onlyAllocatorRole() { + address sender = _msgSender(); + if (!_isAllocator[sender] && sender != _curator && sender != owner()) { + revert NotAllocatorRole(); + } + _; + } + + modifier marketIsWhitelisted(address market) { + if (!_marketWhitelist[market]) revert MarketNotWhitelisted(); + _; + } + + /// @dev Makes sure conditions are met to accept a pending value. + /// @dev Reverts if: + /// - there's no pending value; + /// - the timelock has not elapsed since the pending value has been submitted. + modifier afterTimelock(uint256 validAt) { + if (validAt == 0) revert NoPendingValue(); + if (block.timestamp < validAt) revert TimelockNotElapsed(); + _; + } + + constructor(address ORDER_MANAGER_SINGLETON_) { + ORDER_MANAGER_SINGLETON = ORDER_MANAGER_SINGLETON_; + _disableInitializers(); + } + + function initialize(VaultInitialParamsV2 memory params) external virtual initializer { + __ERC20_init_unchained(params.name, params.symbol); + __Ownable_init_unchained(params.admin); + __ERC4626_init_unchained(params.asset); + __ReentrancyGuard_init_unchained(); + __Pausable_init_unchained(); + + _checkPerformanceFeeRateBounds(params.performanceFeeRate); + _setPerformanceFeeRate(params.performanceFeeRate); + _checkTimelockBounds(params.timelock); + _setTimelock(params.timelock); + _setMinApy(params.minApy); + _setMinIdleFundRate(params.minIdleFundRate); + _setGuardian(params.guardian); + _setCapacity(params.maxCapacity); + _setCurator(params.curator); + } + + function initialize(VaultInitialParams memory) external virtual initializer { + revert VaultErrorsV2.UseVaultInitialParamsV2(); + } + + function _setPerformanceFeeRate(uint64 newPerformanceFeeRate) internal { + _delegateCall(abi.encodeCall(IOrderManager.accruedInterest, ())); + _performanceFeeRate = newPerformanceFeeRate; + emit SetPerformanceFeeRate(_msgSender(), newPerformanceFeeRate); + } + + /// @notice View functions + + /** + * @inheritdoc ITermMaxVault + */ + function guardian() external view virtual returns (address) { + return _guardian; + } + + /** + * @inheritdoc ITermMaxVault + */ + function curator() external view virtual returns (address) { + return _curator; + } + + /** + * @inheritdoc ITermMaxVault + */ + function isAllocator(address allocator) external view virtual returns (bool) { + return _isAllocator[allocator]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function marketWhitelist(address market) external view virtual returns (bool) { + return _marketWhitelist[market]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function timelock() external view virtual returns (uint256) { + return _timelock; + } + + /** + * @inheritdoc ITermMaxVault + */ + function pendingMarkets(address market) external view virtual returns (PendingUint192 memory) { + return _pendingMarkets[market]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function pendingTimelock() external view virtual returns (PendingUint192 memory) { + return _pendingTimelock; + } + + /** + * @inheritdoc ITermMaxVault + */ + function pendingPerformanceFeeRate() external view virtual returns (PendingUint192 memory) { + return _pendingPerformanceFeeRate; + } + + /** + * @inheritdoc ITermMaxVault + */ + function pendingGuardian() external view virtual returns (PendingAddress memory) { + return _pendingGuardian; + } + + /** + * @inheritdoc ITermMaxVault + */ + function performanceFeeRate() external view virtual returns (uint64) { + return _performanceFeeRate; + } + + /** + * @inheritdoc ITermMaxVault + */ + function totalFt() external view virtual returns (uint256) { + return _totalFt / Constants.DECIMAL_BASE_SQ; + } + + /** + * @inheritdoc ITermMaxVault + */ + function accretingPrincipal() external view virtual returns (uint256) { + (uint256 ap,) = _previewAccruedInterest(); + return ap / Constants.DECIMAL_BASE_SQ; + } + + /** + * @inheritdoc ITermMaxVault + */ + function annualizedInterest() external view virtual returns (uint256) { + return _annualizedInterest / Constants.DECIMAL_BASE_SQ; + } + + /** + * @inheritdoc ITermMaxVault + */ + function performanceFee() external view virtual returns (uint256) { + (, uint256 pf) = _previewAccruedInterest(); + return pf / Constants.DECIMAL_BASE_SQ; + } + + /** + * @inheritdoc ITermMaxVault + */ + function supplyQueue(uint256) external view virtual returns (address) { + revert VaultErrorsV2.SupplyQueueNoLongerSupported(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function withdrawQueue(uint256) external view virtual returns (address) { + revert VaultErrorsV2.WithdrawalQueueNoLongerSupported(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function orderMapping(address order) external view virtual returns (OrderInfo memory) { + return _orderMapping[order]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function badDebtMapping(address collateral) external view virtual returns (uint256) { + return _badDebtMapping[collateral]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function apr() external view virtual returns (uint256) { + revert VaultErrorsV2.UseApyInsteadOfApr(); + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function apy() external view virtual override returns (uint256) { + uint256 accretingPrincipal_ = _accretingPrincipal; + if (accretingPrincipal_ == 0) return 0; + return (_annualizedInterest * (Constants.DECIMAL_BASE - _performanceFeeRate)) / (accretingPrincipal_); + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function minApy() external view virtual override returns (uint64) { + return _minApy; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function minIdleFundRate() external view virtual override returns (uint64) { + return _minIdleFundRate; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function pendingMinApy() external view virtual override returns (PendingUint192 memory) { + return _pendingMinApy; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function pendingMinIdleFundRate() external view virtual override returns (PendingUint192 memory) { + return _pendingMinIdleFundRate; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function submitPendingMinApy(uint64 newMinApy) external virtual override onlyCuratorRole { + if (newMinApy == _minApy) revert AlreadySet(); + if (_pendingMinApy.validAt != 0) revert AlreadyPending(); + + if (newMinApy > _minApy) { + _setMinApy(newMinApy); + } else { + _pendingMinApy.update(uint184(newMinApy), _timelock); + emit VaultEventsV2.SubmitMinApy(newMinApy, _pendingMinApy.validAt); + } + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function submitPendingMinIdleFundRate(uint64 newMinIdleFundRate) external virtual override onlyCuratorRole { + if (newMinIdleFundRate == _minIdleFundRate) revert AlreadySet(); + if (_pendingMinIdleFundRate.validAt != 0) revert AlreadyPending(); + + if (newMinIdleFundRate > _minIdleFundRate) { + _setMinIdleFundRate(newMinIdleFundRate); + } else { + _pendingMinIdleFundRate.update(uint184(newMinIdleFundRate), _timelock); + emit VaultEventsV2.SubmitMinIdleFundRate(newMinIdleFundRate, _pendingMinIdleFundRate.validAt); + } + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function acceptPendingMinApy() external virtual override afterTimelock(_pendingMinApy.validAt) { + _setMinApy(uint64(_pendingMinApy.value)); + delete _pendingMinApy; + } + + /** + * @inheritdoc ITermMaxVaultV2 + */ + function acceptPendingMinIdleFundRate() external virtual override afterTimelock(_pendingMinIdleFundRate.validAt) { + _setMinIdleFundRate(uint64(_pendingMinIdleFundRate.value)); + delete _pendingMinIdleFundRate; + } + + /// @dev Sets `_minApy` to `newMinApy`. + function _setMinApy(uint64 newMinApy) internal { + _minApy = newMinApy; + emit VaultEventsV2.SetMinApy(_msgSender(), newMinApy); + } + + /// @dev Sets `_minIdleFundRate` to `newMinIdleFundRate`. + function _setMinIdleFundRate(uint64 newMinIdleFundRate) internal { + _minIdleFundRate = newMinIdleFundRate; + emit VaultEventsV2.SetMinIdleFundRate(_msgSender(), newMinIdleFundRate); + } + + // Ordermanager functions + /** + * @inheritdoc ITermMaxVault + */ + function createOrder(ITermMaxMarket market, uint256 maxSupply, uint256 initialReserve, CurveCuts memory curveCuts) + external + virtual + onlyCuratorRole + marketIsWhitelisted(address(market)) + whenNotPaused + returns (ITermMaxOrder order) + { + order = abi.decode( + _delegateCall( + abi.encodeCall( + IOrderManager.createOrder, (IERC20(asset()), market, maxSupply, initialReserve, curveCuts) + ) + ), + (ITermMaxOrder) + ); + } + + /** + * @inheritdoc ITermMaxVault + */ + function updateOrders( + ITermMaxOrder[] memory orders, + int256[] memory changes, + uint256[] memory maxSupplies, + CurveCuts[] memory curveCuts + ) external virtual onlyCuratorRole whenNotPaused { + _delegateCall( + abi.encodeCall(IOrderManager.updateOrders, (IERC20(asset()), orders, changes, maxSupplies, curveCuts)) + ); + } + + /** + * @inheritdoc ITermMaxVault + */ + function redeemOrder(ITermMaxOrder order) external virtual { + _delegateCall(abi.encodeCall(IOrderManager.redeemOrder, (order))); + } + + /** + * @inheritdoc ITermMaxVault + */ + function withdrawPerformanceFee(address recipient, uint256 amount) + external + virtual + nonReentrant + whenNotPaused + onlyCuratorRole + { + _delegateCall(abi.encodeCall(IOrderManager.withdrawPerformanceFee, (IERC20(asset()), recipient, amount))); + } + + // ERC4626 functions + + /** + * @dev See {IERC4626-maxDeposit}. + */ + function maxDeposit(address) public view override(IERC4626, ERC4626Upgradeable) returns (uint256) { + if (paused()) return 0; + if (totalAssets() >= _maxCapacity) return 0; + return _maxCapacity - totalAssets(); + } + + /** + * @dev See {IERC4626-maxMint}. + */ + function maxMint(address) public view override(IERC4626, ERC4626Upgradeable) returns (uint256) { + if (paused()) return 0; + return convertToShares(maxDeposit(address(0))); + } + + /** + * @dev Get total assets, falling back to real assets if virtual assets exceed limit + */ + function totalAssets() public view override(IERC4626, ERC4626Upgradeable) returns (uint256) { + (uint256 previewPrincipal,) = _previewAccruedInterest(); + return previewPrincipal / Constants.DECIMAL_BASE_SQ; + } + + /** + * @dev Deposit/mint common workflow. + */ + function _deposit(address caller, address recipient, uint256 assets, uint256 shares) + internal + override + nonReentrant + nonTxReentrantBetweenActions(ACTION_DEPOSIT) + whenNotPaused + { + IERC20(asset()).safeTransferFrom(caller, address(this), assets); + + _delegateCall(abi.encodeCall(IOrderManager.depositAssets, (IERC20(asset()), assets))); + _mint(recipient, shares); + + emit Deposit(caller, recipient, assets, shares); + } + + /** + * @dev Withdraw/redeem common workflow. + */ + function _withdraw(address caller, address receiver, address owner, uint256 assets, uint256 shares) + internal + override + nonReentrant + nonTxReentrantBetweenActions(ACTION_WITHDRAW) + { + if (caller != owner) { + _spendAllowance(owner, caller, shares); + } + + _delegateCall(abi.encodeCall(IOrderManager.withdrawAssets, (IERC20(asset()), receiver, assets))); + _burn(owner, shares); + + emit Withdraw(caller, receiver, owner, assets, shares); + } + + function _delegateCall(bytes memory data) internal returns (bytes memory) { + (bool success, bytes memory returnData) = ORDER_MANAGER_SINGLETON.delegatecall(data); + if (!success) { + assembly { + let ptr := add(returnData, 0x20) + let len := mload(returnData) + revert(ptr, len) + } + } + return returnData; + } + + /** + * @inheritdoc ITermMaxVault + */ + function dealBadDebt(address collateral, uint256 badDebtAmt, address recipient, address owner) + external + virtual + nonReentrant + returns (uint256 shares, uint256 collateralOut) + { + if (collateral == asset()) revert VaultErrorsV2.CollateralIsAsset(); + address caller = msg.sender; + shares = previewWithdraw(badDebtAmt); + uint256 maxShares = maxRedeem(owner); + if (shares > maxShares) { + revert ERC4626ExceededMaxRedeem(recipient, shares, maxShares); + } + + if (caller != owner) { + _spendAllowance(owner, caller, shares); + } + + _burn(owner, shares); + + collateralOut = abi.decode( + _delegateCall(abi.encodeCall(IOrderManager.dealBadDebt, (recipient, collateral, badDebtAmt))), (uint256) + ); + + emit DealBadDebt(caller, recipient, collateral, badDebtAmt, shares, collateralOut); + } + + // Guardian functions + function _setTimelock(uint256 newTimelock) internal { + _timelock = newTimelock; + + emit SetTimelock(msg.sender, newTimelock); + + delete _pendingTimelock; + } + + /** + * @inheritdoc ITermMaxVault + */ + function submitTimelock(uint256 newTimelock) external virtual onlyCuratorRole { + if (newTimelock == _timelock) revert AlreadySet(); + if (_pendingTimelock.validAt != 0) revert AlreadyPending(); + _checkTimelockBounds(newTimelock); + + if (newTimelock > _timelock) { + _setTimelock(newTimelock); + } else { + // Safe "unchecked" cast because newTimelock <= MAX_TIMELOCK. + _pendingTimelock.update(uint184(newTimelock), _timelock); + + emit SubmitTimelock(newTimelock, _pendingTimelock.validAt); + } + } + + /** + * @inheritdoc ITermMaxVault + */ + function setCapacity(uint256 newCapacity) external virtual onlyCuratorRole { + if (newCapacity == _maxCapacity) revert AlreadySet(); + _setCapacity(newCapacity); + } + + function _setCapacity(uint256 newCapacity) internal { + _maxCapacity = newCapacity; + emit SetCapacity(_msgSender(), newCapacity); + } + + function _checkTimelockBounds(uint256 newTimelock) internal pure { + if (newTimelock > VaultConstants.MAX_TIMELOCK) revert AboveMaxTimelock(); + if (newTimelock < VaultConstants.POST_INITIALIZATION_MIN_TIMELOCK) revert BelowMinTimelock(); + } + + function _checkPerformanceFeeRateBounds(uint256 newPerformanceFeeRate) internal pure { + if (newPerformanceFeeRate > VaultConstants.MAX_PERFORMANCE_FEE_RATE) revert PerformanceFeeRateExceeded(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function submitPerformanceFeeRate(uint184 newPerformanceFeeRate) external virtual onlyCuratorRole { + if (newPerformanceFeeRate == _performanceFeeRate) revert AlreadySet(); + if (_pendingPerformanceFeeRate.validAt != 0) revert AlreadyPending(); + _checkPerformanceFeeRateBounds(newPerformanceFeeRate); + if (newPerformanceFeeRate < _performanceFeeRate) { + _setPerformanceFeeRate(uint256(newPerformanceFeeRate).toUint64()); + emit SetPerformanceFeeRate(_msgSender(), newPerformanceFeeRate); + return; + } else { + _pendingPerformanceFeeRate.update(newPerformanceFeeRate, _timelock); + emit SubmitPerformanceFeeRate(newPerformanceFeeRate, _pendingPerformanceFeeRate.validAt); + } + } + + /** + * @inheritdoc ITermMaxVault + */ + function submitGuardian(address newGuardian) external virtual onlyOwner { + if (newGuardian == _guardian) revert AlreadySet(); + if (_pendingGuardian.validAt != 0) revert AlreadyPending(); + + if (_guardian == address(0)) { + _setGuardian(newGuardian); + } else { + _pendingGuardian.update(newGuardian, _timelock); + emit SubmitGuardian(newGuardian, _pendingGuardian.validAt); + } + } + + /// @dev Sets `guardian` to `newGuardian`. + function _setGuardian(address newGuardian) internal { + _guardian = newGuardian; + emit SetGuardian(_msgSender(), newGuardian); + + delete _pendingGuardian; + } + + /** + * @inheritdoc ITermMaxVault + */ + function submitMarket(address market, bool isWhitelisted) external virtual onlyCuratorRole { + if (_marketWhitelist[market] && isWhitelisted) revert AlreadySet(); + if (_pendingMarkets[market].validAt != 0) revert AlreadyPending(); + if (!isWhitelisted) { + _setMarketWhitelist(market, isWhitelisted); + } else { + _pendingMarkets[market].update(0, _timelock); + emit SubmitMarketToWhitelist(market, _pendingMarkets[market].validAt); + } + } + + function _setMarketWhitelist(address market, bool isWhitelisted) internal { + _marketWhitelist[market] = isWhitelisted; + emit SetMarketWhitelist(_msgSender(), market, isWhitelisted); + delete _pendingMarkets[market]; + } + + /** + * @inheritdoc ITermMaxVault + */ + function setIsAllocator(address newAllocator, bool newIsAllocator) external virtual onlyOwner { + if (_isAllocator[newAllocator] == newIsAllocator) revert AlreadySet(); + + _isAllocator[newAllocator] = newIsAllocator; + + emit SetIsAllocator(newAllocator, newIsAllocator); + } + + /** + * @inheritdoc ITermMaxVault + */ + function setCurator(address newCurator) external virtual onlyOwner { + if (newCurator == _curator) revert AlreadySet(); + _setCurator(newCurator); + } + + function _setCurator(address newCurator) internal { + _curator = newCurator; + emit SetCurator(newCurator); + } + + /** + * @inheritdoc ITermMaxVault + */ + function updateSupplyQueue(uint256[] memory) external virtual onlyAllocatorRole { + revert VaultErrorsV2.SupplyQueueNoLongerSupported(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function updateWithdrawQueue(uint256[] memory) external virtual onlyAllocatorRole { + revert VaultErrorsV2.WithdrawalQueueNoLongerSupported(); + } + + /** + * Revoke functions + */ + + /** + * @inheritdoc ITermMaxVault + */ + function revokePendingTimelock() external virtual onlyGuardianRole { + delete _pendingTimelock; + + emit RevokePendingTimelock(_msgSender()); + } + + /** + * @inheritdoc ITermMaxVault + */ + function revokePendingGuardian() external virtual onlyGuardianRole { + delete _pendingGuardian; + + emit RevokePendingGuardian(_msgSender()); + } + + /** + * @inheritdoc ITermMaxVault + */ + function revokePendingMarket(address market) external virtual onlyGuardianRole { + delete _pendingMarkets[market]; + + emit RevokePendingMarket(_msgSender(), market); + } + + /** + * @inheritdoc ITermMaxVault + */ + function revokePendingPerformanceFeeRate() external virtual onlyGuardianRole { + delete _pendingPerformanceFeeRate; + + emit RevokePendingPerformanceFeeRate(_msgSender()); + } + + /** + * @notice Revoke pending minimum APY change + */ + function revokePendingMinApy() external virtual onlyGuardianRole { + delete _pendingMinApy; + + emit VaultEventsV2.RevokePendingMinApy(_msgSender()); + } + + /** + * @notice Revoke pending minimum idle fund rate change + */ + function revokePendingMinIdleFundRate() external virtual onlyGuardianRole { + delete _pendingMinIdleFundRate; + + emit VaultEventsV2.RevokePendingMinIdleFundRate(_msgSender()); + } + + /** + * @inheritdoc ITermMaxVault + */ + function acceptTimelock() external virtual afterTimelock(_pendingTimelock.validAt) { + _setTimelock(_pendingTimelock.value); + } + + /** + * @inheritdoc ITermMaxVault + */ + function acceptGuardian() external virtual afterTimelock(_pendingGuardian.validAt) { + _setGuardian(_pendingGuardian.value); + } + + /** + * @inheritdoc ITermMaxVault + */ + function acceptMarket(address market) external virtual afterTimelock(_pendingMarkets[market].validAt) { + _setMarketWhitelist(market, true); + } + + /** + * @inheritdoc ITermMaxVault + */ + function acceptPerformanceFeeRate() external virtual afterTimelock(_pendingPerformanceFeeRate.validAt) { + _setPerformanceFeeRate(uint256(_pendingPerformanceFeeRate.value).toUint64()); + delete _pendingPerformanceFeeRate; + emit SetPerformanceFeeRate(_msgSender(), _performanceFeeRate); + } + + /** + * @notice Pauses the contract + */ + function pause() external virtual onlyOwner { + _pause(); + } + + /** + * @notice Unpauses the contract + */ + function unpause() external virtual onlyOwner { + _unpause(); + } + + function _previewAccruedInterest() + internal + view + returns (uint256 previewPrincipal, uint256 previewPerformanceFee) + { + uint64 currentTime = block.timestamp.toUint64(); + + uint256 lastTime = _lastUpdateTime; + if (lastTime == 0) { + return (_accretingPrincipal, _performanceFee); + } + uint64 recentMaturity = _maturityMapping[0]; + uint256 previewAnnualizedInterest = _annualizedInterest; + previewPrincipal = _accretingPrincipal; + previewPerformanceFee = _performanceFee; + + while (currentTime >= recentMaturity && recentMaturity != 0) { + (uint256 previewInterest, uint256 previewPerformanceFeeToCurator) = + _previewAccruedPeriodInterest(lastTime, recentMaturity, previewAnnualizedInterest); + lastTime = recentMaturity; + uint64 nextMaturity = _maturityMapping[recentMaturity]; + // update annualized interest + previewAnnualizedInterest -= _maturityToInterest[recentMaturity]; + + previewPerformanceFee += previewPerformanceFeeToCurator; + previewPrincipal += previewInterest; + + recentMaturity = nextMaturity; + } + if (recentMaturity > 0) { + (uint256 previewInterest, uint256 previewPerformanceFeeToCurator) = + _previewAccruedPeriodInterest(lastTime, currentTime, previewAnnualizedInterest); + previewPerformanceFee += previewPerformanceFeeToCurator; + previewPrincipal += previewInterest; + } + } + + function _previewAccruedPeriodInterest(uint256 startTime, uint256 endTime, uint256 previewAnnualizedInterest) + internal + view + returns (uint256, uint256) + { + uint256 interest = (previewAnnualizedInterest * (endTime - startTime)) / 365 days; + uint256 performanceFeeToCurator = (interest * _performanceFeeRate) / Constants.DECIMAL_BASE; + return (interest - performanceFeeToCurator, performanceFeeToCurator); + } + + /// @notice Callback function for the swap + /// @param deltaFt The change in the ft balance of the order + function afterSwap(uint256 ftReserve, uint256 xtReserve, int256 deltaFt, int256) + external + virtual + override + whenNotPaused + { + _delegateCall(abi.encodeCall(IOrderManager.afterSwap, (ftReserve, xtReserve, deltaFt))); + } + + /** + * @inheritdoc ITermMaxVault + */ + function supplyQueueLength() external view virtual returns (uint256) { + revert VaultErrorsV2.SupplyQueueNoLongerSupported(); + } + + /** + * @inheritdoc ITermMaxVault + */ + function withdrawQueueLength() external view virtual returns (uint256) { + revert VaultErrorsV2.WithdrawalQueueNoLongerSupported(); + } +} diff --git a/contracts/v2/vault/VaultStorageV2.sol b/contracts/v2/vault/VaultStorageV2.sol new file mode 100644 index 0000000..3213471 --- /dev/null +++ b/contracts/v2/vault/VaultStorageV2.sol @@ -0,0 +1,59 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {PendingAddress, PendingUint192} from "../../v1/lib/PendingLib.sol"; +import {OrderInfo} from "../../v1/vault/VaultStorage.sol"; + +contract VaultStorageV2 { + // State variables + address internal _guardian; + address internal _curator; + + mapping(address => bool) internal _isAllocator; + mapping(address => bool) internal _marketWhitelist; + mapping(address => PendingUint192) internal _pendingMarkets; + + PendingUint192 internal _pendingTimelock; + PendingUint192 internal _pendingPerformanceFeeRate; + PendingAddress internal _pendingGuardian; + + uint256 internal _timelock; + uint256 internal _maxCapacity; + + /// @dev The total ft in the vault + uint256 internal _totalFt; + /// @notice The locked ft = accretingPrincipal + performanceFee; + uint256 internal _accretingPrincipal; + /// @notice The performance fee is paid to the curators + uint256 internal _performanceFee; + /// @notice Annualize the interest income + uint256 internal _annualizedInterest; + + /// @dev A mapping from collateral address to bad debt + mapping(address => uint256) internal _badDebtMapping; + /// @dev A mapping from order address to their order information + /// @dev The order information includes the market address, the ft token address, + /// the xt token, the maximum supply, and the maturity + mapping(address => OrderInfo) internal _orderMapping; + + /// @dev A one-way linked list presented using a mapping structure, recorded in order according to matiruty + /// @dev The key is the maturity, and the value is the next maturity + /// Etc. day 0 => day 1 => day 2 => day 3 => ... + mapping(uint64 => uint64) internal _maturityMapping; + /// @dev A mapping from maturity to its annualized interest + mapping(uint64 => uint256) internal _maturityToInterest; + + PendingUint192 internal _pendingMinApy; + PendingUint192 internal _pendingMinIdleFundRate; + + uint64 internal _performanceFeeRate; + + /// @dev The last time the interest was accurately calculated + uint64 internal _lastUpdateTime; + + /// @dev The minimum APY for the vault to be active + uint64 internal _minApy; + + /// @dev The minimum idle fund rate for the vault to be active + uint64 internal _minIdleFundRate; +} diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-ARB@04APR2025.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-ARB@04APR2025.json new file mode 100644 index 0000000..441efaf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-ARB@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182256", + "timestamp": "1743609341" + }, + "market": "0x4b0b62464FaC18A27091120f3F2b9Ee1C5d1CFcf", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA3A5946739C4ED5342C0cA89F9aEFdFB0E0088a9", + "xt": "0xF3d3feA2D2069bC53A5BF8e6E67Ff6AaD9164593", + "gt": "0x6D58B49a8ab68174Cb3Da017A9a1FEE491B78026" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-WBTC@04APR2025.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-WBTC@04APR2025.json new file mode 100644 index 0000000..53c6feb --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-WBTC@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182256", + "timestamp": "1743609341" + }, + "market": "0x452d119C2F66a37dABF7A687b8429558497C0414", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x134e5F60c5EEC98BfdaF1b94d01cb2f3239827fD", + "xt": "0x07323E13cD3E7591cF2BfcF6C35e3A7687E1E1C2", + "gt": "0x30Ada0601dc7483c308795d9a3f92d8bE17c4491" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-WETH@04APR2025.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-WETH@04APR2025.json new file mode 100644 index 0000000..61f2ae1 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-WETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182256", + "timestamp": "1743609341" + }, + "market": "0xad20EdcC8706d2C9624C1075A78b4A586BF194d9", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA4868843f97cBd9087D3Db1458F15afA89a9aC7d", + "xt": "0xDC9b4BE1A6f01211b4eD5549e393c3E748D211E9", + "gt": "0xd203F58EA93e0ee62b44c64eC368ad9cFB61944a" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-wstETH@04APR2025.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-wstETH@04APR2025.json new file mode 100644 index 0000000..93f0377 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-USDC-wstETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182256", + "timestamp": "1743609341" + }, + "market": "0xf56aA1862c35538d6803c11bBd7F5Df204e764d4", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x940A77c928230aa73A89c51461AfcAD728bbF67A", + "xt": "0xEb640fc9D65E5350dEb87d5564Af7BeD483E7f95", + "gt": "0x2a66A6A89E5253B0b85eDa45c33670ADdE7F27ac" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@04APR2025.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@04APR2025.json new file mode 100644 index 0000000..c463caf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182256", + "timestamp": "1743609341" + }, + "market": "0xb9067dcd1aA87B0Ac6824E9F7c6321370afa6730", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3b038D640Ae38380Ca2d586815a1dB6B7bC2a944", + "xt": "0x221298435116EECC7678752a31A26C81F48C91E7", + "gt": "0xEeAb36300485c72f4A6b8272119949440C0D04e7" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-weETH@04APR2025.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-weETH@04APR2025.json new file mode 100644 index 0000000..2bed5c6 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-weETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182256", + "timestamp": "1743609341" + }, + "market": "0x7c67428515497e0F1aE32898D01914B1e6F1110a", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2415a73Aa88A18D71d9140De9112c6FB729bF7ab", + "xt": "0x3A4044f65816D7E89d67aC929E29a1A6B0D0A626", + "gt": "0x9e07ebc871A5C8DfB5F9B76d5DEb89Ad8A2EEB4d" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-wstETH@04APR2025.json b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-wstETH@04APR2025.json new file mode 100644 index 0000000..b8ec45b --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250404-2000/arb-mainnet-market-WETH-wstETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182256", + "timestamp": "1743609341" + }, + "market": "0xf81Ab50c58d3B97b6a05400d6A984A3c0E4Ca03a", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA9646D8A2f031e3529023feF84DE8b504b61562F", + "xt": "0xB243ecF1c6f363b641B0D443583E2865cd5B8a8B", + "gt": "0x27f759aE372Ac4AaDE979C638333025a6b105f12" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-ARB@05APR2025.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-ARB@05APR2025.json new file mode 100644 index 0000000..0bc640f --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-ARB@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182287", + "timestamp": "1743609704" + }, + "market": "0x2C848DF8Aba613Bf9763cABe1415bbc7CE01D585", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1e0080FcFcFBB21910b14Bd7F345C94B0260B7c9", + "xt": "0x88eC26530c693C119D83aC81a81C525834Ac52d5", + "gt": "0x51f1FF5985719E0969e85Fc0f59C1eb27e277b0a" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-WBTC@05APR2025.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-WBTC@05APR2025.json new file mode 100644 index 0000000..9a3abbc --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-WBTC@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182287", + "timestamp": "1743609704" + }, + "market": "0xE71C5DEd95c63dDc05d8f161b8E26aE64AC770a9", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x19949c1db068F5aD557671b10Cfd21188204f1D3", + "xt": "0xC5e64cE23995211fFE327C3Fa5597810a8eDfaE5", + "gt": "0x7dB51C5540660440b4bfee2dd72B5c9A1c72dcA8" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-WETH@05APR2025.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-WETH@05APR2025.json new file mode 100644 index 0000000..fbb4a8b --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-WETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182287", + "timestamp": "1743609704" + }, + "market": "0x46527120D75d814273Af1f8ede44ae81377F495d", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xf133Ea64fbbcd4BC0B767cd25d3eeD795761fb1D", + "xt": "0xcb60b2bE7E59284f6905c1eB79282Bd4C29ADB4B", + "gt": "0xFD66f1e205f760898DD7A788F9A85c38a83982aB" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-wstETH@05APR2025.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-wstETH@05APR2025.json new file mode 100644 index 0000000..38f2adc --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-USDC-wstETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182287", + "timestamp": "1743609704" + }, + "market": "0xF4162ebBF1310Dc482da9eF6Cd9e1A9A9430E79F", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x18F189e81bbF40B544AeBd6657456ce0562269d3", + "xt": "0x6B45F231c9f421002D9f3000e0A0036EF291B812", + "gt": "0xED0D14C054893b577B49BbC2F5E08D44E92A9E0E" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-PT-weETH-26JUN2025@05APR2025.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-PT-weETH-26JUN2025@05APR2025.json new file mode 100644 index 0000000..85c1da0 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-PT-weETH-26JUN2025@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182287", + "timestamp": "1743609704" + }, + "market": "0xE3e14125B237d5919cA3FbE2721C31033545CF52", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB38dA25D1F2060902a25602c4Ee3D81b334cEf4a", + "xt": "0xcbcCa2D5A88807f72D16B7bB44ED361ba8933dFA", + "gt": "0x17af9c9dBe7ce40C6bEb42D4199a32B073520580" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-weETH@05APR2025.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-weETH@05APR2025.json new file mode 100644 index 0000000..4fa419b --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-weETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182287", + "timestamp": "1743609704" + }, + "market": "0x6656c7dd6CD85f687f9299BA7ae40EF32D1eDD33", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6694fc4F0B1Bf88C2802C3c7255c0d31CB36E581", + "xt": "0x815f58c7852559374AF8495b84CcDdB1A9640BB9", + "gt": "0xC15446144218E6AFeF324D8a5F343ca1c8C27486" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-wstETH@05APR2025.json b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-wstETH@05APR2025.json new file mode 100644 index 0000000..baad374 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250405-1200/arb-mainnet-market-WETH-wstETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22182287", + "timestamp": "1743609704" + }, + "market": "0x8cE9Ab473deEF208D90A39D60526d93f6D086e79", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4065C7961b70d7A4Ff770753DCD777C326d1e4AF", + "xt": "0x6c120763F4E84C0ca87357D67AaBA4aE864C59aC", + "gt": "0x6cec51134fEB3d9306cA838616F4B06A1315Ac10" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-20250406-1400/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-ARB@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-ARB@06APR2025.json new file mode 100644 index 0000000..fd90e98 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-ARB@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22200971", + "timestamp": "1743835071" + }, + "market": "0xa77BD71a168c814DC3c3a0Df1df89905306e4D2e", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4f85770660dBbdAC9337f039133CBbcA86F0f128", + "xt": "0xa895F0DcBE4B20D6eAb7435Ac37Bc0c0ecccaC98", + "gt": "0x61AAA12fa3f6fa170F58efE8855bFB3E3F57447f" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-WBTC@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-WBTC@06APR2025.json new file mode 100644 index 0000000..e8d1e82 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-WBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22200971", + "timestamp": "1743835071" + }, + "market": "0x89d72446542156B001ACE4a8f5557C4BD903Bc5b", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4Cc26320725235813f84D1340cE3225CdF08F999", + "xt": "0x4A1c48C2B9538901BA56f5a9DDB20DDb9793Bc3E", + "gt": "0xa0706c0286F18dE51F16d1B581Bd11be256085BD" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-WETH@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-WETH@06APR2025.json new file mode 100644 index 0000000..378925e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-WETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22200971", + "timestamp": "1743835071" + }, + "market": "0xD484A89403c42c3AeAB2215425Db888a6972c4D8", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xc0A9Cb630B77665Db32FdBf61aC23868d6AE82E4", + "xt": "0xC5a424F7328904cfeEA16A84673a87975CE2da4A", + "gt": "0x356E6E5FCE66eB7117b66a504DB2e786eca1d6d7" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-wstETH@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-wstETH@06APR2025.json new file mode 100644 index 0000000..92801af --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-USDC-wstETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22200971", + "timestamp": "1743835071" + }, + "market": "0xbdd9105C30e509AdF89f49FF053c91fb454cc5E7", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xdB837F797da1cEfE1b41E89C3DB59B2810Fe788D", + "xt": "0x48d6Ec1f572b302325A6c50624e65AF0b95eBb81", + "gt": "0x8457d0250A5994d7E1E48ee19A55C567CA4237a4" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@06APR2025.json new file mode 100644 index 0000000..1a30c2f --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22200971", + "timestamp": "1743835071" + }, + "market": "0xE1242fBD316e92B8f4ED829c7d8ce4fA9E4CA5b1", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9eb985F67F7d39E49E4123E5d2d64fEe1D4355f4", + "xt": "0xeA62Bd42c80763a55Fd43e0364a46067225B8732", + "gt": "0xf8d939a4f2415bD851d48608305106b5D231b676" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-weETH@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-weETH@06APR2025.json new file mode 100644 index 0000000..3a88d45 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-weETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22200971", + "timestamp": "1743835071" + }, + "market": "0x3EA2595bcD33Cc3633B0c88F7CA8230c2a340b54", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xe0fc61f5A4cBd707D79d4EBcc913825D97e35940", + "xt": "0x6C6D326Bd71F554C118A37fEa48941b792018568", + "gt": "0xC3FBEc1ea786C86687E1924baE2d74188805bde7" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-wstETH@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-wstETH@06APR2025.json new file mode 100644 index 0000000..6fe8f92 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-market-WETH-wstETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22200971", + "timestamp": "1743835071" + }, + "market": "0x203fc97998503cE3ADb26B00fe7fd8c51D64fb28", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0DD18aA62D0A9A47dAB757db55f8A9f46f34808F", + "xt": "0x8356565Adc18D5Ccb8Da346122E2c6a13f7BE1fc", + "gt": "0xBeA1318Dcfd3F441aA4A8A328a58987baac290A7" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-1400/deploy-market-arb-mainnet-20250406-1400-log.txt b/deployments/arb-mainnet-v1.0.8-20250406-1400/deploy-market-arb-mainnet-20250406-1400-log.txt new file mode 100644 index 0000000..d86f76c --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-1400/deploy-market-arb-mainnet-20250406-1400-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf7ea840ec163817b51384fcc1d53ee433b758a8b + + ===== Block Info ===== + Block number: 22200971 + Block timestamp: 1743835071 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22200971 + + ===== Market Info - 0 ===== + Market deployed at: 0x203fc97998503cE3ADb26B00fe7fd8c51D64fb28 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x0DD18aA62D0A9A47dAB757db55f8A9f46f34808F + XT deployed at: 0x8356565Adc18D5Ccb8Da346122E2c6a13f7BE1fc + GT deployed at: 0xBeA1318Dcfd3F441aA4A8A328a58987baac290A7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@06APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xbdd9105C30e509AdF89f49FF053c91fb454cc5E7 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xdB837F797da1cEfE1b41E89C3DB59B2810Fe788D + XT deployed at: 0x48d6Ec1f572b302325A6c50624e65AF0b95eBb81 + GT deployed at: 0x8457d0250A5994d7E1E48ee19A55C567CA4237a4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@06APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x89d72446542156B001ACE4a8f5557C4BD903Bc5b + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x4Cc26320725235813f84D1340cE3225CdF08F999 + XT deployed at: 0x4A1c48C2B9538901BA56f5a9DDB20DDb9793Bc3E + GT deployed at: 0xa0706c0286F18dE51F16d1B581Bd11be256085BD + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@06APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x3EA2595bcD33Cc3633B0c88F7CA8230c2a340b54 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xe0fc61f5A4cBd707D79d4EBcc913825D97e35940 + XT deployed at: 0x6C6D326Bd71F554C118A37fEa48941b792018568 + GT deployed at: 0xC3FBEc1ea786C86687E1924baE2d74188805bde7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@06APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xD484A89403c42c3AeAB2215425Db888a6972c4D8 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xc0A9Cb630B77665Db32FdBf61aC23868d6AE82E4 + XT deployed at: 0xC5a424F7328904cfeEA16A84673a87975CE2da4A + GT deployed at: 0x356E6E5FCE66eB7117b66a504DB2e786eca1d6d7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@06APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xa77BD71a168c814DC3c3a0Df1df89905306e4D2e + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x4f85770660dBbdAC9337f039133CBbcA86F0f128 + XT deployed at: 0xa895F0DcBE4B20D6eAb7435Ac37Bc0c0ecccaC98 + GT deployed at: 0x61AAA12fa3f6fa170F58efE8855bFB3E3F57447f + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@06APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xE1242fBD316e92B8f4ED829c7d8ce4fA9E4CA5b1 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x9eb985F67F7d39E49E4123E5d2d64fEe1D4355f4 + XT deployed at: 0xeA62Bd42c80763a55Fd43e0364a46067225B8732 + GT deployed at: 0xf8d939a4f2415bD851d48608305106b5D231b676 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@06APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10150845 + +Estimated amount required: 0.000203016910150845 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x203fc97998503ce3adb26b00fe7fd8c51d64fb28, 0x0dd18aa62d0a9a47dab757db55f8a9f46f34808f, 0x8356565adc18d5ccb8da346122e2c6a13f7be1fc, 0xbea1318dcfd3f441aa4a8a328a58987baac290a7, 0xbdd9105c30e509adf89f49ff053c91fb454cc5e7, 0xdb837f797da1cefe1b41e89c3db59b2810fe788d, 0x48d6ec1f572b302325a6c50624e65af0b95ebb81, 0x8457d0250a5994d7e1e48ee19a55c567ca4237a4, 0x89d72446542156b001ace4a8f5557c4bd903bc5b, 0x4cc26320725235813f84d1340ce3225cdf08f999, 0x4a1c48c2b9538901ba56f5a9ddb20ddb9793bc3e, 0xa0706c0286f18de51f16d1b581bd11be256085bd, 0x3ea2595bcd33cc3633b0c88f7ca8230c2a340b54, 0xe0fc61f5a4cbd707d79d4ebcc913825d97e35940, 0x6c6d326bd71f554c118a37fea48941b792018568, 0xc3fbec1ea786c86687e1924bae2d74188805bde7, 0xd484a89403c42c3aeab2215425db888a6972c4d8, 0xc0a9cb630b77665db32fdbf61ac23868d6ae82e4, 0xc5a424f7328904cfeea16a84673a87975ce2da4a, 0x356e6e5fce66eb7117b66a504db2e786eca1d6d7, 0xa77bd71a168c814dc3c3a0df1df89905306e4d2e, 0x4f85770660dbbdac9337f039133cbbca86f0f128, 0xa895f0dcbe4b20d6eab7435ac37bc0c0ecccac98, 0x61aaa12fa3f6fa170f58efe8855bfb3e3f57447f, 0xe1242fbd316e92b8f4ed829c7d8ce4fa9e4ca5b1, 0x9eb985f67f7d39e49e4123e5d2d64fee1d4355f4, 0xea62bd42c80763a55fd43e0364a46067225b8732, 0xf8d939a4f2415bd851d48608305106b5d231b676]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-ARB@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-ARB@06APR2025.json new file mode 100644 index 0000000..1ba3a77 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-ARB@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201070", + "timestamp": "1743836288" + }, + "market": "0xcf1C5CDc29BB74B1e5DAC755a4C196BD6453fb0B", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8Fdf5d00F4a880F04B789F07D4E7041A4cD85A50", + "xt": "0x77f5862E721dBd0ac99b8198F3b72d8De3784d21", + "gt": "0x7003d2D4E5d6169175e5D2ae675D4127F42DbF0A" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-WBTC@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-WBTC@06APR2025.json new file mode 100644 index 0000000..5a55cfd --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-WBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201070", + "timestamp": "1743836288" + }, + "market": "0xcC87397a8C6d750167182C4786f96fe025c4CfAb", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x792B7de63EC6C6990C73443F26D1e56872Bc228b", + "xt": "0x7b13B8c19b86b3b0BA3f518Faa12A6776860F8d0", + "gt": "0xdcBbBc7817097b85c56D9155b2204b7e31A7c0B3" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-WETH@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-WETH@06APR2025.json new file mode 100644 index 0000000..b1027d6 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-WETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201070", + "timestamp": "1743836288" + }, + "market": "0xDA1036d5bb427c97D7E11B7B715cf9b9729E8a2C", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xF5972CCAbE97e25cE93c474B0ddc93aB5662a0Fe", + "xt": "0xAA4891F772D41f0e2963A0Fb2CA6a251abCaC78d", + "gt": "0x83d4F1279BF3994Bd5A03A11378faC42569a8e14" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-wstETH@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-wstETH@06APR2025.json new file mode 100644 index 0000000..29a5de0 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-USDC-wstETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201070", + "timestamp": "1743836288" + }, + "market": "0xF1e1bbFf2e48509CCC528B578d423E1f47B22EA8", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3d37c8B4E60fdB0227Df08920F9785D747983155", + "xt": "0xaCc398Cdf4119916bF5d418D83dc990311c47534", + "gt": "0x8786e939b7dAC67e0C12Ee46bfA9fc31356bad6d" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@06APR2025.json new file mode 100644 index 0000000..a8b811a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201070", + "timestamp": "1743836288" + }, + "market": "0xAf631567aB57b650fD1bFdBA4Bd030814cA24c5d", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA1B430bcCdcBc6D2CFe51a9bBdE4c4F651feaEC2", + "xt": "0x745FDC4dF70b86A1c219447864BD31AA9eb7B789", + "gt": "0x91Cc8d420263d4876F95Fe643Ffd899d6E39E51e" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-weETH@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-weETH@06APR2025.json new file mode 100644 index 0000000..0a90974 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-weETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201070", + "timestamp": "1743836288" + }, + "market": "0xCfD6E2Af9a878E3B6D1a1F7cA0faeD908720762A", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xE3143743ee21EA1B6398611b1356186a9f2C433B", + "xt": "0xbF6e6Cf06365Ad4BD455E70B0b1F1036C80eCE38", + "gt": "0x00BbF2c25Be973ced1aA3143f4Fa52AC7e5F7403" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-wstETH@06APR2025.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-wstETH@06APR2025.json new file mode 100644 index 0000000..8ee0da5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-market-WETH-wstETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201070", + "timestamp": "1743836288" + }, + "market": "0x8D773ACe070c36a01F0dA7fd13DABd2Ca39246AB", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x21ed381c28918e222649B9048BEFB5e564FB7682", + "xt": "0x4f61e6be86C76D46658A68e20D18cB0Cf650a38A", + "gt": "0x366A6c4aC0DE8e008BdB37578055D06553d8c830" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250406-2000/deploy-market-arb-mainnet-20250406-2000-log.txt b/deployments/arb-mainnet-v1.0.8-20250406-2000/deploy-market-arb-mainnet-20250406-2000-log.txt new file mode 100644 index 0000000..9f4c507 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250406-2000/deploy-market-arb-mainnet-20250406-2000-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf7ea840ec163817b51384fcc1d53ee433b758a8b + + ===== Block Info ===== + Block number: 22201070 + Block timestamp: 1743836288 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22201070 + + ===== Market Info - 0 ===== + Market deployed at: 0x8D773ACe070c36a01F0dA7fd13DABd2Ca39246AB + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x21ed381c28918e222649B9048BEFB5e564FB7682 + XT deployed at: 0x4f61e6be86C76D46658A68e20D18cB0Cf650a38A + GT deployed at: 0x366A6c4aC0DE8e008BdB37578055D06553d8c830 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@06APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xF1e1bbFf2e48509CCC528B578d423E1f47B22EA8 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x3d37c8B4E60fdB0227Df08920F9785D747983155 + XT deployed at: 0xaCc398Cdf4119916bF5d418D83dc990311c47534 + GT deployed at: 0x8786e939b7dAC67e0C12Ee46bfA9fc31356bad6d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@06APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xcC87397a8C6d750167182C4786f96fe025c4CfAb + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x792B7de63EC6C6990C73443F26D1e56872Bc228b + XT deployed at: 0x7b13B8c19b86b3b0BA3f518Faa12A6776860F8d0 + GT deployed at: 0xdcBbBc7817097b85c56D9155b2204b7e31A7c0B3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@06APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xCfD6E2Af9a878E3B6D1a1F7cA0faeD908720762A + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xE3143743ee21EA1B6398611b1356186a9f2C433B + XT deployed at: 0xbF6e6Cf06365Ad4BD455E70B0b1F1036C80eCE38 + GT deployed at: 0x00BbF2c25Be973ced1aA3143f4Fa52AC7e5F7403 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@06APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xDA1036d5bb427c97D7E11B7B715cf9b9729E8a2C + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xF5972CCAbE97e25cE93c474B0ddc93aB5662a0Fe + XT deployed at: 0xAA4891F772D41f0e2963A0Fb2CA6a251abCaC78d + GT deployed at: 0x83d4F1279BF3994Bd5A03A11378faC42569a8e14 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@06APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xcf1C5CDc29BB74B1e5DAC755a4C196BD6453fb0B + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x8Fdf5d00F4a880F04B789F07D4E7041A4cD85A50 + XT deployed at: 0x77f5862E721dBd0ac99b8198F3b72d8De3784d21 + GT deployed at: 0x7003d2D4E5d6169175e5D2ae675D4127F42DbF0A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@06APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xAf631567aB57b650fD1bFdBA4Bd030814cA24c5d + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xA1B430bcCdcBc6D2CFe51a9bBdE4c4F651feaEC2 + XT deployed at: 0x745FDC4dF70b86A1c219447864BD31AA9eb7B789 + GT deployed at: 0x91Cc8d420263d4876F95Fe643Ffd899d6E39E51e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@06APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10151995 + +Estimated amount required: 0.000203039910151995 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x8d773ace070c36a01f0da7fd13dabd2ca39246ab, 0x21ed381c28918e222649b9048befb5e564fb7682, 0x4f61e6be86c76d46658a68e20d18cb0cf650a38a, 0x366a6c4ac0de8e008bdb37578055d06553d8c830, 0xf1e1bbff2e48509ccc528b578d423e1f47b22ea8, 0x3d37c8b4e60fdb0227df08920f9785d747983155, 0xacc398cdf4119916bf5d418d83dc990311c47534, 0x8786e939b7dac67e0c12ee46bfa9fc31356bad6d, 0xcc87397a8c6d750167182c4786f96fe025c4cfab, 0x792b7de63ec6c6990c73443f26d1e56872bc228b, 0x7b13b8c19b86b3b0ba3f518faa12a6776860f8d0, 0xdcbbbc7817097b85c56d9155b2204b7e31a7c0b3, 0xcfd6e2af9a878e3b6d1a1f7ca0faed908720762a, 0xe3143743ee21ea1b6398611b1356186a9f2c433b, 0xbf6e6cf06365ad4bd455e70b0b1f1036c80ece38, 0x00bbf2c25be973ced1aa3143f4fa52ac7e5f7403, 0xda1036d5bb427c97d7e11b7b715cf9b9729e8a2c, 0xf5972ccabe97e25ce93c474b0ddc93ab5662a0fe, 0xaa4891f772d41f0e2963a0fb2ca6a251abcac78d, 0x83d4f1279bf3994bd5a03a11378fac42569a8e14, 0xcf1c5cdc29bb74b1e5dac755a4c196bd6453fb0b, 0x8fdf5d00f4a880f04b789f07d4e7041a4cd85a50, 0x77f5862e721dbd0ac99b8198f3b72d8de3784d21, 0x7003d2d4e5d6169175e5d2ae675d4127f42dbf0a, 0xaf631567ab57b650fd1bfdba4bd030814ca24c5d, 0xa1b430bccdcbc6d2cfe51a9bbde4c4f651feaec2, 0x745fdc4df70b86a1c219447864bd31aa9eb7b789, 0x91cc8d420263d4876f95fe643ffd899d6e39e51e]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-ARB@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-ARB@07APR2025.json new file mode 100644 index 0000000..6b60fd6 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-ARB@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201120", + "timestamp": "1743836903" + }, + "market": "0xfbf611Ef130C85229FCC8134328fBfaaa8D908D4", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x77bf49973Dc750d98b2F7ED012197f6EA665207b", + "xt": "0xD30032672490Ddf596C1E8d263DB7667C070Cf87", + "gt": "0x1dA8C91eBf644b6ae0F46fdA9f59a3D7cc160950" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-WBTC@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-WBTC@07APR2025.json new file mode 100644 index 0000000..c4a17b0 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-WBTC@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201120", + "timestamp": "1743836903" + }, + "market": "0x06A84dcFB71738664C1fDE4Ff043f2Db1C38442c", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x993e7dAcEE006e57551f7a26649a4C1410363d4e", + "xt": "0xa7f2Dbf1Da1a21E64eBe8707c42956f1770352D7", + "gt": "0xBC1421C17298D9d03673D57a9f05b2cdCFa5a638" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-WETH@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-WETH@07APR2025.json new file mode 100644 index 0000000..27bc5ce --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-WETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201120", + "timestamp": "1743836903" + }, + "market": "0xEC3fabFd6d39D4BFD0979D81dC2723eb6Dab09A5", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0734F5A1C63963165A2DF5717C516c6c0768640F", + "xt": "0x52E4EaD3B7438dA4d812eb68514102Ee87a907bC", + "gt": "0xEFea5D0a3375C3c9f56c12Ea89F7C286997a3462" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-wstETH@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-wstETH@07APR2025.json new file mode 100644 index 0000000..d517156 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-USDC-wstETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201120", + "timestamp": "1743836903" + }, + "market": "0xe5A7C080c1aa8E7638940C5853529d3485D4575D", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x32824D2f7c12754b69ADD0D4EDA78f134e6b85cB", + "xt": "0xc94Af21C6e0510ceDB921ba9C3076a987151935a", + "gt": "0xFFC5E6e6504bB8D74D5cA132924Abfb165cE6B6b" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@07APR2025.json new file mode 100644 index 0000000..4b49a13 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201120", + "timestamp": "1743836903" + }, + "market": "0x63Bc26dfA64D84F8544433bf1828075d78cb84D1", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xF3FFdC74CfbB6949F08E6aE0935cF7a7AceB03F5", + "xt": "0x73352F71F5522c1cb9235D77D922dAaAe1191191", + "gt": "0xEbc276fD8CB5D77f12CF7b8F9dA823180FA90Cfd" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-weETH@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-weETH@07APR2025.json new file mode 100644 index 0000000..c17549c --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-weETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201120", + "timestamp": "1743836903" + }, + "market": "0x18FAf8f0f8ba9CE562fb85D1c87A2478438142F9", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFED7c66155fb8952911dda0AEe722304BEB7E12D", + "xt": "0xb3B46dE7bc4aC50aE2767D9314cD3145fB369D60", + "gt": "0x347f2B0a02aB4e0A7ed216200E739AC7DD995f62" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-wstETH@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-wstETH@07APR2025.json new file mode 100644 index 0000000..217e0f7 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-market-WETH-wstETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201120", + "timestamp": "1743836903" + }, + "market": "0x39147B25E0674B85251862da8f4CCa70025bE528", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb712A559474A3D898D769F0c5B9824Cd636a7684", + "xt": "0x70b2bf10E653f2d5Fd72B9f9c5352e1Ed8b000c8", + "gt": "0x889a2152a1a2aa3FecFCe8CD13dd5c3FC22b7bD0" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-1400/deploy-market-arb-mainnet-20250407-1400-log.txt b/deployments/arb-mainnet-v1.0.8-20250407-1400/deploy-market-arb-mainnet-20250407-1400-log.txt new file mode 100644 index 0000000..e7058bf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-1400/deploy-market-arb-mainnet-20250407-1400-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf7ea840ec163817b51384fcc1d53ee433b758a8b + + ===== Block Info ===== + Block number: 22201120 + Block timestamp: 1743836903 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22201120 + + ===== Market Info - 0 ===== + Market deployed at: 0x39147B25E0674B85251862da8f4CCa70025bE528 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xb712A559474A3D898D769F0c5B9824Cd636a7684 + XT deployed at: 0x70b2bf10E653f2d5Fd72B9f9c5352e1Ed8b000c8 + GT deployed at: 0x889a2152a1a2aa3FecFCe8CD13dd5c3FC22b7bD0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@07APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xe5A7C080c1aa8E7638940C5853529d3485D4575D + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x32824D2f7c12754b69ADD0D4EDA78f134e6b85cB + XT deployed at: 0xc94Af21C6e0510ceDB921ba9C3076a987151935a + GT deployed at: 0xFFC5E6e6504bB8D74D5cA132924Abfb165cE6B6b + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@07APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x06A84dcFB71738664C1fDE4Ff043f2Db1C38442c + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x993e7dAcEE006e57551f7a26649a4C1410363d4e + XT deployed at: 0xa7f2Dbf1Da1a21E64eBe8707c42956f1770352D7 + GT deployed at: 0xBC1421C17298D9d03673D57a9f05b2cdCFa5a638 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@07APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x18FAf8f0f8ba9CE562fb85D1c87A2478438142F9 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xFED7c66155fb8952911dda0AEe722304BEB7E12D + XT deployed at: 0xb3B46dE7bc4aC50aE2767D9314cD3145fB369D60 + GT deployed at: 0x347f2B0a02aB4e0A7ed216200E739AC7DD995f62 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@07APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xEC3fabFd6d39D4BFD0979D81dC2723eb6Dab09A5 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x0734F5A1C63963165A2DF5717C516c6c0768640F + XT deployed at: 0x52E4EaD3B7438dA4d812eb68514102Ee87a907bC + GT deployed at: 0xEFea5D0a3375C3c9f56c12Ea89F7C286997a3462 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@07APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xfbf611Ef130C85229FCC8134328fBfaaa8D908D4 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x77bf49973Dc750d98b2F7ED012197f6EA665207b + XT deployed at: 0xD30032672490Ddf596C1E8d263DB7667C070Cf87 + GT deployed at: 0x1dA8C91eBf644b6ae0F46fdA9f59a3D7cc160950 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@07APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x63Bc26dfA64D84F8544433bf1828075d78cb84D1 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xF3FFdC74CfbB6949F08E6aE0935cF7a7AceB03F5 + XT deployed at: 0x73352F71F5522c1cb9235D77D922dAaAe1191191 + GT deployed at: 0xEbc276fD8CB5D77f12CF7b8F9dA823180FA90Cfd + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@07APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10140491 + +Estimated amount required: 0.000202809830140491 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x39147b25e0674b85251862da8f4cca70025be528, 0xb712a559474a3d898d769f0c5b9824cd636a7684, 0x70b2bf10e653f2d5fd72b9f9c5352e1ed8b000c8, 0x889a2152a1a2aa3fecfce8cd13dd5c3fc22b7bd0, 0xe5a7c080c1aa8e7638940c5853529d3485d4575d, 0x32824d2f7c12754b69add0d4eda78f134e6b85cb, 0xc94af21c6e0510cedb921ba9c3076a987151935a, 0xffc5e6e6504bb8d74d5ca132924abfb165ce6b6b, 0x06a84dcfb71738664c1fde4ff043f2db1c38442c, 0x993e7dacee006e57551f7a26649a4c1410363d4e, 0xa7f2dbf1da1a21e64ebe8707c42956f1770352d7, 0xbc1421c17298d9d03673d57a9f05b2cdcfa5a638, 0x18faf8f0f8ba9ce562fb85d1c87a2478438142f9, 0xfed7c66155fb8952911dda0aee722304beb7e12d, 0xb3b46de7bc4ac50ae2767d9314cd3145fb369d60, 0x347f2b0a02ab4e0a7ed216200e739ac7dd995f62, 0xec3fabfd6d39d4bfd0979d81dc2723eb6dab09a5, 0x0734f5a1c63963165a2df5717c516c6c0768640f, 0x52e4ead3b7438da4d812eb68514102ee87a907bc, 0xefea5d0a3375c3c9f56c12ea89f7c286997a3462, 0xfbf611ef130c85229fcc8134328fbfaaa8d908d4, 0x77bf49973dc750d98b2f7ed012197f6ea665207b, 0xd30032672490ddf596c1e8d263db7667c070cf87, 0x1da8c91ebf644b6ae0f46fda9f59a3d7cc160950, 0x63bc26dfa64d84f8544433bf1828075d78cb84d1, 0xf3ffdc74cfbb6949f08e6ae0935cf7a7aceb03f5, 0x73352f71f5522c1cb9235d77d922daaae1191191, 0xebc276fd8cb5d77f12cf7b8f9da823180fa90cfd]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-ARB@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-ARB@07APR2025.json new file mode 100644 index 0000000..bb9c99e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-ARB@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201160", + "timestamp": "1743837392" + }, + "market": "0x6b200B04b991a4Bb2008fCFeF1543B67F50Db66A", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x46598ddEFC61F16C0F2E649Ce79067237F665D8E", + "xt": "0x8835fE29EE045b54F104b7fcA4d7c8A43ACbb285", + "gt": "0xE70AEf3e286d08c245acFeCb6e3BA4BDF5DCCA9e" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-WBTC@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-WBTC@07APR2025.json new file mode 100644 index 0000000..40e637d --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-WBTC@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201160", + "timestamp": "1743837392" + }, + "market": "0x594c0cFCac1d8ba5d574C23BAeA862254483706e", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x72F96776aE04Ee008ec3B23F03De8C5201b4aeA6", + "xt": "0xf4492D1D6b4431a70259375DbbbAB0098818E551", + "gt": "0x6a0F318E8B6B732F21D920d8f7039385954402db" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-WETH@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-WETH@07APR2025.json new file mode 100644 index 0000000..ad09033 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-WETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201160", + "timestamp": "1743837392" + }, + "market": "0xC8b5DcF19647e46Ee84faC6415Fa2DAE417744A2", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9bc7917d2653c640b709423b90a4dc68010d12cc", + "xt": "0x4acd37C33a209041dd3ddae692700926ed89bf93", + "gt": "0x50A554031A9f41EdFee643E0304bc740D1C0d304" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-wstETH@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-wstETH@07APR2025.json new file mode 100644 index 0000000..61f6eb9 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-USDC-wstETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201160", + "timestamp": "1743837392" + }, + "market": "0xbbA787E60732E7e6B54C98ad2FA580194439e013", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x42e2e298FAD57A92ec0b12a2672C1D6B643e5cA4", + "xt": "0xD9a19fa50a745F241d06B0edb1e0ecf9c3A60503", + "gt": "0x8f1CEaA9B96D723eCe4024F60393Dfa5712bA599" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@07APR2025.json new file mode 100644 index 0000000..a0d0f4e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201160", + "timestamp": "1743837392" + }, + "market": "0x007000fC3334A89919Eee221E6C2D2c8da975AAf", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9a8cb9085f56311D32552EeAaF821ae451d09F04", + "xt": "0x0865E44B0C21cF6bee4aFaDB6c809d305DeAdb1f", + "gt": "0xffd615b03e4872314114F934022DF122Cb1662e6" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-weETH@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-weETH@07APR2025.json new file mode 100644 index 0000000..4328387 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-weETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201160", + "timestamp": "1743837392" + }, + "market": "0x60a2ED2fb29Db61ba6F3b66fc9aD5bF790E7F475", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xF5C8AbcCB2342A28503A563509eB7Cadb2aDf978", + "xt": "0xFdCE88048A2bB99EF2b343e94Fd8c118EAF4B440", + "gt": "0x6B1585BeD002F2C85574736AB031dcb4a9E06c04" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-wstETH@07APR2025.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-wstETH@07APR2025.json new file mode 100644 index 0000000..4fd5976 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-market-WETH-wstETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201160", + "timestamp": "1743837392" + }, + "market": "0x019523D518293564560Dc46136DCfa389B05305c", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1FafD0DEd8Dd75D19C39268cbF5C41830E95b70F", + "xt": "0xc01f16f8A4b29603a4133efa479b61416866AD10", + "gt": "0x7866514a8E42df186C5EF4C9C995Aa193b434cc6" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250407-2000/deploy-market-arb-mainnet-20250407-2000-log.txt b/deployments/arb-mainnet-v1.0.8-20250407-2000/deploy-market-arb-mainnet-20250407-2000-log.txt new file mode 100644 index 0000000..86047e0 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250407-2000/deploy-market-arb-mainnet-20250407-2000-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf7ea840ec163817b51384fcc1d53ee433b758a8b + + ===== Block Info ===== + Block number: 22201160 + Block timestamp: 1743837392 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22201160 + + ===== Market Info - 0 ===== + Market deployed at: 0x019523D518293564560Dc46136DCfa389B05305c + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x1FafD0DEd8Dd75D19C39268cbF5C41830E95b70F + XT deployed at: 0xc01f16f8A4b29603a4133efa479b61416866AD10 + GT deployed at: 0x7866514a8E42df186C5EF4C9C995Aa193b434cc6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@07APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xbbA787E60732E7e6B54C98ad2FA580194439e013 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x42e2e298FAD57A92ec0b12a2672C1D6B643e5cA4 + XT deployed at: 0xD9a19fa50a745F241d06B0edb1e0ecf9c3A60503 + GT deployed at: 0x8f1CEaA9B96D723eCe4024F60393Dfa5712bA599 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@07APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x594c0cFCac1d8ba5d574C23BAeA862254483706e + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x72F96776aE04Ee008ec3B23F03De8C5201b4aeA6 + XT deployed at: 0xf4492D1D6b4431a70259375DbbbAB0098818E551 + GT deployed at: 0x6a0F318E8B6B732F21D920d8f7039385954402db + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@07APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x60a2ED2fb29Db61ba6F3b66fc9aD5bF790E7F475 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xF5C8AbcCB2342A28503A563509eB7Cadb2aDf978 + XT deployed at: 0xFdCE88048A2bB99EF2b343e94Fd8c118EAF4B440 + GT deployed at: 0x6B1585BeD002F2C85574736AB031dcb4a9E06c04 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@07APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xC8b5DcF19647e46Ee84faC6415Fa2DAE417744A2 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x9bc7917d2653c640b709423b90a4dc68010d12cc + XT deployed at: 0x4acd37C33a209041dd3ddae692700926ed89bf93 + GT deployed at: 0x50A554031A9f41EdFee643E0304bc740D1C0d304 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@07APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x6b200B04b991a4Bb2008fCFeF1543B67F50Db66A + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x46598ddEFC61F16C0F2E649Ce79067237F665D8E + XT deployed at: 0x8835fE29EE045b54F104b7fcA4d7c8A43ACbb285 + GT deployed at: 0xE70AEf3e286d08c245acFeCb6e3BA4BDF5DCCA9e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@07APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x007000fC3334A89919Eee221E6C2D2c8da975AAf + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x9a8cb9085f56311D32552EeAaF821ae451d09F04 + XT deployed at: 0x0865E44B0C21cF6bee4aFaDB6c809d305DeAdb1f + GT deployed at: 0xffd615b03e4872314114F934022DF122Cb1662e6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@07APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10142918 + +Estimated amount required: 0.000202858370142918 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x019523d518293564560dc46136dcfa389b05305c, 0x1fafd0ded8dd75d19c39268cbf5c41830e95b70f, 0xc01f16f8a4b29603a4133efa479b61416866ad10, 0x7866514a8e42df186c5ef4c9c995aa193b434cc6, 0xbba787e60732e7e6b54c98ad2fa580194439e013, 0x42e2e298fad57a92ec0b12a2672c1d6b643e5ca4, 0xd9a19fa50a745f241d06b0edb1e0ecf9c3a60503, 0x8f1ceaa9b96d723ece4024f60393dfa5712ba599, 0x594c0cfcac1d8ba5d574c23baea862254483706e, 0x72f96776ae04ee008ec3b23f03de8c5201b4aea6, 0xf4492d1d6b4431a70259375dbbbab0098818e551, 0x6a0f318e8b6b732f21d920d8f7039385954402db, 0x60a2ed2fb29db61ba6f3b66fc9ad5bf790e7f475, 0xf5c8abccb2342a28503a563509eb7cadb2adf978, 0xfdce88048a2bb99ef2b343e94fd8c118eaf4b440, 0x6b1585bed002f2c85574736ab031dcb4a9e06c04, 0xc8b5dcf19647e46ee84fac6415fa2dae417744a2, 0x9bc7917d2653c640b709423b90a4dc68010d12cc, 0x4acd37c33a209041dd3ddae692700926ed89bf93, 0x50a554031a9f41edfee643e0304bc740d1c0d304, 0x6b200b04b991a4bb2008fcfef1543b67f50db66a, 0x46598ddefc61f16c0f2e649ce79067237f665d8e, 0x8835fe29ee045b54f104b7fca4d7c8a43acbb285, 0xe70aef3e286d08c245acfecb6e3ba4bdf5dcca9e, 0x007000fc3334a89919eee221e6c2d2c8da975aaf, 0x9a8cb9085f56311d32552eeaaf821ae451d09f04, 0x0865e44b0c21cf6bee4afadb6c809d305deadb1f, 0xffd615b03e4872314114f934022df122cb1662e6]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-20250408-1400/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-ARB@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-ARB@08APR2025.json new file mode 100644 index 0000000..57ffcfc --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-ARB@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215100", + "timestamp": "1744005644" + }, + "market": "0x336d1bc868139BE75CbbD6714b6e1ff43DDe9d06", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xf3dd96209a49583bD831809730146b4e109d3dA7", + "xt": "0x4484d42F46A4485c50894639A9743c8506B7EAA3", + "gt": "0xA9843e77E3585B2D7D9286249E8Ce6f72Db4C5F7" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-WBTC@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-WBTC@08APR2025.json new file mode 100644 index 0000000..78077fa --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-WBTC@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215100", + "timestamp": "1744005644" + }, + "market": "0x1fc86F5E314f8926C2a65fA3Fbd5475872F93587", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6D71683e3671631847B1c1FF98876175585d0232", + "xt": "0x815E7Abf75b20d44E4bac65a8dB78Be52Baaf5AB", + "gt": "0x93264Dce6f50699C153aF26781550BF60e6D718F" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-WETH@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-WETH@08APR2025.json new file mode 100644 index 0000000..ee77c46 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-WETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215100", + "timestamp": "1744005644" + }, + "market": "0xaac38fBAa34C840d272D4a390439d1a52AaFf656", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x08F2FaFFB91AB82b69F89E9A6F71F35BE79858D8", + "xt": "0xC1B4bf59f2Face17E5d367Cb6c84Fe95755D5BCa", + "gt": "0xE1aEBa432af030f98aBB8134858C97b96D4da23b" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-wstETH@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-wstETH@08APR2025.json new file mode 100644 index 0000000..33bac5e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-USDC-wstETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215100", + "timestamp": "1744005644" + }, + "market": "0xE905E3d8ABf8426FBC92cF937593d015d3E91452", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4d2c344bA129d64FaEf265c46acFf649Ef68370a", + "xt": "0x33F1F076C95C9c82f8d375F23055296D0bF50329", + "gt": "0x4232f028ACA0cc0F33F08be7763833988960a30e" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@08APR2025.json new file mode 100644 index 0000000..2424e9a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215100", + "timestamp": "1744005644" + }, + "market": "0xc104cb7445a6a47FA29a1eeC72354b90B9eAadB2", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1E8cBe3b7d15f7496Fd557cB4924d97C528311fc", + "xt": "0x8bB6a140c7B6e482dDED87A562647dd9cfc22F56", + "gt": "0x23ef45cF5356d91edA61378A23bF88f5535F0fD6" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-weETH@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-weETH@08APR2025.json new file mode 100644 index 0000000..b47c82a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-weETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215100", + "timestamp": "1744005644" + }, + "market": "0xA85Bb264896dD2D50f01c2BD307707160C342b10", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xc3270d221e8a86488dFF21d4BE89A42afD076131", + "xt": "0x3c1ffB2954Fd7a594f51201e7A0e27aB7A9E8A87", + "gt": "0x447FAa89d091c67B0D4bC0CD1D5113EB92cfC4Ec" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-wstETH@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-wstETH@08APR2025.json new file mode 100644 index 0000000..b3556f7 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-market-WETH-wstETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215100", + "timestamp": "1744005644" + }, + "market": "0x12F4f557D8B1C90F4371e6826AC75c7ebE605163", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xc0C53eD8a103BF9eCab7D1d326236bc1d7Bfe830", + "xt": "0xBDC43d2f94B5B54e31412D0aE7bed82DF8B27ba8", + "gt": "0x461168F7ab077020CB3cfc337959a72d0dD9FCd1" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-1400/deploy-market-arb-mainnet-20250408-1400-log.txt b/deployments/arb-mainnet-v1.0.8-20250408-1400/deploy-market-arb-mainnet-20250408-1400-log.txt new file mode 100644 index 0000000..2369b4f --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-1400/deploy-market-arb-mainnet-20250408-1400-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xa933ec01396c317772c0830fa6db0eaa420df34f + + ===== Block Info ===== + Block number: 22215100 + Block timestamp: 1744005644 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22215100 + + ===== Market Info - 0 ===== + Market deployed at: 0x12F4f557D8B1C90F4371e6826AC75c7ebE605163 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xc0C53eD8a103BF9eCab7D1d326236bc1d7Bfe830 + XT deployed at: 0xBDC43d2f94B5B54e31412D0aE7bed82DF8B27ba8 + GT deployed at: 0x461168F7ab077020CB3cfc337959a72d0dD9FCd1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@08APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xE905E3d8ABf8426FBC92cF937593d015d3E91452 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x4d2c344bA129d64FaEf265c46acFf649Ef68370a + XT deployed at: 0x33F1F076C95C9c82f8d375F23055296D0bF50329 + GT deployed at: 0x4232f028ACA0cc0F33F08be7763833988960a30e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@08APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x1fc86F5E314f8926C2a65fA3Fbd5475872F93587 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x6D71683e3671631847B1c1FF98876175585d0232 + XT deployed at: 0x815E7Abf75b20d44E4bac65a8dB78Be52Baaf5AB + GT deployed at: 0x93264Dce6f50699C153aF26781550BF60e6D718F + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@08APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xA85Bb264896dD2D50f01c2BD307707160C342b10 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xc3270d221e8a86488dFF21d4BE89A42afD076131 + XT deployed at: 0x3c1ffB2954Fd7a594f51201e7A0e27aB7A9E8A87 + GT deployed at: 0x447FAa89d091c67B0D4bC0CD1D5113EB92cfC4Ec + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@08APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xaac38fBAa34C840d272D4a390439d1a52AaFf656 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x08F2FaFFB91AB82b69F89E9A6F71F35BE79858D8 + XT deployed at: 0xC1B4bf59f2Face17E5d367Cb6c84Fe95755D5BCa + GT deployed at: 0xE1aEBa432af030f98aBB8134858C97b96D4da23b + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@08APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x336d1bc868139BE75CbbD6714b6e1ff43DDe9d06 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xf3dd96209a49583bD831809730146b4e109d3dA7 + XT deployed at: 0x4484d42F46A4485c50894639A9743c8506B7EAA3 + GT deployed at: 0xA9843e77E3585B2D7D9286249E8Ce6f72Db4C5F7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@08APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xc104cb7445a6a47FA29a1eeC72354b90B9eAadB2 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x1E8cBe3b7d15f7496Fd557cB4924d97C528311fc + XT deployed at: 0x8bB6a140c7B6e482dDED87A562647dd9cfc22F56 + GT deployed at: 0x23ef45cF5356d91edA61378A23bF88f5535F0fD6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@08APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.028040001 gwei + +Estimated total gas used for script: 11099281 + +Estimated amount required: 0.000311223850339281 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x12f4f557d8b1c90f4371e6826ac75c7ebe605163, 0xc0c53ed8a103bf9ecab7d1d326236bc1d7bfe830, 0xbdc43d2f94b5b54e31412d0ae7bed82df8b27ba8, 0x461168f7ab077020cb3cfc337959a72d0dd9fcd1, 0xe905e3d8abf8426fbc92cf937593d015d3e91452, 0x4d2c344ba129d64faef265c46acff649ef68370a, 0x33f1f076c95c9c82f8d375f23055296d0bf50329, 0x4232f028aca0cc0f33f08be7763833988960a30e, 0x1fc86f5e314f8926c2a65fa3fbd5475872f93587, 0x6d71683e3671631847b1c1ff98876175585d0232, 0x815e7abf75b20d44e4bac65a8db78be52baaf5ab, 0x93264dce6f50699c153af26781550bf60e6d718f, 0xa85bb264896dd2d50f01c2bd307707160c342b10, 0xc3270d221e8a86488dff21d4be89a42afd076131, 0x3c1ffb2954fd7a594f51201e7a0e27ab7a9e8a87, 0x447faa89d091c67b0d4bc0cd1d5113eb92cfc4ec, 0xaac38fbaa34c840d272d4a390439d1a52aaff656, 0x08f2faffb91ab82b69f89e9a6f71f35be79858d8, 0xc1b4bf59f2face17e5d367cb6c84fe95755d5bca, 0xe1aeba432af030f98abb8134858c97b96d4da23b, 0x336d1bc868139be75cbbd6714b6e1ff43dde9d06, 0xf3dd96209a49583bd831809730146b4e109d3da7, 0x4484d42f46a4485c50894639a9743c8506b7eaa3, 0xa9843e77e3585b2d7d9286249e8ce6f72db4c5f7, 0xc104cb7445a6a47fa29a1eec72354b90b9eaadb2, 0x1e8cbe3b7d15f7496fd557cb4924d97c528311fc, 0x8bb6a140c7b6e482dded87a562647dd9cfc22f56, 0x23ef45cf5356d91eda61378a23bf88f5535f0fd6]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-20250408-2000/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-ARB@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-ARB@08APR2025.json new file mode 100644 index 0000000..7ec48f6 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-ARB@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215143", + "timestamp": "1744006181" + }, + "market": "0x63428d655660316bbcA6d1CdD76aCfdd43CEFfc1", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xe495c826827dF55F8A025e733A8f3Ab6D328E604", + "xt": "0x90873FB4F076f9deC65F6085205BC3AE3ba636a2", + "gt": "0x92be40fFb75cFc4AD386b81a0083641c712d7eF4" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-WBTC@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-WBTC@08APR2025.json new file mode 100644 index 0000000..df85039 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-WBTC@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215143", + "timestamp": "1744006181" + }, + "market": "0xa42fd9df391a1eEaFf562cb1663ac40a60dd082D", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb3264555D6Abe7B79Dfb6c0Aa21b255c18CfDf22", + "xt": "0x261b6ED8bea34af26a5BacfA85FBff72CE6f7b7B", + "gt": "0xb0303Fe50e57ED5F8ee09D1101f1c31C09734994" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-WETH@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-WETH@08APR2025.json new file mode 100644 index 0000000..b84e0c6 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-WETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215143", + "timestamp": "1744006181" + }, + "market": "0xfddAC22E6891A3baD6ACB3E62A2245FFac5BaE5a", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4cFA2bd435bD0F0385AeA22dd649699922490629", + "xt": "0x91E820479F5d08318F116044d95E1C78E4Fa3AD3", + "gt": "0xc4f218332598D83Dcc00876677409aD853389bD8" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-wstETH@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-wstETH@08APR2025.json new file mode 100644 index 0000000..f54a1ad --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-USDC-wstETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215143", + "timestamp": "1744006181" + }, + "market": "0xd60C6FbAED1bfFA8F0592B7c8ad45089C04df8c2", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0CA3fc2e728b03fcDd1072bF586B229A02f797e1", + "xt": "0x2F07e5B8105c6186E9c7Ac589d24b33EDd7c2099", + "gt": "0x32476D620D080088708ed99BEBEe651F7102a73c" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@08APR2025.json new file mode 100644 index 0000000..8c2bfba --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215143", + "timestamp": "1744006181" + }, + "market": "0x5CB98009a854ba0c6B4B3a41f891b4a725760699", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x043fEF2732473cB672FB850C8b48E4F5D9Ac903A", + "xt": "0x44c49c109bCd38D19f8Ee83ACE66F873a5D29941", + "gt": "0x2BC2ee958dD293BBE727163cE88760c2B8D1cE4B" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-weETH@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-weETH@08APR2025.json new file mode 100644 index 0000000..6f7df19 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-weETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215143", + "timestamp": "1744006181" + }, + "market": "0x1903C34bB9B761716cbB7E39529c60e27b3a3FD3", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x97Ff4413a3311eC3FD68f6c612E5AAE2e856E558", + "xt": "0x547B9897A952E82DDc4dA6c78aBcC6706d3C9Ab9", + "gt": "0x6d8463f5BAD86170390aa046A9Fe0Fdb908bA2b8" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-wstETH@08APR2025.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-wstETH@08APR2025.json new file mode 100644 index 0000000..740e1fe --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-market-WETH-wstETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215143", + "timestamp": "1744006181" + }, + "market": "0x935205D7ee76e0416f1f131Bc52083Fa2Eb54Bd6", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x07c6D7C2c4eaD1d9Fb5261025971b933bE07Dd8C", + "xt": "0x4cb7Bac7D97591511F0bdf8402BDd24cCEcDCF4E", + "gt": "0x49A975A24Ee227835876164dfaf55061F9F67997" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250408-2000/deploy-market-arb-mainnet-20250408-2000-log.txt b/deployments/arb-mainnet-v1.0.8-20250408-2000/deploy-market-arb-mainnet-20250408-2000-log.txt new file mode 100644 index 0000000..aadc609 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250408-2000/deploy-market-arb-mainnet-20250408-2000-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xa933ec01396c317772c0830fa6db0eaa420df34f + + ===== Block Info ===== + Block number: 22215143 + Block timestamp: 1744006181 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22215143 + + ===== Market Info - 0 ===== + Market deployed at: 0x935205D7ee76e0416f1f131Bc52083Fa2Eb54Bd6 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x07c6D7C2c4eaD1d9Fb5261025971b933bE07Dd8C + XT deployed at: 0x4cb7Bac7D97591511F0bdf8402BDd24cCEcDCF4E + GT deployed at: 0x49A975A24Ee227835876164dfaf55061F9F67997 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@08APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xd60C6FbAED1bfFA8F0592B7c8ad45089C04df8c2 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x0CA3fc2e728b03fcDd1072bF586B229A02f797e1 + XT deployed at: 0x2F07e5B8105c6186E9c7Ac589d24b33EDd7c2099 + GT deployed at: 0x32476D620D080088708ed99BEBEe651F7102a73c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@08APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xa42fd9df391a1eEaFf562cb1663ac40a60dd082D + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xb3264555D6Abe7B79Dfb6c0Aa21b255c18CfDf22 + XT deployed at: 0x261b6ED8bea34af26a5BacfA85FBff72CE6f7b7B + GT deployed at: 0xb0303Fe50e57ED5F8ee09D1101f1c31C09734994 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@08APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x1903C34bB9B761716cbB7E39529c60e27b3a3FD3 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x97Ff4413a3311eC3FD68f6c612E5AAE2e856E558 + XT deployed at: 0x547B9897A952E82DDc4dA6c78aBcC6706d3C9Ab9 + GT deployed at: 0x6d8463f5BAD86170390aa046A9Fe0Fdb908bA2b8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@08APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xfddAC22E6891A3baD6ACB3E62A2245FFac5BaE5a + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x4cFA2bd435bD0F0385AeA22dd649699922490629 + XT deployed at: 0x91E820479F5d08318F116044d95E1C78E4Fa3AD3 + GT deployed at: 0xc4f218332598D83Dcc00876677409aD853389bD8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@08APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x63428d655660316bbcA6d1CdD76aCfdd43CEFfc1 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xe495c826827dF55F8A025e733A8f3Ab6D328E604 + XT deployed at: 0x90873FB4F076f9deC65F6085205BC3AE3ba636a2 + GT deployed at: 0x92be40fFb75cFc4AD386b81a0083641c712d7eF4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@08APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x5CB98009a854ba0c6B4B3a41f891b4a725760699 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x043fEF2732473cB672FB850C8b48E4F5D9Ac903A + XT deployed at: 0x44c49c109bCd38D19f8Ee83ACE66F873a5D29941 + GT deployed at: 0x2BC2ee958dD293BBE727163cE88760c2B8D1cE4B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@08APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.041546001 gwei + +Estimated total gas used for script: 10222369 + +Estimated amount required: 0.000424698552696369 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x935205d7ee76e0416f1f131bc52083fa2eb54bd6, 0x07c6d7c2c4ead1d9fb5261025971b933be07dd8c, 0x4cb7bac7d97591511f0bdf8402bdd24ccecdcf4e, 0x49a975a24ee227835876164dfaf55061f9f67997, 0xd60c6fbaed1bffa8f0592b7c8ad45089c04df8c2, 0x0ca3fc2e728b03fcdd1072bf586b229a02f797e1, 0x2f07e5b8105c6186e9c7ac589d24b33edd7c2099, 0x32476d620d080088708ed99bebee651f7102a73c, 0xa42fd9df391a1eeaff562cb1663ac40a60dd082d, 0xb3264555d6abe7b79dfb6c0aa21b255c18cfdf22, 0x261b6ed8bea34af26a5bacfa85fbff72ce6f7b7b, 0xb0303fe50e57ed5f8ee09d1101f1c31c09734994, 0x1903c34bb9b761716cbb7e39529c60e27b3a3fd3, 0x97ff4413a3311ec3fd68f6c612e5aae2e856e558, 0x547b9897a952e82ddc4da6c78abcc6706d3c9ab9, 0x6d8463f5bad86170390aa046a9fe0fdb908ba2b8, 0xfddac22e6891a3bad6acb3e62a2245ffac5bae5a, 0x4cfa2bd435bd0f0385aea22dd649699922490629, 0x91e820479f5d08318f116044d95e1c78e4fa3ad3, 0xc4f218332598d83dcc00876677409ad853389bd8, 0x63428d655660316bbca6d1cdd76acfdd43ceffc1, 0xe495c826827df55f8a025e733a8f3ab6d328e604, 0x90873fb4f076f9dec65f6085205bc3ae3ba636a2, 0x92be40ffb75cfc4ad386b81a0083641c712d7ef4, 0x5cb98009a854ba0c6b4b3a41f891b4a725760699, 0x043fef2732473cb672fb850c8b48e4f5d9ac903a, 0x44c49c109bcd38d19f8ee83ace66f873a5d29941, 0x2bc2ee958dd293bbe727163ce88760c2b8d1ce4b]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-20250409-1400/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-ARB@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-ARB@09APR2025.json new file mode 100644 index 0000000..46531df --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-ARB@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215249", + "timestamp": "1744007446" + }, + "market": "0x5578C516E134b1B60412Df0f7951C8B3eA3348eA", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x850Ea7CdFb3477437e32De1f3e9a5586f5cD22cE", + "xt": "0x8489eec54c597DEcEa3eaFAb03c3B4eA9aaeB524", + "gt": "0xb4a086CD14FD5414B34CE058126CCA7985B5F312" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-WBTC@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-WBTC@09APR2025.json new file mode 100644 index 0000000..4af7129 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-WBTC@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215249", + "timestamp": "1744007446" + }, + "market": "0x751693F66787D95dB97Fb3E8140704beC7ACd88E", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x66BAD5FAd11095e4eaBdf3FEe54eeDa5F43191A1", + "xt": "0xFD19f1EDeCE0599A27a4a77Be5C39931fE6e6487", + "gt": "0x7F28967A495C9b3D5816d70a41fDeFEbcF260F77" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-WETH@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-WETH@09APR2025.json new file mode 100644 index 0000000..451c792 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-WETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215249", + "timestamp": "1744007446" + }, + "market": "0x96cA7692f88220C51735BDe99A80f9EAF5A21c10", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB937177C11F4d2BbB063998Deb622Cd55A182E7A", + "xt": "0x9BAB3048aCE2Eb2CE6269040513A2bF1D68924af", + "gt": "0x567E64baEE90B346A104DDFeb75ceC3aaE5A3EDf" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-wstETH@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-wstETH@09APR2025.json new file mode 100644 index 0000000..974dd74 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-USDC-wstETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215249", + "timestamp": "1744007446" + }, + "market": "0x87D1f1a063F0CFACD596c464404De58FfD6BB5c8", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xAb2041a4fC56b044c2A505ddb645776D3e42d4fC", + "xt": "0x6c93b9cAdB8575B7adff2c7C1f9666f42Aa82aA7", + "gt": "0xF2B221266340fd5bE276bAD0343eDd4043643B4b" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@09APR2025.json new file mode 100644 index 0000000..12d5dcc --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215249", + "timestamp": "1744007446" + }, + "market": "0xfEdfD999eEd941FE1E28411D70F6638F531D2d70", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x713f2e816Acec4A58Ddd85BdeE33Aa9a272790C1", + "xt": "0xEDE6da97351a970817e3633670B364a742159eD7", + "gt": "0xe62fd9c9Ff7662c10fF8131A4855B4B54eCdD09A" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-weETH@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-weETH@09APR2025.json new file mode 100644 index 0000000..a841e4f --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-weETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215249", + "timestamp": "1744007446" + }, + "market": "0x7884d18d13AC1e2A0fFBa1D05309196076d448F7", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0834a67Ada892Ad2e570aF5A6770f947e1B93094", + "xt": "0x826634f8F0Cd43222c44081A5159F0ecB5B503db", + "gt": "0x9749ced7c129950a55E87cB963A63E06bb05766e" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-wstETH@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-wstETH@09APR2025.json new file mode 100644 index 0000000..d744809 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-market-WETH-wstETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215249", + "timestamp": "1744007446" + }, + "market": "0x510F69C9bA80bc602ccbD74e7a41431fe7255676", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x13c5ffc2b9cC9D39901ba7f953823C5Ee9414197", + "xt": "0xD9f0997d8d044Cd2d71e55cb0C66d28A1056238B", + "gt": "0x81c17328BE460cd150461B1eB28299BBee4473b6" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-1400/deploy-market-arb-mainnet-20250409-1400-log.txt b/deployments/arb-mainnet-v1.0.8-20250409-1400/deploy-market-arb-mainnet-20250409-1400-log.txt new file mode 100644 index 0000000..1c56e4f --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-1400/deploy-market-arb-mainnet-20250409-1400-log.txt @@ -0,0 +1,271 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xa933ec01396c317772c0830fa6db0eaa420df34f + + ===== Block Info ===== + Block number: 22215249 + Block timestamp: 1744007446 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22215249 + + ===== Market Info - 0 ===== + Market deployed at: 0x510F69C9bA80bc602ccbD74e7a41431fe7255676 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x13c5ffc2b9cC9D39901ba7f953823C5Ee9414197 + XT deployed at: 0xD9f0997d8d044Cd2d71e55cb0C66d28A1056238B + GT deployed at: 0x81c17328BE460cd150461B1eB28299BBee4473b6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@09APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x87D1f1a063F0CFACD596c464404De58FfD6BB5c8 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xAb2041a4fC56b044c2A505ddb645776D3e42d4fC + XT deployed at: 0x6c93b9cAdB8575B7adff2c7C1f9666f42Aa82aA7 + GT deployed at: 0xF2B221266340fd5bE276bAD0343eDd4043643B4b + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@09APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x751693F66787D95dB97Fb3E8140704beC7ACd88E + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x66BAD5FAd11095e4eaBdf3FEe54eeDa5F43191A1 + XT deployed at: 0xFD19f1EDeCE0599A27a4a77Be5C39931fE6e6487 + GT deployed at: 0x7F28967A495C9b3D5816d70a41fDeFEbcF260F77 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@09APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x7884d18d13AC1e2A0fFBa1D05309196076d448F7 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x0834a67Ada892Ad2e570aF5A6770f947e1B93094 + XT deployed at: 0x826634f8F0Cd43222c44081A5159F0ecB5B503db + GT deployed at: 0x9749ced7c129950a55E87cB963A63E06bb05766e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@09APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x96cA7692f88220C51735BDe99A80f9EAF5A21c10 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xB937177C11F4d2BbB063998Deb622Cd55A182E7A + XT deployed at: 0x9BAB3048aCE2Eb2CE6269040513A2bF1D68924af + GT deployed at: 0x567E64baEE90B346A104DDFeb75ceC3aaE5A3EDf + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@09APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x5578C516E134b1B60412Df0f7951C8B3eA3348eA + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x850Ea7CdFb3477437e32De1f3e9a5586f5cD22cE + XT deployed at: 0x8489eec54c597DEcEa3eaFAb03c3B4eA9aaeB524 + GT deployed at: 0xb4a086CD14FD5414B34CE058126CCA7985B5F312 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@09APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xfEdfD999eEd941FE1E28411D70F6638F531D2d70 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x713f2e816Acec4A58Ddd85BdeE33Aa9a272790C1 + XT deployed at: 0xEDE6da97351a970817e3633670B364a742159eD7 + GT deployed at: 0xe62fd9c9Ff7662c10fF8131A4855B4B54eCdD09A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@09APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 9.072340001 gwei + +Estimated total gas used for script: 10056788 + +Estimated amount required: 0.091238600053976788 ETH + +========================== + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x510f69c9ba80bc602ccbd74e7a41431fe7255676, 0x13c5ffc2b9cc9d39901ba7f953823c5ee9414197, 0xd9f0997d8d044cd2d71e55cb0c66d28a1056238b, 0x81c17328be460cd150461b1eb28299bbee4473b6, 0x87d1f1a063f0cfacd596c464404de58ffd6bb5c8, 0xab2041a4fc56b044c2a505ddb645776d3e42d4fc, 0x6c93b9cadb8575b7adff2c7c1f9666f42aa82aa7, 0xf2b221266340fd5be276bad0343edd4043643b4b, 0x751693f66787d95db97fb3e8140704bec7acd88e, 0x66bad5fad11095e4eabdf3fee54eeda5f43191a1, 0xfd19f1edece0599a27a4a77be5c39931fe6e6487, 0x7f28967a495c9b3d5816d70a41fdefebcf260f77, 0x7884d18d13ac1e2a0ffba1d05309196076d448f7, 0x0834a67ada892ad2e570af5a6770f947e1b93094, 0x826634f8f0cd43222c44081a5159f0ecb5b503db, 0x9749ced7c129950a55e87cb963a63e06bb05766e, 0x96ca7692f88220c51735bde99a80f9eaf5a21c10, 0xb937177c11f4d2bbb063998deb622cd55a182e7a, 0x9bab3048ace2eb2ce6269040513a2bf1d68924af, 0x567e64baee90b346a104ddfeb75cec3aae5a3edf, 0x5578c516e134b1b60412df0f7951c8b3ea3348ea, 0x850ea7cdfb3477437e32de1f3e9a5586f5cd22ce, 0x8489eec54c597decea3eafab03c3b4ea9aaeb524, 0xb4a086cd14fd5414b34ce058126cca7985b5f312, 0xfedfd999eed941fe1e28411d70f6638f531d2d70, 0x713f2e816acec4a58ddd85bdee33aa9a272790c1, 0xede6da97351a970817e3633670b364a742159ed7, 0xe62fd9c9ff7662c10ff8131a4855b4b54ecdd09a]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-20250409-2000/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-ARB@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-ARB@09APR2025.json new file mode 100644 index 0000000..ea5324c --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-ARB@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215388", + "timestamp": "1744009113" + }, + "market": "0x0b4084ACEd7c8dFe84f1b084F50E12B9CE35a1b4", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x38A3D4197b7cD90Fe31fe2BB59763aF4627E2714", + "xt": "0x46c57404f90866b2b26a6EF5c3735fA73F306Ee8", + "gt": "0x172f496b78dc962f1aa4B2CD92c9C21093081331" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-WBTC@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-WBTC@09APR2025.json new file mode 100644 index 0000000..3ef39e1 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-WBTC@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215388", + "timestamp": "1744009113" + }, + "market": "0x9bf834de7B951c7a0119eC3c0438B0d1e83D6BDF", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1cB872765b6d5AaC6B951a70E1002C470c8f0554", + "xt": "0x4D86E7d921C56D06a5b0f7fbdB80d7DFd8532a24", + "gt": "0x20F2A47f4297e9aE929002213Fbe7a168034b5Aa" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-WETH@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-WETH@09APR2025.json new file mode 100644 index 0000000..7c41c9b --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-WETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215388", + "timestamp": "1744009113" + }, + "market": "0xEF77c361d50B1A9976ba702feCA233b734639Fda", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x51dE84c1dfc24b1EDD023972FFd48903B1FA66c3", + "xt": "0x95F4652078F45548AD749E6EC076B703495413B7", + "gt": "0x3B6476155f9A2E7e7648fA27d3648e0F4302059A" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-wstETH@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-wstETH@09APR2025.json new file mode 100644 index 0000000..d49b3e7 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-USDC-wstETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215388", + "timestamp": "1744009113" + }, + "market": "0xb4B207969EbAcF10c1bd192f93e5B3217590C029", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9784AAe160d71EDf37B8a421E5FfA42AE9AA4ac9", + "xt": "0x312fce698b5ABf0B15cF894a89EaE67dAF97A03e", + "gt": "0xb71e701de5F9AeA020799049154830e902BdacBe" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@09APR2025.json new file mode 100644 index 0000000..eb3f263 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215388", + "timestamp": "1744009113" + }, + "market": "0x151F42b840DD287d108Bb624fD1438D823209F41", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB346b2c6F8774423F92850186a2a8E9E957CB9fE", + "xt": "0x9F765ABd43859EA5FaBE04A3067f1076136BD7C8", + "gt": "0x7c92b79eD6bA4E84E914887D5Bf50aAC625129E6" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-weETH@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-weETH@09APR2025.json new file mode 100644 index 0000000..1a3282d --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-weETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215388", + "timestamp": "1744009113" + }, + "market": "0xe6C399f22d5D721058324A59E3cC772D13e1E274", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9A888F4feeF89D0E70bf97d93fe60e4F0B091e21", + "xt": "0x08359897bcDF58aaa73492776C6eeedb2C9dBf39", + "gt": "0xb3C0bfE13474c4CdD1409Ba6B6B4FcFdFb95827A" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-wstETH@09APR2025.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-wstETH@09APR2025.json new file mode 100644 index 0000000..4a2498e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-market-WETH-wstETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22215388", + "timestamp": "1744009113" + }, + "market": "0x6D5dcE785FDA044dE81AaA0abaB881BA4bbC59B7", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xbE26080CE287A2Bb346baB44F7550DE18DBDB107", + "xt": "0xa628a5948B6613845F5A8f46ec53D817A216C745", + "gt": "0x706FD4696B070B9B525C1A9a2C0801b7b4E85d30" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250409-2000/deploy-market-arb-mainnet-20250409-2000-log.txt b/deployments/arb-mainnet-v1.0.8-20250409-2000/deploy-market-arb-mainnet-20250409-2000-log.txt new file mode 100644 index 0000000..3fd5950 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250409-2000/deploy-market-arb-mainnet-20250409-2000-log.txt @@ -0,0 +1,579 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xa933ec01396c317772c0830fa6db0eaa420df34f + + ===== Block Info ===== + Block number: 22215388 + Block timestamp: 1744009113 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22215388 + + ===== Market Info - 0 ===== + Market deployed at: 0x6D5dcE785FDA044dE81AaA0abaB881BA4bbC59B7 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xbE26080CE287A2Bb346baB44F7550DE18DBDB107 + XT deployed at: 0xa628a5948B6613845F5A8f46ec53D817A216C745 + GT deployed at: 0x706FD4696B070B9B525C1A9a2C0801b7b4E85d30 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@09APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xb4B207969EbAcF10c1bd192f93e5B3217590C029 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x9784AAe160d71EDf37B8a421E5FfA42AE9AA4ac9 + XT deployed at: 0x312fce698b5ABf0B15cF894a89EaE67dAF97A03e + GT deployed at: 0xb71e701de5F9AeA020799049154830e902BdacBe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@09APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x9bf834de7B951c7a0119eC3c0438B0d1e83D6BDF + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x1cB872765b6d5AaC6B951a70E1002C470c8f0554 + XT deployed at: 0x4D86E7d921C56D06a5b0f7fbdB80d7DFd8532a24 + GT deployed at: 0x20F2A47f4297e9aE929002213Fbe7a168034b5Aa + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@09APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xe6C399f22d5D721058324A59E3cC772D13e1E274 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x9A888F4feeF89D0E70bf97d93fe60e4F0B091e21 + XT deployed at: 0x08359897bcDF58aaa73492776C6eeedb2C9dBf39 + GT deployed at: 0xb3C0bfE13474c4CdD1409Ba6B6B4FcFdFb95827A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@09APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xEF77c361d50B1A9976ba702feCA233b734639Fda + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x51dE84c1dfc24b1EDD023972FFd48903B1FA66c3 + XT deployed at: 0x95F4652078F45548AD749E6EC076B703495413B7 + GT deployed at: 0x3B6476155f9A2E7e7648fA27d3648e0F4302059A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@09APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x0b4084ACEd7c8dFe84f1b084F50E12B9CE35a1b4 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x38A3D4197b7cD90Fe31fe2BB59763aF4627E2714 + XT deployed at: 0x46c57404f90866b2b26a6EF5c3735fA73F306Ee8 + GT deployed at: 0x172f496b78dc962f1aa4B2CD92c9C21093081331 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@09APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x151F42b840DD287d108Bb624fD1438D823209F41 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xB346b2c6F8774423F92850186a2a8E9E957CB9fE + XT deployed at: 0x9F765ABd43859EA5FaBE04A3067f1076136BD7C8 + GT deployed at: 0x7c92b79eD6bA4E84E914887D5Bf50aAC625129E6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@09APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 15.354864001 gwei + +Estimated total gas used for script: 10064039 + +Estimated amount required: 0.154531950145760039 ETH + +========================== + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x6d5dce785fda044de81aaa0abab881ba4bbc59b7, 0xbe26080ce287a2bb346bab44f7550de18dbdb107, 0xa628a5948b6613845f5a8f46ec53d817a216c745, 0x706fd4696b070b9b525c1a9a2c0801b7b4e85d30, 0xb4b207969ebacf10c1bd192f93e5b3217590c029, 0x9784aae160d71edf37b8a421e5ffa42ae9aa4ac9, 0x312fce698b5abf0b15cf894a89eae67daf97a03e, 0xb71e701de5f9aea020799049154830e902bdacbe, 0x9bf834de7b951c7a0119ec3c0438b0d1e83d6bdf, 0x1cb872765b6d5aac6b951a70e1002c470c8f0554, 0x4d86e7d921c56d06a5b0f7fbdb80d7dfd8532a24, 0x20f2a47f4297e9ae929002213fbe7a168034b5aa, 0xe6c399f22d5d721058324a59e3cc772d13e1e274, 0x9a888f4feef89d0e70bf97d93fe60e4f0b091e21, 0x08359897bcdf58aaa73492776c6eeedb2c9dbf39, 0xb3c0bfe13474c4cdd1409ba6b6b4fcfdfb95827a, 0xef77c361d50b1a9976ba702feca233b734639fda, 0x51de84c1dfc24b1edd023972ffd48903b1fa66c3, 0x95f4652078f45548ad749e6ec076b703495413b7, 0x3b6476155f9a2e7e7648fa27d3648e0f4302059a, 0x0b4084aced7c8dfe84f1b084f50e12b9ce35a1b4, 0x38a3d4197b7cd90fe31fe2bb59763af4627e2714, 0x46c57404f90866b2b26a6ef5c3735fa73f306ee8, 0x172f496b78dc962f1aa4b2cd92c9c21093081331, 0x151f42b840dd287d108bb624fd1438d823209f41, 0xb346b2c6f8774423f92850186a2a8e9e957cb9fe, 0x9f765abd43859ea5fabe04a3067f1076136bd7c8, 0x7c92b79ed6ba4e84e914887d5bf50aac625129e6]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-20250410-1400/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-ARB@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-ARB@10APR2025.json new file mode 100644 index 0000000..b90dd7d --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-ARB@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323793348", + "timestamp": "1744009941" + }, + "market": "0x9Ba3021219981b9a41D6d42185Cc130503F13B9E", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDdD8e706356AA212032235FCb93dCD1BC8d6A126", + "xt": "0xBA0879ccF624699030f8899B6529b8079EE8e9E5", + "gt": "0xD3560F95bF3E80786F46FdF9F515E3Aa40A5d9d0" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-WBTC@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-WBTC@10APR2025.json new file mode 100644 index 0000000..69fb414 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-WBTC@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323793348", + "timestamp": "1744009941" + }, + "market": "0xEcC95f8AD037B9BFd35460C234877F2498ecD734", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xEB4EBAcd8da08F8b82aeA3E3EfDDa675F36b5Fe3", + "xt": "0x3d0d5499399C5740829ea48A7F504BC88Fa4B456", + "gt": "0x0171cA88704DA4CEab3E2B6B54EA9975Ff6Af535" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-WETH@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-WETH@10APR2025.json new file mode 100644 index 0000000..11a5a16 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-WETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323793348", + "timestamp": "1744009941" + }, + "market": "0xdf672158D746F6cB70F8E2d573424AFf9039fcB3", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0912c12a5307DaFF5aa9f4EbfA1248228b4fE2eD", + "xt": "0xCCCaa1B1B1b7f7333f8220c5831f83C109Ffa528", + "gt": "0xAe1C16a3a82026829327F79Cd42DC273F6816b43" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-wstETH@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-wstETH@10APR2025.json new file mode 100644 index 0000000..e001347 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-USDC-wstETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323793348", + "timestamp": "1744009941" + }, + "market": "0xE6aDadaB44Cc32CB542D7b1d8CD409D8c48fbf57", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9323961ab93bCA70b4ffCBB8b16B4545D9178fe1", + "xt": "0x30B8DDc94F6c0173Afdbc2f598541048C1cfEDA6", + "gt": "0x817B901989d1faCFCdFc97c03A0b31eD8CA62a50" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@10APR2025.json new file mode 100644 index 0000000..f982bb1 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-PT-weETH-26JUN2025@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323793348", + "timestamp": "1744009941" + }, + "market": "0xDa230B9AaFe2fc14069c7f09bb25E42D9F3530ED", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6ddA8079dFedF4Db8EDCbb5d0dAd311Ad4521767", + "xt": "0xF6b0D185BeFF716E2AEe212584B8aF7d98547b05", + "gt": "0x2a4144aC39022963C0aECA0d2De463aD2bD07dDa" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-weETH@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-weETH@10APR2025.json new file mode 100644 index 0000000..8b62877 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-weETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323793348", + "timestamp": "1744009941" + }, + "market": "0x5cddb91F285C52DfdC02AEF2f91D72d124e82BF4", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7935309ADd4550321961af5A3Fa6E98e3923CB74", + "xt": "0x51e3B92a7ABC3d61649Bf9B47ED8eA23c2668068", + "gt": "0x4978555126Fe3E467C5d10183a750939d8EB3B47" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-wstETH@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-wstETH@10APR2025.json new file mode 100644 index 0000000..e361679 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-market-WETH-wstETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323793348", + "timestamp": "1744009941" + }, + "market": "0xA29FE72858b0Fb221E2a8Fa2e0E6E5a0206FA8f2", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x98c1496Bc11F9C8a2E89Dbae0fb69A1f0ebF2aE9", + "xt": "0x0b26dDba757d568e8Bda3D67A7C878699A779dB8", + "gt": "0x1cdd8e51B1708a42bC97b9578b5991b0F3A7ca49" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-1400/deploy-market-arb-mainnet-20250410-1400-log.txt b/deployments/arb-mainnet-v1.0.8-20250410-1400/deploy-market-arb-mainnet-20250410-1400-log.txt new file mode 100644 index 0000000..0751e22 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-1400/deploy-market-arb-mainnet-20250410-1400-log.txt @@ -0,0 +1,299 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xa933ec01396c317772c0830fa6db0eaa420df34f + + ===== Block Info ===== + Block number: 323793348 + Block timestamp: 1744009941 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 323793348 + + ===== Market Info - 0 ===== + Market deployed at: 0xA29FE72858b0Fb221E2a8Fa2e0E6E5a0206FA8f2 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x98c1496Bc11F9C8a2E89Dbae0fb69A1f0ebF2aE9 + XT deployed at: 0x0b26dDba757d568e8Bda3D67A7C878699A779dB8 + GT deployed at: 0x1cdd8e51B1708a42bC97b9578b5991b0F3A7ca49 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@10APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xE6aDadaB44Cc32CB542D7b1d8CD409D8c48fbf57 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x9323961ab93bCA70b4ffCBB8b16B4545D9178fe1 + XT deployed at: 0x30B8DDc94F6c0173Afdbc2f598541048C1cfEDA6 + GT deployed at: 0x817B901989d1faCFCdFc97c03A0b31eD8CA62a50 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@10APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xEcC95f8AD037B9BFd35460C234877F2498ecD734 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xEB4EBAcd8da08F8b82aeA3E3EfDDa675F36b5Fe3 + XT deployed at: 0x3d0d5499399C5740829ea48A7F504BC88Fa4B456 + GT deployed at: 0x0171cA88704DA4CEab3E2B6B54EA9975Ff6Af535 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@10APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x5cddb91F285C52DfdC02AEF2f91D72d124e82BF4 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x7935309ADd4550321961af5A3Fa6E98e3923CB74 + XT deployed at: 0x51e3B92a7ABC3d61649Bf9B47ED8eA23c2668068 + GT deployed at: 0x4978555126Fe3E467C5d10183a750939d8EB3B47 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@10APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xdf672158D746F6cB70F8E2d573424AFf9039fcB3 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x0912c12a5307DaFF5aa9f4EbfA1248228b4fE2eD + XT deployed at: 0xCCCaa1B1B1b7f7333f8220c5831f83C109Ffa528 + GT deployed at: 0xAe1C16a3a82026829327F79Cd42DC273F6816b43 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@10APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x9Ba3021219981b9a41D6d42185Cc130503F13B9E + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xDdD8e706356AA212032235FCb93dCD1BC8d6A126 + XT deployed at: 0xBA0879ccF624699030f8899B6529b8079EE8e9E5 + GT deployed at: 0xD3560F95bF3E80786F46FdF9F515E3Aa40A5d9d0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@10APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xDa230B9AaFe2fc14069c7f09bb25E42D9F3530ED + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x6ddA8079dFedF4Db8EDCbb5d0dAd311Ad4521767 + XT deployed at: 0xF6b0D185BeFF716E2AEe212584B8aF7d98547b05 + GT deployed at: 0x2a4144aC39022963C0aECA0d2De463aD2bD07dDa + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@10APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 3.411208001 gwei + +Estimated total gas used for script: 10083777 + +Estimated amount required: 0.034397860782699777 ETH + +========================== + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[ERROR] market deployment to arb-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh arb-mainnet deploy:market --broadcast --resume --verify +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xa29fe72858b0fb221e2a8fa2e0e6e5a0206fa8f2, 0x98c1496bc11f9c8a2e89dbae0fb69a1f0ebf2ae9, 0x0b26ddba757d568e8bda3d67a7c878699a779db8, 0x1cdd8e51b1708a42bc97b9578b5991b0f3a7ca49, 0xe6adadab44cc32cb542d7b1d8cd409d8c48fbf57, 0x9323961ab93bca70b4ffcbb8b16b4545d9178fe1, 0x30b8ddc94f6c0173afdbc2f598541048c1cfeda6, 0x817b901989d1facfcdfc97c03a0b31ed8ca62a50, 0xecc95f8ad037b9bfd35460c234877f2498ecd734, 0xeb4ebacd8da08f8b82aea3e3efdda675f36b5fe3, 0x3d0d5499399c5740829ea48a7f504bc88fa4b456, 0x0171ca88704da4ceab3e2b6b54ea9975ff6af535, 0x5cddb91f285c52dfdc02aef2f91d72d124e82bf4, 0x7935309add4550321961af5a3fa6e98e3923cb74, 0x51e3b92a7abc3d61649bf9b47ed8ea23c2668068, 0x4978555126fe3e467c5d10183a750939d8eb3b47, 0xdf672158d746f6cb70f8e2d573424aff9039fcb3, 0x0912c12a5307daff5aa9f4ebfa1248228b4fe2ed, 0xcccaa1b1b1b7f7333f8220c5831f83c109ffa528, 0xae1c16a3a82026829327f79cd42dc273f6816b43, 0x9ba3021219981b9a41d6d42185cc130503f13b9e, 0xddd8e706356aa212032235fcb93dcd1bc8d6a126, 0xba0879ccf624699030f8899b6529b8079ee8e9e5, 0xd3560f95bf3e80786f46fdf9f515e3aa40a5d9d0, 0xda230b9aafe2fc14069c7f09bb25e42d9f3530ed, 0x6dda8079dfedf4db8edcbb5d0dad311ad4521767, 0xf6b0d185beff716e2aee212584b8af7d98547b05, 0x2a4144ac39022963c0aeca0d2de463ad2bd07dda]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-20250410-2000/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-ARB@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-ARB@10APR2025.json new file mode 100644 index 0000000..778edca --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-ARB@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323797789", + "timestamp": "1744011050" + }, + "market": "0xaCb4D7405ae781aDCC16CAc86e72243AF3508E55", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xba31Ef5Fe837afb7f334110268043A1c737c9Edc", + "xt": "0xCC5c0AF602812E5f2898b9c5bCa28073E87dD605", + "gt": "0x59914BEcb17de30340EF7F5143F2a1A27634FB2F" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-WBTC@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-WBTC@10APR2025.json new file mode 100644 index 0000000..c703686 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-WBTC@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323797789", + "timestamp": "1744011050" + }, + "market": "0x75011A84DA47800FD74728e42e2bb264F4b9C97c", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2608e32BFBBa311872E539Ac350445fF45Fcd99B", + "xt": "0xc23D0F479D1AFF95a1ae9DB3D7D75edD9Bdd9aba", + "gt": "0x410c0A8aB2728Bc3728e5fEa96497d43ea56F20b" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-WETH@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-WETH@10APR2025.json new file mode 100644 index 0000000..0e502ca --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-WETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323797789", + "timestamp": "1744011050" + }, + "market": "0x97b433dD0bad862621A78E350c398941d523535a", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA5a3B9763056258930590c91279643642B4714EA", + "xt": "0x393B4f022869E093CCb25f8251970D81884d7Ff5", + "gt": "0x3D4010bD02A6f62486d767BAdB1BeDc829f28Ef4" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-wstETH@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-wstETH@10APR2025.json new file mode 100644 index 0000000..f483ca7 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-USDC-wstETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323797789", + "timestamp": "1744011050" + }, + "market": "0xC049Ef6d6654E1C5e09f35FDe54f108F5A129BfF", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x77200A2f6415FFFDAd420148d221e5868d9860B2", + "xt": "0x7FdA9c31b8838598B3F317b0755DA989C1890B23", + "gt": "0x651204d5d856c64291E529C943E9d758B8fB2b75" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@10APR2025.json new file mode 100644 index 0000000..cdacc87 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323797789", + "timestamp": "1744011050" + }, + "market": "0x720343ccA2A8F31267Cf499611Fc43B601Be771b", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDCBaC6B90CA991D2019a4f38e9d5E94738284229", + "xt": "0xBA62BB37080C32b0368c629494065919F6890420", + "gt": "0xB4bBaBD6DCF41ed15EC34F875217E18eCbD4A28A" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-weETH@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-weETH@10APR2025.json new file mode 100644 index 0000000..ddba05e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-weETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323797789", + "timestamp": "1744011050" + }, + "market": "0x3d9B41A0AC3e12c5C4709e08A0D84Ab481365d30", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xE128969Bf9a7aa96944255CDd235A03b0BfB4140", + "xt": "0x3330374892e639b5e137fA36aE248610B57006c3", + "gt": "0xC190b3570c9B2CF98d97da5879f7745F07070dfe" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-wstETH@10APR2025.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-wstETH@10APR2025.json new file mode 100644 index 0000000..1948a7c --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-market-WETH-wstETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "323797789", + "timestamp": "1744011050" + }, + "market": "0xC13Fd303B55205aC214B38EbF7278374D7a94F61", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x44545E0BCB3c9a43897505c96e3B43da37AB4738", + "xt": "0x914cA525b206EC8C1B4C82eaD8A484BDBec51DEf", + "gt": "0x2128986F2Dd6CE0cb1C12B39e62e91F13B01261D" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250410-2000/deploy-market-arb-mainnet-20250410-2000-log.txt b/deployments/arb-mainnet-v1.0.8-20250410-2000/deploy-market-arb-mainnet-20250410-2000-log.txt new file mode 100644 index 0000000..8e56be5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250410-2000/deploy-market-arb-mainnet-20250410-2000-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xa933ec01396c317772c0830fa6db0eaa420df34f + + ===== Block Info ===== + Block number: 323797789 + Block timestamp: 1744011050 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 323797789 + + ===== Market Info - 0 ===== + Market deployed at: 0xC13Fd303B55205aC214B38EbF7278374D7a94F61 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x44545E0BCB3c9a43897505c96e3B43da37AB4738 + XT deployed at: 0x914cA525b206EC8C1B4C82eaD8A484BDBec51DEf + GT deployed at: 0x2128986F2Dd6CE0cb1C12B39e62e91F13B01261D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@10APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC049Ef6d6654E1C5e09f35FDe54f108F5A129BfF + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x77200A2f6415FFFDAd420148d221e5868d9860B2 + XT deployed at: 0x7FdA9c31b8838598B3F317b0755DA989C1890B23 + GT deployed at: 0x651204d5d856c64291E529C943E9d758B8fB2b75 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@10APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x75011A84DA47800FD74728e42e2bb264F4b9C97c + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x2608e32BFBBa311872E539Ac350445fF45Fcd99B + XT deployed at: 0xc23D0F479D1AFF95a1ae9DB3D7D75edD9Bdd9aba + GT deployed at: 0x410c0A8aB2728Bc3728e5fEa96497d43ea56F20b + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@10APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x3d9B41A0AC3e12c5C4709e08A0D84Ab481365d30 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xE128969Bf9a7aa96944255CDd235A03b0BfB4140 + XT deployed at: 0x3330374892e639b5e137fA36aE248610B57006c3 + GT deployed at: 0xC190b3570c9B2CF98d97da5879f7745F07070dfe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@10APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x97b433dD0bad862621A78E350c398941d523535a + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xA5a3B9763056258930590c91279643642B4714EA + XT deployed at: 0x393B4f022869E093CCb25f8251970D81884d7Ff5 + GT deployed at: 0x3D4010bD02A6f62486d767BAdB1BeDc829f28Ef4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@10APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xaCb4D7405ae781aDCC16CAc86e72243AF3508E55 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xba31Ef5Fe837afb7f334110268043A1c737c9Edc + XT deployed at: 0xCC5c0AF602812E5f2898b9c5bCa28073E87dD605 + GT deployed at: 0x59914BEcb17de30340EF7F5143F2a1A27634FB2F + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@10APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x720343ccA2A8F31267Cf499611Fc43B601Be771b + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xDCBaC6B90CA991D2019a4f38e9d5E94738284229 + XT deployed at: 0xBA62BB37080C32b0368c629494065919F6890420 + GT deployed at: 0xB4bBaBD6DCF41ed15EC34F875217E18eCbD4A28A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@10APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.491682001 gwei + +Estimated total gas used for script: 10600129 + +Estimated amount required: 0.005211892637578129 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xc13fd303b55205ac214b38ebf7278374d7a94f61, 0x44545e0bcb3c9a43897505c96e3b43da37ab4738, 0x914ca525b206ec8c1b4c82ead8a484bdbec51def, 0x2128986f2dd6ce0cb1c12b39e62e91f13b01261d, 0xc049ef6d6654e1c5e09f35fde54f108f5a129bff, 0x77200a2f6415fffdad420148d221e5868d9860b2, 0x7fda9c31b8838598b3f317b0755da989c1890b23, 0x651204d5d856c64291e529c943e9d758b8fb2b75, 0x75011a84da47800fd74728e42e2bb264f4b9c97c, 0x2608e32bfbba311872e539ac350445ff45fcd99b, 0xc23d0f479d1aff95a1ae9db3d7d75edd9bdd9aba, 0x410c0a8ab2728bc3728e5fea96497d43ea56f20b, 0x3d9b41a0ac3e12c5c4709e08a0d84ab481365d30, 0xe128969bf9a7aa96944255cdd235a03b0bfb4140, 0x3330374892e639b5e137fa36ae248610b57006c3, 0xc190b3570c9b2cf98d97da5879f7745f07070dfe, 0x97b433dd0bad862621a78e350c398941d523535a, 0xa5a3b9763056258930590c91279643642b4714ea, 0x393b4f022869e093ccb25f8251970d81884d7ff5, 0x3d4010bd02a6f62486d767badb1bedc829f28ef4, 0xacb4d7405ae781adcc16cac86e72243af3508e55, 0xba31ef5fe837afb7f334110268043a1c737c9edc, 0xcc5c0af602812e5f2898b9c5bca28073e87dd605, 0x59914becb17de30340ef7f5143f2a1a27634fb2f, 0x720343cca2a8f31267cf499611fc43b601be771b, 0xdcbac6b90ca991d2019a4f38e9d5e94738284229, 0xba62bb37080c32b0368c629494065919f6890420, 0xb4bbabd6dcf41ed15ec34f875217e18ecbd4a28a]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-20250530/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-20250530/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-ARB@30MAY2025.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-ARB@30MAY2025.json new file mode 100644 index 0000000..c65f4d5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-ARB@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "324770690", + "timestamp": "1744254877" + }, + "market": "0x79A4963f8b2f8d997908615352A44192Bc3D23e7", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4d924ee8d2201D7f4da0B4921Fd9d24CA912B7cD", + "xt": "0x7c7feD69BBdEEC00cBe381cE21BD97D2745857BA", + "gt": "0x34d324Ab749BE907f5d60FB58D05f58C9D401666" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-WBTC@30MAY2025.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..b696bbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "324770690", + "timestamp": "1744254877" + }, + "market": "0x49E11668EAc15896ecF5B31baeF63C98897D4263", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xE9F18d347Fb782B7496d637D5EF5e8287d21Dd47", + "xt": "0x1B28415e1490262Ad20842D718b3272501dF27Cd", + "gt": "0xF1e33c79809159014207c4662A9C1A8a44c67744" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-WETH@30MAY2025.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-WETH@30MAY2025.json new file mode 100644 index 0000000..c123f90 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-WETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "324770690", + "timestamp": "1744254877" + }, + "market": "0x59e3D532727221ac3aeE2D6303cf3C39F1De65D7", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x56c574463b44dF7FaC5eCf650F1F66e640806a46", + "xt": "0xD781f71b8D0B27a098f85bf532b9640CbDDdC565", + "gt": "0x602F667B90Aac06ba269884e51Ff52E8723634C9" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-wstETH@30MAY2025.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..af46c14 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "324770690", + "timestamp": "1744254877" + }, + "market": "0xC62B23864c1e909868471bf72Cc457397BC52E13", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xdD6a46c4520eC02b0D3243bD43Eefc5aADcc329B", + "xt": "0xfc5AEdDE0155D3e5E5C8CA584795Bb4620DC670F", + "gt": "0xb0e34bB7a2A2bf475B14D3FFbB49F027C48529De" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-PT-weETH-26JUN2025@27JUN2025.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-PT-weETH-26JUN2025@27JUN2025.json new file mode 100644 index 0000000..0bc9045 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-PT-weETH-26JUN2025@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "324770690", + "timestamp": "1744254877" + }, + "market": "0xA016DecA4AbdB8fd94BC221a5feB15BA3DB62031", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x19a60ba0a5731eA9A6D2dBDf8e42Fa9412b27faa", + "xt": "0x4190aE2FF7716875104ffC1994323C43d65EF184", + "gt": "0x10bC3066fb401131a4D5C58fF469f392988B0ffC" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-weETH@30MAY2025.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..62e48c7 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "324770690", + "timestamp": "1744254877" + }, + "market": "0xa93A81835DAb4AC07649506B88AF7eE6DDaD03Ba", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x60Cf9d67A072084f6891bf65E223DBa7E1182D6A", + "xt": "0x1761b7a22f13C8E32f15D650ACf73F07e3bE0C8A", + "gt": "0xa42B46Fd5Ad2fd38Edf6F8509D1702a16cFBC5b6" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-wstETH@30MAY2025.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-wstETH@30MAY2025.json new file mode 100644 index 0000000..23fbd21 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-market-WETH-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "324770690", + "timestamp": "1744254877" + }, + "market": "0xcc60D097222f45538159D43681FBa4B1fD37DE97", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDd7049672aB42AF472D43849CBD25da619622f10", + "xt": "0x39FDbccDD78dED330EdcF11dE4FFd805a7F69D5E", + "gt": "0xc9244551127b07f0964a4320C86129a7C5F0826b" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-20250530/deploy-arb-markets-20250530.txt b/deployments/arb-mainnet-v1.0.8-20250530/deploy-arb-markets-20250530.txt new file mode 100644 index 0000000..d34f3b0 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-20250530/deploy-arb-markets-20250530.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xb2b014ea037e2ab91e91090a3d3afca9457b840b + + ===== Block Info ===== + Block number: 324770690 + Block timestamp: 1744254877 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 324770690 + + ===== Market Info - 0 ===== + Market deployed at: 0xcc60D097222f45538159D43681FBa4B1fD37DE97 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xDd7049672aB42AF472D43849CBD25da619622f10 + XT deployed at: 0x39FDbccDD78dED330EdcF11dE4FFd805a7F69D5E + GT deployed at: 0xc9244551127b07f0964a4320C86129a7C5F0826b + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@30MAY2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC62B23864c1e909868471bf72Cc457397BC52E13 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xdD6a46c4520eC02b0D3243bD43Eefc5aADcc329B + XT deployed at: 0xfc5AEdDE0155D3e5E5C8CA584795Bb4620DC670F + GT deployed at: 0xb0e34bB7a2A2bf475B14D3FFbB49F027C48529De + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@30MAY2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x49E11668EAc15896ecF5B31baeF63C98897D4263 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xE9F18d347Fb782B7496d637D5EF5e8287d21Dd47 + XT deployed at: 0x1B28415e1490262Ad20842D718b3272501dF27Cd + GT deployed at: 0xF1e33c79809159014207c4662A9C1A8a44c67744 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@30MAY2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xa93A81835DAb4AC07649506B88AF7eE6DDaD03Ba + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x60Cf9d67A072084f6891bf65E223DBa7E1182D6A + XT deployed at: 0x1761b7a22f13C8E32f15D650ACf73F07e3bE0C8A + GT deployed at: 0xa42B46Fd5Ad2fd38Edf6F8509D1702a16cFBC5b6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@30MAY2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x59e3D532727221ac3aeE2D6303cf3C39F1De65D7 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x56c574463b44dF7FaC5eCf650F1F66e640806a46 + XT deployed at: 0xD781f71b8D0B27a098f85bf532b9640CbDDdC565 + GT deployed at: 0x602F667B90Aac06ba269884e51Ff52E8723634C9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@30MAY2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x79A4963f8b2f8d997908615352A44192Bc3D23e7 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x4d924ee8d2201D7f4da0B4921Fd9d24CA912B7cD + XT deployed at: 0x7c7feD69BBdEEC00cBe381cE21BD97D2745857BA + GT deployed at: 0x34d324Ab749BE907f5d60FB58D05f58C9D401666 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@30MAY2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xA016DecA4AbdB8fd94BC221a5feB15BA3DB62031 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x19a60ba0a5731eA9A6D2dBDf8e42Fa9412b27faa + XT deployed at: 0x4190aE2FF7716875104ffC1994323C43d65EF184 + GT deployed at: 0x10bC3066fb401131a4D5C58fF469f392988B0ffC + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@27JUN2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.037730001 gwei + +Estimated total gas used for script: 10088133 + +Estimated amount required: 0.000380625268178133 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xcc60d097222f45538159d43681fba4b1fd37de97, 0xdd7049672ab42af472d43849cbd25da619622f10, 0x39fdbccdd78ded330edcf11de4ffd805a7f69d5e, 0xc9244551127b07f0964a4320c86129a7c5f0826b, 0xc62b23864c1e909868471bf72cc457397bc52e13, 0xdd6a46c4520ec02b0d3243bd43eefc5aadcc329b, 0xfc5aedde0155d3e5e5c8ca584795bb4620dc670f, 0xb0e34bb7a2a2bf475b14d3ffbb49f027c48529de, 0x49e11668eac15896ecf5b31baef63c98897d4263, 0xe9f18d347fb782b7496d637d5ef5e8287d21dd47, 0x1b28415e1490262ad20842d718b3272501df27cd, 0xf1e33c79809159014207c4662a9c1a8a44c67744, 0xa93a81835dab4ac07649506b88af7ee6ddad03ba, 0x60cf9d67a072084f6891bf65e223dba7e1182d6a, 0x1761b7a22f13c8e32f15d650acf73f07e3be0c8a, 0xa42b46fd5ad2fd38edf6f8509d1702a16cfbc5b6, 0x59e3d532727221ac3aee2d6303cf3c39f1de65d7, 0x56c574463b44df7fac5ecf650f1f66e640806a46, 0xd781f71b8d0b27a098f85bf532b9640cbdddc565, 0x602f667b90aac06ba269884e51ff52e8723634c9, 0x79a4963f8b2f8d997908615352a44192bc3d23e7, 0x4d924ee8d2201d7f4da0b4921fd9d24ca912b7cd, 0x7c7fed69bbdeec00cbe381ce21bd97d2745857ba, 0x34d324ab749be907f5d60fb58d05f58c9d401666, 0xa016deca4abdb8fd94bc221a5feb15ba3db62031, 0x19a60ba0a5731ea9a6d2dbdf8e42fa9412b27faa, 0x4190ae2ff7716875104ffc1994323c43d65ef184, 0x10bc3066fb401131a4d5c58ff469f392988b0ffc]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-ARB@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-ARB@11APR2025.json new file mode 100644 index 0000000..758e845 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-ARB@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325149891", + "timestamp": "1744349799" + }, + "market": "0x36f8fFc69441EdF1f52b4b978Fd94ED8a9dAf737", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xF09Ca86f5EF8b22bf7AfB9bC74A44a31EA6457e5", + "xt": "0xF0e6F190eb6b009981976185C09FF5c191C33717", + "gt": "0xa70856F585B871392db05c2E005A20A6e50b37E3" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-WBTC@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-WBTC@11APR2025.json new file mode 100644 index 0000000..dff47f7 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-WBTC@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325149891", + "timestamp": "1744349799" + }, + "market": "0x9ea78935DfCbE81EFdAB8870fdCD6D71a008e0f8", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x71d87ddf465398080f56554E465bF43C84b0dA0B", + "xt": "0xc399cF5a4de10D0b872CBd112f8cc7c66d54D5d1", + "gt": "0x0BB62BFC1339BF59030C759Ea85a526e7975e390" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-WETH@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-WETH@11APR2025.json new file mode 100644 index 0000000..122215b --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-WETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325149891", + "timestamp": "1744349799" + }, + "market": "0xA0BD7680c5A8B8988Fb12F396BB8a0Bfbd6f4bA3", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x814Cc3F80034970D6aa1eDC2d0fd2B85825B6b0E", + "xt": "0x4adcFeaD3a554762A70Ba2F6D916aFf5d918Ec4b", + "gt": "0xff556658051bA66562179853f2eF5915aA2dD712" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-wstETH@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-wstETH@11APR2025.json new file mode 100644 index 0000000..d27337e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-USDC-wstETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325149891", + "timestamp": "1744349799" + }, + "market": "0x2157B903582802F3E7562685CE2385D697cf593a", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD9Cbf987a671097870654Cfdfb78d8F3b38BeEbC", + "xt": "0xb44aDdAc938B10EA7cda7d81FE4EA2ef58E3a65c", + "gt": "0xfC1775e4256B2a40DfDb9C92746d78ba06A47EBa" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@11APR2025.json new file mode 100644 index 0000000..231da22 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325149891", + "timestamp": "1744349799" + }, + "market": "0xd4B04EE3f32Cc9e7C8b91D76a801C925CEF125c3", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2774Fd4853736B0A6dCcb2fFb2DE72cCFAEb8482", + "xt": "0x55558cec4e1CC3ae4E657E0E454AC2CEbb5347e8", + "gt": "0x9c66Be7Aff46630144EE737CDA5518e491a2a35d" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-weETH@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-weETH@11APR2025.json new file mode 100644 index 0000000..1ae5c2f --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-weETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325149891", + "timestamp": "1744349799" + }, + "market": "0x85b5cFe61f8D989406b9f17Aa81c718DDdc9322A", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7B86B36ce1C227EC193AaA2cC3b8F1586348b570", + "xt": "0x64033a21B9874b953a9025cD7Ea19b56b9925E7a", + "gt": "0x7C23a5455Fed12661F84aa35B71Fd5fE243F0FEb" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-wstETH@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-wstETH@11APR2025.json new file mode 100644 index 0000000..b3d285b --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-market-WETH-wstETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325149891", + "timestamp": "1744349799" + }, + "market": "0x447d5ba6F9e3Ad8E3F8155Ef759E29f9DbE43C9A", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xf2F0Efd4aB75f44E93868874A4dbd4252147A000", + "xt": "0x17EB9733eb098493e10A4459aeD059D0daE85bEc", + "gt": "0x8b36cFd1B28ff385A7306a34f18fE04523D3C912" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-1500/deploy-arb-markets-test-0411-1500-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/deploy-arb-markets-test-0411-1500-log.txt new file mode 100644 index 0000000..fa52257 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-1500/deploy-arb-markets-test-0411-1500-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x8276d5d79cb2ee0475a52d58d6eaca7d4b30f877 + + ===== Block Info ===== + Block number: 325149891 + Block timestamp: 1744349799 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 325149891 + + ===== Market Info - 0 ===== + Market deployed at: 0x447d5ba6F9e3Ad8E3F8155Ef759E29f9DbE43C9A + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xf2F0Efd4aB75f44E93868874A4dbd4252147A000 + XT deployed at: 0x17EB9733eb098493e10A4459aeD059D0daE85bEc + GT deployed at: 0x8b36cFd1B28ff385A7306a34f18fE04523D3C912 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@11APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x2157B903582802F3E7562685CE2385D697cf593a + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xD9Cbf987a671097870654Cfdfb78d8F3b38BeEbC + XT deployed at: 0xb44aDdAc938B10EA7cda7d81FE4EA2ef58E3a65c + GT deployed at: 0xfC1775e4256B2a40DfDb9C92746d78ba06A47EBa + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@11APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x9ea78935DfCbE81EFdAB8870fdCD6D71a008e0f8 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x71d87ddf465398080f56554E465bF43C84b0dA0B + XT deployed at: 0xc399cF5a4de10D0b872CBd112f8cc7c66d54D5d1 + GT deployed at: 0x0BB62BFC1339BF59030C759Ea85a526e7975e390 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@11APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x85b5cFe61f8D989406b9f17Aa81c718DDdc9322A + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x7B86B36ce1C227EC193AaA2cC3b8F1586348b570 + XT deployed at: 0x64033a21B9874b953a9025cD7Ea19b56b9925E7a + GT deployed at: 0x7C23a5455Fed12661F84aa35B71Fd5fE243F0FEb + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@11APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xA0BD7680c5A8B8988Fb12F396BB8a0Bfbd6f4bA3 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x814Cc3F80034970D6aa1eDC2d0fd2B85825B6b0E + XT deployed at: 0x4adcFeaD3a554762A70Ba2F6D916aFf5d918Ec4b + GT deployed at: 0xff556658051bA66562179853f2eF5915aA2dD712 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@11APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x36f8fFc69441EdF1f52b4b978Fd94ED8a9dAf737 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xF09Ca86f5EF8b22bf7AfB9bC74A44a31EA6457e5 + XT deployed at: 0xF0e6F190eb6b009981976185C09FF5c191C33717 + GT deployed at: 0xa70856F585B871392db05c2E005A20A6e50b37E3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@11APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xd4B04EE3f32Cc9e7C8b91D76a801C925CEF125c3 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x2774Fd4853736B0A6dCcb2fFb2DE72cCFAEb8482 + XT deployed at: 0x55558cec4e1CC3ae4E657E0E454AC2CEbb5347e8 + GT deployed at: 0x9c66Be7Aff46630144EE737CDA5518e491a2a35d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@11APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10134099 + +Estimated amount required: 0.000202681990134099 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x447d5ba6f9e3ad8e3f8155ef759e29f9dbe43c9a, 0xf2f0efd4ab75f44e93868874a4dbd4252147a000, 0x17eb9733eb098493e10a4459aed059d0dae85bec, 0x8b36cfd1b28ff385a7306a34f18fe04523d3c912, 0x2157b903582802f3e7562685ce2385d697cf593a, 0xd9cbf987a671097870654cfdfb78d8f3b38beebc, 0xb44addac938b10ea7cda7d81fe4ea2ef58e3a65c, 0xfc1775e4256b2a40dfdb9c92746d78ba06a47eba, 0x9ea78935dfcbe81efdab8870fdcd6d71a008e0f8, 0x71d87ddf465398080f56554e465bf43c84b0da0b, 0xc399cf5a4de10d0b872cbd112f8cc7c66d54d5d1, 0x0bb62bfc1339bf59030c759ea85a526e7975e390, 0x85b5cfe61f8d989406b9f17aa81c718dddc9322a, 0x7b86b36ce1c227ec193aaa2cc3b8f1586348b570, 0x64033a21b9874b953a9025cd7ea19b56b9925e7a, 0x7c23a5455fed12661f84aa35b71fd5fe243f0feb, 0xa0bd7680c5a8b8988fb12f396bb8a0bfbd6f4ba3, 0x814cc3f80034970d6aa1edc2d0fd2b85825b6b0e, 0x4adcfead3a554762a70ba2f6d916aff5d918ec4b, 0xff556658051ba66562179853f2ef5915aa2dd712, 0x36f8ffc69441edf1f52b4b978fd94ed8a9daf737, 0xf09ca86f5ef8b22bf7afb9bc74a44a31ea6457e5, 0xf0e6f190eb6b009981976185c09ff5c191c33717, 0xa70856f585b871392db05c2e005a20a6e50b37e3, 0xd4b04ee3f32cc9e7c8b91d76a801c925cef125c3, 0x2774fd4853736b0a6dccb2ffb2de72ccfaeb8482, 0x55558cec4e1cc3ae4e657e0e454ac2cebb5347e8, 0x9c66be7aff46630144ee737cda5518e491a2a35d]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-ARB@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-ARB@11APR2025.json new file mode 100644 index 0000000..f014a26 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-ARB@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325151570", + "timestamp": "1744350219" + }, + "market": "0xC9F2352aEcB12632a43126a2408C9841a43eE1ea", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xED97598a7Cee1bbe2802bcef15CB74fCe29FeFf2", + "xt": "0x0B182c45F1296EFd23433a473a8f4C513cf51f70", + "gt": "0xd725F92C42133f3ba4B5cDB3a99b2113FD231Ff0" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-WBTC@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-WBTC@11APR2025.json new file mode 100644 index 0000000..2caa54a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-WBTC@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325151570", + "timestamp": "1744350219" + }, + "market": "0xB1aa1Bf2971199f19F48828533bc3f30D5b8B27f", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x82EFA0dEdE8656a8D2363548a74321F0A802a0B7", + "xt": "0x8C488f42dCE530735E1D1B20CA3981a2eA165f07", + "gt": "0x6C865Eb499225F2d472B91E9aF19353cAf1344D7" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-WETH@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-WETH@11APR2025.json new file mode 100644 index 0000000..e17b7c3 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-WETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325151570", + "timestamp": "1744350219" + }, + "market": "0x53F529923d3b122bCe02249a961Ad128549613fd", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x45FD84bF71c79649eC13a37d8A18213845d88bfF", + "xt": "0x6C2CA7752E179cb7C84871FFAee09C0C9B0a6079", + "gt": "0x4B07298c4870322cBD9aDB6C491c4D67a32AF81d" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-wstETH@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-wstETH@11APR2025.json new file mode 100644 index 0000000..b265b05 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-USDC-wstETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325151570", + "timestamp": "1744350219" + }, + "market": "0x082B417692a2983dF2baF57D4baF5B18d0e39D84", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x729882074d89692b582464801044dB6b07A655AA", + "xt": "0xd8D2558cd04e7ea3b538A4f262d8F862cf61dF8B", + "gt": "0x3cBe84B3de1fe3287df900a844b117707a2e362C" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@11APR2025.json new file mode 100644 index 0000000..7dd4d91 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325151570", + "timestamp": "1744350219" + }, + "market": "0x328F2F1525C5AAbd5535439A59A0C263fa9200C7", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x43F64C850D6C33f88c6aFb512973ab002bCE4fE5", + "xt": "0x1024D1F26920E7419679D612F159826115196D9f", + "gt": "0x0C87E3c399A3D719219E8511CdD9c9CC2630B632" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-weETH@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-weETH@11APR2025.json new file mode 100644 index 0000000..c2e6c48 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-weETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325151570", + "timestamp": "1744350219" + }, + "market": "0x32f5aBB7ee2F1a49a0497De6D712FFf04Bfe68f6", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1ef03aD3e847303Aa8f465a716E474666Bc64B66", + "xt": "0x85189787cf75629A35c3f0Ae6729bdFEA6fC93ad", + "gt": "0x80Ad699E85F78a50Cc7Fcf52e8dd15B97a426eEF" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-wstETH@11APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-wstETH@11APR2025.json new file mode 100644 index 0000000..9f6e829 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-market-WETH-wstETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325151570", + "timestamp": "1744350219" + }, + "market": "0xDF89891c8fccaA682266170406Fa00158552B30E", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6dBD3e2fe29FEa64e3218971Fa0a656e7C873174", + "xt": "0xBEECd0eD11c6dC81B0A20B75aE4dCB7ECb4fFFe1", + "gt": "0x0b3381731b9D74F29d144B3ED5Cc3106E30345dB" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250411-2000/deploy-arb-markets-test-0411-2000-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/deploy-arb-markets-test-0411-2000-log.txt new file mode 100644 index 0000000..281614a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250411-2000/deploy-arb-markets-test-0411-2000-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x8276d5d79cb2ee0475a52d58d6eaca7d4b30f877 + + ===== Block Info ===== + Block number: 325151570 + Block timestamp: 1744350219 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 325151570 + + ===== Market Info - 0 ===== + Market deployed at: 0xDF89891c8fccaA682266170406Fa00158552B30E + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x6dBD3e2fe29FEa64e3218971Fa0a656e7C873174 + XT deployed at: 0xBEECd0eD11c6dC81B0A20B75aE4dCB7ECb4fFFe1 + GT deployed at: 0x0b3381731b9D74F29d144B3ED5Cc3106E30345dB + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@11APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x082B417692a2983dF2baF57D4baF5B18d0e39D84 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x729882074d89692b582464801044dB6b07A655AA + XT deployed at: 0xd8D2558cd04e7ea3b538A4f262d8F862cf61dF8B + GT deployed at: 0x3cBe84B3de1fe3287df900a844b117707a2e362C + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@11APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xB1aa1Bf2971199f19F48828533bc3f30D5b8B27f + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x82EFA0dEdE8656a8D2363548a74321F0A802a0B7 + XT deployed at: 0x8C488f42dCE530735E1D1B20CA3981a2eA165f07 + GT deployed at: 0x6C865Eb499225F2d472B91E9aF19353cAf1344D7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@11APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x32f5aBB7ee2F1a49a0497De6D712FFf04Bfe68f6 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x1ef03aD3e847303Aa8f465a716E474666Bc64B66 + XT deployed at: 0x85189787cf75629A35c3f0Ae6729bdFEA6fC93ad + GT deployed at: 0x80Ad699E85F78a50Cc7Fcf52e8dd15B97a426eEF + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@11APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x53F529923d3b122bCe02249a961Ad128549613fd + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x45FD84bF71c79649eC13a37d8A18213845d88bfF + XT deployed at: 0x6C2CA7752E179cb7C84871FFAee09C0C9B0a6079 + GT deployed at: 0x4B07298c4870322cBD9aDB6C491c4D67a32AF81d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@11APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xC9F2352aEcB12632a43126a2408C9841a43eE1ea + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xED97598a7Cee1bbe2802bcef15CB74fCe29FeFf2 + XT deployed at: 0x0B182c45F1296EFd23433a473a8f4C513cf51f70 + GT deployed at: 0xd725F92C42133f3ba4B5cDB3a99b2113FD231Ff0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@11APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x328F2F1525C5AAbd5535439A59A0C263fa9200C7 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x43F64C850D6C33f88c6aFb512973ab002bCE4fE5 + XT deployed at: 0x1024D1F26920E7419679D612F159826115196D9f + GT deployed at: 0x0C87E3c399A3D719219E8511CdD9c9CC2630B632 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@11APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10158983 + +Estimated amount required: 0.000203179670158983 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xdf89891c8fccaa682266170406fa00158552b30e, 0x6dbd3e2fe29fea64e3218971fa0a656e7c873174, 0xbeecd0ed11c6dc81b0a20b75ae4dcb7ecb4fffe1, 0x0b3381731b9d74f29d144b3ed5cc3106e30345db, 0x082b417692a2983df2baf57d4baf5b18d0e39d84, 0x729882074d89692b582464801044db6b07a655aa, 0xd8d2558cd04e7ea3b538a4f262d8f862cf61df8b, 0x3cbe84b3de1fe3287df900a844b117707a2e362c, 0xb1aa1bf2971199f19f48828533bc3f30d5b8b27f, 0x82efa0dede8656a8d2363548a74321f0a802a0b7, 0x8c488f42dce530735e1d1b20ca3981a2ea165f07, 0x6c865eb499225f2d472b91e9af19353caf1344d7, 0x32f5abb7ee2f1a49a0497de6d712fff04bfe68f6, 0x1ef03ad3e847303aa8f465a716e474666bc64b66, 0x85189787cf75629a35c3f0ae6729bdfea6fc93ad, 0x80ad699e85f78a50cc7fcf52e8dd15b97a426eef, 0x53f529923d3b122bce02249a961ad128549613fd, 0x45fd84bf71c79649ec13a37d8a18213845d88bff, 0x6c2ca7752e179cb7c84871ffaee09c0c9b0a6079, 0x4b07298c4870322cbd9adb6c491c4d67a32af81d, 0xc9f2352aecb12632a43126a2408c9841a43ee1ea, 0xed97598a7cee1bbe2802bcef15cb74fce29feff2, 0x0b182c45f1296efd23433a473a8f4c513cf51f70, 0xd725f92c42133f3ba4b5cdb3a99b2113fd231ff0, 0x328f2f1525c5aabd5535439a59a0c263fa9200c7, 0x43f64c850d6c33f88c6afb512973ab002bce4fe5, 0x1024d1f26920e7419679d612f159826115196d9f, 0x0c87e3c399a3d719219e8511cdd9c9cc2630b632]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-ARB@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-ARB@12APR2025.json new file mode 100644 index 0000000..2c2a24a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-ARB@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325153499", + "timestamp": "1744350702" + }, + "market": "0xBA6D2FcCA88E1aD3594202b2d59aCfBAACe48065", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb3b0E40362Ec1F2BEb3aBcd9a73De22616FFe696", + "xt": "0x865577f73CCC60D9009e6D101b0F66B6077DDF93", + "gt": "0x536900f59384e3269aB6a902a2000FBCE969C55B" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-WBTC@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-WBTC@12APR2025.json new file mode 100644 index 0000000..8eaaaa3 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-WBTC@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325153499", + "timestamp": "1744350702" + }, + "market": "0xccd3e263bB1beC696E75Fd86a6d1F59777D1b1be", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x272DD113247b61175eFb01a5b0FeE771598f7c08", + "xt": "0x11F7f9517eDf2aEE3cBC26F012dC11069749a524", + "gt": "0x8b0880b4f5C385B5e1DfC2CAC9e2D11B636c2A74" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-WETH@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-WETH@12APR2025.json new file mode 100644 index 0000000..cc4c200 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-WETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325153499", + "timestamp": "1744350702" + }, + "market": "0x0f44f0045eCb773f42785513Cc77AC15AAeBe9De", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x435b5FA350D56E69eb8ad6bA0e684A7B83655bBD", + "xt": "0x3404f3358792b5342A68228BA401ad5c97e7dC68", + "gt": "0xbC3d90b34f0a7Ea5fbF0cf1332A2Ba3F6bbfe055" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-wstETH@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-wstETH@12APR2025.json new file mode 100644 index 0000000..c1d6071 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-USDC-wstETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325153499", + "timestamp": "1744350702" + }, + "market": "0x226Bb027F57913efD1D1d84984A6a7436F09E371", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x24471a05c423bfe0720Eb7A66D6C9711F472C467", + "xt": "0x9d24Deb957EE67e7911bf74ed8247B6D3D3B819f", + "gt": "0x5b1e4fA44ad0E3645e6AA7Bf7eB886Df713d509c" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@12APR2025.json new file mode 100644 index 0000000..423d205 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325153499", + "timestamp": "1744350702" + }, + "market": "0x323F04176547A62ad0d31Aab153180a7bF06246b", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0b961Ca70A8432e3f2c9CF05B9101341D199B110", + "xt": "0xe86c7Ab2feA926Eb5D550D10305cc04355223f5a", + "gt": "0x22b7f00759e599AdFFA71f0A3Ebe2b2DBFb2d49A" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-weETH@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-weETH@12APR2025.json new file mode 100644 index 0000000..9b97a99 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-weETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325153499", + "timestamp": "1744350702" + }, + "market": "0x4Db3E6D2a025a1aC6D20d1f90e4e0f636D14d4D4", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4B8E353D2Aa9fBaEbcBb5ceA934611823c699E15", + "xt": "0x2224BA35C2Ec03974ff310ED5e9542c62384465F", + "gt": "0x26cbD6B9cC6eC5DE77D85e0D69Bc216adcA4B1b4" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-wstETH@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-wstETH@12APR2025.json new file mode 100644 index 0000000..16a192a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-market-WETH-wstETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325153499", + "timestamp": "1744350702" + }, + "market": "0x8eF545Af5c174D33Cd75eB142A279414fDC69A98", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x148678346f8B3687d456CC153aE5DDAFD130b995", + "xt": "0xc36e3340643D4cF593F2ce40daFE7cFC42d098f5", + "gt": "0xE14c0c08dB7314Ebe4C2a474Fc7C451548b5ebF9" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-1500/deploy-arb-markets-test-0412-1500-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/deploy-arb-markets-test-0412-1500-log.txt new file mode 100644 index 0000000..d8c2b37 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-1500/deploy-arb-markets-test-0412-1500-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x8276d5d79cb2ee0475a52d58d6eaca7d4b30f877 + + ===== Block Info ===== + Block number: 325153499 + Block timestamp: 1744350702 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 325153499 + + ===== Market Info - 0 ===== + Market deployed at: 0x8eF545Af5c174D33Cd75eB142A279414fDC69A98 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x148678346f8B3687d456CC153aE5DDAFD130b995 + XT deployed at: 0xc36e3340643D4cF593F2ce40daFE7cFC42d098f5 + GT deployed at: 0xE14c0c08dB7314Ebe4C2a474Fc7C451548b5ebF9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@12APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x226Bb027F57913efD1D1d84984A6a7436F09E371 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x24471a05c423bfe0720Eb7A66D6C9711F472C467 + XT deployed at: 0x9d24Deb957EE67e7911bf74ed8247B6D3D3B819f + GT deployed at: 0x5b1e4fA44ad0E3645e6AA7Bf7eB886Df713d509c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@12APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xccd3e263bB1beC696E75Fd86a6d1F59777D1b1be + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x272DD113247b61175eFb01a5b0FeE771598f7c08 + XT deployed at: 0x11F7f9517eDf2aEE3cBC26F012dC11069749a524 + GT deployed at: 0x8b0880b4f5C385B5e1DfC2CAC9e2D11B636c2A74 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@12APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x4Db3E6D2a025a1aC6D20d1f90e4e0f636D14d4D4 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x4B8E353D2Aa9fBaEbcBb5ceA934611823c699E15 + XT deployed at: 0x2224BA35C2Ec03974ff310ED5e9542c62384465F + GT deployed at: 0x26cbD6B9cC6eC5DE77D85e0D69Bc216adcA4B1b4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@12APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x0f44f0045eCb773f42785513Cc77AC15AAeBe9De + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x435b5FA350D56E69eb8ad6bA0e684A7B83655bBD + XT deployed at: 0x3404f3358792b5342A68228BA401ad5c97e7dC68 + GT deployed at: 0xbC3d90b34f0a7Ea5fbF0cf1332A2Ba3F6bbfe055 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@12APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xBA6D2FcCA88E1aD3594202b2d59aCfBAACe48065 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xb3b0E40362Ec1F2BEb3aBcd9a73De22616FFe696 + XT deployed at: 0x865577f73CCC60D9009e6D101b0F66B6077DDF93 + GT deployed at: 0x536900f59384e3269aB6a902a2000FBCE969C55B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@12APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x323F04176547A62ad0d31Aab153180a7bF06246b + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x0b961Ca70A8432e3f2c9CF05B9101341D199B110 + XT deployed at: 0xe86c7Ab2feA926Eb5D550D10305cc04355223f5a + GT deployed at: 0x22b7f00759e599AdFFA71f0A3Ebe2b2DBFb2d49A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@12APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10137940 + +Estimated amount required: 0.00020275881013794 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x8ef545af5c174d33cd75eb142a279414fdc69a98, 0x148678346f8b3687d456cc153ae5ddafd130b995, 0xc36e3340643d4cf593f2ce40dafe7cfc42d098f5, 0xe14c0c08db7314ebe4c2a474fc7c451548b5ebf9, 0x226bb027f57913efd1d1d84984a6a7436f09e371, 0x24471a05c423bfe0720eb7a66d6c9711f472c467, 0x9d24deb957ee67e7911bf74ed8247b6d3d3b819f, 0x5b1e4fa44ad0e3645e6aa7bf7eb886df713d509c, 0xccd3e263bb1bec696e75fd86a6d1f59777d1b1be, 0x272dd113247b61175efb01a5b0fee771598f7c08, 0x11f7f9517edf2aee3cbc26f012dc11069749a524, 0x8b0880b4f5c385b5e1dfc2cac9e2d11b636c2a74, 0x4db3e6d2a025a1ac6d20d1f90e4e0f636d14d4d4, 0x4b8e353d2aa9fbaebcbb5cea934611823c699e15, 0x2224ba35c2ec03974ff310ed5e9542c62384465f, 0x26cbd6b9cc6ec5de77d85e0d69bc216adca4b1b4, 0x0f44f0045ecb773f42785513cc77ac15aaebe9de, 0x435b5fa350d56e69eb8ad6ba0e684a7b83655bbd, 0x3404f3358792b5342a68228ba401ad5c97e7dc68, 0xbc3d90b34f0a7ea5fbf0cf1332a2ba3f6bbfe055, 0xba6d2fcca88e1ad3594202b2d59acfbaace48065, 0xb3b0e40362ec1f2beb3abcd9a73de22616ffe696, 0x865577f73ccc60d9009e6d101b0f66b6077ddf93, 0x536900f59384e3269ab6a902a2000fbce969c55b, 0x323f04176547a62ad0d31aab153180a7bf06246b, 0x0b961ca70a8432e3f2c9cf05b9101341d199b110, 0xe86c7ab2fea926eb5d550d10305cc04355223f5a, 0x22b7f00759e599adffa71f0a3ebe2b2dbfb2d49a]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-ARB@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-ARB@12APR2025.json new file mode 100644 index 0000000..a420a19 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-ARB@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325154473", + "timestamp": "1744350945" + }, + "market": "0x596B8597f003c129eFbed3F63D36Dc613305D42E", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x982B5cf38D9c3B4C3B9566FA4DceB0cf89E25B9b", + "xt": "0x80DF08BAE1E16e42788f21508CdaF2FeA0dd0663", + "gt": "0x5CB6d321565c84307cF25E94EdA94DA94FBDCd25" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-WBTC@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-WBTC@12APR2025.json new file mode 100644 index 0000000..c9a7009 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-WBTC@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325154473", + "timestamp": "1744350945" + }, + "market": "0x56FB65a3164C6aA537bc4437356f28d07036b33e", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDdE6FC783F25d8DD47162C9100508dE576865768", + "xt": "0xbAA98F744728CF318E696f40Fc0a1851325fcDc6", + "gt": "0x90882Eb67934898A7bAE755985A9D321DE9D7466" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-WETH@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-WETH@12APR2025.json new file mode 100644 index 0000000..19cd4fb --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-WETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325154473", + "timestamp": "1744350945" + }, + "market": "0xF85e7e15225E229E7789B480ef05475D001dFE06", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xE3EE0A7E3c7dd8F25249D6ed1B0496DAA3BAe55b", + "xt": "0x4804865142CDb34dc4fEBFE57D40117C2a51192D", + "gt": "0x86b61b7B69a02e235A179b19160F170545C01d14" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-wstETH@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-wstETH@12APR2025.json new file mode 100644 index 0000000..8b5ed0b --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-USDC-wstETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325154473", + "timestamp": "1744350945" + }, + "market": "0xB8f785d20F527de5409399CFB108e7DB4563b974", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB96B454C9A83089A9Cf91eA91f6B0120C6C59cb3", + "xt": "0xEcef649eE25a7DeD0F252161AE9757b838B0E15A", + "gt": "0x7Ed6665393c02e9bb47c99B91eC29d4d8094b8c2" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@12APR2025.json new file mode 100644 index 0000000..c6da710 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325154473", + "timestamp": "1744350945" + }, + "market": "0xb537AeD9e4C331008A8cF715240921533a42318F", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x62D6CC44668E1D23dA42428D8eC9bE011558e0c0", + "xt": "0xaB51Ad62aDD57f1172D943Cc5Ba180Dccd822695", + "gt": "0xFB4221fa146958582aF3C718214618eF77a928f9" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-weETH@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-weETH@12APR2025.json new file mode 100644 index 0000000..93a234d --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-weETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325154473", + "timestamp": "1744350945" + }, + "market": "0x91803E2F0253bc70Fb4fc44b32052665B5750928", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xbA1b5483FF0c3f573E6275fCD26eF464919D2291", + "xt": "0x8BdB64f58f1D1cf0C1d19A993DB2d829f1BDA356", + "gt": "0xeE97c27cc95CB88154f4DA902B525B90eb7A1FF0" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-wstETH@12APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-wstETH@12APR2025.json new file mode 100644 index 0000000..2f13abe --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-market-WETH-wstETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325154473", + "timestamp": "1744350945" + }, + "market": "0x0812A235A2310feEBA8ca0518b0058dAd6ECaf47", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7Eec7c1A76635bE779CD0BA3c207bA9973FD150d", + "xt": "0x9e99a233cDa761AcB7d4D85276A57b40B7A51364", + "gt": "0x05E4aCf6bbE00A4e23d09aE650Df099856871236" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250412-2000/deploy-arb-markets-test-0412-2000-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/deploy-arb-markets-test-0412-2000-log.txt new file mode 100644 index 0000000..6907a04 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250412-2000/deploy-arb-markets-test-0412-2000-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x8276d5d79cb2ee0475a52d58d6eaca7d4b30f877 + + ===== Block Info ===== + Block number: 325154473 + Block timestamp: 1744350945 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 325154473 + + ===== Market Info - 0 ===== + Market deployed at: 0x0812A235A2310feEBA8ca0518b0058dAd6ECaf47 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x7Eec7c1A76635bE779CD0BA3c207bA9973FD150d + XT deployed at: 0x9e99a233cDa761AcB7d4D85276A57b40B7A51364 + GT deployed at: 0x05E4aCf6bbE00A4e23d09aE650Df099856871236 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@12APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xB8f785d20F527de5409399CFB108e7DB4563b974 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xB96B454C9A83089A9Cf91eA91f6B0120C6C59cb3 + XT deployed at: 0xEcef649eE25a7DeD0F252161AE9757b838B0E15A + GT deployed at: 0x7Ed6665393c02e9bb47c99B91eC29d4d8094b8c2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@12APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x56FB65a3164C6aA537bc4437356f28d07036b33e + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xDdE6FC783F25d8DD47162C9100508dE576865768 + XT deployed at: 0xbAA98F744728CF318E696f40Fc0a1851325fcDc6 + GT deployed at: 0x90882Eb67934898A7bAE755985A9D321DE9D7466 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@12APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x91803E2F0253bc70Fb4fc44b32052665B5750928 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xbA1b5483FF0c3f573E6275fCD26eF464919D2291 + XT deployed at: 0x8BdB64f58f1D1cf0C1d19A993DB2d829f1BDA356 + GT deployed at: 0xeE97c27cc95CB88154f4DA902B525B90eb7A1FF0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@12APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xF85e7e15225E229E7789B480ef05475D001dFE06 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xE3EE0A7E3c7dd8F25249D6ed1B0496DAA3BAe55b + XT deployed at: 0x4804865142CDb34dc4fEBFE57D40117C2a51192D + GT deployed at: 0x86b61b7B69a02e235A179b19160F170545C01d14 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@12APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x596B8597f003c129eFbed3F63D36Dc613305D42E + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x982B5cf38D9c3B4C3B9566FA4DceB0cf89E25B9b + XT deployed at: 0x80DF08BAE1E16e42788f21508CdaF2FeA0dd0663 + GT deployed at: 0x5CB6d321565c84307cF25E94EdA94DA94FBDCd25 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@12APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xb537AeD9e4C331008A8cF715240921533a42318F + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x62D6CC44668E1D23dA42428D8eC9bE011558e0c0 + XT deployed at: 0xaB51Ad62aDD57f1172D943Cc5Ba180Dccd822695 + GT deployed at: 0xFB4221fa146958582aF3C718214618eF77a928f9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@12APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10150327 + +Estimated amount required: 0.000203006550150327 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x0812a235a2310feeba8ca0518b0058dad6ecaf47, 0x7eec7c1a76635be779cd0ba3c207ba9973fd150d, 0x9e99a233cda761acb7d4d85276a57b40b7a51364, 0x05e4acf6bbe00a4e23d09ae650df099856871236, 0xb8f785d20f527de5409399cfb108e7db4563b974, 0xb96b454c9a83089a9cf91ea91f6b0120c6c59cb3, 0xecef649ee25a7ded0f252161ae9757b838b0e15a, 0x7ed6665393c02e9bb47c99b91ec29d4d8094b8c2, 0x56fb65a3164c6aa537bc4437356f28d07036b33e, 0xdde6fc783f25d8dd47162c9100508de576865768, 0xbaa98f744728cf318e696f40fc0a1851325fcdc6, 0x90882eb67934898a7bae755985a9d321de9d7466, 0x91803e2f0253bc70fb4fc44b32052665b5750928, 0xba1b5483ff0c3f573e6275fcd26ef464919d2291, 0x8bdb64f58f1d1cf0c1d19a993db2d829f1bda356, 0xee97c27cc95cb88154f4da902b525b90eb7a1ff0, 0xf85e7e15225e229e7789b480ef05475d001dfe06, 0xe3ee0a7e3c7dd8f25249d6ed1b0496daa3bae55b, 0x4804865142cdb34dc4febfe57d40117c2a51192d, 0x86b61b7b69a02e235a179b19160f170545c01d14, 0x596b8597f003c129efbed3f63d36dc613305d42e, 0x982b5cf38d9c3b4c3b9566fa4dceb0cf89e25b9b, 0x80df08bae1e16e42788f21508cdaf2fea0dd0663, 0x5cb6d321565c84307cf25e94eda94da94fbdcd25, 0xb537aed9e4c331008a8cf715240921533a42318f, 0x62d6cc44668e1d23da42428d8ec9be011558e0c0, 0xab51ad62add57f1172d943cc5ba180dccd822695, 0xfb4221fa146958582af3c718214618ef77a928f9]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-ARB@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-ARB@13APR2025.json new file mode 100644 index 0000000..2d58afa --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-ARB@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325155286", + "timestamp": "1744351148" + }, + "market": "0x130fDEE7436D62afE5e2f69C671a15E6CF94c9BC", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xE96f358ad04Cc597534d512B31fc942B71A48Eb1", + "xt": "0xb23d0bC3BE551363fb4Df42e9e3FCCdC7C06b338", + "gt": "0x085545810313f824E3a9A4460ba98Ff8b23D9D09" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-WBTC@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-WBTC@13APR2025.json new file mode 100644 index 0000000..450f5cf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-WBTC@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325155286", + "timestamp": "1744351148" + }, + "market": "0xE2462f7fc1435d2C035cC379e308c4c6459F428f", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xd8d31eb463d9769CDa68e7c36bf5ac6947b5608F", + "xt": "0xBbc32246c065aE9d0b71BFB0030fD84f2AB0F7D6", + "gt": "0x6d2C24786E871F13bf0d74274Fd43e99242fEcAe" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-WETH@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-WETH@13APR2025.json new file mode 100644 index 0000000..2cd3d8a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-WETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325155286", + "timestamp": "1744351148" + }, + "market": "0xE8104A63d1a3fa2E356150C3dbC6F9CeF8FCefac", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xBb057E410da64ac32fCE4a4D97784463E6baA587", + "xt": "0x2D9e7f75362B5be38C222cF689eBE147097baDAB", + "gt": "0xEB2Cf4345317F33d52BA2de7dd405289bF2aa9CE" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-wstETH@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-wstETH@13APR2025.json new file mode 100644 index 0000000..82b3d4c --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-USDC-wstETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325155286", + "timestamp": "1744351148" + }, + "market": "0x312fD0012412BaB57d43521a8197a98d68483d41", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xe39Cb550D3e855958250F2D2EE04a8C54FDE55e1", + "xt": "0xFf54bcA6f75F6F894855aA1D7d75f7dc220dc0Ef", + "gt": "0x398438cD1f5f176A43357653C7f9db6254dc0e9B" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@13APR2025.json new file mode 100644 index 0000000..4727de3 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325155286", + "timestamp": "1744351148" + }, + "market": "0xbA65D3140272ffFBb4eB6bFB5DA4Cef740DeaE56", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xc2E827a2b5B85DFe3586C759d15668E71C57cCda", + "xt": "0xEedfBE3C5De26348D818d39a42Cdc62C339A69a2", + "gt": "0x8833bff000b8fee7Db10d59d1e1750Fa172d007E" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-weETH@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-weETH@13APR2025.json new file mode 100644 index 0000000..241600a --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-weETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325155286", + "timestamp": "1744351148" + }, + "market": "0x0eEbaBAc5cED8032772b1501573C6f9bf7a084e1", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3F7d367a5d75a9183C28b029bAc1f2fa4E28B8A8", + "xt": "0x5536299a06a020D5aE3A7f44f98BC1cAc623F85a", + "gt": "0xA14049d807aD34375D29da5dcd85Bc91aAD555A6" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-wstETH@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-wstETH@13APR2025.json new file mode 100644 index 0000000..e6aea20 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-market-WETH-wstETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325155286", + "timestamp": "1744351148" + }, + "market": "0x2ee11875D023Cc70a191b0eFc06d63A1Db14EAa7", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x47ED39cE3e241A9d825086738297B4DB2155d334", + "xt": "0x69B7b2AA55Eeb9eaeDde6eAc849fa3e454EF3fd0", + "gt": "0x48D0a8C890f476d3F256f6Be9824125b778a0205" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-1500/deploy-arb-markets-test-0413-1500-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/deploy-arb-markets-test-0413-1500-log.txt new file mode 100644 index 0000000..c96b012 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-1500/deploy-arb-markets-test-0413-1500-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x8276d5d79cb2ee0475a52d58d6eaca7d4b30f877 + + ===== Block Info ===== + Block number: 325155286 + Block timestamp: 1744351148 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 325155286 + + ===== Market Info - 0 ===== + Market deployed at: 0x2ee11875D023Cc70a191b0eFc06d63A1Db14EAa7 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x47ED39cE3e241A9d825086738297B4DB2155d334 + XT deployed at: 0x69B7b2AA55Eeb9eaeDde6eAc849fa3e454EF3fd0 + GT deployed at: 0x48D0a8C890f476d3F256f6Be9824125b778a0205 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@13APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x312fD0012412BaB57d43521a8197a98d68483d41 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xe39Cb550D3e855958250F2D2EE04a8C54FDE55e1 + XT deployed at: 0xFf54bcA6f75F6F894855aA1D7d75f7dc220dc0Ef + GT deployed at: 0x398438cD1f5f176A43357653C7f9db6254dc0e9B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@13APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xE2462f7fc1435d2C035cC379e308c4c6459F428f + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xd8d31eb463d9769CDa68e7c36bf5ac6947b5608F + XT deployed at: 0xBbc32246c065aE9d0b71BFB0030fD84f2AB0F7D6 + GT deployed at: 0x6d2C24786E871F13bf0d74274Fd43e99242fEcAe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@13APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x0eEbaBAc5cED8032772b1501573C6f9bf7a084e1 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x3F7d367a5d75a9183C28b029bAc1f2fa4E28B8A8 + XT deployed at: 0x5536299a06a020D5aE3A7f44f98BC1cAc623F85a + GT deployed at: 0xA14049d807aD34375D29da5dcd85Bc91aAD555A6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@13APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xE8104A63d1a3fa2E356150C3dbC6F9CeF8FCefac + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xBb057E410da64ac32fCE4a4D97784463E6baA587 + XT deployed at: 0x2D9e7f75362B5be38C222cF689eBE147097baDAB + GT deployed at: 0xEB2Cf4345317F33d52BA2de7dd405289bF2aa9CE + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@13APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x130fDEE7436D62afE5e2f69C671a15E6CF94c9BC + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xE96f358ad04Cc597534d512B31fc942B71A48Eb1 + XT deployed at: 0xb23d0bC3BE551363fb4Df42e9e3FCCdC7C06b338 + GT deployed at: 0x085545810313f824E3a9A4460ba98Ff8b23D9D09 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@13APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xbA65D3140272ffFBb4eB6bFB5DA4Cef740DeaE56 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xc2E827a2b5B85DFe3586C759d15668E71C57cCda + XT deployed at: 0xEedfBE3C5De26348D818d39a42Cdc62C339A69a2 + GT deployed at: 0x8833bff000b8fee7Db10d59d1e1750Fa172d007E + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@13APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10150327 + +Estimated amount required: 0.000203006550150327 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x2ee11875d023cc70a191b0efc06d63a1db14eaa7, 0x47ed39ce3e241a9d825086738297b4db2155d334, 0x69b7b2aa55eeb9eaedde6eac849fa3e454ef3fd0, 0x48d0a8c890f476d3f256f6be9824125b778a0205, 0x312fd0012412bab57d43521a8197a98d68483d41, 0xe39cb550d3e855958250f2d2ee04a8c54fde55e1, 0xff54bca6f75f6f894855aa1d7d75f7dc220dc0ef, 0x398438cd1f5f176a43357653c7f9db6254dc0e9b, 0xe2462f7fc1435d2c035cc379e308c4c6459f428f, 0xd8d31eb463d9769cda68e7c36bf5ac6947b5608f, 0xbbc32246c065ae9d0b71bfb0030fd84f2ab0f7d6, 0x6d2c24786e871f13bf0d74274fd43e99242fecae, 0x0eebabac5ced8032772b1501573c6f9bf7a084e1, 0x3f7d367a5d75a9183c28b029bac1f2fa4e28b8a8, 0x5536299a06a020d5ae3a7f44f98bc1cac623f85a, 0xa14049d807ad34375d29da5dcd85bc91aad555a6, 0xe8104a63d1a3fa2e356150c3dbc6f9cef8fcefac, 0xbb057e410da64ac32fce4a4d97784463e6baa587, 0x2d9e7f75362b5be38c222cf689ebe147097badab, 0xeb2cf4345317f33d52ba2de7dd405289bf2aa9ce, 0x130fdee7436d62afe5e2f69c671a15e6cf94c9bc, 0xe96f358ad04cc597534d512b31fc942b71a48eb1, 0xb23d0bc3be551363fb4df42e9e3fccdc7c06b338, 0x085545810313f824e3a9a4460ba98ff8b23d9d09, 0xba65d3140272fffbb4eb6bfb5da4cef740deae56, 0xc2e827a2b5b85dfe3586c759d15668e71c57ccda, 0xeedfbe3c5de26348d818d39a42cdc62c339a69a2, 0x8833bff000b8fee7db10d59d1e1750fa172d007e]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-ARB@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-ARB@13APR2025.json new file mode 100644 index 0000000..0de8679 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-ARB@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325156134", + "timestamp": "1744351362" + }, + "market": "0x7e7d8c959155b10A3D47Afbc28888A44b27A26Dc", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD27AA5b326e58DfA182E77409d72d17301a03f42", + "xt": "0xAeA24e9a8f57688779e60e5ee7abE16A8cad54e6", + "gt": "0x3380CAD698f34098c9306FF8168003396BAdb39A" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-WBTC@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-WBTC@13APR2025.json new file mode 100644 index 0000000..9b5e03c --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-WBTC@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325156134", + "timestamp": "1744351362" + }, + "market": "0x7317AEb20254Bd43683333296CB903EcEe31e55d", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xd45b1Bd85576e2A547677e74a3f5DD61f0A6546f", + "xt": "0x9195691eeCb0D60F5fDf48759b526dE9a85c5bE7", + "gt": "0xfeEd33CdebCdD56BcCa7feAdFe560cc39C285Ef8" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-WETH@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-WETH@13APR2025.json new file mode 100644 index 0000000..7a82e50 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-WETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325156134", + "timestamp": "1744351362" + }, + "market": "0x6eF5C3B3ed271CA0e0a540adDA6a51dD5B5Ce7d4", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x46C7441e9B8d8A6017EbeFf4A61b4615575E6777", + "xt": "0x8b09CF402E5807Ae70626E89c55D2746888fC10C", + "gt": "0x1dD00B382d8976798d21f4d38191798dd2143E54" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-wstETH@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-wstETH@13APR2025.json new file mode 100644 index 0000000..d7bbfef --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-USDC-wstETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325156134", + "timestamp": "1744351362" + }, + "market": "0x1e8F95669dc8CF8a4ab838299c6d876186517A63", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb0005C7C89bfC330A67169e416829c5347B7f717", + "xt": "0x13C6DFCb5c0142573D38dd20fFc52d21c3081e1c", + "gt": "0xCEDF76569e130a88fCd61EDc503ee374bF4c5565" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@13APR2025.json new file mode 100644 index 0000000..d176e9d --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325156134", + "timestamp": "1744351362" + }, + "market": "0xedac8FE94A6D9E6650EEF40622386173B1e2371d", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xeF26767b7B20Ff8eB88fB076e7b5876129449077", + "xt": "0x68955585F7B6953DD3270b71007685d65F7F8B13", + "gt": "0xB7994F1b4d780C088EEcB8c71c35B404dA9Ef08e" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-weETH@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-weETH@13APR2025.json new file mode 100644 index 0000000..87d600e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-weETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325156134", + "timestamp": "1744351362" + }, + "market": "0xFd4188C472ADD94fa2325290C4A831FF47acD444", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2Eb3BCab8276a6A32aE1533B7720BD0A5c73745F", + "xt": "0x2c2d37d2D2FF88Fe97456b5b66eB96A3B15C4f4B", + "gt": "0x5eF213f42489CF00377A72891308CF888B6310c5" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-wstETH@13APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-wstETH@13APR2025.json new file mode 100644 index 0000000..763e456 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-market-WETH-wstETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325156134", + "timestamp": "1744351362" + }, + "market": "0x79Fce305B4c13277A1B3b002985a57a8465694e5", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xa4FF94E96382f96C7Ea3f88415F9662993366127", + "xt": "0xedfd81e8232aDBb1d6635ec04aa0766511925CD5", + "gt": "0x1335b05566A699Ef54965Cc7563689D9429a4390" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250413-2000/deploy-arb-markets-test-0413-2000-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/deploy-arb-markets-test-0413-2000-log.txt new file mode 100644 index 0000000..2390fbb --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250413-2000/deploy-arb-markets-test-0413-2000-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x8276d5d79cb2ee0475a52d58d6eaca7d4b30f877 + + ===== Block Info ===== + Block number: 325156134 + Block timestamp: 1744351362 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 325156134 + + ===== Market Info - 0 ===== + Market deployed at: 0x79Fce305B4c13277A1B3b002985a57a8465694e5 + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xa4FF94E96382f96C7Ea3f88415F9662993366127 + XT deployed at: 0xedfd81e8232aDBb1d6635ec04aa0766511925CD5 + GT deployed at: 0x1335b05566A699Ef54965Cc7563689D9429a4390 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@13APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x1e8F95669dc8CF8a4ab838299c6d876186517A63 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xb0005C7C89bfC330A67169e416829c5347B7f717 + XT deployed at: 0x13C6DFCb5c0142573D38dd20fFc52d21c3081e1c + GT deployed at: 0xCEDF76569e130a88fCd61EDc503ee374bF4c5565 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@13APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x7317AEb20254Bd43683333296CB903EcEe31e55d + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xd45b1Bd85576e2A547677e74a3f5DD61f0A6546f + XT deployed at: 0x9195691eeCb0D60F5fDf48759b526dE9a85c5bE7 + GT deployed at: 0xfeEd33CdebCdD56BcCa7feAdFe560cc39C285Ef8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@13APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xFd4188C472ADD94fa2325290C4A831FF47acD444 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x2Eb3BCab8276a6A32aE1533B7720BD0A5c73745F + XT deployed at: 0x2c2d37d2D2FF88Fe97456b5b66eB96A3B15C4f4B + GT deployed at: 0x5eF213f42489CF00377A72891308CF888B6310c5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@13APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x6eF5C3B3ed271CA0e0a540adDA6a51dD5B5Ce7d4 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x46C7441e9B8d8A6017EbeFf4A61b4615575E6777 + XT deployed at: 0x8b09CF402E5807Ae70626E89c55D2746888fC10C + GT deployed at: 0x1dD00B382d8976798d21f4d38191798dd2143E54 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@13APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x7e7d8c959155b10A3D47Afbc28888A44b27A26Dc + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xD27AA5b326e58DfA182E77409d72d17301a03f42 + XT deployed at: 0xAeA24e9a8f57688779e60e5ee7abE16A8cad54e6 + GT deployed at: 0x3380CAD698f34098c9306FF8168003396BAdb39A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@13APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xedac8FE94A6D9E6650EEF40622386173B1e2371d + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xeF26767b7B20Ff8eB88fB076e7b5876129449077 + XT deployed at: 0x68955585F7B6953DD3270b71007685d65F7F8B13 + GT deployed at: 0xB7994F1b4d780C088EEcB8c71c35B404dA9Ef08e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@13APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.027418001 gwei + +Estimated total gas used for script: 10138787 + +Estimated amount required: 0.000277985272104787 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x79fce305b4c13277a1b3b002985a57a8465694e5, 0xa4ff94e96382f96c7ea3f88415f9662993366127, 0xedfd81e8232adbb1d6635ec04aa0766511925cd5, 0x1335b05566a699ef54965cc7563689d9429a4390, 0x1e8f95669dc8cf8a4ab838299c6d876186517a63, 0xb0005c7c89bfc330a67169e416829c5347b7f717, 0x13c6dfcb5c0142573d38dd20ffc52d21c3081e1c, 0xcedf76569e130a88fcd61edc503ee374bf4c5565, 0x7317aeb20254bd43683333296cb903ecee31e55d, 0xd45b1bd85576e2a547677e74a3f5dd61f0a6546f, 0x9195691eecb0d60f5fdf48759b526de9a85c5be7, 0xfeed33cdebcdd56bcca7feadfe560cc39c285ef8, 0xfd4188c472add94fa2325290c4a831ff47acd444, 0x2eb3bcab8276a6a32ae1533b7720bd0a5c73745f, 0x2c2d37d2d2ff88fe97456b5b66eb96a3b15c4f4b, 0x5ef213f42489cf00377a72891308cf888b6310c5, 0x6ef5c3b3ed271ca0e0a540adda6a51dd5b5ce7d4, 0x46c7441e9b8d8a6017ebeff4a61b4615575e6777, 0x8b09cf402e5807ae70626e89c55d2746888fc10c, 0x1dd00b382d8976798d21f4d38191798dd2143e54, 0x7e7d8c959155b10a3d47afbc28888a44b27a26dc, 0xd27aa5b326e58dfa182e77409d72d17301a03f42, 0xaea24e9a8f57688779e60e5ee7abe16a8cad54e6, 0x3380cad698f34098c9306ff8168003396badb39a, 0xedac8fe94a6d9e6650eef40622386173b1e2371d, 0xef26767b7b20ff8eb88fb076e7b5876129449077, 0x68955585f7b6953dd3270b71007685d65f7f8b13, 0xb7994f1b4d780c088eecb8c71c35b404da9ef08e]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-ARB@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-ARB@14APR2025.json new file mode 100644 index 0000000..87803b8 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-ARB@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325208244", + "timestamp": "1744364407" + }, + "market": "0x3b5F5473e495deBDF5fB5B4EF4B06eD058f2fD7b", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xeB912c87b727E435E7C25110dF5A30E6FdB88F8A", + "xt": "0xdA37d425C3dBb22388284b85f10572DCe9092230", + "gt": "0xE90D046Dd53dfba2469B9168c385805d0ab780d1" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-WBTC@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-WBTC@14APR2025.json new file mode 100644 index 0000000..73af9ee --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-WBTC@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325208244", + "timestamp": "1744364407" + }, + "market": "0x4f1569adf58e3CDaFf1Af2D3f76CE43feAEe57B5", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3408BD3b062770BbCff6a438500e549703c6A145", + "xt": "0x0cc5262ffcbd45b1e7592EC9BBA44f0957d0F166", + "gt": "0x171E5B98E35c4Df5770864C942ceB8650c2a548F" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-WETH@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-WETH@14APR2025.json new file mode 100644 index 0000000..b6548b3 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-WETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325208244", + "timestamp": "1744364407" + }, + "market": "0x74271F0CdC7583C2d5F2a3Eaa65CcA519d4807c4", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6c40F8E62138CbF834910eB1C7f4D731e6cAb2C7", + "xt": "0x43608d1a1949067167b0A51f620839432BF5fB51", + "gt": "0x678E4F5793f925391651ce33946b8829344376e2" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-wstETH@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-wstETH@14APR2025.json new file mode 100644 index 0000000..97d637e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-USDC-wstETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325208244", + "timestamp": "1744364407" + }, + "market": "0xD98A186d3C9C83B50416B4e11574381bb669daea", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB9ddAca9a9d7F598373fc9a78aD654Cd45d14198", + "xt": "0xA94F9230Ca17b6626568a46e8De17C5d85dB0aaD", + "gt": "0xb6f457C30c6e670520BDEbC1bbdFFED0F724c048" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@14APR2025.json new file mode 100644 index 0000000..e3ec0a3 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-PT-weETH-26JUN2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325208244", + "timestamp": "1744364407" + }, + "market": "0x24972D5de9376cc8c31486851fbbb1D6438fE6B6", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1016ea41d3C23395F740b8fD5320B1900631DEd0", + "xt": "0xc993b3dCa27071ce74923690263ACf01d1b55f79", + "gt": "0xcBABBcdD91E971A2a07D51dB0Cd1673D6fe46c45" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-weETH@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-weETH@14APR2025.json new file mode 100644 index 0000000..6d39106 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-weETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325208244", + "timestamp": "1744364407" + }, + "market": "0x1406E78edfaa8844Fb737d1D3F426f8e401369aa", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xCB84aC7AE32a261544b28f5E23aa334F92D4782A", + "xt": "0xD0536ab09ed6180F9EbAD8E978c2392B9D3eb0A9", + "gt": "0x8aC5452743f554851c452D02E77Fe4be576e34Bf" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-wstETH@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-wstETH@14APR2025.json new file mode 100644 index 0000000..5fd65ae --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-market-WETH-wstETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325208244", + "timestamp": "1744364407" + }, + "market": "0x60461317e526B3f2862Fb8A28A10D40c4AD7E7Ca", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4C6F766DDe2CEA9752Df3BE4585a83131207cEe8", + "xt": "0xB516d58B72B2E476f2CD9e4ca777bFe36e6dA3b0", + "gt": "0x49C6ee9F64272948919fa9Fc76E54a03ffC5BdcB" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-1500/deploy-arb-markets-test-20250414-1500-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/deploy-arb-markets-test-20250414-1500-log.txt new file mode 100644 index 0000000..a5cdb5e --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-1500/deploy-arb-markets-test-20250414-1500-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xde1cdb58961941699a119629baed0334da2512a3 + + ===== Block Info ===== + Block number: 325208244 + Block timestamp: 1744364407 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 325208244 + + ===== Market Info - 0 ===== + Market deployed at: 0x60461317e526B3f2862Fb8A28A10D40c4AD7E7Ca + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x4C6F766DDe2CEA9752Df3BE4585a83131207cEe8 + XT deployed at: 0xB516d58B72B2E476f2CD9e4ca777bFe36e6dA3b0 + GT deployed at: 0x49C6ee9F64272948919fa9Fc76E54a03ffC5BdcB + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@14APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xD98A186d3C9C83B50416B4e11574381bb669daea + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xB9ddAca9a9d7F598373fc9a78aD654Cd45d14198 + XT deployed at: 0xA94F9230Ca17b6626568a46e8De17C5d85dB0aaD + GT deployed at: 0xb6f457C30c6e670520BDEbC1bbdFFED0F724c048 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@14APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x4f1569adf58e3CDaFf1Af2D3f76CE43feAEe57B5 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x3408BD3b062770BbCff6a438500e549703c6A145 + XT deployed at: 0x0cc5262ffcbd45b1e7592EC9BBA44f0957d0F166 + GT deployed at: 0x171E5B98E35c4Df5770864C942ceB8650c2a548F + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@14APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x1406E78edfaa8844Fb737d1D3F426f8e401369aa + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xCB84aC7AE32a261544b28f5E23aa334F92D4782A + XT deployed at: 0xD0536ab09ed6180F9EbAD8E978c2392B9D3eb0A9 + GT deployed at: 0x8aC5452743f554851c452D02E77Fe4be576e34Bf + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@14APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x74271F0CdC7583C2d5F2a3Eaa65CcA519d4807c4 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x6c40F8E62138CbF834910eB1C7f4D731e6cAb2C7 + XT deployed at: 0x43608d1a1949067167b0A51f620839432BF5fB51 + GT deployed at: 0x678E4F5793f925391651ce33946b8829344376e2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@14APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x3b5F5473e495deBDF5fB5B4EF4B06eD058f2fD7b + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xeB912c87b727E435E7C25110dF5A30E6FdB88F8A + XT deployed at: 0xdA37d425C3dBb22388284b85f10572DCe9092230 + GT deployed at: 0xE90D046Dd53dfba2469B9168c385805d0ab780d1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@14APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x24972D5de9376cc8c31486851fbbb1D6438fE6B6 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x1016ea41d3C23395F740b8fD5320B1900631DEd0 + XT deployed at: 0xc993b3dCa27071ce74923690263ACf01d1b55f79 + GT deployed at: 0xcBABBcdD91E971A2a07D51dB0Cd1673D6fe46c45 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@14APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10153728 + +Estimated amount required: 0.000203074570153728 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x60461317e526b3f2862fb8a28a10d40c4ad7e7ca, 0x4c6f766dde2cea9752df3be4585a83131207cee8, 0xb516d58b72b2e476f2cd9e4ca777bfe36e6da3b0, 0x49c6ee9f64272948919fa9fc76e54a03ffc5bdcb, 0xd98a186d3c9c83b50416b4e11574381bb669daea, 0xb9ddaca9a9d7f598373fc9a78ad654cd45d14198, 0xa94f9230ca17b6626568a46e8de17c5d85db0aad, 0xb6f457c30c6e670520bdebc1bbdffed0f724c048, 0x4f1569adf58e3cdaff1af2d3f76ce43feaee57b5, 0x3408bd3b062770bbcff6a438500e549703c6a145, 0x0cc5262ffcbd45b1e7592ec9bba44f0957d0f166, 0x171e5b98e35c4df5770864c942ceb8650c2a548f, 0x1406e78edfaa8844fb737d1d3f426f8e401369aa, 0xcb84ac7ae32a261544b28f5e23aa334f92d4782a, 0xd0536ab09ed6180f9ebad8e978c2392b9d3eb0a9, 0x8ac5452743f554851c452d02e77fe4be576e34bf, 0x74271f0cdc7583c2d5f2a3eaa65cca519d4807c4, 0x6c40f8e62138cbf834910eb1c7f4d731e6cab2c7, 0x43608d1a1949067167b0a51f620839432bf5fb51, 0x678e4f5793f925391651ce33946b8829344376e2, 0x3b5f5473e495debdf5fb5b4ef4b06ed058f2fd7b, 0xeb912c87b727e435e7c25110df5a30e6fdb88f8a, 0xda37d425c3dbb22388284b85f10572dce9092230, 0xe90d046dd53dfba2469b9168c385805d0ab780d1, 0x24972d5de9376cc8c31486851fbbb1d6438fe6b6, 0x1016ea41d3c23395f740b8fd5320b1900631ded0, 0xc993b3dca27071ce74923690263acf01d1b55f79, 0xcbabbcdd91e971a2a07d51db0cd1673d6fe46c45]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/accept-oracles-20250403-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-access-manager.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-core.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-ARB@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-ARB@14APR2025.json new file mode 100644 index 0000000..d50a0e8 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-ARB@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325209688", + "timestamp": "1744364769" + }, + "market": "0x28977e47c5470A80d83B519C46E2Da6e59e5f143", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2b9B8e3b33A272690DC6a4251175C92fC3f44Bc9", + "xt": "0x9Cc38b3F1cd3Fc41ceBC84A775626784B0E12264", + "gt": "0xf06765F765C5F9591d66f9f06F2ED5D65a679D09" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-WBTC@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-WBTC@14APR2025.json new file mode 100644 index 0000000..e65fb31 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-WBTC@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325209688", + "timestamp": "1744364769" + }, + "market": "0x460423259552da8ED3D7945B2Ec3Af1419E6722C", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x28651FEd51F4E3E2D39a62f3438F93bc9A9C44A6", + "xt": "0xe279BA4c7E466AD1e4fe98e9637729BFefa01C81", + "gt": "0x1B2638AFDf4C2963eC23e0AefC1e8d94759f3cA8" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-WETH@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-WETH@14APR2025.json new file mode 100644 index 0000000..d12bdf0 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-WETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325209688", + "timestamp": "1744364769" + }, + "market": "0x5Fb23BfAdA5C97570a45B06F99994c7224AeF653", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xc2327396940Aa3453aC8F2f00f75B7F2e5b059Dc", + "xt": "0xC68D0b54a8b282156e3c81B3e16ee10749cA7f68", + "gt": "0x8ce0B24D12b4F5c7a9481963594E7f623149a6F7" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-wstETH@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-wstETH@14APR2025.json new file mode 100644 index 0000000..93987bf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-USDC-wstETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325209688", + "timestamp": "1744364769" + }, + "market": "0xCC9844D517b2BF2E4d645F2121F21e3b10941d6a", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xf5406a53e94A9FAe4C813784F65C167C8cA1A7eD", + "xt": "0xc6fbbc8fDf94Dd4067f1BBC5D957D5DDC0d58b66", + "gt": "0xdce8F451265f1CCd66Dc05d5C1Fa020A5C857450" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@14APR2025.json new file mode 100644 index 0000000..f9753b6 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-PT-weETH-26JUN2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325209688", + "timestamp": "1744364769" + }, + "market": "0x6Bb9fB25Cf93C226d1114416623FD776045797C1", + "collateral": { + "address": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x216D61b43D7Fb45511515B93B2d9eD83032586B1", + "xt": "0x4D814c2B037D22B772EFe26199A593543Ff608F2", + "gt": "0x0E1b8AFe6D936e746D7C495c2204fd281392A9CF" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-weETH@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-weETH@14APR2025.json new file mode 100644 index 0000000..7c0d958 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-weETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325209688", + "timestamp": "1744364769" + }, + "market": "0x1ABe1F4F1bbABC2b3076Bf2CE766dC2554aA7ce6", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6aA835DA33985900E3571BEfEB5BB5eed308cB0F", + "xt": "0xCF5251690281E40B255A108b93357853CBC84EF3", + "gt": "0x54e2d173C800494aBc5049319a51fc22988562D1" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-wstETH@14APR2025.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-wstETH@14APR2025.json new file mode 100644 index 0000000..5fe2a71 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-market-WETH-wstETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "325209688", + "timestamp": "1744364769" + }, + "market": "0x945aE0004614CBf2d7355e0A0105AAa36C92AC1a", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8569e536beb2a43E069e20f37618d6EA3325Db20", + "xt": "0xDC322CFE96289D3cA789f66f4bA2da2a9BC2B9a4", + "gt": "0xE1A48E5f4EBD564Ce5291F396580e9D9252D1E1A" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet-v1.0.8-test-20250414-2000/deploy-arb-markets-test-20250414-2000-log.txt b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/deploy-arb-markets-test-20250414-2000-log.txt new file mode 100644 index 0000000..871f19d --- /dev/null +++ b/deployments/arb-mainnet-v1.0.8-test-20250414-2000/deploy-arb-markets-test-20250414-2000-log.txt @@ -0,0 +1,243 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ARBSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xde1cdb58961941699a119629baed0334da2512a3 + + ===== Block Info ===== + Block number: 325209688 + Block timestamp: 1744364769 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 325209688 + + ===== Market Info - 0 ===== + Market deployed at: 0x945aE0004614CBf2d7355e0A0105AAa36C92AC1a + Market name: WETH/wstETH@30MAY2025 + Market symbol: WETH/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x8569e536beb2a43E069e20f37618d6EA3325Db20 + XT deployed at: 0xDC322CFE96289D3cA789f66f4bA2da2a9BC2B9a4 + GT deployed at: 0xE1A48E5f4EBD564Ce5291F396580e9D9252D1E1A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@14APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xCC9844D517b2BF2E4d645F2121F21e3b10941d6a + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xf5406a53e94A9FAe4C813784F65C167C8cA1A7eD + XT deployed at: 0xc6fbbc8fDf94Dd4067f1BBC5D957D5DDC0d58b66 + GT deployed at: 0xdce8F451265f1CCd66Dc05d5C1Fa020A5C857450 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@14APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x460423259552da8ED3D7945B2Ec3Af1419E6722C + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x28651FEd51F4E3E2D39a62f3438F93bc9A9C44A6 + XT deployed at: 0xe279BA4c7E466AD1e4fe98e9637729BFefa01C81 + GT deployed at: 0x1B2638AFDf4C2963eC23e0AefC1e8d94759f3cA8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@14APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x1ABe1F4F1bbABC2b3076Bf2CE766dC2554aA7ce6 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x6aA835DA33985900E3571BEfEB5BB5eed308cB0F + XT deployed at: 0xCF5251690281E40B255A108b93357853CBC84EF3 + GT deployed at: 0x54e2d173C800494aBc5049319a51fc22988562D1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@14APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x5Fb23BfAdA5C97570a45B06F99994c7224AeF653 + Market name: USDC/WETH@30MAY2025 + Market symbol: USDC/WETH@30MAY2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xc2327396940Aa3453aC8F2f00f75B7F2e5b059Dc + XT deployed at: 0xC68D0b54a8b282156e3c81B3e16ee10749cA7f68 + GT deployed at: 0x8ce0B24D12b4F5c7a9481963594E7f623149a6F7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@14APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x28977e47c5470A80d83B519C46E2Da6e59e5f143 + Market name: USDC/ARB@30MAY2025 + Market symbol: USDC/ARB@30MAY2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x2b9B8e3b33A272690DC6a4251175C92fC3f44Bc9 + XT deployed at: 0x9Cc38b3F1cd3Fc41ceBC84A775626784B0E12264 + GT deployed at: 0xf06765F765C5F9591d66f9f06F2ED5D65a679D09 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@14APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x6Bb9fB25Cf93C226d1114416623FD776045797C1 + Market name: WETH/PT-weETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-weETH-26JUN2025@27JUN2025 + Collateral (PT-weETH-26JUN2025) address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x216D61b43D7Fb45511515B93B2d9eD83032586B1 + XT deployed at: 0x4D814c2B037D22B772EFe26199A593543Ff608F2 + GT deployed at: 0x0E1b8AFe6D936e746D7C495c2204fd281392A9CF + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-PT-weETH-26JUN2025@14APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 10221309 + +Estimated amount required: 0.000204426190221309 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x945ae0004614cbf2d7355e0a0105aaa36c92ac1a, 0x8569e536beb2a43e069e20f37618d6ea3325db20, 0xdc322cfe96289d3ca789f66f4ba2da2a9bc2b9a4, 0xe1a48e5f4ebd564ce5291f396580e9d9252d1e1a, 0xcc9844d517b2bf2e4d645f2121f21e3b10941d6a, 0xf5406a53e94a9fae4c813784f65c167c8ca1a7ed, 0xc6fbbc8fdf94dd4067f1bbc5d957d5ddc0d58b66, 0xdce8f451265f1ccd66dc05d5c1fa020a5c857450, 0x460423259552da8ed3d7945b2ec3af1419e6722c, 0x28651fed51f4e3e2d39a62f3438f93bc9a9c44a6, 0xe279ba4c7e466ad1e4fe98e9637729bfefa01c81, 0x1b2638afdf4c2963ec23e0aefc1e8d94759f3ca8, 0x1abe1f4f1bbabc2b3076bf2ce766dc2554aa7ce6, 0x6aa835da33985900e3571befeb5bb5eed308cb0f, 0xcf5251690281e40b255a108b93357853cbc84ef3, 0x54e2d173c800494abc5049319a51fc22988562d1, 0x5fb23bfada5c97570a45b06f99994c7224aef653, 0xc2327396940aa3453ac8f2f00f75b7f2e5b059dc, 0xc68d0b54a8b282156e3c81b3e16ee10749ca7f68, 0x8ce0b24d12b4f5c7a9481963594e7f623149a6f7, 0x28977e47c5470a80d83b519c46e2da6e59e5f143, 0x2b9b8e3b33a272690dc6a4251175c92fc3f44bc9, 0x9cc38b3f1cd3fc41cebc84a775626784b0e12264, 0xf06765f765c5f9591d66f9f06f2ed5d65a679d09, 0x6bb9fb25cf93c226d1114416623fd776045797c1, 0x216d61b43d7fb45511515b93b2d9ed83032586b1, 0x4d814c2b037d22b772efe26199a593543ff608f2, 0x0e1b8afe6d936e746d7c495c2204fd281392a9cf]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-mainnet/accept-oracles-20250403-log.txt b/deployments/arb-mainnet/accept-oracles-20250403-log.txt new file mode 100644 index 0000000..2a93d96 --- /dev/null +++ b/deployments/arb-mainnet/accept-oracles-20250403-log.txt @@ -0,0 +1,107 @@ +Running on arb-mainnet... +=== Configuration === +Operation: Script Execution +Network: arb-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://arb-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa + Network: arb-mainnet + Current Block Timestamp: 1743663209 + + Accepted oracle for token: + Token Symbol: WETH + Token Address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: wstETH + Token Address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: USDC + Token Address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: WBTC + Token Address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: weETH + Token Address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: ARB + Token Address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-weETH-26JUN2025 + Token Address: 0xb33808ea0e883138680BA29311a220A7377cdb92 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 7 + Oracles accepted: 7 + Oracles not ready: 0 + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 914354 + +Estimated amount required: 0.000018287080914354 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/42161/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on arb-mainnet (Broadcast mode)! diff --git a/deployments/arb-mainnet/arb-mainnet-V2-adapters-03JUN2025.json b/deployments/arb-mainnet/arb-mainnet-V2-adapters-03JUN2025.json new file mode 100644 index 0000000..f45dd9f --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-V2-adapters-03JUN2025.json @@ -0,0 +1,26 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1748946564", + "dateString": "03JUN2025", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x0489591746b16bb969ea123423e618e76b7e2dcb", + "blockInfo": { + "number": "343446256", + "timestamp": "1748946564" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x0000000000000000000000000000000000000000", + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "contracts": { + "odosV2Adapter": "0xddc9Aabe0fD4270E3E537ea3C2c36b2aD5574FC7", + "pendleSwapV3Adapter": "0x924204d7Eae3A096C9bC0f6aE3D4140583b5E778", + "uniswapV3Adapter": "0x8b910b6bB8d9CBCEB68fFB5E5E1812C516182B70", + "erc4626VaultAdapter": "0x05B48bF072123BD7D20C965aE8BeF2A23dc2AfEE" + }, + "routerAddresses": { + "uniswapV3Router": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "odosV2Router": "0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13", + "pendleSwapV3Router": "0x888888888889758F76e7103c6CbF23ABbF58F946" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-access-manager.json b/deployments/arb-mainnet/arb-mainnet-access-manager.json new file mode 100644 index 0000000..f75a2f5 --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743606817", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182046", + "timestamp": "1743606817" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-adapters-20250630.json b/deployments/arb-mainnet/arb-mainnet-adapters-20250630.json new file mode 100644 index 0000000..4120d87 --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-adapters-20250630.json @@ -0,0 +1,18 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1751264239", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x01db0f8091230ac2c6befb08cc423cd7c3551428", + "blockInfo": { + "number": "352689369", + "timestamp": "1751264239" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "swapAdapter": { + "uniswapV3Adapter": "0x048a54Deae47c41f760c42622B114bB89B836A9f", + "odosV2Adapter": "0xb986312024C8e0f895B00eBA32C81B5759C91ffF", + "pendleSwapV3Adapter": "0xf95130ddFA9EB132a25B121a29991cEA989eBB7c", + "ERC4626VaultAdapter": "0x133BF41c23eDFb2F0EF586B5B01063a17470e294" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-adapters.json b/deployments/arb-mainnet/arb-mainnet-adapters.json new file mode 100644 index 0000000..ac1f0cf --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-adapters.json @@ -0,0 +1,18 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1750474201", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x0x53496c4b59815c620e0ac5b4504e4b712ef08515", + "blockInfo": { + "number": "349533707", + "timestamp": "1750474201" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "swapAdapter": { + "uniswapV3Adapter": "0x25e4889346F04B4E005FFab35Bf2C3CB395E74d5", + "odosV2Adapter": "0x003E6F7f6071a4E33F9324C125dEaE2615998010", + "pendleSwapV3Adapter": "0xDf69dDA7ba69ddEEB4182b821eb2356744180405", + "ERC4626VaultAdapter": "0x1084fCdDee1526a2331095207bf7e35e716c01bd" + }, +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-core.json b/deployments/arb-mainnet/arb-mainnet-core.json new file mode 100644 index 0000000..435d898 --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1743608156", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x5d493753c1ba3ec4b848690b28ab1bd5846cbac1", + "blockInfo": { + "number": "22182159", + "timestamp": "1743608156" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x14920Eb11b71873d01c93B589b40585dacfCA096", + "vaultFactory": "0x929CBcb8150aD59DB63c92A7dAEc07b30d38bA79", + "oracleAggregator": "0x2e1c769A9BA8248C7c8128c2BEBa11331ebF98Aa", + "router": "0x7fa333b184868d88aC78a82eC06d5e87d4B0322E", + "swapAdapter": { + "uniswapV3Adapter": "0x609F20ee24E10010A62970E1dAb7E2b84eD74CAb", + "odosV2Adapter": "0x7de4efa140E52B7207FA689D41AfEE461B83E748", + "pendleSwapV3Adapter": "0xb0eCCbaD4b4cc190261c29C6E8d85bcF04284a8b", + "ERC4626VaultAdapter": "0xa50929A67daF9Ff3567e2Bb3411204A134f72546" + }, + "marketViewer": "0x276C0E52508d94ff2D4106b1559c8c4Bc3a75dec" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@27JUN2025.json b/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@27JUN2025.json new file mode 100644 index 0000000..783a62b --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "334435607", + "timestamp": "1746682800" + }, + "market": "0x0b91Cd4e86F0DBBbB2c37c384e1fA91B9a5A3220", + "collateral": { + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7FD98474f7F3F5Ee5823395f79C1258CED0649c6", + "xt": "0x5fF0e5bf7Af82F8a05c7BCe2Aa522df8F869e2Bd", + "gt": "0x1Be601F4f8CBBc632D45E664E262E86c11771B63" + }, + "config": { + "marketSymbol": "USDC/ARB@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@27JUN2025.json b/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@27JUN2025.json new file mode 100644 index 0000000..d03d5ce --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "334435607", + "timestamp": "1746682800" + }, + "market": "0x10Af30e205Da0fFc594433BB87e41039be5d1f01", + "collateral": { + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xCCB07922901E454F71f5A2ec67D4C2E8d2dff625", + "xt": "0xECfeFb11B855A32d719689f5C2A963534aB77502", + "gt": "0xAd66772ab0CDb0af994050636017c3578E24022b" + }, + "config": { + "marketSymbol": "USDC/WBTC@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@27JUN2025.json b/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@27JUN2025.json new file mode 100644 index 0000000..d5fc5d3 --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "334435607", + "timestamp": "1746682800" + }, + "market": "0x58C4d4688E0Bc92eF8d81fb963Bca2EaA5DFc31C", + "collateral": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6d16D1345eF0C71E6B3f081F3d84919967bd9660", + "xt": "0xFB02999Ecb7A6842Dd9601c1CdFE23AB2e79E55D", + "gt": "0x1200E9991c02CfC6d5C8dC833689E3F062B655EF" + }, + "config": { + "marketSymbol": "USDC/WETH@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@27JUN2025.json b/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@27JUN2025.json new file mode 100644 index 0000000..458b9fd --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "334435607", + "timestamp": "1746682800" + }, + "market": "0x63765e904777E0e13F0cE46A63B2feCf920681aA", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7b3323EA461755Fb8010fEa1A98dF31cAA57E7ED", + "xt": "0x79e166629200C4E4403436517c8b15dD554D13A6", + "gt": "0xD567D302926e3C3A1F314e06287a61d61c7d447c" + }, + "config": { + "marketSymbol": "USDC/wstETH@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@27JUN2025.json b/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@27JUN2025.json new file mode 100644 index 0000000..81b29a7 --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "334435607", + "timestamp": "1746682800" + }, + "market": "0x4B66219eCcE3AD157A31B9E584beFDc798b556A1", + "collateral": { + "address": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xdbcA965D5aee36777d1083b515E8329B47307f46", + "xt": "0x24716141891afE2e0385DAD2D512348386135B5B", + "gt": "0xBFBc1D5dde5A740F048Df76e04A948ddE6F9C2Ee" + }, + "config": { + "marketSymbol": "WETH/weETH@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@27JUN2025.json b/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@27JUN2025.json new file mode 100644 index 0000000..b97ad6b --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "334435607", + "timestamp": "1746682800" + }, + "market": "0x2706f663C6e6a0AF2e1c16f7e0d2CcC85758d92c", + "collateral": { + "address": "0x5979D7b546E38E414F7E9822514be443A4800529", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4F074de5E97EaE3130Af1eDEe4034549208ff1EE", + "xt": "0xA045B77db8317A774F02c8f47F705a52e789c8B7", + "gt": "0x3748A7A8f2600F43C03CBeA7490d53E4B8aaFFE7" + }, + "config": { + "marketSymbol": "WETH/wstETH@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-pendle-swap-v3-adapter.json b/deployments/arb-mainnet/arb-mainnet-pendle-swap-v3-adapter.json new file mode 100644 index 0000000..925711d --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-pendle-swap-v3-adapter.json @@ -0,0 +1,14 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1744446513", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x1b19b284f4f6a7ffebcb90e1d9af5058a71d0ab5", + "blockInfo": { + "number": "325535022", + "timestamp": "1744446513" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "contracts": { + "pendleSwapV3Adapter": "0x4e9C9796Fcfddf2Eb66B7051B6A17f3eB6BCb57d" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-vault-TMX-USDC.json b/deployments/arb-mainnet/arb-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..af05fff --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324633071", + "timestamp": "1744220329" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0xc94b752839a22D2C44E99e298671dd4B2aDd11b3", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-vault-TMX-WETH.json b/deployments/arb-mainnet/arb-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..9177b68 --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "324634324", + "timestamp": "1744220643" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8c5161f287Cbc9Afa48bC8972eE8CC0a755fcAdC", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-vault-TermMax USDC Vault.json b/deployments/arb-mainnet/arb-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..4084050 --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22186270", + "timestamp": "1743657771" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0x9170A095e7073559ffe1240ccF692Abb94F32a28", + "asset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-vault-TermMax WETH Vault.json b/deployments/arb-mainnet/arb-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..7b33cbf --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xe73e9755e483821e03ecc04b8928b63e51147d9e" + }, + "blockInfo": { + "network": "arb-mainnet", + "blockNumber": "22182632", + "timestamp": "1743613861" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xeBF448902145f65b4E1B3C4e3A269444e0213C9e", + "asset": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xFaD175CAf9B0Ac0EBca3B1816ec799884EB04B9c", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/arb-mainnet-vault-factory-03JUN2025.json b/deployments/arb-mainnet/arb-mainnet-vault-factory-03JUN2025.json new file mode 100644 index 0000000..81bc223 --- /dev/null +++ b/deployments/arb-mainnet/arb-mainnet-vault-factory-03JUN2025.json @@ -0,0 +1,15 @@ +{ + "network": "arb-mainnet", + "deployedAt": "1748947028", + "dateString": "03JUN2025", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x0489591746b16bb969ea123423e618e76b7e2dcb", + "blockInfo": { + "number": "343448104", + "timestamp": "1748947028" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "contracts": { + "vaultFactory": "0x4cB25655e7eED71F57d308c775c08a0e137E857d" + } +} \ No newline at end of file diff --git a/deployments/arb-mainnet/deploy-arb-markets-mature-20250627-log.txt b/deployments/arb-mainnet/deploy-arb-markets-mature-20250627-log.txt new file mode 100644 index 0000000..3cf4446 --- /dev/null +++ b/deployments/arb-mainnet/deploy-arb-markets-mature-20250627-log.txt @@ -0,0 +1,220 @@ +Running on arb-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: arb-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://arbi*****.gate*****.tend*****.co/agLs***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xa669e7A0d4b3e4Fa48af2dE86BD4CD7126Be4e13 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.9 + Git commit hash: + 0x3d777a2ef7fc7151b8a882db3b339a68174fc651 + + ===== Block Info ===== + Block number: 334435607 + Block timestamp: 1746682800 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 334435607 + + ===== Market Info - 0 ===== + Market deployed at: 0x2706f663C6e6a0AF2e1c16f7e0d2CcC85758d92c + Market name: WETH/wstETH@27JUN2025 + Market symbol: WETH/wstETH@27JUN2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0x4F074de5E97EaE3130Af1eDEe4034549208ff1EE + XT deployed at: 0xA045B77db8317A774F02c8f47F705a52e789c8B7 + GT deployed at: 0x3748A7A8f2600F43C03CBeA7490d53E4B8aaFFE7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 4000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-wstETH@27JUN2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x63765e904777E0e13F0cE46A63B2feCf920681aA + Market name: USDC/wstETH@27JUN2025 + Market symbol: USDC/wstETH@27JUN2025 + Collateral (wstETH) address: 0x5979D7b546E38E414F7E9822514be443A4800529 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x7b3323EA461755Fb8010fEa1A98dF31cAA57E7ED + XT deployed at: 0x79e166629200C4E4403436517c8b15dD554D13A6 + GT deployed at: 0xD567D302926e3C3A1F314e06287a61d61c7d447c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-wstETH@27JUN2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x10Af30e205Da0fFc594433BB87e41039be5d1f01 + Market name: USDC/WBTC@27JUN2025 + Market symbol: USDC/WBTC@27JUN2025 + Collateral (WBTC) address: 0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xd0C7101eACbB49F3deCcCc166d238410D6D46d57 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0xCCB07922901E454F71f5A2ec67D4C2E8d2dff625 + XT deployed at: 0xECfeFb11B855A32d719689f5C2A963534aB77502 + GT deployed at: 0xAd66772ab0CDb0af994050636017c3578E24022b + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WBTC@27JUN2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x4B66219eCcE3AD157A31B9E584beFDc798b556A1 + Market name: WETH/weETH@27JUN2025 + Market symbol: WETH/weETH@27JUN2025 + Collateral (weETH) address: 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe + Underlying (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Underlying heartbeat: 86400 + FT deployed at: 0xdbcA965D5aee36777d1083b515E8329B47307f46 + XT deployed at: 0x24716141891afE2e0385DAD2D512348386135B5B + GT deployed at: 0xBFBc1D5dde5A740F048Df76e04A948ddE6F9C2Ee + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 4000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-WETH-weETH@27JUN2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x58C4d4688E0Bc92eF8d81fb963Bca2EaA5DFc31C + Market name: USDC/WETH@27JUN2025 + Market symbol: USDC/WETH@27JUN2025 + Collateral (WETH) address: 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x6d16D1345eF0C71E6B3f081F3d84919967bd9660 + XT deployed at: 0xFB02999Ecb7A6842Dd9601c1CdFE23AB2e79E55D + GT deployed at: 0x1200E9991c02CfC6d5C8dC833689E3F062B655EF + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-WETH@27JUN2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x0b91Cd4e86F0DBBbB2c37c384e1fA91B9a5A3220 + Market name: USDC/ARB@27JUN2025 + Market symbol: USDC/ARB@27JUN2025 + Collateral (ARB) address: 0x912CE59144191C1204E64559FE8253a0e49E6548 + Underlying (USDC) address: 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 + Collateral price feed address: 0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3 + Underlying heartbeat: 86400 + FT deployed at: 0x7FD98474f7F3F5Ee5823395f79C1258CED0649c6 + XT deployed at: 0x5fF0e5bf7Af82F8a05c7BCe2Aa522df8F869e2Bd + GT deployed at: 0x1Be601F4f8CBBc632D45E664E262E86c11771B63 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/arb-mainnet/arb-mainnet-market-USDC-ARB@27JUN2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 42161 + +Estimated gas price: 0.020000001 gwei + +Estimated total gas used for script: 8454921 + +Estimated amount required: 0.000169098428454921 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x2706f663c6e6a0af2e1c16f7e0d2ccc85758d92c, 0x4f074de5e97eae3130af1edee4034549208ff1ee, 0xa045b77db8317a774f02c8f47f705a52e789c8b7, 0x3748a7a8f2600f43c03cbea7490d53e4b8aaffe7, 0x63765e904777e0e13f0ce46a63b2fecf920681aa, 0x7b3323ea461755fb8010fea1a98df31caa57e7ed, 0x79e166629200c4e4403436517c8b15dd554d13a6, 0xd567d302926e3c3a1f314e06287a61d61c7d447c, 0x10af30e205da0ffc594433bb87e41039be5d1f01, 0xccb07922901e454f71f5a2ec67d4c2e8d2dff625, 0xecfefb11b855a32d719689f5c2a963534ab77502, 0xad66772ab0cdb0af994050636017c3578e24022b, 0x4b66219ecce3ad157a31b9e584befdc798b556a1, 0xdbca965d5aee36777d1083b515e8329b47307f46, 0x24716141891afe2e0385dad2d512348386135b5b, 0xbfbc1d5dde5a740f048df76e04a948dde6f9c2ee, 0x58c4d4688e0bc92ef8d81fb963bca2eaa5dfc31c, 0x6d16d1345ef0c71e6b3f081f3d84919967bd9660, 0xfb02999ecb7a6842dd9601c1cdfe23ab2e79e55d, 0x1200e9991c02cfc6d5c8dc833689e3f062b655ef, 0x0b91cd4e86f0dbbbb2c37c384e1fa91b9a5a3220, 0x7fd98474f7f3f5ee5823395f79c1258ced0649c6, 0x5ff0e5bf7af82f8a05c7bce2aa522df8f869e2bd, 0x1be601f4f8cbbc632d45e664e262e86c11771b63]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/42161/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/42161/run-latest.json + +[SUCCESS] market deployment to arb-mainnet completed successfully! diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-access-manager.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-access-manager.json new file mode 100644 index 0000000..769e116 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1743745964", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x02fff1d6d797ed5e62117eb2d07b7f4f25d0e281", + "blockInfo": { + "number": "8047019", + "timestamp": "1743745964" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x2263c9847DE61023C99D38FFa348C13831919236" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-core.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-core.json new file mode 100644 index 0000000..cbc43fc --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1743746764", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x02fff1d6d797ed5e62117eb2d07b7f4f25d0e281", + "blockInfo": { + "number": "8047085", + "timestamp": "1743746764" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x94004D6dc0024924F946A601fA627d20147E367c", + "vaultFactory": "0xF73D80BDB9e627f7EEA965806F5dcb3df3378E4B", + "oracleAggregator": "0x8EC69D1b6ce8DE14d180C02a631D0cF90B6E933B", + "router": "0xAcBF51D18eAD87CD7362e5faDDfb484714f3aCED", + "swapAdapter": "0x06254a04199093b8A1ABCd8D7bD366BCAa79e391", + "faucet": "0x75B47f7e86884e0C8Ac27c5ef550B8CD9c142430", + "marketViewer": "0x9bD6EFe4eac70708C4c2E22547D1de751131d86b" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-ARB@05APR2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-ARB@05APR2025.json new file mode 100644 index 0000000..470bb4a --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-ARB@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8047154", + "timestamp": "1743747631" + }, + "market": "0xcCAC13b8Ed36c6e60435558E605F35A05A3bb9D5", + "collateral": { + "address": "0x19F13efABc1F591d9F11d4845578E0C9B6A8EB4a", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2a5c469444433DA68fDDee62298E5fD0C1137D68", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5676881c7F7c0B3FA257237dbcf12829fFF2f001", + "xt": "0x2CdA786b463060C4f22f5ECBae5ED1125b91452B", + "gt": "0x6c73770Dd137046126FFbEbc1EA4e88380737fF2" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-WBTC@05APR2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-WBTC@05APR2025.json new file mode 100644 index 0000000..f647837 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-WBTC@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8047154", + "timestamp": "1743747631" + }, + "market": "0x89f95Fae167be4AB609fc546ff022E649D587bE9", + "collateral": { + "address": "0xa03dfa1b57B9Ca64cEb872346be2E8316d4B7710", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2a5c469444433DA68fDDee62298E5fD0C1137D68", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDe6Cbc75466CC2982003b6dcBED7371d2481c2e3", + "xt": "0x5BAf8b10C35884eC927E1926344886e503Ad66CE", + "gt": "0xC24CF580e50f4F79aB619D6F4b51dBAA36D6fdD8" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-WETH@05APR2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-WETH@05APR2025.json new file mode 100644 index 0000000..3b7e38c --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-WETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8047154", + "timestamp": "1743747631" + }, + "market": "0xC909d5EBA267216CD57E91233aE38b90e30EC725", + "collateral": { + "address": "0x6E63f6D0eAFB4C8A54B723976D95E5D578A21A65", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2a5c469444433DA68fDDee62298E5fD0C1137D68", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x51726781cecad402D248b429a6EdDBf0B363f7C4", + "xt": "0x22393f906ec6616AE9cB663ad657ff7B79Dd3d16", + "gt": "0x95eeB5c86CF1eaECf1c8fD57A9C7DE5F52463c82" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-wstETH@05APR2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-wstETH@05APR2025.json new file mode 100644 index 0000000..34f61c5 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-USDC-wstETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8047154", + "timestamp": "1743747631" + }, + "market": "0x7B465F316248bE3b2DDA0BCBA419882030318a61", + "collateral": { + "address": "0x3b66056895D7c4B9436E69D0c60359Bd8948ab23", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2a5c469444433DA68fDDee62298E5fD0C1137D68", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xdE74484c3a9bAEE28fFe3AdFB6c6D17574F73300", + "xt": "0x006b93Df7422264dBf4144f9C1bdb986A1Ac1804", + "gt": "0x3759cBaFA1f260c1C8110D5E2e5243a2b6d0c8fE" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-PT-weETH-26JUN2025@05APR2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-PT-weETH-26JUN2025@05APR2025.json new file mode 100644 index 0000000..ffd3d84 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-PT-weETH-26JUN2025@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8047154", + "timestamp": "1743747631" + }, + "market": "0x139aE13c221228b4fAA4B92e9b54e0b71AA4b40E", + "collateral": { + "address": "0x2AC4ee68991F648DAee22A1223eB57D057a46010", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x6E63f6D0eAFB4C8A54B723976D95E5D578A21A65", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb2A46e617b81B8EcbddCB15b0292f125979cedf8", + "xt": "0x5F2712c906fE364BE6da6dFB1aF606C34a8Eac66", + "gt": "0x4E6b0D2D719298a3C4d67b09c35c619787A37DB7" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-weETH@05APR2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-weETH@05APR2025.json new file mode 100644 index 0000000..089adca --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-weETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8047154", + "timestamp": "1743747631" + }, + "market": "0x33Bb5F474d6942ab4e4633E0007Ceea4d4c6daf5", + "collateral": { + "address": "0x4dEdd765D325a26419c1B153416e07Dbde8013a9", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x6E63f6D0eAFB4C8A54B723976D95E5D578A21A65", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x06B470f95D015d78B6Bca1413DC3C90C78A1e3dF", + "xt": "0x58D2d9800F9c0469f741B5E9d4F870AC0dB0F896", + "gt": "0xF3505e4Bd62B4fC2F8320CAD6AF574291e1AAd11" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-wstETH@05APR2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-wstETH@05APR2025.json new file mode 100644 index 0000000..ea0f0ed --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250404/arb-sepolia-market-WETH-wstETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8047154", + "timestamp": "1743747631" + }, + "market": "0xB378edC995883DF4cA226C7fDC4e8e36420aF92B", + "collateral": { + "address": "0x3b66056895D7c4B9436E69D0c60359Bd8948ab23", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x6E63f6D0eAFB4C8A54B723976D95E5D578A21A65", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDD087CE5dc318a2aDb9d8c17FE98cf8253bA30E4", + "xt": "0x373E9b6b20E3B9e8C4Ed206aB2ed32EAaFa74e5D", + "gt": "0xdDE6c31C543AEba1BC4b9C57b48E4be13F42C21c" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-access-manager.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-access-manager.json new file mode 100644 index 0000000..f9f2ff6 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1744527141", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x1b19b284f4f6a7ffebcb90e1d9af5058a71d0ab5", + "blockInfo": { + "number": "8108878", + "timestamp": "1744527141" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x56e893B18dC888b2dc4C828e43eD7e907627e1D9" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-core.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-core.json new file mode 100644 index 0000000..b782f74 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1744527328", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x1b19b284f4f6a7ffebcb90e1d9af5058a71d0ab5", + "blockInfo": { + "number": "8108891", + "timestamp": "1744527328" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x6E77A3Da12497764a120587db923a09b335094f3", + "vaultFactory": "0xf96b6C262aE62082a581c5cc7faea5EE5C9245F4", + "oracleAggregator": "0x8B4e7EfD02131F6CE3956EE03c0C080D4f581e3A", + "router": "0x5816E6969933653a34D4bB5D3b1e50139727C021", + "swapAdapter": "0x9DB5A064049E9CDAd24C15a26fA761033E6471d4", + "faucet": "0xE4B41d004D202bc88463dE560BDC080a59B3De6C", + "marketViewer": "0xb64069Ef32394507fd0F6F8BFab25C56520D7D58" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-ARB@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-ARB@30MAY2025.json new file mode 100644 index 0000000..a4c58e9 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-ARB@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108983", + "timestamp": "1744528585" + }, + "market": "0x4eBC329DD5E72Ce1a46eE3e80C7861722a8dA399", + "collateral": { + "address": "0x4f24Cf75Ba4f347514E2F197Dc4F1f18dBC5Ef69", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2b7443068c8ca0EBc3A862c160eDC1Ae353B6302", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x29816d95bFeceDF043cd6FA3E2E575C0FCF1F398", + "xt": "0x388D9Def2975789BD1e778b6EFf9365E742fa5a6", + "gt": "0x64b7A33ED8d752d871c166751a31c0f68D224003" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-WBTC@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..3495584 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108983", + "timestamp": "1744528585" + }, + "market": "0xfeEaF6BB2d5a6F9Af6CA1bC89376503d7b55dC36", + "collateral": { + "address": "0xA896b70a5bf28DDC01cDAC20AcC928892fc45b24", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2b7443068c8ca0EBc3A862c160eDC1Ae353B6302", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB5B64c68fa689C9C1226cE6451B635EEe301D4b0", + "xt": "0xD0969e425Ac1879381526f7384A3CE5FC2AEbf8b", + "gt": "0xa3e71915AC3B77490Dd99bAc722153368C61128E" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-WETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-WETH@30MAY2025.json new file mode 100644 index 0000000..3fdaeb0 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-WETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108983", + "timestamp": "1744528585" + }, + "market": "0x8F6a4caBB2f9442Fe07F5Db3c9bF9B86D16975d2", + "collateral": { + "address": "0x6906dc739753473D1BdcaA342C6E18871d21873F", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2b7443068c8ca0EBc3A862c160eDC1Ae353B6302", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x143168319AC9896De934E6e40afFE53C5079Cbde", + "xt": "0xbc49b831164eDA1c106E62Fac4495D46Dd7Fb2D3", + "gt": "0x1faAaB823220C44c0f8F0bEE746F70c499A46011" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-wstETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..dcd4b33 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108983", + "timestamp": "1744528585" + }, + "market": "0xFD7C80e2FA8921F9e61B3E4EdE36642C49611D67", + "collateral": { + "address": "0x59F28D5Ecf8ceaeDcAcA1Cb826ABf22418b60A70", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2b7443068c8ca0EBc3A862c160eDC1Ae353B6302", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xd6bd727bf8126349AF934a56e9019d8CB15ab6ec", + "xt": "0xD0d382e1314F16B502b3d2D5529C56c2c501e3F7", + "gt": "0x43D328615033C93d3d04e6727EC24e673c136692" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json new file mode 100644 index 0000000..4463506 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108983", + "timestamp": "1744528585" + }, + "market": "0x25B6A902D55754eea472BFb0f39792cc1Ea6C158", + "collateral": { + "address": "0xDd8437E64fC9Eba7f7F0725E4836852f1971fFc3", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x6906dc739753473D1BdcaA342C6E18871d21873F", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFb66e7C0f148a439118842986B29b9571E48BbBa", + "xt": "0x2C71A553134444bAe554049E2459575BDBfc91C3", + "gt": "0x7205c6c479409639A714dc65017AE820c71DA029" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-weETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..ec8f1b5 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108983", + "timestamp": "1744528585" + }, + "market": "0xE43e70275e357c6C75BC145Bb5a78E5815A6928c", + "collateral": { + "address": "0x5e2B4aDBd874c1213704C57E7CdFaA12d0c79a00", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x6906dc739753473D1BdcaA342C6E18871d21873F", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDF6542170D86c89C7de5e749698889086235fCAB", + "xt": "0xEE6BDd71DDF351f10BeD868B879C9d9121320d26", + "gt": "0x0c8094dEC0a4b9907D5F509f48Aef3eb591aF16f" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-wstETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-wstETH@30MAY2025.json new file mode 100644 index 0000000..a6df7f5 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-sandbox-20250413/arb-sepolia-market-WETH-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108983", + "timestamp": "1744528585" + }, + "market": "0x02ac27201D723F712DE42fBC9c4FF59c5Be3E466", + "collateral": { + "address": "0x59F28D5Ecf8ceaeDcAcA1Cb826ABf22418b60A70", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x6906dc739753473D1BdcaA342C6E18871d21873F", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9a7F21Fa737eAF495674de5f31A34dfAaeC1e4F8", + "xt": "0x01128cB0Fb8bfE2d20845CAAEDa53977D3Ba9b1B", + "gt": "0xC96677c559B98f0306e8e957d1A1C443AF64a7FE" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-access-manager.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-access-manager.json new file mode 100644 index 0000000..e3dafe5 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1744097315", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95", + "blockInfo": { + "number": "8075764", + "timestamp": "1744097315" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x73582719184969d11baDf253D8e04c09867B66a8" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-core.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-core.json new file mode 100644 index 0000000..c42920b --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1744097884", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95", + "blockInfo": { + "number": "8075807", + "timestamp": "1744097884" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x8D89d9A9c41351d1991e1F5b578006eD3d7e2ffE", + "vaultFactory": "0xEF1037e414c60D98e333670b25C89555e425C631", + "oracleAggregator": "0x2D8f037DA792198f6eB30c292554ce55f5ABaCE5", + "router": "0x6A847024BECCF5039301ebAA4Fd666C3dD467480", + "swapAdapter": "0xff195F1de3301e7c9BDf9bEECD10D6BC3aDD1690", + "faucet": "0xCC903bFE36499405dCE3224266D7f10C01b511f0", + "marketViewer": "0x13a9F9037DCf1Bbc5f99c94CacFEf931e6BCbe5D" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-ARB@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-ARB@30MAY2025.json new file mode 100644 index 0000000..b5c2848 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-ARB@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0xD45a73C1954249399917336948e3B646B72ae28d", + "collateral": { + "address": "0x7775Ae869cad5F2caA9F672e0e935A32E948401E", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0341478D89aeFF86fAb6Fc72A6A9EFB2073E4894", + "xt": "0xc9311c2E2500fb5e7307052EbE2fd1d1D3B53ef8", + "gt": "0x9d79088Fa50BbA5929e1fcA343d1D0D805D2776B" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-WBTC@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..a6b3fb5 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0xfD37d637CfBF0401a4F800333E22c644Bd7401A0", + "collateral": { + "address": "0x850D599249de78D8b67D65f529f599B1c59ACE4e", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x24044B9fF32321429f832Ee0C1f1CB1c64C0294C", + "xt": "0x53bAe17D5A9a1176312E1F2EA1F8eD1a4129a8D3", + "gt": "0x79853699660aE059f95DA847D3DD0a4E64d37147" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-WETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-WETH@30MAY2025.json new file mode 100644 index 0000000..a639ee2 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-WETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0x755E472E12B7906Dc72ce4b97942f4Ad420DB332", + "collateral": { + "address": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFf842CdcFb05A5912Ab31CE75a70f7fcF60d967f", + "xt": "0xfD156076153724C01B644F63EA8e5eF58544C9F2", + "gt": "0x545ebf2c88ecE21ab577239977174DA742Ca6c94" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-wstETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..1900073 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0x626e18cfE4EcA0914d52dAc9106Ea6716E7C346B", + "collateral": { + "address": "0xa7Ab96A774d5d272ce2Dcac3f8B406676B82a650", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x08C00Dd029ee1C61BD48B71bA31852a330F3d101", + "xt": "0xfB22a60c478381571dFf2206605220d4Bd251149", + "gt": "0x8C419a833A0A3D0c41F06F964764CFB7720617a3" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json new file mode 100644 index 0000000..a305327 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0x732C150aAfdeeB270e6e5913914Ca5A7aA11C895", + "collateral": { + "address": "0x4c88e7f2938772C880e9b9960De96891b2ecf670", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD78948D3f8C856cF28bDcf00e0De6FF8745d658f", + "xt": "0xbbD4C494312353bD06a38880aF2F117FaB3181b5", + "gt": "0xFf2ac6a9dc8c1b37e597d9323a9acA534f675783" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-weETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..06d304a --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0xc6455E2F1b7327794454A8a146086CADD8b1abEa", + "collateral": { + "address": "0x4e629b3c2791b78B7E4DafDFcD56e385bb6596a1", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFc1e71670ad51bEbEB46dc82c435657Ad32e9191", + "xt": "0x94534B731a50b24f411303cE6eb3197CE3550218", + "gt": "0x4417af404c009eb7b075C7f1de23e10c5CC1DC03" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-wstETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-wstETH@30MAY2025.json new file mode 100644 index 0000000..ca0eac3 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-market-WETH-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0x43c514d7De79E20E216C6Eb2e9796ffB044a2110", + "collateral": { + "address": "0xa7Ab96A774d5d272ce2Dcac3f8B406676B82a650", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9780b6608de32bf151A2BbC92eAF51E1AEd1B28e", + "xt": "0xe7CAB6c6b2D448d5cC8332faCA5092830dc7Ea9D", + "gt": "0x7171d195d395c3A3cDC5c86aF0241c96E49eADC1" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-vault-TMX-USDC.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-vault-TMX-USDC.json new file mode 100644 index 0000000..756b445 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69" + }, + "blockInfo": { + "network": "arb-sepolia", + "blockNumber": "8076069", + "timestamp": "1744101122" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x6cefBD5C64bd212c9C5Dcf9274e2b894F5D92590", + "asset": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 1, + "admin": "0x73582719184969d11baDf253D8e04c09867B66a8", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-vault-TMX-WETH.json b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-vault-TMX-WETH.json new file mode 100644 index 0000000..d9c4758 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250408/arb-sepolia-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69" + }, + "blockInfo": { + "network": "arb-sepolia", + "blockNumber": "8076093", + "timestamp": "1744101443" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8CAd8288C5AF8F721A0177Eb387744816836DD38", + "asset": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "performanceFeeRate": 10000000, + "maxCapacity": "5000000000000000000000", + "timelock": 1, + "admin": "0x73582719184969d11baDf253D8e04c09867B66a8", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-access-manager.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-access-manager.json new file mode 100644 index 0000000..e3dafe5 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1744097315", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95", + "blockInfo": { + "number": "8075764", + "timestamp": "1744097315" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x73582719184969d11baDf253D8e04c09867B66a8" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-core.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-core.json new file mode 100644 index 0000000..c42920b --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1744097884", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95", + "blockInfo": { + "number": "8075807", + "timestamp": "1744097884" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x8D89d9A9c41351d1991e1F5b578006eD3d7e2ffE", + "vaultFactory": "0xEF1037e414c60D98e333670b25C89555e425C631", + "oracleAggregator": "0x2D8f037DA792198f6eB30c292554ce55f5ABaCE5", + "router": "0x6A847024BECCF5039301ebAA4Fd666C3dD467480", + "swapAdapter": "0xff195F1de3301e7c9BDf9bEECD10D6BC3aDD1690", + "faucet": "0xCC903bFE36499405dCE3224266D7f10C01b511f0", + "marketViewer": "0x13a9F9037DCf1Bbc5f99c94CacFEf931e6BCbe5D" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-ARB@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-ARB@30MAY2025.json new file mode 100644 index 0000000..b5c2848 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-ARB@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0xD45a73C1954249399917336948e3B646B72ae28d", + "collateral": { + "address": "0x7775Ae869cad5F2caA9F672e0e935A32E948401E", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0341478D89aeFF86fAb6Fc72A6A9EFB2073E4894", + "xt": "0xc9311c2E2500fb5e7307052EbE2fd1d1D3B53ef8", + "gt": "0x9d79088Fa50BbA5929e1fcA343d1D0D805D2776B" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-WBTC@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..a6b3fb5 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0xfD37d637CfBF0401a4F800333E22c644Bd7401A0", + "collateral": { + "address": "0x850D599249de78D8b67D65f529f599B1c59ACE4e", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x24044B9fF32321429f832Ee0C1f1CB1c64C0294C", + "xt": "0x53bAe17D5A9a1176312E1F2EA1F8eD1a4129a8D3", + "gt": "0x79853699660aE059f95DA847D3DD0a4E64d37147" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-WETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-WETH@30MAY2025.json new file mode 100644 index 0000000..a639ee2 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-WETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0x755E472E12B7906Dc72ce4b97942f4Ad420DB332", + "collateral": { + "address": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFf842CdcFb05A5912Ab31CE75a70f7fcF60d967f", + "xt": "0xfD156076153724C01B644F63EA8e5eF58544C9F2", + "gt": "0x545ebf2c88ecE21ab577239977174DA742Ca6c94" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-wstETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..1900073 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0x626e18cfE4EcA0914d52dAc9106Ea6716E7C346B", + "collateral": { + "address": "0xa7Ab96A774d5d272ce2Dcac3f8B406676B82a650", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x08C00Dd029ee1C61BD48B71bA31852a330F3d101", + "xt": "0xfB22a60c478381571dFf2206605220d4Bd251149", + "gt": "0x8C419a833A0A3D0c41F06F964764CFB7720617a3" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json new file mode 100644 index 0000000..a305327 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-PT-weETH-26JUN2025@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0x732C150aAfdeeB270e6e5913914Ca5A7aA11C895", + "collateral": { + "address": "0x4c88e7f2938772C880e9b9960De96891b2ecf670", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD78948D3f8C856cF28bDcf00e0De6FF8745d658f", + "xt": "0xbbD4C494312353bD06a38880aF2F117FaB3181b5", + "gt": "0xFf2ac6a9dc8c1b37e597d9323a9acA534f675783" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-weETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..06d304a --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0xc6455E2F1b7327794454A8a146086CADD8b1abEa", + "collateral": { + "address": "0x4e629b3c2791b78B7E4DafDFcD56e385bb6596a1", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFc1e71670ad51bEbEB46dc82c435657Ad32e9191", + "xt": "0x94534B731a50b24f411303cE6eb3197CE3550218", + "gt": "0x4417af404c009eb7b075C7f1de23e10c5CC1DC03" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-wstETH@30MAY2025.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-wstETH@30MAY2025.json new file mode 100644 index 0000000..ca0eac3 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-market-WETH-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8075848", + "timestamp": "1744098382" + }, + "market": "0x43c514d7De79E20E216C6Eb2e9796ffB044a2110", + "collateral": { + "address": "0xa7Ab96A774d5d272ce2Dcac3f8B406676B82a650", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9780b6608de32bf151A2BbC92eAF51E1AEd1B28e", + "xt": "0xe7CAB6c6b2D448d5cC8332faCA5092830dc7Ea9D", + "gt": "0x7171d195d395c3A3cDC5c86aF0241c96E49eADC1" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-USDC-Vault.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-USDC-Vault.json new file mode 100644 index 0000000..fa2c88f --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-USDC-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x55645a734d4ae98f2e59cf375332380b31adb729" + }, + "blockInfo": { + "network": "arb-sepolia", + "blockNumber": "8297013", + "timestamp": "1746884305" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC-Vault", + "address": "0x2B2cEDCa288F31314EB0d39308408386DfC967Ff", + "asset": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "performanceFeeRate": 0, + "maxCapacity": "10000000000000000000000000", + "timelock": 1, + "admin": "0x73582719184969d11baDf253D8e04c09867B66a8", + "curator": "0x9cd0f93381B22e80afB7401b61569e21E694F9A3", + "guardian": "0x9cd0f93381B22e80afB7401b61569e21E694F9A3", + "allocator": "0x9cd0f93381B22e80afB7401b61569e21E694F9A3" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-USDC.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-USDC.json new file mode 100644 index 0000000..756b445 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69" + }, + "blockInfo": { + "network": "arb-sepolia", + "blockNumber": "8076069", + "timestamp": "1744101122" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x6cefBD5C64bd212c9C5Dcf9274e2b894F5D92590", + "asset": "0xC78b3362e9Fd717963151a3f7ee40C248e369092", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 1, + "admin": "0x73582719184969d11baDf253D8e04c09867B66a8", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-WETH.json b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-WETH.json new file mode 100644 index 0000000..d9c4758 --- /dev/null +++ b/deployments/arb-sepolia-v1.0.8-testnet-20250603/arb-sepolia-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69" + }, + "blockInfo": { + "network": "arb-sepolia", + "blockNumber": "8076093", + "timestamp": "1744101443" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0x8CAd8288C5AF8F721A0177Eb387744816836DD38", + "asset": "0xA12136197Fc7dDB83b89B2EDAEEcd88316FDE991", + "performanceFeeRate": 10000000, + "maxCapacity": "5000000000000000000000", + "timelock": 1, + "admin": "0x73582719184969d11baDf253D8e04c09867B66a8", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-access-manager.json b/deployments/arb-sepolia/arb-sepolia-access-manager.json new file mode 100644 index 0000000..f0aa22c --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1748951146", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x0489591746b16bb969ea123423e618e76b7e2dcb", + "blockInfo": { + "number": "8467679", + "timestamp": "1748951146" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x0709F8B7BdEA284C7352A5b12505f3d70BF9C21b" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-adapters-20250627.json b/deployments/arb-sepolia/arb-sepolia-adapters-20250627.json new file mode 100644 index 0000000..db2f88b --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-adapters-20250627.json @@ -0,0 +1,18 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1751010232", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x23b76ca54b9c28b2b4fc0b4d07d64b3f17c4ee36", + "blockInfo": { + "number": "8638772", + "timestamp": "1751010232" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "swapAdapter": { + "uniswapV3Adapter": "0x32D60D4a462f5A4b145AA225643e5066aeC1611B", + "odosV2Adapter": "0x03F45de2Ab1B976e27ACbAa4A9945e5EA7F4ed32", + "pendleSwapV3Adapter": "0x624E405a53D1f3FcdF52cEbAE469bFD6472294fA", + "ERC4626VaultAdapter": "0xB50b0C9c835e8f4F9436214F6f5219207c3b58cF" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-core.json b/deployments/arb-sepolia/arb-sepolia-core.json new file mode 100644 index 0000000..b0b3421 --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "arb-sepolia", + "deployedAt": "1748952621", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x0489591746b16bb969ea123423e618e76b7e2dcb", + "blockInfo": { + "number": "8467802", + "timestamp": "1748952621" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0xc1d2224D57F1A156d59073ed791C7f7C41C03877", + "vaultFactory": "0xD6FcF8aE09660dF44539954261Daee43aE56A39C", + "oracleAggregator": "0xD58B80655ed0342A297560AD1f3251C2b99752CF", + "router": "0x9c9832dD2ead3d0752A22aCd50B112FD36e063B5", + "swapAdapter": "0x80E51c9A593963930B0bf13476ebcD61063dA130", + "faucet": "0xE877cB4bD6f5F10b3C207f7B691E4275A2A398bc", + "marketViewer": "0xf8c19ab9150b2b93afc4d797a4c4Ef3A50BB3610" + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-market-USDC-ARB@26DEC2025.json b/deployments/arb-sepolia/arb-sepolia-market-USDC-ARB@26DEC2025.json new file mode 100644 index 0000000..8c64ebf --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-market-USDC-ARB@26DEC2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8468222", + "timestamp": "1748957660" + }, + "market": "0x41926faE08F5B5C428bf88f157B22B767d8d5E45", + "collateral": { + "address": "0x4E919ba6c904463a2D36B85fD8738DBEF11d8506", + "symbol": "ARB", + "priceFeed": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xE7e6EA2B6A1D7E7d80727290a86CCC9FE5fbe0C1", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8b19f75D2AF0Fd4617D2a268C52412aE1bB63aF2", + "xt": "0x29ef9eBF255E67BAB764359eFD97b14095c5d09C", + "gt": "0xf5f3EDe4C92324341fBa5ef64Fe1f0096c46327D" + }, + "config": { + "marketSymbol": "USDC/ARB@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26DEC2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-market-USDC-WBTC@26SEP2025.json b/deployments/arb-sepolia/arb-sepolia-market-USDC-WBTC@26SEP2025.json new file mode 100644 index 0000000..c044155 --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-market-USDC-WBTC@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8468222", + "timestamp": "1748957660" + }, + "market": "0xb82927d2420680a69650842Ba985788a426FC148", + "collateral": { + "address": "0xecDe7427eA7CEfF00AfC89733d66Fe4656C503b6", + "symbol": "WBTC", + "priceFeed": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xE7e6EA2B6A1D7E7d80727290a86CCC9FE5fbe0C1", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x451e3383F700b596930F405c9C6271A44B30fFA2", + "xt": "0xfA1E27067Abbe8ECAb1D8D407E2c67147269c817", + "gt": "0xAfCE12e90B504305707C4ebF03e0905Deef36A6e" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-market-USDC-WETH@26DEC2025.json b/deployments/arb-sepolia/arb-sepolia-market-USDC-WETH@26DEC2025.json new file mode 100644 index 0000000..7e095f2 --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-market-USDC-WETH@26DEC2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8468222", + "timestamp": "1748957660" + }, + "market": "0xE6dd131De3e11bdC1212aEefE00B374b8691022d", + "collateral": { + "address": "0xf12a10232455E2F22aBc0B688e9C458E1cD14338", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xE7e6EA2B6A1D7E7d80727290a86CCC9FE5fbe0C1", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x88cA1534A2d5d975D2E20E12CEDB2f0275FD40f5", + "xt": "0xbaBAf9eae188ae5A63fc10A02159Dc3c0751EB59", + "gt": "0xae76aFbc6Bc295db018baF4FD63f52B53AdaaF48" + }, + "config": { + "marketSymbol": "USDC/WETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26DEC2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-market-USDC-wstETH@26SEP2025.json b/deployments/arb-sepolia/arb-sepolia-market-USDC-wstETH@26SEP2025.json new file mode 100644 index 0000000..fd3aaaf --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-market-USDC-wstETH@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8468222", + "timestamp": "1748957660" + }, + "market": "0x5F133D0D068d64EDe88D1C551A9b8A47f717Ff9A", + "collateral": { + "address": "0xdD9e964C4C1C9d6903a865eEEc72e5B13D9dC643", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xE7e6EA2B6A1D7E7d80727290a86CCC9FE5fbe0C1", + "symbol": "USDC", + "priceFeed": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6DCb42f5Ec257d4CE9ACbCA2a25cdDbC44d09237", + "xt": "0x196e2CF09a181c55A7a93eb54126ef9E6C3A2021", + "gt": "0xacF9B134719f2C6d6C21b0dFD181e762A120c8DC" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-market-WETH-PT-weETH-26JUN2025@26DEC2025.json b/deployments/arb-sepolia/arb-sepolia-market-WETH-PT-weETH-26JUN2025@26DEC2025.json new file mode 100644 index 0000000..00d96c2 --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-market-WETH-PT-weETH-26JUN2025@26DEC2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8468222", + "timestamp": "1748957660" + }, + "market": "0x52C73bFEFcCA692EeF7F9caF99b40E15319f895c", + "collateral": { + "address": "0x6c107b779B0fA77107606329f64c60545994A758", + "symbol": "PT-weETH-26JUN2025", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xf12a10232455E2F22aBc0B688e9C458E1cD14338", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9ec45b2C1C452780A2248Fa3232070F0701Cf9f5", + "xt": "0xc92E7f14cEa1214ca8F5EB01CE67e31047dD2E55", + "gt": "0xf1839cABb4389792b0c0eC1a9bd092942f5f13dB" + }, + "config": { + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26DEC2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-market-WETH-weETH@26SEP2025.json b/deployments/arb-sepolia/arb-sepolia-market-WETH-weETH@26SEP2025.json new file mode 100644 index 0000000..2fca95b --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-market-WETH-weETH@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8468222", + "timestamp": "1748957660" + }, + "market": "0x6c2576De69bfb62Ae6dEdd97114da69959DaEa2f", + "collateral": { + "address": "0x9e0fB430c8cb111293208513D8DFd943ac1C4941", + "symbol": "weETH", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xf12a10232455E2F22aBc0B688e9C458E1cD14338", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x57C8D7670e9FFe6f1eBE9aD3Ab3b71890D36D5B7", + "xt": "0xF4fB411fd61b4E6C0d696a01deA8B3cbf94535FE", + "gt": "0x72B52226001884b1e5c07FFFfF18Bc8c3C0eFabA" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/arb-sepolia/arb-sepolia-market-WETH-wstETH@26SEP2025.json b/deployments/arb-sepolia/arb-sepolia-market-WETH-wstETH@26SEP2025.json new file mode 100644 index 0000000..b1d212f --- /dev/null +++ b/deployments/arb-sepolia/arb-sepolia-market-WETH-wstETH@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8468222", + "timestamp": "1748957660" + }, + "market": "0xee1E95cDCA9A83da352e5B549Bf7c82006C59D7D", + "collateral": { + "address": "0xdD9e964C4C1C9d6903a865eEEc72e5B13D9dC643", + "symbol": "wstETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xf12a10232455E2F22aBc0B688e9C458E1cD14338", + "symbol": "WETH", + "priceFeed": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x40e3afAef7b555B9eda442Aa587Adcd00eB94283", + "xt": "0x9D170044DaD1fa0Dd5e12EFB7f46CCeEe2A97B66", + "gt": "0xb4df6fbAF95BC73D1Bb1918d52dAdE581130477f" + }, + "config": { + "marketSymbol": "WETH/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-V2-adapters-29MAY2025.json b/deployments/bnb-mainnet/bnb-mainnet-V2-adapters-29MAY2025.json new file mode 100644 index 0000000..c0fff79 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-V2-adapters-29MAY2025.json @@ -0,0 +1,26 @@ +{ + "network": "bnb-mainnet", + "deployedAt": "1748526829", + "dateString": "29MAY2025", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0xf2fc71ad48a28d22075027313412d5b61d0b7ef5", + "blockInfo": { + "number": "50522003", + "timestamp": "1748526829" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x0000000000000000000000000000000000000000", + "accessManager": "0x9498764f0c62257B83A04e2A757De30908EC793d", + "router": "0xb7634dB4f4710bb992118bC37d1F63e00e2704A4", + "contracts": { + "odosV2Adapter": "0xBd795F755dbB5A5358D6c60AED53ceB486Fa8517", + "pendleSwapV3Adapter": "0x02F389E230a4844203692c9a1DBC0ee8f8D2F70b", + "uniswapV3Adapter": "0x78834843E9cFaeDC03471ba8b5b648c2C8cFd0B5", + "erc4626VaultAdapter": "0xa9b7719CefE39A0233B77960ACcca015aD5f3184" + }, + "routerAddresses": { + "uniswapV3Router": "0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2", + "odosV2Router": "0x89b8AA89FDd0507a99d334CBe3C808fAFC7d850E", + "pendleSwapV3Router": "0x888888888889758F76e7103c6CbF23ABbF58F946" + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-access-manager.json b/deployments/bnb-mainnet/bnb-mainnet-access-manager.json new file mode 100644 index 0000000..b1083ab --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "bnb-mainnet", + "deployedAt": "1748427061", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0xbbca9bae55a04187db0c7e41898feb98c52d000c", + "blockInfo": { + "number": "50455621", + "timestamp": "1748427061" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0x9498764f0c62257B83A04e2A757De30908EC793d" + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-adapters-20250630.json b/deployments/bnb-mainnet/bnb-mainnet-adapters-20250630.json new file mode 100644 index 0000000..6d2af25 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-adapters-20250630.json @@ -0,0 +1,18 @@ +{ + "network": "bnb-mainnet", + "deployedAt": "1751264736", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x01db0f8091230ac2c6befb08cc423cd7c3551428", + "blockInfo": { + "number": "52355938", + "timestamp": "1751264736" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "swapAdapter": { + "uniswapV3Adapter": "0xC82473B4b712440e3FC311D8439F65AA38556c38", + "odosV2Adapter": "0x5BBc23e84C248b0563FCfd25B100891625dE90CD", + "pendleSwapV3Adapter": "0x05D171617fE60BA27992f238686D3eB3B3cADCa0", + "ERC4626VaultAdapter": "0x4F97aFAb57dc87401558059790445C65c3Dc58b8" + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-adapters.json b/deployments/bnb-mainnet/bnb-mainnet-adapters.json new file mode 100644 index 0000000..e10efff --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-adapters.json @@ -0,0 +1,18 @@ +{ + "network": "bnb-mainnet", + "deployedAt": "1750519115", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x907b45e9fef447b887a6c3df565a21bf27975cf2", + "blockInfo": { + "number": "51849871", + "timestamp": "1750519115" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "swapAdapter": { + "uniswapV3Adapter": "0xa715005c1A8524C0790029153B8a860F96a2a856", + "odosV2Adapter": "0x954529F8f103bde464fc6d02a94CD40c5BD322D1", + "pendleSwapV3Adapter": "0x883192eFdD5a3417B2C0A14B25F7536B2018f853", + "ERC4626VaultAdapter": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc" + }, +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-core.json b/deployments/bnb-mainnet/bnb-mainnet-core.json new file mode 100644 index 0000000..12a51be --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "bnb-mainnet", + "deployedAt": "1748523134", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0xe3a5c207cb14ce86cbfbd9ae89417a4f5e6192e2", + "blockInfo": { + "number": "50519540", + "timestamp": "1748523134" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x8Df05E11e72378c1710e296450Bf6b72e2F12019", + "vaultFactory": "0x48bCd27e208dC973C3F56812F762077A90E88Cea", + "oracleAggregator": "0xC7dE1A55758bDBa5CC6b6f7535006eE1349A6d37", + "router": "0xb7634dB4f4710bb992118bC37d1F63e00e2704A4", + "swapAdapter": { + "uniswapV3Adapter": "0xbb35188CD8Ba0A85ED8C8406187cA6443203423d", + "odosV2Adapter": "0x6Ac37B549660F2c9F1a77597Ee1ACA5F742C7093", + "pendleSwapV3Adapter": "0xFa8BE638a78fa426C4228Df1002fD54fA48A6CAF", + "ERC4626VaultAdapter": "0x6Fa11E0e1e0eE768DEB0E728a08a4407d15EE466" + }, + "marketViewer": "0x8b2ae4e2070b3E9bf9625FC61290700a2E24A808" + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-market-BTCB-USD1@25JUL2025.json b/deployments/bnb-mainnet/bnb-mainnet-market-BTCB-USD1@25JUL2025.json new file mode 100644 index 0000000..634528a --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-market-BTCB-USD1@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "51480317", + "timestamp": "1749964600" + }, + "market": "0xA7EcD333b3429F4EEe50bE866c4Ca697885F5F8C", + "collateral": { + "address": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "symbol": "USD1", + "priceFeed": "0xaD8b4e59A7f25B68945fAf0f3a3EAF027832FFB0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c", + "symbol": "BTCB", + "priceFeed": "0x264990fbd0A4796A3E3d8E37C4d5F87a3aCa5Ebf", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB308dCd5C21234f4CBC78EE7848a88C8B58d8417", + "xt": "0x945dAE4328ae940048Af2DBd6f28Ae06c1a78E31", + "gt": "0xa784F8BA616ab8a1908718dd1247235683EacD02" + }, + "config": { + "marketSymbol": "BTCB/USD1@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-market-USDT-BTCB@25JUL2025.json b/deployments/bnb-mainnet/bnb-mainnet-market-USDT-BTCB@25JUL2025.json new file mode 100644 index 0000000..b63a3f2 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-market-USDT-BTCB@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "51480317", + "timestamp": "1749964600" + }, + "market": "0x38fb9E8fdff8a6b810b5651A827052C8DB25eF51", + "collateral": { + "address": "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c", + "symbol": "BTCB", + "priceFeed": "0x264990fbd0A4796A3E3d8E37C4d5F87a3aCa5Ebf", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x55d398326f99059fF775485246999027B3197955", + "symbol": "USDT", + "priceFeed": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xC8140937C35BEd389FcEbC57fD38296cC443e7dD", + "xt": "0x426046b777Be06bF9eCf57705c0609fBECC3cdDe", + "gt": "0x3A519afc88b255bDBF106403243D91D59B2E33Cd" + }, + "config": { + "marketSymbol": "USDT/BTCB@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-market-USDT-USD1@25JUL2025.json b/deployments/bnb-mainnet/bnb-mainnet-market-USDT-USD1@25JUL2025.json new file mode 100644 index 0000000..5654a65 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-market-USDT-USD1@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "51480317", + "timestamp": "1749964600" + }, + "market": "0x32887001dfE06Efe3013C0CE9b875a569c439124", + "collateral": { + "address": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "symbol": "USD1", + "priceFeed": "0xaD8b4e59A7f25B68945fAf0f3a3EAF027832FFB0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x55d398326f99059fF775485246999027B3197955", + "symbol": "USDT", + "priceFeed": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xa1af01dd0653D07b20A69C3c9Fb0CD4A15d93b1F", + "xt": "0x7087a6cB21C3f9aa7F7Ef16e3271C286d2D18f37", + "gt": "0x7e0805D07b0b24305D227D96f1855ED936B70D53" + }, + "config": { + "marketSymbol": "USDT/USD1@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-market-USDT-WBNB@25JUL2025.json b/deployments/bnb-mainnet/bnb-mainnet-market-USDT-WBNB@25JUL2025.json new file mode 100644 index 0000000..afb77af --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-market-USDT-WBNB@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "51480317", + "timestamp": "1749964600" + }, + "market": "0xAb5c179FA24d760f648711c977690b07Ec77782A", + "collateral": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "WBNB", + "priceFeed": "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x55d398326f99059fF775485246999027B3197955", + "symbol": "USDT", + "priceFeed": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xF0B0c8594e28923543265c83b2469375B985CC30", + "xt": "0x1D148453D39AAC38f4273c703CC46396E3Be7a78", + "gt": "0x80C1FD61bB4987Bfd84C01Bb0F7E3914a9B20dd4" + }, + "config": { + "marketSymbol": "USDT/WBNB@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-market-USDT-sUSDe@25JUL2025.json b/deployments/bnb-mainnet/bnb-mainnet-market-USDT-sUSDe@25JUL2025.json new file mode 100644 index 0000000..c07ee06 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-market-USDT-sUSDe@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "51480317", + "timestamp": "1749964600" + }, + "market": "0xfb0aF63370a24E402b027A8677a6197e7f9C7017", + "collateral": { + "address": "0x211Cc4DD073734dA055fbF44a2b4667d5E5fE5d2", + "symbol": "sUSDe", + "priceFeed": "0x7CD1174235476Ec8844A88de0d3E56A21E72ADa2", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x55d398326f99059fF775485246999027B3197955", + "symbol": "USDT", + "priceFeed": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xE910f6faF046E7F56cfb7ba832ec6f110EEA1BB3", + "xt": "0xdf7eA87881725913F08bf1c73312752d567BB278", + "gt": "0x8f4F84a1a49aE7361489dfBCD2985E25F967D386" + }, + "config": { + "marketSymbol": "USDT/sUSDe@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-BTCB@25JUL2025.json b/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-BTCB@25JUL2025.json new file mode 100644 index 0000000..98d0269 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-BTCB@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "51480317", + "timestamp": "1749964600" + }, + "market": "0x93E7b60888391a7FEECe0a60C7E632394d1A856C", + "collateral": { + "address": "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c", + "symbol": "BTCB", + "priceFeed": "0x264990fbd0A4796A3E3d8E37C4d5F87a3aCa5Ebf", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "WBNB", + "priceFeed": "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1Fb31CabbE59084c30f0AB3FF32F84f2FC92C8b5", + "xt": "0xB77ebabA0f1ebcbBAdb98B8254A02B1A6F2fFbFE", + "gt": "0x1FDFCfBc2E401B4DADd4114773F6aE5fA2bFEb8c" + }, + "config": { + "marketSymbol": "WBNB/BTCB@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-USD1@25JUL2025.json b/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-USD1@25JUL2025.json new file mode 100644 index 0000000..554a599 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-USD1@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "51480317", + "timestamp": "1749964600" + }, + "market": "0x721BC0332754DAb1962afe2aBc784AeEBf1De11E", + "collateral": { + "address": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "symbol": "USD1", + "priceFeed": "0xaD8b4e59A7f25B68945fAf0f3a3EAF027832FFB0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "WBNB", + "priceFeed": "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4b47864E34867Aef7cb76C3297088d8cbC5c6bBC", + "xt": "0xA5c5eCd8Ca806b78986e508c7338af012962aCfc", + "gt": "0xa623bB457FD8c99e0c903F74c1889Fa15e700f04" + }, + "config": { + "marketSymbol": "WBNB/USD1@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-ynBNBx@25JUL2025.json b/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-ynBNBx@25JUL2025.json new file mode 100644 index 0000000..6a8edf4 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-market-WBNB-ynBNBx@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "51480317", + "timestamp": "1749964600" + }, + "market": "0x66cC6a17F93f2dc013dfcf8627EbD1269C20FD8f", + "collateral": { + "address": "0x32C830f5c34122C6afB8aE87ABA541B7900a2C5F", + "symbol": "ynBNBx", + "priceFeed": "0x5F5376913E011AeDe8d93027B335832180411322", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "symbol": "WBNB", + "priceFeed": "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x70CF7BA3b643170E2fb10b4D46C364384b785837", + "xt": "0x03de568624787CA82bF14A86A3be895655D1CEd0", + "gt": "0x04bcFe13B9fFE3628DBeabB8a4377aDc9240d261" + }, + "config": { + "marketSymbol": "WBNB/ynBNBx@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-vault-TMX-USDT-Vault-13JUN2025.json b/deployments/bnb-mainnet/bnb-mainnet-vault-TMX-USDT-Vault-13JUN2025.json new file mode 100644 index 0000000..dc08f16 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-vault-TMX-USDT-Vault-13JUN2025.json @@ -0,0 +1,25 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x8fb8627bea884c615df68b127ae9a09b4e20db1d" + }, + "blockInfo": { + "network": "bnb-mainnet", + "blockNumber": "51385092", + "timestamp": "1749821745", + "dateString": "13JUN2025" + }, + "vaultInfo": { + "name": "TermMax USDT Vault", + "symbol": "TMX-USDT-Vault", + "address": "0x86c958CAc8aeE37dE62715691c0D597c710Eca51", + "asset": "0x55d398326f99059fF775485246999027B3197955", + "performanceFeeRate": 0, + "maxCapacity": "50000000000000000000000000", + "timelock": 86400, + "admin": "0x9498764f0c62257B83A04e2A757De30908EC793d", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/bnb-mainnet/bnb-mainnet-vault-TMX-WBNB-Vault-13JUN2025.json b/deployments/bnb-mainnet/bnb-mainnet-vault-TMX-WBNB-Vault-13JUN2025.json new file mode 100644 index 0000000..c10b618 --- /dev/null +++ b/deployments/bnb-mainnet/bnb-mainnet-vault-TMX-WBNB-Vault-13JUN2025.json @@ -0,0 +1,25 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x8fb8627bea884c615df68b127ae9a09b4e20db1d" + }, + "blockInfo": { + "network": "bnb-mainnet", + "blockNumber": "51384859", + "timestamp": "1749821395", + "dateString": "13JUN2025" + }, + "vaultInfo": { + "name": "TermMax WBNB Vault", + "symbol": "TMX-WBNB-Vault", + "address": "0x89653E6523fB73284353252b41AE580E6f96dFad", + "asset": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "performanceFeeRate": 0, + "maxCapacity": "20000000000000000000000", + "timelock": 86400, + "admin": "0x9498764f0c62257B83A04e2A757De30908EC793d", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/bnb-testnet/bnb-testnet-access-manager.json b/deployments/bnb-testnet/bnb-testnet-access-manager.json new file mode 100644 index 0000000..e4d391b --- /dev/null +++ b/deployments/bnb-testnet/bnb-testnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "bnb-testnet", + "deployedAt": "1745078880", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x9ccea93c0ceff6a76f38270be9ea3d3aad9552d7", + "blockInfo": { + "number": "50444060", + "timestamp": "1745078880" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0xF28546cFbBBB0474aa77ec692e35AbebB6ba98E1" + } +} \ No newline at end of file diff --git a/deployments/bnb-testnet/bnb-testnet-adapters-20250627.json b/deployments/bnb-testnet/bnb-testnet-adapters-20250627.json new file mode 100644 index 0000000..c784245 --- /dev/null +++ b/deployments/bnb-testnet/bnb-testnet-adapters-20250627.json @@ -0,0 +1,18 @@ +{ + "network": "bnb-testnet", + "deployedAt": "1751010431", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x23b76ca54b9c28b2b4fc0b4d07d64b3f17c4ee36", + "blockInfo": { + "number": "56241046", + "timestamp": "1751010431" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "swapAdapter": { + "uniswapV3Adapter": "0xC8175570536849923D2A38FDFC33f2EA9ace4134", + "odosV2Adapter": "0x55f73C3D6F90e0858423A813969270D735fF0015", + "pendleSwapV3Adapter": "0x7D799FE4Ea4b4Fea5BA8545f2b4f04f0c151B2AC", + "ERC4626VaultAdapter": "0xAe3C3a1677Ec9f061c768edD6C0d50A6A67F4656" + } +} \ No newline at end of file diff --git a/deployments/bnb-testnet/bnb-testnet-core.json b/deployments/bnb-testnet/bnb-testnet-core.json new file mode 100644 index 0000000..d9858c0 --- /dev/null +++ b/deployments/bnb-testnet/bnb-testnet-core.json @@ -0,0 +1,21 @@ +{ + "network": "bnb-testnet", + "deployedAt": "1745079294", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x9ccea93c0ceff6a76f38270be9ea3d3aad9552d7", + "blockInfo": { + "number": "50444336", + "timestamp": "1745079294" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x3b25e0b9AFff38620b7c070C0E21C49520F1933B", + "vaultFactory": "0xa2450A147a1e03109c9ecea50590f13F1e4F10e5", + "oracleAggregator": "0x23b6CAd9F1376A2146C7ab469b371ae090246dD4", + "router": "0xfe1dFCe548E8AEBe2964D5C0c9906FcE981d7E47", + "swapAdapter": "0x7584B2003c208629748dE4B28c925b011F79200b", + "faucet": "0xD0F4bA61A691F31463a459B631E997580B6C2C26", + "marketViewer": "0x43D245c1106f38721A8bbd0022108DA02d8073a5" + } +} \ No newline at end of file diff --git a/deployments/bnb-testnet/bnb-testnet-market-USDF-PT-USDF-24JUL2025@30MAY2025.json b/deployments/bnb-testnet/bnb-testnet-market-USDF-PT-USDF-24JUL2025@30MAY2025.json new file mode 100644 index 0000000..4ae3e30 --- /dev/null +++ b/deployments/bnb-testnet/bnb-testnet-market-USDF-PT-USDF-24JUL2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "50446056", + "timestamp": "1745081875" + }, + "market": "0xCEBfcCeAE78523cAb0a651BB9F50F2a42cD02334", + "collateral": { + "address": "0x99EE8b5FCaAFfe20F13Ea2d1f98CC0E5007bC0B4", + "symbol": "PT-USDF-24JUL2025", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xE0542c184612e3bA238c04a13BC2400B78740278", + "symbol": "USDF", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x256056E4413338fc965D30d70b7E593b042cF728", + "xt": "0x4829f19FA3AcBb85Ac518b4e8712D7625848683d", + "gt": "0x8DFa26A1745bCf7EEb10302025EA090777973C2F" + }, + "config": { + "marketSymbol": "USDF/PT-USDF-24JUL2025@24JUL2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-testnet/bnb-testnet-market-WBNB-slisBNB@30MAY2025.json b/deployments/bnb-testnet/bnb-testnet-market-WBNB-slisBNB@30MAY2025.json new file mode 100644 index 0000000..d5b6b63 --- /dev/null +++ b/deployments/bnb-testnet/bnb-testnet-market-WBNB-slisBNB@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "50446056", + "timestamp": "1745081875" + }, + "market": "0x61b3cd6E5e8c41258789fCe40A4B77Cc5b3c769E", + "collateral": { + "address": "0x550AF08ceA3346EB5bA7ab88267E03C686a51eaC", + "symbol": "slisBNB", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x378b9B0224252f4F0e5fC5ef80Ae63389215d0b3", + "symbol": "WBNB", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x374c3c33137a412F9DA82F8AAA4663B61C91837c", + "xt": "0xCDEC91fB09297DAb82770897b02A34fd4b614e57", + "gt": "0x2bA292497afe4b2E5a8459b34d301606F2bcEE20" + }, + "config": { + "marketSymbol": "WBNB/slisBNB@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/bnb-testnet/bnb-testnet-vault-TMX-USDF-Vault.json b/deployments/bnb-testnet/bnb-testnet-vault-TMX-USDF-Vault.json new file mode 100644 index 0000000..9f818e4 --- /dev/null +++ b/deployments/bnb-testnet/bnb-testnet-vault-TMX-USDF-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x53dd1e2e6f9d69f487810fb71472654b1fc82c09" + }, + "blockInfo": { + "network": "bnb-testnet", + "blockNumber": "50959780", + "timestamp": "1745853264" + }, + "vaultInfo": { + "name": "TermMax USD Vault", + "symbol": "TMX-USDF-Vault", + "address": "0xc685Dac88A70cf75f442575f34a4e11890f4f0d6", + "asset": "0xE0542c184612e3bA238c04a13BC2400B78740278", + "performanceFeeRate": 0, + "maxCapacity": "10000000000000000000000000", + "timelock": 1, + "admin": "0xF28546cFbBBB0474aa77ec692e35AbebB6ba98E1", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-access-manager.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-access-manager.json new file mode 100644 index 0000000..ac9b224 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743496825", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x63beb3e4a59b16c67274f2a221a2b31cbdd405f0", + "blockInfo": { + "number": "22095404", + "timestamp": "1743496825" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x8A9954d09aa511c3d986167766244Eaf7B986dE5" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-core.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-core.json new file mode 100644 index 0000000..6ff6173 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743497402", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x63beb3e4a59b16c67274f2a221a2b31cbdd405f0", + "blockInfo": { + "number": "22095410", + "timestamp": "1743497402" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0xeE43AE1fa906497F4dbC561F77856E21238A1E25", + "vaultFactory": "0x7c48A59E3346D8A0cdDB221a836b84F706dc372e", + "oracleAggregator": "0xf6B4a5b64d9AA15689e03A0116499c38410b045f", + "router": "0x23cafE3c010e8BdA1f247b9d97A87d3c173318A7", + "swapAdapter": { + "uniswapV3Adapter": "0x21C2376eb9Ec0B832f7eE7E25028AEA1602b9531", + "odosV2Adapter": "0xB9D03162de01d9303Fb729287BB65363895ac9f2", + "pendleSwapV3Adapter": "0xDa7cD8EFA0D019F1644171E3F122e9A7454C916E", + "ERC4626VaultAdapter": "0x8ade0c89f9a751fB2112AeF41C4E817dC62Cd0c5" + }, + "marketViewer": "0xdC325533007E364fCc715667228B5278C75CC416" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..3c0d641 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x6Ed197F78A66257121B96f5748CedB723C24bf63", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x20955f2649117181b04a3FAB48AaA9C593Ec2f4F", + "xt": "0xBA5C563d93c8e90b390DE2A74EBFeB1a69C826E9", + "gt": "0x8347605e402745C15eD0b63dA28d501846A96db6" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-USUALUSDC+@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-USUALUSDC+@30MAY2025.json new file mode 100644 index 0000000..c1ee47b --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-USUALUSDC+@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x72F9bBE83980aFD6025c13b4d59a7EB0594C2c88", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6A035EB3BA89790f9DD5b52263dF9681e41256f3", + "xt": "0x13F592D438AC4968c98baD8dC74C849cA4841D8E", + "gt": "0x3aFd794880639A4AFBA18E75b988102Bc32294b1" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-WBTC@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..3fe7848 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x3E3F02141237F0C5B090f2F4F741Daf80F0B3C78", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xaC97B2cfF42B01f3edC797D7fb21fDC08Eb52300", + "xt": "0xc09D096E088510b08eCf7e8cfaF71a4778a400d5", + "gt": "0x6E6c0B08a7aD7807a8cb6e262ABbBE3b4037495E" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-cbBTC@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-cbBTC@30MAY2025.json new file mode 100644 index 0000000..95d6d5a --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-cbBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x66a295662D76E002e923AD052dd9eff60573F56E", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDBB8B610A8aB95AF823c8886e9A034e1A181FB2f", + "xt": "0xcdfA5d0915ab4bE4ff173d13B98101F6cECd042c", + "gt": "0x70DaBe1729b4fE69fbDde0Bf56fC520019a7cEeA" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-eUSDe@29MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-eUSDe@29MAY2025.json new file mode 100644 index 0000000..f83d729 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-eUSDe@29MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x9dc16Bc9Ba936db34187099BC4e8E8708D45690E", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1168E8C52E347386D1Db3AcC07174386bD54e9e1", + "xt": "0x0DB3C4E985b80B111A9E8B57F1fcdE2fa54F2F59", + "gt": "0x624e3C5cB5F4cC16EAA4E5174f352fEfa5F34F84" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "29MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-sUSDe@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-sUSDe@30MAY2025.json new file mode 100644 index 0000000..63eb352 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-sUSDe@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0xB658C7c51F21489f12B618560D791100e538fA5a", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3Ed00148e9959c406Ec3a1219Da36117344B74A2", + "xt": "0x83CA57f58C64567AA83b49F9Afa38aae3BaA1812", + "gt": "0x32078C4e488AF31BFc891Ba6Be905E4DE40fd392" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-wstETH@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..3ff5b16 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x8D1D5A71C37636348811ab706a8da1F46028e343", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x57216cE7b3A4Ca9Ad7F43Db684b0e679f5072523", + "xt": "0xa78fB0F9a0F12B9b08BbaE5832B7258D57eD1939", + "gt": "0x527822304738DB9d42a7cbd7e4CEd5D94431274f" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-MCwETH@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-MCwETH@30MAY2025.json new file mode 100644 index 0000000..ee43a01 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-MCwETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x0A403B16eac0E40b71d79939d09D5df8b37244d9", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xC6498EDbAd606A64be9DBb472317c06d034117E1", + "xt": "0xA311E0684d9F6368149025e5a997311a32AaBA12", + "gt": "0xEC9Cc6e53b695A511BEE3d67C6f393fA69B172AB" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-gtWETH@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-gtWETH@30MAY2025.json new file mode 100644 index 0000000..018b5d1 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-gtWETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x5AA8FD282642F55E4B812078927E672E6c0a6807", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xFD2b44a67CFEcb0B1D8dF3ea437b95d0171F8DF4", + "xt": "0xA3EB96060551CAbcCD59478764ef3BCE04e05dd4", + "gt": "0xB89F84937c899042A978c981C449aDa352188e83" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-pufETH@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-pufETH@30MAY2025.json new file mode 100644 index 0000000..1329c38 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-pufETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0xFdFFA2C857CB603BFbdFB98a9db057E784b15888", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x98Bb39d34FF39e9b75dfB825c9922289A79d39D2", + "xt": "0x6c0EAEB2DcAc732ade7CadbdaA53Ec3424d556c6", + "gt": "0x83cB297891C9A46d7a700450Cfd77ab106F7EA29" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-weETH@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..6787630 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x1EFc12001f73557600387ff198353cB3F6332dAe", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x37f6bAFd7355174d6794B53878Fe726dFEdD821D", + "xt": "0x8E6b927C59dd23Caa07c48d29F2eA7b36B734ee8", + "gt": "0x10d2d58f8096e6CbDf055F379936bA303aA22CA9" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json new file mode 100644 index 0000000..3bca152 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22095459", + "timestamp": "1743498020" + }, + "market": "0x493A77f1110D1102Ae9fB915728062Fe85d2b1F2", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x35E6ac2B95BE2E408bd891Ef18C3a7B0d63418F7", + "xt": "0xf480941EA275dBa128550753b369C478D6c67E29", + "gt": "0x925f0E7b3396A426790628b0C38f975B3C93faC3" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-vault-TermMax USDC Vault.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..3d8d626 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x63beb3e4a59b16c67274f2a221a2b31cbdd405f0" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22095474", + "timestamp": "1743498814" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0xd20440456fad0928e7994283E290f6afD6CaB699", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "10000000000000", + "timelock": 60, + "admin": "0x8A9954d09aa511c3d986167766244Eaf7B986dE5", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-vault-TermMax WETH Vault.json b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..a41a640 --- /dev/null +++ b/deployments/eth-mainnet-fork-v1.0.8-20250401/eth-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x63beb3e4a59b16c67274f2a221a2b31cbdd405f0" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22095477", + "timestamp": "1743499048" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0x83c717503A778dcc2729504A8f353f2B5e57FEcA", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 10000000, + "maxCapacity": "5000000000000000000000", + "timelock": 60, + "admin": "0x8A9954d09aa511c3d986167766244Eaf7B986dE5", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250402-1700/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250402-1700/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json new file mode 100644 index 0000000..3e9c71c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA", + "xt": "0x544786112d542910634109BcCEF84C3Deb1b65e0", + "gt": "0x81CAc518B14B28570C667A143F801bF2e05b6BEe" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json new file mode 100644 index 0000000..abc5d82 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x10aCD317ebf3F65e30c72720D89c55B7C68a9628", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA03710F73585cb5458F43739624611633Bf24173", + "xt": "0x80525c75690102bb024BcEd8bE81D18A56172EC0", + "gt": "0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-WBTC@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-WBTC@02APR2025.json new file mode 100644 index 0000000..0769af1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-WBTC@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1184866Ed937F4605efc100c1f18E028F7CBDD86", + "xt": "0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c", + "gt": "0x315f180e74247E01ca0377244Eb6b6D1c7444452" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-cbBTC@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-cbBTC@02APR2025.json new file mode 100644 index 0000000..931fb64 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-cbBTC@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x0ed76A80D639E7Bf88524b63429bB841c1633E60", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD4771df4a0f6338f521512A1651D8DB7EF5Af633", + "xt": "0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31", + "gt": "0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-eUSDe@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-eUSDe@02APR2025.json new file mode 100644 index 0000000..5902626 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-eUSDe@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD667a61e822564e1399f73196c73B2C41bCBda69", + "xt": "0x2348B91F2037799d6AE604D792101534461DB06E", + "gt": "0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-sUSDe@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-sUSDe@02APR2025.json new file mode 100644 index 0000000..34e7505 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-sUSDe@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb", + "xt": "0xb7d4329b11Dff286890F4d7e5b10763E09E8804C", + "gt": "0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-wstETH@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-wstETH@02APR2025.json new file mode 100644 index 0000000..0a54520 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-USDC-wstETH@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0xC8c3A49b64dB371F96EdC15941e043966297Ea6b", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x19632ff799BA54B54934b52a89964F6cb12D396f", + "xt": "0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A", + "gt": "0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-MCwETH@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-MCwETH@02APR2025.json new file mode 100644 index 0000000..f9f5972 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-MCwETH@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264", + "xt": "0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779", + "gt": "0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-gtWETH@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-gtWETH@02APR2025.json new file mode 100644 index 0000000..d8f6598 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-gtWETH@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C", + "xt": "0xE292927A017d58823957A83ea5EFeAF9C37D6F94", + "gt": "0x7AdE4961Fccba087E8b4De84E8be61098Daf0230" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-pufETH@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-pufETH@02APR2025.json new file mode 100644 index 0000000..b4b82ac --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-pufETH@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x9cde69Ea28c9125060F86eB982305BafaE57f585", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F", + "xt": "0x63B96518024b49C8F16104fDFd9d94a79A3d185C", + "gt": "0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-weETH@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-weETH@02APR2025.json new file mode 100644 index 0000000..f8fefa6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-WETH-weETH@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x4a20DdEB8696b1f542649626889522068cc19438", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d", + "xt": "0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034", + "gt": "0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json new file mode 100644 index 0000000..18b9e25 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22175185", + "timestamp": "1743524099" + }, + "market": "0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xc7d5476d361C8d0E5c0478EA320431AD4a49A558", + "xt": "0xe1710D5449241ce311Bfcefb5272594ECD930ec0", + "gt": "0x4B87E9281de9573f2025565E632bdb8F136766E5" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "02APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-vault-TermMax USDC Vault.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-vault-TermMax USDC Vault.json new file mode 100644 index 0000000..e579dbd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-vault-TermMax USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xf0e7aead33f178cc18e33b5c6e07f406fb95194d" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22175287", + "timestamp": "1743525323" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TermMax USDC Vault", + "address": "0xf9ed1da089DEe56a929975aE4E4017098e45a09A", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "10000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-vault-TermMax WETH Vault.json b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-vault-TermMax WETH Vault.json new file mode 100644 index 0000000..e377b2d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250402-1700/eth-mainnet-vault-TermMax WETH Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xf0e7aead33f178cc18e33b5c6e07f406fb95194d" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22175304", + "timestamp": "1743525527" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TermMax WETH Vault", + "address": "0xfa9e4093875cE1a3b4d5C220A387aCc24ffdc64c", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 10000000, + "maxCapacity": "500000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "guardian": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b", + "allocator": "0x96e65A7a861D70A1c024774d7a48af44bCAD502b" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250403-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250403-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@03APR2025.json new file mode 100644 index 0000000..dcf8ea7 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0xEb96441fd0E77a985847776fC1E1e50586227Ecb", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6956d2FA2723c3ce424912AfDA08aF272ee3296c", + "xt": "0x9a7380C034B580E2e4CAF8235543dA4b0775Fe5F", + "gt": "0x3c911a08583f87eC069de10e876f3150b35DE26C" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-USUALUSDC+@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-USUALUSDC+@03APR2025.json new file mode 100644 index 0000000..d63f3a7 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-USUALUSDC+@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0xCD0A8c210D440cA2F493f5e4169f54d0e1012b7d", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFc4CB28BE791291ac85E3eABdC14E03E6BE6618d", + "xt": "0x225D49E1EdB0A20090722dd04E85a90c31cC2c6E", + "gt": "0x0e634d626becf1B120310075AAD62F4fB967e934" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-WBTC@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-WBTC@03APR2025.json new file mode 100644 index 0000000..9174ab5 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-WBTC@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0x01eEEbA9F5CEb71e491dE52249ED38ac0dED53c3", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xac94eBa061142aCFFe6983764Da4B40d5d9dB08a", + "xt": "0x18B2491dFc648A3f1ACa39EC798C441694E6c835", + "gt": "0xA2F73360c1Aae8fAF729729fcc91b40912C1D604" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-cbBTC@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-cbBTC@03APR2025.json new file mode 100644 index 0000000..edc925e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-cbBTC@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0x08237aB656A745a2E4ed19fd0b8C3B04F2fB05BC", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2dFAd7a4649ce5632fa1d0fC354b1F828be09E8D", + "xt": "0x41CAd787532177ace4E8AC8f2C670573c45e08dc", + "gt": "0xa13e8c94f035AA8449c50eA15B040267d5239b2C" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-eUSDe@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-eUSDe@03APR2025.json new file mode 100644 index 0000000..257a553 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-eUSDe@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0x50D37b2513286614135F3D81Cc985B88a5038Dc8", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xa2B2b631AE75ac9536B6Db64172f6499E7b9AA1b", + "xt": "0xCBC5b7A1e6E613a1b11909DA8Cad8B46DbB2C1d3", + "gt": "0x6622a35AF1f194Ebd482E528bEDF2adD470732E5" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-sUSDe@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-sUSDe@03APR2025.json new file mode 100644 index 0000000..ff09739 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-sUSDe@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0xF2126DefF8f745b7DC86742262128bE3AbDe9DF7", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9f3297eC596fA7F2e2fe2b2941D29208100A3fB1", + "xt": "0xe14aD2ffB58707453375a65b26336BAba5ff2B9F", + "gt": "0xD070F93AE349D813fa4DF0A205f1AB073786E021" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-wstETH@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-wstETH@03APR2025.json new file mode 100644 index 0000000..ea8834f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-USDC-wstETH@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0x3500Dc964b8cB452B6EDFe5Bfbc4940FB54c4C96", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9f58B3Fcbc0705075402a93A31F5e1f3ceA73D64", + "xt": "0x5d133D579cbfBFC048eC9048096D401724c76824", + "gt": "0x804fc570D337AC97Aa6dD74e70d6fC3fDc429F0d" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-MCwETH@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-MCwETH@03APR2025.json new file mode 100644 index 0000000..d843ae5 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-MCwETH@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0xA55F2f1f8747671481680f0C5169458964Fde8D1", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xD0B235EaB3d3EDEAEf769b2720c08BB5f09cAA98", + "xt": "0x8EA0Ef90750361CDc0fF1D031414AEFBeea16710", + "gt": "0x9cC86500e8fC470F8789F4987F42D534FCba5a5b" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-gtWETH@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-gtWETH@03APR2025.json new file mode 100644 index 0000000..47db3ea --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-gtWETH@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0xB4D162644fD338528d86f687112B8AF56aC41743", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x0943f667Db1Aa5b4D011e776fD9C3Ef7A42753A1", + "xt": "0x8Bc19EcEC54Aa9fdD802Ff4e1E1D884619dd4E00", + "gt": "0x37a0D4134B6F73Db8bCb35ffb9fb2AD460F69185" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-pufETH@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-pufETH@03APR2025.json new file mode 100644 index 0000000..4178851 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-pufETH@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0x172d1dCED534b3941B0172272556c31B9fbd4eC7", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xBe6565aD58237B7dda8B3F43C0D4d526c0393C55", + "xt": "0x6182A2f730d15fEBf08003F3eFE523a3c4675Ba1", + "gt": "0x06E08D541bB729F1d3f2C995D49e950F9610B7D4" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-weETH@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-weETH@03APR2025.json new file mode 100644 index 0000000..d332085 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-WETH-weETH@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0xDA4003d48f355FA18586e6a5b96D2F93072129fa", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xFeE08e6119337f62dFd0175beD3Aa6363b1d6644", + "xt": "0x991cD2FAa4Ef2E13480755B117868B73Ca7cF614", + "gt": "0x14402B00E18Bc9ebD4193cB13F7B52a74C4073D5" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@03APR2025.json b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@03APR2025.json new file mode 100644 index 0000000..98dfca9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250403-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@03APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179054", + "timestamp": "1743570719" + }, + "market": "0x37194e3b5C4EacDC19B2703bD67Da82f6011d758", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x238dabbc3Ad3f5F1BA9CDa0f0649dE0aF296d7B4", + "xt": "0x30480BdC9f861aF922E66649FCefDE606699Db84", + "gt": "0xFfD3Cee3030528f2B619772831A06FE56A06bAe1" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "03APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250404-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250404-1200/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@04APR2025.json new file mode 100644 index 0000000..bb5e1ec --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x253BFCEf3e01d2976658DA1660Ce1Ddb3193b3C2", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB85982048FdF3525152EaF2AD46aBc3217957db2", + "xt": "0xaE10FD3E8Efd65fA2FaA31c71381F608d9a38885", + "gt": "0x5cDb3526CC64AEEfD27c26195B8C98d2b83A5AD6" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-USUALUSDC+@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-USUALUSDC+@04APR2025.json new file mode 100644 index 0000000..3dcf08e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-USUALUSDC+@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x4041864081667d1fe7FcAf54D6521b88b795395D", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xBeDDcEB759e417f2889C9Db654f84084C2DA2e28", + "xt": "0xD98a6310E4cF92301CAB16667C65800B20b78523", + "gt": "0xCE3E6a82A5c716E32b1c91d45267B1de8E6A431f" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-WBTC@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-WBTC@04APR2025.json new file mode 100644 index 0000000..e256b0c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-WBTC@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x685502b6CF5c401703F21ecc3f5998242F57d986", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8F35519720c69568A992a56a90168096ce325646", + "xt": "0xaa6bc38e89b84ABC47d76275411DaF6F0dabb532", + "gt": "0x5cf4A4665DDf672D6C2A476c1ecB29e7f726aA55" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-cbBTC@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-cbBTC@04APR2025.json new file mode 100644 index 0000000..b75a255 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-cbBTC@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x42969576B5307507026d95f7436E643A05Ba7543", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0E20312cB62c986bC96CE4436A4233F17D6f3cb2", + "xt": "0x2A081c7B64d1c32C240CB79ADE4177ec349b2F28", + "gt": "0x4E7f6A06c334765BCe2fB1eEFB8e77032872B8c9" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-eUSDe@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-eUSDe@04APR2025.json new file mode 100644 index 0000000..aa71a9a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-eUSDe@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0xF929DB55b42834D89408568F9C5b85C233e645dF", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3aA2F1e7BD6858F06E3D20593B9Ad56a3D90E6B6", + "xt": "0xa0B23FE56a2617633aaa7318cBEC2947dB505E00", + "gt": "0x58Aea5162E527A11e5124B02Bd61127515DA25d2" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-sUSDe@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-sUSDe@04APR2025.json new file mode 100644 index 0000000..3b861bf --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-sUSDe@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0xb4F060a20Ea7f30E88936aAbD9A14eF50f8D47CA", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xAb7eB39D78024adFD4264ffc20b7aC98f4240258", + "xt": "0x0837406657aCb163B053c45363030E8Ca38C4234", + "gt": "0xF47bb4d0C86F6BEe249d7E59bCC0eAB6BC19f61d" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-wstETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-wstETH@04APR2025.json new file mode 100644 index 0000000..8d49d3f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-USDC-wstETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x14d63227e3F623459e56981aF8B8562476cc71C7", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x951FfA0FE0C5fFee06D3617C08a537A56a1C5015", + "xt": "0xD3cd972A8253801051068f1Df316EcFC9A786Daf", + "gt": "0xA07D0BcBD0608F0B2AD6502Db366b5002B3C6d7C" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-MCwETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-MCwETH@04APR2025.json new file mode 100644 index 0000000..7ad68ae --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-MCwETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0xDd61d5fE9B33Fa2485ffd88EA117246cfBA1499F", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xe98b4cfE2Df9F45dd0Bc11482dc39D6f060df52d", + "xt": "0x4C81B8ec3a7efB2Ab09ACE7b60967C83A5C76Da1", + "gt": "0xE57210d539095a26f563f5056684F9235bf09C30" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-gtWETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-gtWETH@04APR2025.json new file mode 100644 index 0000000..caee4ef --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-gtWETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x259ADb419EFF325E36BD40936ad125864F2Ae5B1", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xda3759365F01e43c429F147f92a005D938D976Cc", + "xt": "0xF4a2c0e28D55A7BB5E1570BE340f6430188151cE", + "gt": "0x08D97cd7688f9a33AfB0402EEBeDbFAE7184DdF1" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-pufETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-pufETH@04APR2025.json new file mode 100644 index 0000000..744fbf2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-pufETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x21a93E5Dc9EBaA2FD4a489dFB1D809ca668c543C", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xdF57Ba3199E79ceCC9B063474821A1236E2248Cf", + "xt": "0x014D1B97D7b785db28d9397718dfdD4613EeD09e", + "gt": "0xea86E308062340ecd4D04e124663E8A27D2b3ca2" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-weETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-weETH@04APR2025.json new file mode 100644 index 0000000..22e2447 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-WETH-weETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x0B5aAf5B8100eee81A82ba1dCd0Ad6aE6E8ea75a", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x53667f2F0030f96e7F757F687b92187E4E219110", + "xt": "0x8395397D9A97B4A44FA114032733823Efa6302b4", + "gt": "0x7d3Df00884f6f4146a5A9acAa53972853064EAEd" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@04APR2025.json new file mode 100644 index 0000000..96e2d5c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179478", + "timestamp": "1743575843" + }, + "market": "0x90E2ae2f6Be939FEf6CA2ef908d620EFA3085B43", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9e38cF293Ae451C075BB12837311F1a39d82d767", + "xt": "0x4cDc86612Ef264B6c57D780a58e03E3d551489B7", + "gt": "0x2f7921867f98bfa3053411D87EC35A2C952CF65b" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250404-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250404-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@04APR2025.json new file mode 100644 index 0000000..bf221d2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x0b0c808Caf5c7F9dAa57771564f20E024468c2a0", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xBc5B6A7f44a67D02c1b03D5Bb2E00b54184d27B2", + "xt": "0x0D980f2d7FAe22F7169c02aD32c24D0369590C65", + "gt": "0x6F5Ed34EeaBA4747bdD67e7270021C2e181918eC" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-USUALUSDC+@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-USUALUSDC+@04APR2025.json new file mode 100644 index 0000000..caf00c9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-USUALUSDC+@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x536c719578451EAcb812C04EFfc94C20d9108565", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4B80CDA0F058e300f7aF40C6d56B73b787E3dB06", + "xt": "0x039B6d19958540657E58327Fb1A5CFC7b36A5E21", + "gt": "0xa7e9C0daBB808aC2894BF4D48d257B6Ec11fa327" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-WBTC@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-WBTC@04APR2025.json new file mode 100644 index 0000000..1995928 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-WBTC@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x29e5e71Bf70a9A6C5DaA9198Df028b50f9d3828B", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0D5EAeE862c70D9dF9D01Aac71A0E4f646269360", + "xt": "0xccC44E05a3466501E3974CA68e5bAe9eAd44C051", + "gt": "0x6A56EeD2cfB035b115E1a0d0c2951A2D7f41F1B4" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-cbBTC@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-cbBTC@04APR2025.json new file mode 100644 index 0000000..c712552 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-cbBTC@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x94D280677e56356CEee0D6565Bf7318EE9CECdA4", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6D367f9b7A7f7462aDae5c7ccF42dA57Ad0a000e", + "xt": "0x469Ead0133e37b99a368D7440Cc7D821c531967E", + "gt": "0x16b794842d3201fd97ce1F6Ec62A5ca90A67996F" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-eUSDe@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-eUSDe@04APR2025.json new file mode 100644 index 0000000..b2c2a56 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-eUSDe@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x93194114eED6EB902887CD8EeB8E2E7bD3cEeF96", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xBAa04A4AB8A2d8d45099B72C384FA505e7aECB67", + "xt": "0x151a451A9988CbAaeA2Ab607B4502DF6a7b3dFd5", + "gt": "0x1bAA684766523D00b7b2B6B2955349E1e5cb8989" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-sUSDe@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-sUSDe@04APR2025.json new file mode 100644 index 0000000..c3c4599 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-sUSDe@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x7A1E791D1615b82051821FB6DF3FF3D5D382B7C7", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA11E1Fc792A23D4fCccD9aF58946C3Ee4db53F04", + "xt": "0x7Bbb4337fcDccEbfDD07055A35BA5F6C6211060D", + "gt": "0x2bdE30FE486D828eFa3f738d50b3B379c2C9f310" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-wstETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-wstETH@04APR2025.json new file mode 100644 index 0000000..4c58569 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-USDC-wstETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x90b821Cc6E34170d6759175A2328fE8EB767b9D0", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2507EBcD524A9A50aC8fe5e2Df96d0f645Ae8Ae1", + "xt": "0xB251936aDE3bEb201d949AB8E947816700559F02", + "gt": "0x7793eEA53016B74b2148d1Cc1217e65cDC4D6495" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-MCwETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-MCwETH@04APR2025.json new file mode 100644 index 0000000..a0b49d8 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-MCwETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x1eA1a9346Ea4c441Ab2181149E5FF94d2bdd87A2", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x6AA27775A7534C35bdFb041f72448a90B913c0C1", + "xt": "0xB17887A075021462aa3bFd886030A77409F1eec0", + "gt": "0x487c9aCF35340C7fbe42B08aAd37E15f8787de5C" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-gtWETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-gtWETH@04APR2025.json new file mode 100644 index 0000000..2d836f9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-gtWETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x52451856b950170ECAD570A17bdfa3bB15232423", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xEA1f3F709CD6f105467c33aB2cB163aDDE3E0eD2", + "xt": "0x73c309418CDbE792da81a2E5b27512D6638A1DCd", + "gt": "0x624825445983d140920048a1619C8013De0A3d64" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-pufETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-pufETH@04APR2025.json new file mode 100644 index 0000000..2470f4d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-pufETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0xfC19f3689B3a9FCF33c6A6B26efCB9AF911a875A", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x7D151b3EA3bB134069315D7A0D34BbA887Abd6ac", + "xt": "0x937F1f3209418a9702e016466f7D980D402b59a2", + "gt": "0x838aA82873330eBDf271c3CD0c5De60D9baa8A1a" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-weETH@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-weETH@04APR2025.json new file mode 100644 index 0000000..3fe68a9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-WETH-weETH@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0xd496715743398Cedd3Da9Dda651568E952Db4B9c", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xe029d0b76060192C2228CCB5d03999acd43E6E2E", + "xt": "0x84Dd6529B88D91Dd13Ae39379e5DA1d709e38E6D", + "gt": "0x394913608fA5B99e76DD0100688029BC40dd7372" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@04APR2025.json b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@04APR2025.json new file mode 100644 index 0000000..3f11cc5 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250404-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@04APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179115", + "timestamp": "1743571451" + }, + "market": "0x61b90B8914136F8F74D252AB18b1c35f32a50955", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB7821564B0b554678e9A654c12f91Ed711A28020", + "xt": "0x4c9CC7067A4dAbB7289A100848804194b63b0D79", + "gt": "0xC6B6EAd6c809D0193012545A6a520d3AEef3d7D7" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "04APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250405-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250405-1200/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@05APR2025.json new file mode 100644 index 0000000..e1ddfbd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x97961b4708ae56d347F28515E0Ce6A13414ad92F", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xe3AD652Aad5DE36271dfbf197eE9cB9EBcA951B2", + "xt": "0x594B0d025f741685D3323E75454c9C47BD68C513", + "gt": "0x386a19C0219FAEf8D71606880088f53D5080e839" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-USUALUSDC+@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-USUALUSDC+@05APR2025.json new file mode 100644 index 0000000..7803b60 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-USUALUSDC+@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x4DcdaD482C1Aef4CedD6F35A4525D0Bb3cb9EEde", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD1ead4c54c99561Ec44c09E88a7fE383fb9F037a", + "xt": "0x731af351aB37DadcaEab8a82D8F98F85f9979FB1", + "gt": "0x79753063a5d742c071ccdB15fbA22591Bb355413" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-WBTC@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-WBTC@05APR2025.json new file mode 100644 index 0000000..19205fd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-WBTC@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x627090fD591BEe51427E8e26EaFcC56ea6d2ad0d", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7EB2BEBdf6151Edc44C0DCFCC2dD951ae0ca408B", + "xt": "0xd4B030d4910D187aD10Fb9832b4Fb678265e2188", + "gt": "0x929aDA93f2b6535062B9Fae3D6C041C2061889f3" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-cbBTC@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-cbBTC@05APR2025.json new file mode 100644 index 0000000..c7d8f86 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-cbBTC@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x90Ae13BB7ab4F0829B2983B629C72745156cEA87", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB13b8317677Ac3dfE765b392937DfF5112D25466", + "xt": "0xD4f3E72Fc4C3dC5753ea6a3612Ffd2253eADDD2a", + "gt": "0xFe818c3ecE29868e7b6A7065698380b15119999B" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-eUSDe@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-eUSDe@05APR2025.json new file mode 100644 index 0000000..7bbd6f7 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-eUSDe@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x74aDEB4B0E09FE534beae819A5fA775e8023CcbB", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xa991D221860187b54cF611f5C3078DdAD34BEA63", + "xt": "0x066BB2400AfAfCF41c270a96FC9cBD745db94830", + "gt": "0xa6e40B874fAc9D600401399D0d61ec66366efBFb" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-sUSDe@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-sUSDe@05APR2025.json new file mode 100644 index 0000000..f5a7b5d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-sUSDe@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0xe219D84B7f553C084243f40d687A212431c5b104", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x287b1D5A3C680c10f9c50285C3185F0163980A88", + "xt": "0x570986B3Df5fAA46b36D7fA4BB98e7F7214ed195", + "gt": "0xb2b42cB2f9dd63aE879ab0DE368006116E49dDa7" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-wstETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-wstETH@05APR2025.json new file mode 100644 index 0000000..a2b25d3 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-USDC-wstETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x468C435D674BD644225348a4736f779fa9B52e92", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x116Fe32267DEdf543Aee17cC9c80005aD061Ece5", + "xt": "0x22519b349735e59f1dEa553051faD6E789412601", + "gt": "0x823f7EF7dAD74A8F2d0F4E004D0DEaAA132D8a75" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-MCwETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-MCwETH@05APR2025.json new file mode 100644 index 0000000..fde1886 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-MCwETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x51896173697A5F66E3D523bCFc07B1e3082ED658", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x1a255A8164Fc8b9229633da9bc65B515f3F27Fd6", + "xt": "0x8dA6c9c459d914E3c0A989804D33bA560Fe910af", + "gt": "0xe39B866884b8709E641E9b88055524Ec15e30cC5" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-gtWETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-gtWETH@05APR2025.json new file mode 100644 index 0000000..f880ebf --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-gtWETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0xd28C7f0cD5711d48F8010c79292073CD767E25f3", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xA1665e453c0A12252Cd9242EBfC6eC3151b015E8", + "xt": "0x29256893DF8BC36018a5Ef904DdaFd3a7fC7fD7F", + "gt": "0xb805E08d8fc36f0c31699DedE640188F4C825382" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-pufETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-pufETH@05APR2025.json new file mode 100644 index 0000000..11e2da9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-pufETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0xcbFec17391bd81DF22b2236A53C8afa83CaeD380", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x6e5D26089C9E80ab4Ad78a651d681b012D65be33", + "xt": "0x0dfa6Db5FfD88ADb461865E9C43243463771Ae3D", + "gt": "0x28D78CfdDF3c2bea4222157240d5bB6496ea5b0D" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-weETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-weETH@05APR2025.json new file mode 100644 index 0000000..6822dda --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-WETH-weETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x99614E78dBf4143FC2ecc4f59345d7a46d703BbD", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x0Ac281cAe9D759040d7Bb4a1a8161329d3c52044", + "xt": "0x6ad41d2E1A01ECd92105c32581bC60A7bD4eAB5c", + "gt": "0xa2056761B48a4FA6bd8376ee0f78e63FefaaEDb5" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@05APR2025.json new file mode 100644 index 0000000..f53ee2d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179562", + "timestamp": "1743576851" + }, + "market": "0x2aB6C6f48C4e3365B995BE2fdbCc4c1ae7535E6F", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x84807374340AA1cCdAac08C3a28A959256e7f2B9", + "xt": "0x1ef27f2B71747E1B467145d4ecEF920e0FA8F9d3", + "gt": "0x1420388F4f0644d824e3038Bc086D4Ca8829867B" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250405-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250405-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@05APR2025.json new file mode 100644 index 0000000..92af1d6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0x45336b991110D868fF0328308148A7B534255E40", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x616daCd3F697d06069AB0B56199A42179E313A2c", + "xt": "0x8547ce3BD292536Dbd729cBF78954fE5a587a1f0", + "gt": "0x1AFb46A7759f4615C16c4BC0A41FDE7177888b23" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-USUALUSDC+@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-USUALUSDC+@05APR2025.json new file mode 100644 index 0000000..7b1fff1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-USUALUSDC+@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0x6a7199771e010dc2CE936270eF62bdA687aC9224", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD5587db2cf719D4E49B848547E1c7CA4d6f74B53", + "xt": "0x9F1D9Ce6eFD0523D078b5B746ddB42B3cfA5FCD9", + "gt": "0x934fDf49633F56605eb0df91E85BF209bdFa961b" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-WBTC@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-WBTC@05APR2025.json new file mode 100644 index 0000000..437ab68 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-WBTC@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0x9124bA58dDbced552a6D3900055418c989BA8c79", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x69d668efDbD946fAC75706F2004E11F8Ea9a37Ba", + "xt": "0x5A9ED30453C6A8435AB717E4a7Bb4643f32e3953", + "gt": "0x928a07C589D8402e17Ecaca78c44842D6B3F7470" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-cbBTC@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-cbBTC@05APR2025.json new file mode 100644 index 0000000..1bead8c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-cbBTC@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0x5A47B3Ec275e3549276fd2AF31738a3292F9De5d", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x08B197841CB91E8036f9a4058ed398f6c40f9534", + "xt": "0x70FbfCBD40C4A9D0b9e1c5d61d2Ac047e8650F93", + "gt": "0x132202E4090E8baa1DB6e35786d2C1Cba5A97695" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-eUSDe@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-eUSDe@05APR2025.json new file mode 100644 index 0000000..3e6b215 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-eUSDe@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0xD03A414f513D0Cc6949D78A732fb3D93A65d483C", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x21608c030116AbC383f9fD1A8A90457cF96BeD69", + "xt": "0x51f1e670c7b939604863Dc5Ca9a3707efDC59Dfb", + "gt": "0xbb3BdD1c09614B58f855D564b43843194c90C261" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-sUSDe@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-sUSDe@05APR2025.json new file mode 100644 index 0000000..78bd67a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-sUSDe@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0x24380FB429333C87bF7D9b8C9CC149B8Aa1A385B", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4d24b65a15Ae8322D9f17B24509796FCD08B8cE6", + "xt": "0x73AaffEbEAf6eFFAC68902A556aE391c3aE7fb7B", + "gt": "0xF69984d5538d4464fEB89dd7Dd791C8F84626BF1" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-wstETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-wstETH@05APR2025.json new file mode 100644 index 0000000..5b82e05 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-USDC-wstETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0xaFB77FEf3294Fba8ED1eC16082CAC45c487f31d9", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x99A5C26EbF7505d4822a09c51916D599D5d0f033", + "xt": "0x0663AC74ED0f18A16381ef4f56D1D5Fe5E74Ce49", + "gt": "0xc59622939Fbb1aBAB11860Bb1be8b6A8c34f0db5" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-MCwETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-MCwETH@05APR2025.json new file mode 100644 index 0000000..6ab3094 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-MCwETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0xF4a1eC676A5b95E9f8C17bdD50dD334cE8eb2097", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x9F94B50E859EFcb1B3fdCDBf95C77E5B2FDC09f3", + "xt": "0x4a6373Aa2B326D1D12C48A64A9f9546CEc850C32", + "gt": "0x84c537cc5bEea6501CcBB6F948CFC2d3E9B8955F" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-gtWETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-gtWETH@05APR2025.json new file mode 100644 index 0000000..2215bc2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-gtWETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0x53F8DECb9a0BB090B12F74f2C34f8753E6467c65", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x334f8B35893B2ae066b611ec6480B3A2Cfe0AaFE", + "xt": "0xB8d702928c676E54a4528b2955413CFF385C4297", + "gt": "0xfd9032Af4D05639096Ef7Ad6F40A309B0cc3934F" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-pufETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-pufETH@05APR2025.json new file mode 100644 index 0000000..cf89af6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-pufETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0x946CF019b5854161f06F2c74CC73b244181589a4", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x52f8Cc09A7A93FD030c71110C55BFb96A4435D2D", + "xt": "0x15091c8439fb83D39dCEb796769A3d789E190c73", + "gt": "0x192f38103035665639FA6bd51A51e510b782fcB9" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-weETH@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-weETH@05APR2025.json new file mode 100644 index 0000000..6d0b116 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-WETH-weETH@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0x40F5F4D6C629384aC6661781D4D6a5702dd2A0BC", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xCf0eC2F950fAd732eba8c0765837b15eBBa83a51", + "xt": "0x118172cDfd16E0744951831E2ECB5f1529B0086A", + "gt": "0xC159b14dd3296a5AB3559799cbdaf38FB001a6EC" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@05APR2025.json b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@05APR2025.json new file mode 100644 index 0000000..cedb5bf --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250405-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@05APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179262", + "timestamp": "1743573227" + }, + "market": "0xeaC61f1A8B3e9F38A53F9DCa6D11b23E64D86d5e", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xEa3D7Aa3d71E0c74df0ADeCdC01adb4C8Eb8a675", + "xt": "0x09565d32a9CD0fd2FF783851da6c36199D4c00ca", + "gt": "0xFC7831b4DB74D0a08794F5705a3E7B0712401479" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250406-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250406-1200/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json new file mode 100644 index 0000000..adf16b2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0xc02F3FaDBE868Dc003fe03D5392a4B9AB6B8e5a6", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0F3f8B6DFfCC25247A46ee182926a1311D205F17", + "xt": "0xa37CCb7E51Cc8A59383C2f925b672d8A1665AA68", + "gt": "0xF54516fd277e790A07c764fa5fa66E08679c6383" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json new file mode 100644 index 0000000..ee1ba39 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0x56a328391c4D9b3a1e91D8fB3Be54f79345bCF2f", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1bAa2833E0f4B8DA4FA1BFD44B0432b02b21F334", + "xt": "0x59fD91Ecb8d5487d9E85B9c7b9e2b798A1c01a05", + "gt": "0x93ea4FF5751d0590486035b4a4781D0810da8199" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-WBTC@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-WBTC@06APR2025.json new file mode 100644 index 0000000..dcf31e6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-WBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0x200B77bc4206E6b8168068DA68081fE6e113f9ed", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0176a0BC988B68F07002Ce0759135B49940Ce1C2", + "xt": "0xEC6d26a652062Fa6562BC02f406148D4d783cD8c", + "gt": "0x1A485e720687b4272Db47588761D2b7896547d68" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-cbBTC@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-cbBTC@06APR2025.json new file mode 100644 index 0000000..b089917 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-cbBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0xd556cFf70aEde97b194CC9E08A07358C9C46EE42", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4b9827aFE3b07Ad757C355697E011Ce50e5230a8", + "xt": "0x04EA5c9608679c0Eaa67e6e841f11F8211F8163D", + "gt": "0x3dad4B52977B780dB7728C436c52F2D9D6659C14" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-eUSDe@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-eUSDe@06APR2025.json new file mode 100644 index 0000000..7d709cd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-eUSDe@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0x890693cda29914a4B9028699648E1BE5840CbE16", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8062cb45291447664044185Aa07E9C4548A70A0B", + "xt": "0x965eD8341d2f1194b45d72DD5A032DC61d3060Bc", + "gt": "0x131cAd954BcF1880Ab9dE4989AE00F1b53c8f271" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-sUSDe@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-sUSDe@06APR2025.json new file mode 100644 index 0000000..a18c92f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-sUSDe@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0x8a4E3E5c420c60dDA16Df0b3e2E9C7B546CeBddA", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x80C51F779256F97d6da2Dc4B78678dE8e7dd4385", + "xt": "0xa6586c1FB6051C0685680813fcc64C245b873D05", + "gt": "0x5cB011d5b989D590FfA6bc1cED16cBD898fe2e04" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-wstETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-wstETH@06APR2025.json new file mode 100644 index 0000000..8a6c710 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-USDC-wstETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0xC322cEb1E03C02e26eb6Fed05a39AB438BCD54Ed", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x38cd8bc89Be9AB4754C3811061d665C9F1105bF5", + "xt": "0x136f30611E404Ec25E177265bCe72FBE77294D32", + "gt": "0x654f051Cd77a4C80F4A48D62ec2B43Ece6F0C820" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-MCwETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-MCwETH@06APR2025.json new file mode 100644 index 0000000..24126e9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-MCwETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0x9C49987f8fBf5C4E6826577de6137eE66Ada2B43", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x2f7f3676658328B4AD69209698339FD3685543BC", + "xt": "0x3d0c81b6d1602a0e5Bd878B1a7819b3d8a29776f", + "gt": "0x7a85aAf82BE8E1a17F6cb2fdd576EC45ffA95Bf1" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-gtWETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-gtWETH@06APR2025.json new file mode 100644 index 0000000..e8d14bf --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-gtWETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0x9f73E7958aE095d557e368F4a7a42f34D2B91280", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x08486CaabcF788af93B0d1b40AA88a4971E78476", + "xt": "0x7f5CD1a06755e5F3e44973b54bc53137d3e9286a", + "gt": "0x10D4dCd0fb0e24030d517515Cdfa7A8Dd69F79F8" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-pufETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-pufETH@06APR2025.json new file mode 100644 index 0000000..f0f584b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-pufETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0x055b67B9781bDe40Dc93AD6B725a00ed5Af3A48e", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x145d244528867fB023Dd0dB3a968E0dBB6d62bCb", + "xt": "0x82CfDeDCA833ab393644e8BE0f2fb89038CE0685", + "gt": "0x05f9E94956903cd05d3FdB4c8546a894ACb521a3" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-weETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-weETH@06APR2025.json new file mode 100644 index 0000000..a639ec3 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-WETH-weETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0xAFa3E895d557A9Cb54f65a6cb8374b058dF62Bf9", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x2329a0900F54b671E428b14C3b4dB3A8fDB982A7", + "xt": "0x118cc7c9f8eD405cd552F7d3220d9cb40BB9F039", + "gt": "0xEbd4a3403420B05552fEA2D48192B710d3Ff5681" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json new file mode 100644 index 0000000..e7b5c6e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1200/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22179603", + "timestamp": "1743577343" + }, + "market": "0xC7E805b6a751236F351aa5De8ffb25E6Cc057b86", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2CB074927Bd56B565905Ba2EFD9aFe10B4d3cB94", + "xt": "0x5Fc7A2f8876da22CC5d27410db4C7C15Cea5ee8A", + "gt": "0xA43866c0308039Fd756b8B48d7FB177d18F368D4" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy-market-eth-mainnet-20250406-1400-log.txt b/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy-market-eth-mainnet-20250406-1400-log.txt new file mode 100644 index 0000000..c461795 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy-market-eth-mainnet-20250406-1400-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf7ea840ec163817b51384fcc1d53ee433b758a8b + + ===== Block Info ===== + Block number: 22201211 + Block timestamp: 1743837983 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22201211 + + ===== Market Info - 0 ===== + Market deployed at: 0xBe64F18e4CE7ba48d34205cA0aD824B74e429BEd + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x220d310CEe6Df79D10781D25975e1a4a96b0ECd8 + XT deployed at: 0x771Ee74d0B131f8c7d2D5523d654C96a42FdD0FA + GT deployed at: 0x5f087c6924fc8D597067aa33D6e333d8600E5838 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@06APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x54F872F2730A4714a7616e2438F314133F173bf1 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x624E45A6B12492e2fAff9e5288366105Cc34706a + XT deployed at: 0xe8E44aFD5438385562d1Da734538cB361E89bb2A + GT deployed at: 0x44Ee1be018741F00F69754a0935F48297428Eb02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@06APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xeda461781D5f2Bd2D5f2Ae148bbF3f92BF068FAE + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xa8EfD3e6dEd1985c0AaF41875C835281207fF5cD + XT deployed at: 0x709D50ef25d095186F502EE3a8a36E41C3EBae84 + GT deployed at: 0xE709DeF1D348917c606f7f7e5Ab08981a9838aE6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@06APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x75957c754203f4b7d52ae3fb9bF0c9D42Ad1445a + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x2aa991B5aB2ae746813bae3c844aA68F59C22caA + XT deployed at: 0x799180284252C6994Ccb0f9C32f348646A0B9cdB + GT deployed at: 0x992e23053BD686ABd52883b9951240b29a7362fe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xbe43e259566Aac75b5b0607891Ffab566f005F85 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xdC0E2cdDe6cB175bA4c2f6D792095e33644A5476 + XT deployed at: 0x71Df22572675bC2C5A8D123c3B056a9b1a177083 + GT deployed at: 0x0ec5149eDc325CA4D1F4f71b64b762e45D3A09b1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x4280cE247Ef28e0EaAD9168a870116ACaa931d48 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x24DC6FC9a808D7361b143036FFdA6aE1E865e92a + XT deployed at: 0xAF88df8617A901058903e8D43b9E357a2e389bE4 + GT deployed at: 0x338136A13F9a1C869dAFe5c7fc93E5bB0D8a81C5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@06APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x221bD390EA25acA05971C17188D28d5e7Aa5B0D1 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x69227514AC756D227a7C34f17c6C9dC6E91A2Ef2 + XT deployed at: 0x4B4E1612B9Fe9a7FC638f23C71732cBfE76A2e84 + GT deployed at: 0xF3B8220c1f4295D35D37A56Db1DE2FcA01C784D2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x3462977F3c043E6aE0a5f74869d6511b978F78D9 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x6f8DF50e249927AAAF7Ef0295a373F36DC7b12fF + XT deployed at: 0x5197a03A645B641f649c3374F47D8BD8a19F054D + GT deployed at: 0xC5b8894894fAAC2831fFbFC14a8B95c46A76a571 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@06APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xf894BF1F8f88Ce3B6d660698732a9740007857fE + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x33557Ffb5bBF124b478d7Bc323C1d1ba225A2DFF + XT deployed at: 0xa540e826e628529e66C10f0655137856C077916b + GT deployed at: 0x870069C749e7E5211476C66Ab3F6FddD849F426C + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@06APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0xc4E697f5d1d2BE6B89882300B8f64B20a3162FB9 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x8869c08A311ee8E5eEC1db79B988318d2594F88D + XT deployed at: 0x84EA0760C6fb0Ca8ec15281Bb09D5b378787FAF2 + GT deployed at: 0x437393b36ef4bC3f7F432Db71a8c53F5888410DD + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@06APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x77D41709B09e678e20af86cC7C334FF6bb5ff159 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x02Eb3AA03d563952487514b0A148617220646bCb + XT deployed at: 0x1D4F3F16Ec342274fDDCd90b9B327b410b5a1190 + GT deployed at: 0x33D4e438FFF6194e7Fb975C6605ef35a81533dD6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@06APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x2bABFdD294702be83E5d669F9BfF15FA0Fa9eE0f + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xa3ead879063316397Af8493cdCFB9Edd1A7B21d6 + XT deployed at: 0xfbe8848B9b2da7c6CBb74A8f167B43965dD32102 + GT deployed at: 0x1f884d82fFa3e9E9575d76b662BD33fcc2aea781 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@06APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.854286239 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.014786321104817688 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xbe64f18e4ce7ba48d34205ca0ad824b74e429bed, 0x220d310cee6df79d10781d25975e1a4a96b0ecd8, 0x771ee74d0b131f8c7d2d5523d654c96a42fdd0fa, 0x5f087c6924fc8d597067aa33d6e333d8600e5838, 0x54f872f2730a4714a7616e2438f314133f173bf1, 0x624e45a6b12492e2faff9e5288366105cc34706a, 0xe8e44afd5438385562d1da734538cb361e89bb2a, 0x44ee1be018741f00f69754a0935f48297428eb02, 0xeda461781d5f2bd2d5f2ae148bbf3f92bf068fae, 0xa8efd3e6ded1985c0aaf41875c835281207ff5cd, 0x709d50ef25d095186f502ee3a8a36e41c3ebae84, 0xe709def1d348917c606f7f7e5ab08981a9838ae6, 0x75957c754203f4b7d52ae3fb9bf0c9d42ad1445a, 0x2aa991b5ab2ae746813bae3c844aa68f59c22caa, 0x799180284252c6994ccb0f9c32f348646a0b9cdb, 0x992e23053bd686abd52883b9951240b29a7362fe, 0xbe43e259566aac75b5b0607891ffab566f005f85, 0xdc0e2cdde6cb175ba4c2f6d792095e33644a5476, 0x71df22572675bc2c5a8d123c3b056a9b1a177083, 0x0ec5149edc325ca4d1f4f71b64b762e45d3a09b1, 0x4280ce247ef28e0eaad9168a870116acaa931d48, 0x24dc6fc9a808d7361b143036ffda6ae1e865e92a, 0xaf88df8617a901058903e8d43b9e357a2e389be4, 0x338136a13f9a1c869dafe5c7fc93e5bb0d8a81c5, 0x221bd390ea25aca05971c17188d28d5e7aa5b0d1, 0x69227514ac756d227a7c34f17c6c9dc6e91a2ef2, 0x4b4e1612b9fe9a7fc638f23c71732cbfe76a2e84, 0xf3b8220c1f4295d35d37a56db1de2fca01c784d2, 0x3462977f3c043e6ae0a5f74869d6511b978f78d9, 0x6f8df50e249927aaaf7ef0295a373f36dc7b12ff, 0x5197a03a645b641f649c3374f47d8bd8a19f054d, 0xc5b8894894faac2831ffbfc14a8b95c46a76a571, 0xf894bf1f8f88ce3b6d660698732a9740007857fe, 0x33557ffb5bbf124b478d7bc323c1d1ba225a2dff, 0xa540e826e628529e66c10f0655137856c077916b, 0x870069c749e7e5211476c66ab3f6fddd849f426c, 0xc4e697f5d1d2be6b89882300b8f64b20a3162fb9, 0x8869c08a311ee8e5eec1db79b988318d2594f88d, 0x84ea0760c6fb0ca8ec15281bb09d5b378787faf2, 0x437393b36ef4bc3f7f432db71a8c53f5888410dd, 0x77d41709b09e678e20af86cc7c334ff6bb5ff159, 0x02eb3aa03d563952487514b0a148617220646bcb, 0x1d4f3f16ec342274fddcd90b9b327b410b5a1190, 0x33d4e438fff6194e7fb975c6605ef35a81533dd6, 0x2babfdd294702be83e5d669f9bff15fa0fa9ee0f, 0xa3ead879063316397af8493cdcfb9edd1a7b21d6, 0xfbe8848b9b2da7c6cbb74a8f167b43965dd32102, 0x1f884d82ffa3e9e9575d76b662bd33fcc2aea781]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json new file mode 100644 index 0000000..bc5ce32 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0x75957c754203f4b7d52ae3fb9bF0c9D42Ad1445a", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2aa991B5aB2ae746813bae3c844aA68F59C22caA", + "xt": "0x799180284252C6994Ccb0f9C32f348646A0B9cdB", + "gt": "0x992e23053BD686ABd52883b9951240b29a7362fe" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json new file mode 100644 index 0000000..80de58d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0xbe43e259566Aac75b5b0607891Ffab566f005F85", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xdC0E2cdDe6cB175bA4c2f6D792095e33644A5476", + "xt": "0x71Df22572675bC2C5A8D123c3B056a9b1a177083", + "gt": "0x0ec5149eDc325CA4D1F4f71b64b762e45D3A09b1" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-WBTC@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-WBTC@06APR2025.json new file mode 100644 index 0000000..819dd12 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-WBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0xc4E697f5d1d2BE6B89882300B8f64B20a3162FB9", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8869c08A311ee8E5eEC1db79B988318d2594F88D", + "xt": "0x84EA0760C6fb0Ca8ec15281Bb09D5b378787FAF2", + "gt": "0x437393b36ef4bC3f7F432Db71a8c53F5888410DD" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-cbBTC@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-cbBTC@06APR2025.json new file mode 100644 index 0000000..60063d0 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-cbBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0x77D41709B09e678e20af86cC7C334FF6bb5ff159", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x02Eb3AA03d563952487514b0A148617220646bCb", + "xt": "0x1D4F3F16Ec342274fDDCd90b9B327b410b5a1190", + "gt": "0x33D4e438FFF6194e7Fb975C6605ef35a81533dD6" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-eUSDe@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-eUSDe@06APR2025.json new file mode 100644 index 0000000..ecd650c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-eUSDe@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0x3462977F3c043E6aE0a5f74869d6511b978F78D9", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6f8DF50e249927AAAF7Ef0295a373F36DC7b12fF", + "xt": "0x5197a03A645B641f649c3374F47D8BD8a19F054D", + "gt": "0xC5b8894894fAAC2831fFbFC14a8B95c46A76a571" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-sUSDe@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-sUSDe@06APR2025.json new file mode 100644 index 0000000..38a77a8 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-sUSDe@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0xeda461781D5f2Bd2D5f2Ae148bbF3f92BF068FAE", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xa8EfD3e6dEd1985c0AaF41875C835281207fF5cD", + "xt": "0x709D50ef25d095186F502EE3a8a36E41C3EBae84", + "gt": "0xE709DeF1D348917c606f7f7e5Ab08981a9838aE6" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-wstETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-wstETH@06APR2025.json new file mode 100644 index 0000000..cb537e9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-USDC-wstETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0x54F872F2730A4714a7616e2438F314133F173bf1", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x624E45A6B12492e2fAff9e5288366105Cc34706a", + "xt": "0xe8E44aFD5438385562d1Da734538cB361E89bb2A", + "gt": "0x44Ee1be018741F00F69754a0935F48297428Eb02" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-MCwETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-MCwETH@06APR2025.json new file mode 100644 index 0000000..8a0c2d8 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-MCwETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0x4280cE247Ef28e0EaAD9168a870116ACaa931d48", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x24DC6FC9a808D7361b143036FFdA6aE1E865e92a", + "xt": "0xAF88df8617A901058903e8D43b9E357a2e389bE4", + "gt": "0x338136A13F9a1C869dAFe5c7fc93E5bB0D8a81C5" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-gtWETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-gtWETH@06APR2025.json new file mode 100644 index 0000000..b729f45 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-gtWETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0x2bABFdD294702be83E5d669F9BfF15FA0Fa9eE0f", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xa3ead879063316397Af8493cdCFB9Edd1A7B21d6", + "xt": "0xfbe8848B9b2da7c6CBb74A8f167B43965dD32102", + "gt": "0x1f884d82fFa3e9E9575d76b662BD33fcc2aea781" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-pufETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-pufETH@06APR2025.json new file mode 100644 index 0000000..df70353 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-pufETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0xf894BF1F8f88Ce3B6d660698732a9740007857fE", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x33557Ffb5bBF124b478d7Bc323C1d1ba225A2DFF", + "xt": "0xa540e826e628529e66C10f0655137856C077916b", + "gt": "0x870069C749e7E5211476C66Ab3F6FddD849F426C" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-weETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-weETH@06APR2025.json new file mode 100644 index 0000000..03e42e9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-WETH-weETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0xBe64F18e4CE7ba48d34205cA0aD824B74e429BEd", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x220d310CEe6Df79D10781D25975e1a4a96b0ECd8", + "xt": "0x771Ee74d0B131f8c7d2D5523d654C96a42FdD0FA", + "gt": "0x5f087c6924fc8D597067aa33D6e333d8600E5838" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json new file mode 100644 index 0000000..431eb62 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201211", + "timestamp": "1743837983" + }, + "market": "0x221bD390EA25acA05971C17188D28d5e7Aa5B0D1", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x69227514AC756D227a7C34f17c6C9dC6E91A2Ef2", + "xt": "0x4B4E1612B9Fe9a7FC638f23C71732cBfE76A2e84", + "gt": "0xF3B8220c1f4295D35D37A56Db1DE2FcA01C784D2" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy-market-eth-mainnet-20250406-2000-log.txt b/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy-market-eth-mainnet-20250406-2000-log.txt new file mode 100644 index 0000000..31e028d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy-market-eth-mainnet-20250406-2000-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf7ea840ec163817b51384fcc1d53ee433b758a8b + + ===== Block Info ===== + Block number: 22201261 + Block timestamp: 1743838583 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22201261 + + ===== Market Info - 0 ===== + Market deployed at: 0x5A1Aced30B62C145EBceDB2eddCf35F6eEB8185d + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x10d4e859Ee7d3aD799823d252cA9D86baB798AbA + XT deployed at: 0x9a3A4d5F92A60b8aB6367bEbF8CF9e5B6c2b9c03 + GT deployed at: 0xb39ADF1B242D3de3773d844467B78352B80f8354 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@06APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xc04309249Ac1e7bf7978651A1f25FeACD3496026 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0c66fe3746E5B6C755b27F6BDBd29123E4AAAdEB + XT deployed at: 0x4f11e4415CE585125823aD9F90c4850678A0ed02 + GT deployed at: 0x233F5D71F16ae09695Ff34134D31a096cA6F3DB2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@06APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xDa97f39c1F12cb3a6e485868a815B825769CDd02 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x057E9A82771ac48012cf66EDDF6fB464A58ADca1 + XT deployed at: 0x9419e2891e4CBd28967d1352d0D324316bb75DC5 + GT deployed at: 0x67e7B35A25addbC644C43f7C07a2BA97B8edb9d6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@06APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x58db34bfD1Eecd0dA9aff41c32dc8F103798251f + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x23198229A4dF93A44CFFA411d1845cebf30a79D9 + XT deployed at: 0xcB4F9318DCFB654ee427D3d427463599f12a6a7b + GT deployed at: 0xBC849F578AD19736484EBb097DF70BD14a419bdA + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x8380F6b8465e951b2ACF07C34CFfd50c35f13E87 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x39A5f95F68CAf6c043A86eCbFF5E971a67eAab2a + XT deployed at: 0xe01A0aE209ff8345a11580231431c85dce1883aF + GT deployed at: 0x2af8C838964d819f31b5DFa46487129F926CAa18 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x8A55169ec83ef9ab0b51088e9136FE1d35e61492 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xa1246FC0F0b92376f51Ddb4e3cC44B7e2a46403b + XT deployed at: 0xc737e307f2831510dbDc7df65B74a626937a9400 + GT deployed at: 0xf8D28a5B7845E3837dCedab99738407786Fdb1E1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@06APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xB7Ce230408160aE14F0C45DBFbE3DE07fB58D3dC + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x325433656e93EC3166D207EE0beA47B6488A0247 + XT deployed at: 0xe220E36eac1a5A15C25724a46351C2bBd872a255 + GT deployed at: 0x99F1762800BDD74E087E0d1Dae9A879978b295Ca + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xb5858D966B38cce7B974091b29DfE58Cc247aebD + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x409dbB11ca5dB63CBBF4f594bf55145a73D2c814 + XT deployed at: 0xc623B9514444D1246A5fAaE3a5219F9fDa8b18a2 + GT deployed at: 0x0953BcfA19C37e4C4931908aE6638a59C2472674 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@06APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x0d0e15870fA65415ebcFF4C49242DbA48d9dFF8C + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xEFA62ff07190322537F2B42733607Ab704e0b408 + XT deployed at: 0x895e81Af4CA2b57F3A1e90ef07AB3d28F952a61D + GT deployed at: 0xf214cB3139F744a161D1Bb81Cf90fFaA2C1e7937 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@06APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x443d36dfe1007f8CfcAE10f02bd162A3ce68C90e + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5Bb274e9054F20d25B826255593B0090a228282C + XT deployed at: 0x9fbA98b0BeEecDBe512CA47726444f2AEB0fB755 + GT deployed at: 0x39923E76D03eA0FB343dB26A9b460e6A44faC166 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@06APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x7Cd53e0f72A72145C7060391531E30e95C95Dd60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x2e2bCA38268434DfdbC7765952E9FD3BA2451Db0 + XT deployed at: 0xB8359F35726331a1392077F11874C76C0188944b + GT deployed at: 0x445858c8fBd01dee6b95F39C68356Cd28FBb7319 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@06APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x94dF0973A11aF3C59215569B1a0A0eB9F596E628 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x3d7B34bd988D715d905fE47f08CBED7B4Ee85c4C + XT deployed at: 0x95aF580CC96D7E6C7D7003B9bD7D3366df148DB6 + GT deployed at: 0x8aB90BA5172C874882f40CC4Ff604B5f0678CdC4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 06APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@06APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.912450681 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.015793054067414952 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x5a1aced30b62c145ebcedb2eddcf35f6eeb8185d, 0x10d4e859ee7d3ad799823d252ca9d86bab798aba, 0x9a3a4d5f92a60b8ab6367bebf8cf9e5b6c2b9c03, 0xb39adf1b242d3de3773d844467b78352b80f8354, 0xc04309249ac1e7bf7978651a1f25feacd3496026, 0x0c66fe3746e5b6c755b27f6bdbd29123e4aaadeb, 0x4f11e4415ce585125823ad9f90c4850678a0ed02, 0x233f5d71f16ae09695ff34134d31a096ca6f3db2, 0xda97f39c1f12cb3a6e485868a815b825769cdd02, 0x057e9a82771ac48012cf66eddf6fb464a58adca1, 0x9419e2891e4cbd28967d1352d0d324316bb75dc5, 0x67e7b35a25addbc644c43f7c07a2ba97b8edb9d6, 0x58db34bfd1eecd0da9aff41c32dc8f103798251f, 0x23198229a4df93a44cffa411d1845cebf30a79d9, 0xcb4f9318dcfb654ee427d3d427463599f12a6a7b, 0xbc849f578ad19736484ebb097df70bd14a419bda, 0x8380f6b8465e951b2acf07c34cffd50c35f13e87, 0x39a5f95f68caf6c043a86ecbff5e971a67eaab2a, 0xe01a0ae209ff8345a11580231431c85dce1883af, 0x2af8c838964d819f31b5dfa46487129f926caa18, 0x8a55169ec83ef9ab0b51088e9136fe1d35e61492, 0xa1246fc0f0b92376f51ddb4e3cc44b7e2a46403b, 0xc737e307f2831510dbdc7df65b74a626937a9400, 0xf8d28a5b7845e3837dcedab99738407786fdb1e1, 0xb7ce230408160ae14f0c45dbfbe3de07fb58d3dc, 0x325433656e93ec3166d207ee0bea47b6488a0247, 0xe220e36eac1a5a15c25724a46351c2bbd872a255, 0x99f1762800bdd74e087e0d1dae9a879978b295ca, 0xb5858d966b38cce7b974091b29dfe58cc247aebd, 0x409dbb11ca5db63cbbf4f594bf55145a73d2c814, 0xc623b9514444d1246a5faae3a5219f9fda8b18a2, 0x0953bcfa19c37e4c4931908ae6638a59c2472674, 0x0d0e15870fa65415ebcff4c49242dba48d9dff8c, 0xefa62ff07190322537f2b42733607ab704e0b408, 0x895e81af4ca2b57f3a1e90ef07ab3d28f952a61d, 0xf214cb3139f744a161d1bb81cf90ffaa2c1e7937, 0x443d36dfe1007f8cfcae10f02bd162a3ce68c90e, 0x5bb274e9054f20d25b826255593b0090a228282c, 0x9fba98b0beeecdbe512ca47726444f2aeb0fb755, 0x39923e76d03ea0fb343db26a9b460e6a44fac166, 0x7cd53e0f72a72145c7060391531e30e95c95dd60, 0x2e2bca38268434dfdbc7765952e9fd3ba2451db0, 0xb8359f35726331a1392077f11874c76c0188944b, 0x445858c8fbd01dee6b95f39c68356cd28fbb7319, 0x94df0973a11af3c59215569b1a0a0eb9f596e628, 0x3d7b34bd988d715d905fe47f08cbed7b4ee85c4c, 0x95af580cc96d7e6c7d7003b9bd7d3366df148db6, 0x8ab90ba5172c874882f40cc4ff604b5f0678cdc4]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json new file mode 100644 index 0000000..9a37f81 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0x58db34bfD1Eecd0dA9aff41c32dc8F103798251f", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x23198229A4dF93A44CFFA411d1845cebf30a79D9", + "xt": "0xcB4F9318DCFB654ee427D3d427463599f12a6a7b", + "gt": "0xBC849F578AD19736484EBb097DF70BD14a419bdA" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json new file mode 100644 index 0000000..0c86a7a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-USUALUSDC+@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0x8380F6b8465e951b2ACF07C34CFfd50c35f13E87", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x39A5f95F68CAf6c043A86eCbFF5E971a67eAab2a", + "xt": "0xe01A0aE209ff8345a11580231431c85dce1883aF", + "gt": "0x2af8C838964d819f31b5DFa46487129F926CAa18" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-WBTC@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-WBTC@06APR2025.json new file mode 100644 index 0000000..a3d15f9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-WBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0x443d36dfe1007f8CfcAE10f02bd162A3ce68C90e", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5Bb274e9054F20d25B826255593B0090a228282C", + "xt": "0x9fbA98b0BeEecDBe512CA47726444f2AEB0fB755", + "gt": "0x39923E76D03eA0FB343dB26A9b460e6A44faC166" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-cbBTC@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-cbBTC@06APR2025.json new file mode 100644 index 0000000..7eade32 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-cbBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0x7Cd53e0f72A72145C7060391531E30e95C95Dd60", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2e2bCA38268434DfdbC7765952E9FD3BA2451Db0", + "xt": "0xB8359F35726331a1392077F11874C76C0188944b", + "gt": "0x445858c8fBd01dee6b95F39C68356Cd28FBb7319" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-eUSDe@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-eUSDe@06APR2025.json new file mode 100644 index 0000000..73aa0c3 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-eUSDe@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0xb5858D966B38cce7B974091b29DfE58Cc247aebD", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x409dbB11ca5dB63CBBF4f594bf55145a73D2c814", + "xt": "0xc623B9514444D1246A5fAaE3a5219F9fDa8b18a2", + "gt": "0x0953BcfA19C37e4C4931908aE6638a59C2472674" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-sUSDe@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-sUSDe@06APR2025.json new file mode 100644 index 0000000..b2ed699 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-sUSDe@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0xDa97f39c1F12cb3a6e485868a815B825769CDd02", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x057E9A82771ac48012cf66EDDF6fB464A58ADca1", + "xt": "0x9419e2891e4CBd28967d1352d0D324316bb75DC5", + "gt": "0x67e7B35A25addbC644C43f7C07a2BA97B8edb9d6" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-wstETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-wstETH@06APR2025.json new file mode 100644 index 0000000..6207bba --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-USDC-wstETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0xc04309249Ac1e7bf7978651A1f25FeACD3496026", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0c66fe3746E5B6C755b27F6BDBd29123E4AAAdEB", + "xt": "0x4f11e4415CE585125823aD9F90c4850678A0ed02", + "gt": "0x233F5D71F16ae09695Ff34134D31a096cA6F3DB2" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-MCwETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-MCwETH@06APR2025.json new file mode 100644 index 0000000..d16c8e0 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-MCwETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0x8A55169ec83ef9ab0b51088e9136FE1d35e61492", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xa1246FC0F0b92376f51Ddb4e3cC44B7e2a46403b", + "xt": "0xc737e307f2831510dbDc7df65B74a626937a9400", + "gt": "0xf8D28a5B7845E3837dCedab99738407786Fdb1E1" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-gtWETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-gtWETH@06APR2025.json new file mode 100644 index 0000000..4730b6b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-gtWETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0x94dF0973A11aF3C59215569B1a0A0eB9F596E628", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x3d7B34bd988D715d905fE47f08CBED7B4Ee85c4C", + "xt": "0x95aF580CC96D7E6C7D7003B9bD7D3366df148DB6", + "gt": "0x8aB90BA5172C874882f40CC4Ff604B5f0678CdC4" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-pufETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-pufETH@06APR2025.json new file mode 100644 index 0000000..a64380e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-pufETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0x0d0e15870fA65415ebcFF4C49242DbA48d9dFF8C", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xEFA62ff07190322537F2B42733607Ab704e0b408", + "xt": "0x895e81Af4CA2b57F3A1e90ef07AB3d28F952a61D", + "gt": "0xf214cB3139F744a161D1Bb81Cf90fFaA2C1e7937" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-weETH@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-weETH@06APR2025.json new file mode 100644 index 0000000..f1e2710 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-WETH-weETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0x5A1Aced30B62C145EBceDB2eddCf35F6eEB8185d", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x10d4e859Ee7d3aD799823d252cA9D86baB798AbA", + "xt": "0x9a3A4d5F92A60b8aB6367bEbF8CF9e5B6c2b9c03", + "gt": "0xb39ADF1B242D3de3773d844467B78352B80f8354" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json new file mode 100644 index 0000000..50f87b9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250406-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201261", + "timestamp": "1743838583" + }, + "market": "0xB7Ce230408160aE14F0C45DBFbE3DE07fB58D3dC", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x325433656e93EC3166D207EE0beA47B6488A0247", + "xt": "0xe220E36eac1a5A15C25724a46351C2bBd872a255", + "gt": "0x99F1762800BDD74E087E0d1Dae9A879978b295Ca" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy-market-eth-mainnet-20250407-1400-log.txt b/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy-market-eth-mainnet-20250407-1400-log.txt new file mode 100644 index 0000000..fb51098 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy-market-eth-mainnet-20250407-1400-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf7ea840ec163817b51384fcc1d53ee433b758a8b + + ===== Block Info ===== + Block number: 22201302 + Block timestamp: 1743839075 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22201302 + + ===== Market Info - 0 ===== + Market deployed at: 0x135D91F9d7B816F9Dc193976938222401e2A2212 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xe7374A418D6a277Bb34D66c9D903314AE95277a8 + XT deployed at: 0x37AB7e0981Ded4d2547f763228b7f432301f6895 + GT deployed at: 0x82195140100D9A8eeF8A91dF0300967e6add66cf + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@07APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x5e1D10bcA69e694Ea519A4D60F3c8B6efD870B04 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xe97d26316e2318A4931eDd7326bc3A9d9CD99dE8 + XT deployed at: 0x487Cf19B6614633eD6b6e2B8878f9C966274aCCe + GT deployed at: 0x64147CcD08c68aD4711D33C0e17224dc7971a221 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@07APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x7EDF8495fcf656c768FF2603b584149d86b76C0A + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xeD17c6b8c804b6948C3f8af2E04D0bC8b11e86bA + XT deployed at: 0xbb79bd0C43847B8D239770B8bE3F8aDF2D51586E + GT deployed at: 0x67D88A426a6cBC2F273e437da26d4E385C6deA00 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@07APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xa6617dB49C2F506d2B4b7471A890e5eda57E815A + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xd83b1A016bDdE9f077F52e275974e6dD05Ba9090 + XT deployed at: 0xF6C208eD14be203f613EE03831cE91bEe413795D + GT deployed at: 0xBF4d2fDc1e3D9cf92dAB3E7D09C7219e45F3722E + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@07APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xed2e191e57E3515E4cdd28941b0dd26d15FF179b + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x044A6B8552EaC934d4AD9Be0ceF51eEe0901Bc6F + XT deployed at: 0xDBdbc8368BDF35d6e0C6C8cB8bB6275f2a624F38 + GT deployed at: 0xbd382dAd136950033d86dD1D81EE5f01b8E669Eb + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@07APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x79EeD896A18d40d654579dF09190eAa63d2dd020 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xDF340Ae12173Ae8fc8a5a656B3971907c88e31f1 + XT deployed at: 0x1f442785b2F0B9549E01308641A56C2E1022Dd77 + GT deployed at: 0xeE68c9Ca078407d73418CBFC078a00f9CE8987b6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@07APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x48CC44e1f9443C6447784D48823acfc9BDEFA238 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xAB140f40A8F7ba38b18F3f27b4ee37084F73644E + XT deployed at: 0xB74A2304E74fbC8B1a12755FD247e405df1Ea5E0 + GT deployed at: 0x9664EA95f17F395A8E52232edC1D786c492dE61a + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@07APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xD9731b244ecCCC3944983C625290eabF274Ed616 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x57079f1bb0979209EfA75de105936024D9246b0F + XT deployed at: 0x1B9aDE9E6DBB2e059B66Ffa4F65E4A746e3FAb2d + GT deployed at: 0x65CdD8BCE1790EcB3d836cc929362d3A8A125208 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@07APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x2260f5Ece61f781f2F55a28731002BDe88B9a7E1 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xea45F4DcdA4B284D893BAA26983866BA8410A77e + XT deployed at: 0x81Bc5083d814E00Eb441c7AD6331e6f7cfa01dEe + GT deployed at: 0x68a164d64353d9392D0F3737BE4B3dbec6010581 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@07APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0xb68ccbBe2cA868c8444B1c92f3973333324537Cb + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x4359A5A6836133A8B9e35D3B57A943352EF1082E + XT deployed at: 0xfba0FFCa7a14b96016a26684a235fe8fc6Af8CdF + GT deployed at: 0x9567E25fE77c359e392BEe67B76C9F413E39fA98 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@07APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0xfaF070896dF9a0353EDA84dbD4050eA9da0402f6 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x18C96e60A4E6988177cf0451eC42c25f67278791 + XT deployed at: 0x16aA5B6309138de8BC9C81bfC7735858563AB4CF + GT deployed at: 0x0b3c09AB41dE6e2e2c66274aBDb0BBF9D02Aaa95 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@07APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x012D15614E965192a73107fa4ce92F1AE26c7b3a + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x5299aDF94916291a02b1beBC992dd7E157739461 + XT deployed at: 0xD1791D28ed5Fa42676A8475e4CC961Bff5650B64 + GT deployed at: 0x82749A4c2ed2df35e43b2DccE9Fb5983b8e31F0f + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@07APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.90072845 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.0155901610981524 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x135d91f9d7b816f9dc193976938222401e2a2212, 0xe7374a418d6a277bb34d66c9d903314ae95277a8, 0x37ab7e0981ded4d2547f763228b7f432301f6895, 0x82195140100d9a8eef8a91df0300967e6add66cf, 0x5e1d10bca69e694ea519a4d60f3c8b6efd870b04, 0xe97d26316e2318a4931edd7326bc3a9d9cd99de8, 0x487cf19b6614633ed6b6e2b8878f9c966274acce, 0x64147ccd08c68ad4711d33c0e17224dc7971a221, 0x7edf8495fcf656c768ff2603b584149d86b76c0a, 0xed17c6b8c804b6948c3f8af2e04d0bc8b11e86ba, 0xbb79bd0c43847b8d239770b8be3f8adf2d51586e, 0x67d88a426a6cbc2f273e437da26d4e385c6dea00, 0xa6617db49c2f506d2b4b7471a890e5eda57e815a, 0xd83b1a016bdde9f077f52e275974e6dd05ba9090, 0xf6c208ed14be203f613ee03831ce91bee413795d, 0xbf4d2fdc1e3d9cf92dab3e7d09c7219e45f3722e, 0xed2e191e57e3515e4cdd28941b0dd26d15ff179b, 0x044a6b8552eac934d4ad9be0cef51eee0901bc6f, 0xdbdbc8368bdf35d6e0c6c8cb8bb6275f2a624f38, 0xbd382dad136950033d86dd1d81ee5f01b8e669eb, 0x79eed896a18d40d654579df09190eaa63d2dd020, 0xdf340ae12173ae8fc8a5a656b3971907c88e31f1, 0x1f442785b2f0b9549e01308641a56c2e1022dd77, 0xee68c9ca078407d73418cbfc078a00f9ce8987b6, 0x48cc44e1f9443c6447784d48823acfc9bdefa238, 0xab140f40a8f7ba38b18f3f27b4ee37084f73644e, 0xb74a2304e74fbc8b1a12755fd247e405df1ea5e0, 0x9664ea95f17f395a8e52232edc1d786c492de61a, 0xd9731b244ecccc3944983c625290eabf274ed616, 0x57079f1bb0979209efa75de105936024d9246b0f, 0x1b9ade9e6dbb2e059b66ffa4f65e4a746e3fab2d, 0x65cdd8bce1790ecb3d836cc929362d3a8a125208, 0x2260f5ece61f781f2f55a28731002bde88b9a7e1, 0xea45f4dcda4b284d893baa26983866ba8410a77e, 0x81bc5083d814e00eb441c7ad6331e6f7cfa01dee, 0x68a164d64353d9392d0f3737be4b3dbec6010581, 0xb68ccbbe2ca868c8444b1c92f3973333324537cb, 0x4359a5a6836133a8b9e35d3b57a943352ef1082e, 0xfba0ffca7a14b96016a26684a235fe8fc6af8cdf, 0x9567e25fe77c359e392bee67b76c9f413e39fa98, 0xfaf070896df9a0353eda84dbd4050ea9da0402f6, 0x18c96e60a4e6988177cf0451ec42c25f67278791, 0x16aa5b6309138de8bc9c81bfc7735858563ab4cf, 0x0b3c09ab41de6e2e2c66274abdb0bbf9d02aaa95, 0x012d15614e965192a73107fa4ce92f1ae26c7b3a, 0x5299adf94916291a02b1bebc992dd7e157739461, 0xd1791d28ed5fa42676a8475e4cc961bff5650b64, 0x82749a4c2ed2df35e43b2dcce9fb5983b8e31f0f]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@07APR2025.json new file mode 100644 index 0000000..f717bf8 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0xa6617dB49C2F506d2B4b7471A890e5eda57E815A", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xd83b1A016bDdE9f077F52e275974e6dD05Ba9090", + "xt": "0xF6C208eD14be203f613EE03831cE91bEe413795D", + "gt": "0xBF4d2fDc1e3D9cf92dAB3E7D09C7219e45F3722E" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-USUALUSDC+@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-USUALUSDC+@07APR2025.json new file mode 100644 index 0000000..4d8d873 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-USUALUSDC+@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0xed2e191e57E3515E4cdd28941b0dd26d15FF179b", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x044A6B8552EaC934d4AD9Be0ceF51eEe0901Bc6F", + "xt": "0xDBdbc8368BDF35d6e0C6C8cB8bB6275f2a624F38", + "gt": "0xbd382dAd136950033d86dD1D81EE5f01b8E669Eb" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-WBTC@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-WBTC@07APR2025.json new file mode 100644 index 0000000..1824c02 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-WBTC@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0xb68ccbBe2cA868c8444B1c92f3973333324537Cb", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4359A5A6836133A8B9e35D3B57A943352EF1082E", + "xt": "0xfba0FFCa7a14b96016a26684a235fe8fc6Af8CdF", + "gt": "0x9567E25fE77c359e392BEe67B76C9F413E39fA98" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-cbBTC@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-cbBTC@07APR2025.json new file mode 100644 index 0000000..1139033 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-cbBTC@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0xfaF070896dF9a0353EDA84dbD4050eA9da0402f6", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x18C96e60A4E6988177cf0451eC42c25f67278791", + "xt": "0x16aA5B6309138de8BC9C81bfC7735858563AB4CF", + "gt": "0x0b3c09AB41dE6e2e2c66274aBDb0BBF9D02Aaa95" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-eUSDe@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-eUSDe@07APR2025.json new file mode 100644 index 0000000..dac7fdd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-eUSDe@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0xD9731b244ecCCC3944983C625290eabF274Ed616", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x57079f1bb0979209EfA75de105936024D9246b0F", + "xt": "0x1B9aDE9E6DBB2e059B66Ffa4F65E4A746e3FAb2d", + "gt": "0x65CdD8BCE1790EcB3d836cc929362d3A8A125208" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-sUSDe@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-sUSDe@07APR2025.json new file mode 100644 index 0000000..b4f77f3 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-sUSDe@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0x7EDF8495fcf656c768FF2603b584149d86b76C0A", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xeD17c6b8c804b6948C3f8af2E04D0bC8b11e86bA", + "xt": "0xbb79bd0C43847B8D239770B8bE3F8aDF2D51586E", + "gt": "0x67D88A426a6cBC2F273e437da26d4E385C6deA00" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-wstETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-wstETH@07APR2025.json new file mode 100644 index 0000000..0438d18 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-USDC-wstETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0x5e1D10bcA69e694Ea519A4D60F3c8B6efD870B04", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xe97d26316e2318A4931eDd7326bc3A9d9CD99dE8", + "xt": "0x487Cf19B6614633eD6b6e2B8878f9C966274aCCe", + "gt": "0x64147CcD08c68aD4711D33C0e17224dc7971a221" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-MCwETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-MCwETH@07APR2025.json new file mode 100644 index 0000000..2a35fe5 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-MCwETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0x79EeD896A18d40d654579dF09190eAa63d2dd020", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xDF340Ae12173Ae8fc8a5a656B3971907c88e31f1", + "xt": "0x1f442785b2F0B9549E01308641A56C2E1022Dd77", + "gt": "0xeE68c9Ca078407d73418CBFC078a00f9CE8987b6" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-gtWETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-gtWETH@07APR2025.json new file mode 100644 index 0000000..b17187c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-gtWETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0x012D15614E965192a73107fa4ce92F1AE26c7b3a", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x5299aDF94916291a02b1beBC992dd7E157739461", + "xt": "0xD1791D28ed5Fa42676A8475e4CC961Bff5650B64", + "gt": "0x82749A4c2ed2df35e43b2DccE9Fb5983b8e31F0f" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-pufETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-pufETH@07APR2025.json new file mode 100644 index 0000000..f1868af --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-pufETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0x2260f5Ece61f781f2F55a28731002BDe88B9a7E1", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xea45F4DcdA4B284D893BAA26983866BA8410A77e", + "xt": "0x81Bc5083d814E00Eb441c7AD6331e6f7cfa01dEe", + "gt": "0x68a164d64353d9392D0F3737BE4B3dbec6010581" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-weETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-weETH@07APR2025.json new file mode 100644 index 0000000..89b0fb1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-WETH-weETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0x135D91F9d7B816F9Dc193976938222401e2A2212", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xe7374A418D6a277Bb34D66c9D903314AE95277a8", + "xt": "0x37AB7e0981Ded4d2547f763228b7f432301f6895", + "gt": "0x82195140100D9A8eeF8A91dF0300967e6add66cf" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@07APR2025.json new file mode 100644 index 0000000..51c105c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201302", + "timestamp": "1743839075" + }, + "market": "0x48CC44e1f9443C6447784D48823acfc9BDEFA238", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xAB140f40A8F7ba38b18F3f27b4ee37084F73644E", + "xt": "0xB74A2304E74fbC8B1a12755FD247e405df1Ea5E0", + "gt": "0x9664EA95f17F395A8E52232edC1D786c492dE61a" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy-market-eth-mainnet-20250407-2000-log.txt b/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy-market-eth-mainnet-20250407-2000-log.txt new file mode 100644 index 0000000..29bd3eb --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy-market-eth-mainnet-20250407-2000-log.txt @@ -0,0 +1,371 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf7ea840ec163817b51384fcc1d53ee433b758a8b + + ===== Block Info ===== + Block number: 22201345 + Block timestamp: 1743839591 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22201345 + + ===== Market Info - 0 ===== + Market deployed at: 0xbEd77E673b45E0B9bc5cd169447143853ED5715d + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x82e570d2D43fb1b3cec2C4AFF53DafD92AB45d89 + XT deployed at: 0x9f399f647720a0425Af74348c91467598d470202 + GT deployed at: 0x6bE1b28F8E877662A54Ce724716b760b30e09A38 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@07APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xBf668F5475362043eC1aDb5A57a0C7c0BeeBb12C + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xFe4640f6010167ff6F376EAe46acf1d51A9C9839 + XT deployed at: 0x2319fEcE6dbc1fdc4EF6166C2e028238f56e2E1e + GT deployed at: 0x3c63392FCcba8c51D8D56dEf468B71bd236B7fFe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@07APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xcE1Ee8A9Ac5F326E4C7F41A47a1AC028D18EDf2B + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x37Cf98db74d2F7126c1E3181aAe3a288f43b5166 + XT deployed at: 0x69cB0E3Ff0E591F0971aF8FbD9B3A79f8647BC99 + GT deployed at: 0x63feDA3DF5DD9d7D2a6745569bCC4A428598676F + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@07APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xc29ae011FE7Fd77023ea174Bd58E68F305B45b46 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xDF9B67da97baB1C0E30DD161E6E02418E339c867 + XT deployed at: 0x3927BfF16E7c094357611c2225d1B527d20F584a + GT deployed at: 0x1BAF3D23C458752649D5c5aFf88FFe8Cf8733A20 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@07APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x4C1a07525ebDd327807b642C214B49C63E6c05ff + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5f8F5d6729C525B4a4737C70c57a00809c811D1B + XT deployed at: 0x32D05350a0655CA0357A8A5930dbc3D5311C08e8 + GT deployed at: 0x65a6177fE89Bb8a5193bf1324e4B46E91121DDbD + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@07APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xDf99ec79822550b092261855C1634cbDbdD3de99 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x1414D38b9815A22f03E7255Cd0bC2Ad9c64682EB + XT deployed at: 0x484C904d40E60039188556A1391ba6C072132DaA + GT deployed at: 0x6844781F48B4Eb0D983d07e39d79B571f3c5C6B9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@07APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x4bcb2F8b3aceA5b572E2397149B4d5B41F396280 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xE79eCa37E34eFB73E62e3f1c49e53ac1d2AB4755 + XT deployed at: 0x20A8b4fd55172BB4cDd07796b53787D48Ecd2b69 + GT deployed at: 0x365859C5D75b991d0C4DC5d1Cd04E41E6191fD93 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@07APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x28bBc8229D20007CB5B6183241fe55ED58c2ef2f + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x57108350Ab9F7b82B64951915a07AdfB59BfEA1b + XT deployed at: 0xB4574ddB742a02e94623a7b6d2318099Ca81D022 + GT deployed at: 0xDbeaB9Cd959f813188959d363b66d4c62bCf7258 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@07APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x437De5103d5A7C5906c882c0B1ABFcF482445edf + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xAEF0E03531b100a9A3Fe6dc559bb9753d623aDFf + XT deployed at: 0xdc8dD52f3158E298eFDEA763B54f81C6c8BF4f15 + GT deployed at: 0xeEecE78d1933a5c452562c9C204EA03Cb119Af9c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@07APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x80F7BB6E8e079E4CDEbe0352C371751c2e866214 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0F096eC4b9D4f4e3e6c04d7A7bd946857779d408 + XT deployed at: 0x3178AEF5f1B4f8707221af937E10A7c37879279A + GT deployed at: 0x839CBF41876616B6e6F09C8A766788423D9AEb9e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@07APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0xC35210FFE8ff4edd32C9A75bC8579Bd275622Fae + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xea5eC3ECF0947a0Bf07F507d8442474718f82097 + XT deployed at: 0x23E226a217aB9Bef9DA1dcE6bb3c6aF8CDA59026 + GT deployed at: 0x957De9961019fD6F8085307B41fD7c9e99785fE0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@07APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x113A3d189C7D896A59670211cBbd2702A3AaE33d + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x1CebfB6013B7D220369415728E3033f5C45Fe4c6 + XT deployed at: 0xb09a74bA0D764386C771AC1647754DC836458474 + GT deployed at: 0x697B4e77B950FCaaD31aE4c1F964F5C638b6F679 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 07APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@07APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 1.054159039 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.018245797877355288 ETH + +========================== + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[ERROR] market deployment to eth-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh eth-mainnet deploy:market --broadcast --resume --verify + + +No files changed, compilation skipped + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@07APR2025.json new file mode 100644 index 0000000..ef6e6f1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0xc29ae011FE7Fd77023ea174Bd58E68F305B45b46", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDF9B67da97baB1C0E30DD161E6E02418E339c867", + "xt": "0x3927BfF16E7c094357611c2225d1B527d20F584a", + "gt": "0x1BAF3D23C458752649D5c5aFf88FFe8Cf8733A20" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-USUALUSDC+@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-USUALUSDC+@07APR2025.json new file mode 100644 index 0000000..2b0b3ac --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-USUALUSDC+@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0x4C1a07525ebDd327807b642C214B49C63E6c05ff", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5f8F5d6729C525B4a4737C70c57a00809c811D1B", + "xt": "0x32D05350a0655CA0357A8A5930dbc3D5311C08e8", + "gt": "0x65a6177fE89Bb8a5193bf1324e4B46E91121DDbD" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-WBTC@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-WBTC@07APR2025.json new file mode 100644 index 0000000..034ec43 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-WBTC@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0x80F7BB6E8e079E4CDEbe0352C371751c2e866214", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0F096eC4b9D4f4e3e6c04d7A7bd946857779d408", + "xt": "0x3178AEF5f1B4f8707221af937E10A7c37879279A", + "gt": "0x839CBF41876616B6e6F09C8A766788423D9AEb9e" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-cbBTC@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-cbBTC@07APR2025.json new file mode 100644 index 0000000..da9ef0b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-cbBTC@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0xC35210FFE8ff4edd32C9A75bC8579Bd275622Fae", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xea5eC3ECF0947a0Bf07F507d8442474718f82097", + "xt": "0x23E226a217aB9Bef9DA1dcE6bb3c6aF8CDA59026", + "gt": "0x957De9961019fD6F8085307B41fD7c9e99785fE0" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-eUSDe@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-eUSDe@07APR2025.json new file mode 100644 index 0000000..f256847 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-eUSDe@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0x28bBc8229D20007CB5B6183241fe55ED58c2ef2f", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x57108350Ab9F7b82B64951915a07AdfB59BfEA1b", + "xt": "0xB4574ddB742a02e94623a7b6d2318099Ca81D022", + "gt": "0xDbeaB9Cd959f813188959d363b66d4c62bCf7258" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-sUSDe@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-sUSDe@07APR2025.json new file mode 100644 index 0000000..4e79c34 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-sUSDe@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0xcE1Ee8A9Ac5F326E4C7F41A47a1AC028D18EDf2B", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x37Cf98db74d2F7126c1E3181aAe3a288f43b5166", + "xt": "0x69cB0E3Ff0E591F0971aF8FbD9B3A79f8647BC99", + "gt": "0x63feDA3DF5DD9d7D2a6745569bCC4A428598676F" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-wstETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-wstETH@07APR2025.json new file mode 100644 index 0000000..39ef314 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-USDC-wstETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0xBf668F5475362043eC1aDb5A57a0C7c0BeeBb12C", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFe4640f6010167ff6F376EAe46acf1d51A9C9839", + "xt": "0x2319fEcE6dbc1fdc4EF6166C2e028238f56e2E1e", + "gt": "0x3c63392FCcba8c51D8D56dEf468B71bd236B7fFe" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-MCwETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-MCwETH@07APR2025.json new file mode 100644 index 0000000..2a13e65 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-MCwETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0xDf99ec79822550b092261855C1634cbDbdD3de99", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x1414D38b9815A22f03E7255Cd0bC2Ad9c64682EB", + "xt": "0x484C904d40E60039188556A1391ba6C072132DaA", + "gt": "0x6844781F48B4Eb0D983d07e39d79B571f3c5C6B9" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-gtWETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-gtWETH@07APR2025.json new file mode 100644 index 0000000..0f532a9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-gtWETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0x113A3d189C7D896A59670211cBbd2702A3AaE33d", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x1CebfB6013B7D220369415728E3033f5C45Fe4c6", + "xt": "0xb09a74bA0D764386C771AC1647754DC836458474", + "gt": "0x697B4e77B950FCaaD31aE4c1F964F5C638b6F679" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-pufETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-pufETH@07APR2025.json new file mode 100644 index 0000000..5ac94ed --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-pufETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0x437De5103d5A7C5906c882c0B1ABFcF482445edf", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xAEF0E03531b100a9A3Fe6dc559bb9753d623aDFf", + "xt": "0xdc8dD52f3158E298eFDEA763B54f81C6c8BF4f15", + "gt": "0xeEecE78d1933a5c452562c9C204EA03Cb119Af9c" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-weETH@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-weETH@07APR2025.json new file mode 100644 index 0000000..00ef036 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-WETH-weETH@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0xbEd77E673b45E0B9bc5cd169447143853ED5715d", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x82e570d2D43fb1b3cec2C4AFF53DafD92AB45d89", + "xt": "0x9f399f647720a0425Af74348c91467598d470202", + "gt": "0x6bE1b28F8E877662A54Ce724716b760b30e09A38" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@07APR2025.json b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@07APR2025.json new file mode 100644 index 0000000..023632b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250407-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@07APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22201345", + "timestamp": "1743839591" + }, + "market": "0x4bcb2F8b3aceA5b572E2397149B4d5B41F396280", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xE79eCa37E34eFB73E62e3f1c49e53ac1d2AB4755", + "xt": "0x20A8b4fd55172BB4cDd07796b53787D48Ecd2b69", + "gt": "0x365859C5D75b991d0C4DC5d1Cd04E41E6191fD93" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "07APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy-market-eth-mainnet-20250408-1400-log.txt b/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy-market-eth-mainnet-20250408-1400-log.txt new file mode 100644 index 0000000..c203255 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy-market-eth-mainnet-20250408-1400-log.txt @@ -0,0 +1,375 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x5a059d3a272b20ad129ffbe37b9903a61a03595e + + ===== Block Info ===== + Block number: 22214356 + Block timestamp: 1743996659 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22214356 + + ===== Market Info - 0 ===== + Market deployed at: 0x6E6a759B9e60ee4aB935d40790a76d17C40Bead0 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x1f55194d52C96678e4099B55D2Dc379EC2CC8E45 + XT deployed at: 0x7de01F4ebaf2C31d8E0Bd1980Cd9A89F02953A3F + GT deployed at: 0x1CfdB2546479D0476189dFA3eb57EE26c81Fa82D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@08APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xfa0671Ba3E2Ea0F7807B7725B7a892079b347bb7 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x16dF8ae9eeDe1F66F3a35665958fdE676294243e + XT deployed at: 0x69D3c664e0E77D97A5Cc00a8582dA2d9A9d6cf1c + GT deployed at: 0xb9F4a0A2B88D4b41E7627177bbB5226665518BC0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@08APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x696de745B378985736D3Cc6ED2c315D097b1d469 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xB41Aa7887Db308Ac689b0Eee467174dB8C98BA16 + XT deployed at: 0xA039B1407E10F8AdA23EaDBc72724C496c146D99 + GT deployed at: 0x18112906b408867758952709eee3C1E7be015b26 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@08APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x2c2d1dBFE91076bFD2755d5D3E59b54BEdF0FEe0 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x8aC997550371f353Fcc058B84b537bee5f2c4a4F + XT deployed at: 0x77C388717e2cb4655050682083C5e11e5D65061c + GT deployed at: 0xBD74614186a53d074867a182d940c1D068EECBB4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@08APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x7a2AC5c749b3b6aa76f6D60E23DDAF08bF04Ee43 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xcEa5D4f36Ee470d23FFE9826CCF5592CbaE85276 + XT deployed at: 0x1e26301B78DC6a3Fe45688cB3311d045267A05b7 + GT deployed at: 0x365885b7a506C565c6C7F5524c4C2def0d62ff38 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@08APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x94fd0EdD370a061c96D9450ECa260AB3F47dA178 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x9eEF0e286EBc0f3De05A803d9A1EcDB816E1fce0 + XT deployed at: 0x5fb1A720C6E06655362f7f58f3f7107329EfaEdE + GT deployed at: 0x43AfCc5D9669D26D96182a298281E6f1502b9Ae4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@08APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x973Dc173D8E5F107c707429A3422750ec99277D7 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x85A0A68812ddB0D3aEFF443d23df603C72654A8b + XT deployed at: 0xc686c01467Eb1A0F65942aAb0f711fE104b4f808 + GT deployed at: 0x870C581f19D7bA80bD60B3A5C10cF2883a08D11c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@08APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xD5e0c6683993cea2f8a602B6198c821abA448c7B + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x8455817D5241BE6FC4b1d672d033944aA30e9e67 + XT deployed at: 0xb30050fb207e3CDb461c62Dcc01db28f02DDC327 + GT deployed at: 0xF42479Ac8ed4d900480A5bb1aee3665E127bE5d5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@08APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xFE960f863Db62615792e500979427a4846A26Cb0 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xdfD578C697AE8DfA55f620c50971a7115e3b7c73 + XT deployed at: 0x230D995106320ff73101d8061ee0b0bDE701FF2d + GT deployed at: 0xA7f0d41db7fD864ab4fD46d7F1b820205Cea095E + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@08APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0xF8CCE0Ae206fCc8a017662D95Cb14346D9F0e4Cf + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x6617Ec1E7AA782AB19DC4E938446e7f4471Ae7E9 + XT deployed at: 0xB7485DCfE5B0e20B3c958703F1DC48A74BEd0ad5 + GT deployed at: 0x90e22bdb10d58E2845d1a4f658c1f826E84a97Eb + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@08APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x716589E75641c0751e987eC2f92Be81C8E430686 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x8673846F426fc920CA6aa4b14643eee58a703974 + XT deployed at: 0x3585dbd668a7AA5a7E4d7abb13805413c6aC4454 + GT deployed at: 0x5Db08775aFE41D07C9d13b13068C1829b2fB5C9d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@08APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8B9D36Acd480Aad1eaD67b6d14f3746C12536890 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x443655f2A2C3b2F7b558FA12b0EdC35aE62Ed039 + XT deployed at: 0x4d081668b24093658e62b94E65381febc645D4B4 + GT deployed at: 0x0eCa81D90aA658Ec5BFA1Ef63B0B043c6c52420f + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@08APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 1.250046141 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.021636288626515272 ETH + +========================== + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[ERROR] market deployment to eth-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh eth-mainnet deploy:market --broadcast --resume --verify +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +No files changed, compilation skipped + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@08APR2025.json new file mode 100644 index 0000000..8809a32 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0x2c2d1dBFE91076bFD2755d5D3E59b54BEdF0FEe0", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8aC997550371f353Fcc058B84b537bee5f2c4a4F", + "xt": "0x77C388717e2cb4655050682083C5e11e5D65061c", + "gt": "0xBD74614186a53d074867a182d940c1D068EECBB4" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-USUALUSDC+@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-USUALUSDC+@08APR2025.json new file mode 100644 index 0000000..da47e8d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-USUALUSDC+@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0x7a2AC5c749b3b6aa76f6D60E23DDAF08bF04Ee43", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xcEa5D4f36Ee470d23FFE9826CCF5592CbaE85276", + "xt": "0x1e26301B78DC6a3Fe45688cB3311d045267A05b7", + "gt": "0x365885b7a506C565c6C7F5524c4C2def0d62ff38" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-WBTC@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-WBTC@08APR2025.json new file mode 100644 index 0000000..072411d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-WBTC@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0xF8CCE0Ae206fCc8a017662D95Cb14346D9F0e4Cf", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6617Ec1E7AA782AB19DC4E938446e7f4471Ae7E9", + "xt": "0xB7485DCfE5B0e20B3c958703F1DC48A74BEd0ad5", + "gt": "0x90e22bdb10d58E2845d1a4f658c1f826E84a97Eb" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-cbBTC@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-cbBTC@08APR2025.json new file mode 100644 index 0000000..0fdc37a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-cbBTC@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0x716589E75641c0751e987eC2f92Be81C8E430686", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8673846F426fc920CA6aa4b14643eee58a703974", + "xt": "0x3585dbd668a7AA5a7E4d7abb13805413c6aC4454", + "gt": "0x5Db08775aFE41D07C9d13b13068C1829b2fB5C9d" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-eUSDe@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-eUSDe@08APR2025.json new file mode 100644 index 0000000..e981a8f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-eUSDe@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0xD5e0c6683993cea2f8a602B6198c821abA448c7B", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8455817D5241BE6FC4b1d672d033944aA30e9e67", + "xt": "0xb30050fb207e3CDb461c62Dcc01db28f02DDC327", + "gt": "0xF42479Ac8ed4d900480A5bb1aee3665E127bE5d5" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-sUSDe@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-sUSDe@08APR2025.json new file mode 100644 index 0000000..732a206 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-sUSDe@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0x696de745B378985736D3Cc6ED2c315D097b1d469", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB41Aa7887Db308Ac689b0Eee467174dB8C98BA16", + "xt": "0xA039B1407E10F8AdA23EaDBc72724C496c146D99", + "gt": "0x18112906b408867758952709eee3C1E7be015b26" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-wstETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-wstETH@08APR2025.json new file mode 100644 index 0000000..3a2a243 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-USDC-wstETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0xfa0671Ba3E2Ea0F7807B7725B7a892079b347bb7", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x16dF8ae9eeDe1F66F3a35665958fdE676294243e", + "xt": "0x69D3c664e0E77D97A5Cc00a8582dA2d9A9d6cf1c", + "gt": "0xb9F4a0A2B88D4b41E7627177bbB5226665518BC0" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-MCwETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-MCwETH@08APR2025.json new file mode 100644 index 0000000..ff1e555 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-MCwETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0x94fd0EdD370a061c96D9450ECa260AB3F47dA178", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x9eEF0e286EBc0f3De05A803d9A1EcDB816E1fce0", + "xt": "0x5fb1A720C6E06655362f7f58f3f7107329EfaEdE", + "gt": "0x43AfCc5D9669D26D96182a298281E6f1502b9Ae4" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-gtWETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-gtWETH@08APR2025.json new file mode 100644 index 0000000..f24da44 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-gtWETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0x8B9D36Acd480Aad1eaD67b6d14f3746C12536890", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x443655f2A2C3b2F7b558FA12b0EdC35aE62Ed039", + "xt": "0x4d081668b24093658e62b94E65381febc645D4B4", + "gt": "0x0eCa81D90aA658Ec5BFA1Ef63B0B043c6c52420f" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-pufETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-pufETH@08APR2025.json new file mode 100644 index 0000000..17864d9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-pufETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0xFE960f863Db62615792e500979427a4846A26Cb0", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xdfD578C697AE8DfA55f620c50971a7115e3b7c73", + "xt": "0x230D995106320ff73101d8061ee0b0bDE701FF2d", + "gt": "0xA7f0d41db7fD864ab4fD46d7F1b820205Cea095E" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-weETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-weETH@08APR2025.json new file mode 100644 index 0000000..ef643ee --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-WETH-weETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0x6E6a759B9e60ee4aB935d40790a76d17C40Bead0", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x1f55194d52C96678e4099B55D2Dc379EC2CC8E45", + "xt": "0x7de01F4ebaf2C31d8E0Bd1980Cd9A89F02953A3F", + "gt": "0x1CfdB2546479D0476189dFA3eb57EE26c81Fa82D" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@08APR2025.json new file mode 100644 index 0000000..8404d17 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214356", + "timestamp": "1743996659" + }, + "market": "0x973Dc173D8E5F107c707429A3422750ec99277D7", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x85A0A68812ddB0D3aEFF443d23df603C72654A8b", + "xt": "0xc686c01467Eb1A0F65942aAb0f711fE104b4f808", + "gt": "0x870C581f19D7bA80bD60B3A5C10cF2883a08D11c" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy-market-eth-mainnet-20250408-2000-log.txt b/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy-market-eth-mainnet-20250408-2000-log.txt new file mode 100644 index 0000000..88ccde0 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy-market-eth-mainnet-20250408-2000-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x5a059d3a272b20ad129ffbe37b9903a61a03595e + + ===== Block Info ===== + Block number: 22214462 + Block timestamp: 1743997931 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22214462 + + ===== Market Info - 0 ===== + Market deployed at: 0x6e7cb4195e6A565D8199630ad1AAd6FEc14c607E + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x3032Da66f091CfBdE48f7d3FdC55cf4aaeAF12Bf + XT deployed at: 0x8799eB4bE88da5d150e7102188468eb53A78DC09 + GT deployed at: 0xDD6b9BC5a48e46446B9df71A35fc4de99040d9D9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@08APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x91071b54100DE31F771e5400Fc3a9F9A2277431a + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xdF4421fF3389474a12Ab2cF62a5520BaDC8fC911 + XT deployed at: 0x87062B9DFaa8E04aF36ceC89Cdc7875967330a62 + GT deployed at: 0x2634dA53442A678B948fb749c5821Ff6d7580971 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@08APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xfAE287BC5fe76185b02ac7134de12e5ef9da1e0e + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xf987eE7dc0221dF9bC68beD65c72601276B7586a + XT deployed at: 0x03D3276DB0655e28938D375E74C1738E2A0e1beb + GT deployed at: 0x783F9d6B8bF0881b63BEea0877f0273099A8C7Fd + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@08APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x9d9750F32276B0CDBAF90E2d7D4dF5374D4Ce4D7 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xE1F6b7Cb67FB32A94e32A4B70B748c3a0546E8cc + XT deployed at: 0x4C36C0b10703a787515852AcF50c9b38fFF28965 + GT deployed at: 0xB13c059D0dfA03495e5AFF3630B6924204800CA4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@08APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xfc4EF8d5156f06613492821ee65fe94aB6fEc554 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x7575677dDa5141E48e8FA6239F805F7BAaA8d369 + XT deployed at: 0xeC098c6073EEC06CF5413A40529F6f87491654fd + GT deployed at: 0x27134b09545487Bc06671B3460a05f720F85c117 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@08APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xdEE71DC2dB65faa883e7a377882C04806Ae5F997 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x80E332b72CFA74a2FE30AaBC4bC270d4BD61F284 + XT deployed at: 0xe2F8adBB49b485AbE63870AF7C30ff68e9b69225 + GT deployed at: 0x45C5E300f5d6bc6e89Ba6A2b8F58c2D30b888EfD + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@08APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x343045EFf770ce642Fe9dFfdAd740fE722E5E6e8 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x1605FCabd82509b6A511b594E02B783bE1B3FbB0 + XT deployed at: 0xDF16977Cfd5C5Fc828a5D8B638C17D11c92d6B1D + GT deployed at: 0x71fFB93f30D6a214643Cb46408b7b81B8Ee60FDe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@08APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xF15E645e8a464C54C3fECbC9e2fFbF5C8F6d77a1 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0ccE74Fce4bB2D56b657E16ccf0a632245327805 + XT deployed at: 0x0e9935960FF29bE2C8edC862B6553774E8BE4A9e + GT deployed at: 0x1896c9825802Bd9F365b4FfE97e2190cE29d1957 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@08APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x4aA92567D7c68E280a45AbEa45b3947D498D5FE6 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x81c7F765E3f2C9B64aAF13042b160797623c51b9 + XT deployed at: 0x5cc67eB15aAB9e4d7d01D6e98aD0c21524c10775 + GT deployed at: 0xfF3b4D264bcDe80d6ddaA3aCa4DeF91878503279 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@08APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x6D07c731F0025b4071057ecbFd40929F10eEF4fB + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x33290658C3f4F1740E2110C87f4C82B34926f231 + XT deployed at: 0x69F1dEff91b8c65C069a1dbB4534535dE3262f94 + GT deployed at: 0x29ccF28ADe49A75c27c57A266979B428ef4e4f52 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@08APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0xD1e0FF35a365ec1e15f8801F40bE5CD2520D66DA + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA55AB3f45Aa93B87BC2e534d5962442d76D1DaDe + XT deployed at: 0x417Db6690e4051E722F9D844002bFd9E88b0b595 + GT deployed at: 0xB7ad1ae6d9298F33225442765a479517DA3250eA + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@08APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x0633EA00ca63C953d1B116D484D515f8532f682A + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xd813405d44Cd63d0b7B913186b5c714A05554034 + XT deployed at: 0xBCD6e330AB69c9F8435A1af90e59831ecd7D7283 + GT deployed at: 0x87Fa5A4E94C9CA57140dA2D8d939C1933F459fe0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 08APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@08APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 6.807511224 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.117827072809391808 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x6e7cb4195e6a565d8199630ad1aad6fec14c607e, 0x3032da66f091cfbde48f7d3fdc55cf4aaeaf12bf, 0x8799eb4be88da5d150e7102188468eb53a78dc09, 0xdd6b9bc5a48e46446b9df71a35fc4de99040d9d9, 0x91071b54100de31f771e5400fc3a9f9a2277431a, 0xdf4421ff3389474a12ab2cf62a5520badc8fc911, 0x87062b9dfaa8e04af36cec89cdc7875967330a62, 0x2634da53442a678b948fb749c5821ff6d7580971, 0xfae287bc5fe76185b02ac7134de12e5ef9da1e0e, 0xf987ee7dc0221df9bc68bed65c72601276b7586a, 0x03d3276db0655e28938d375e74c1738e2a0e1beb, 0x783f9d6b8bf0881b63beea0877f0273099a8c7fd, 0x9d9750f32276b0cdbaf90e2d7d4df5374d4ce4d7, 0xe1f6b7cb67fb32a94e32a4b70b748c3a0546e8cc, 0x4c36c0b10703a787515852acf50c9b38fff28965, 0xb13c059d0dfa03495e5aff3630b6924204800ca4, 0xfc4ef8d5156f06613492821ee65fe94ab6fec554, 0x7575677dda5141e48e8fa6239f805f7baaa8d369, 0xec098c6073eec06cf5413a40529f6f87491654fd, 0x27134b09545487bc06671b3460a05f720f85c117, 0xdee71dc2db65faa883e7a377882c04806ae5f997, 0x80e332b72cfa74a2fe30aabc4bc270d4bd61f284, 0xe2f8adbb49b485abe63870af7c30ff68e9b69225, 0x45c5e300f5d6bc6e89ba6a2b8f58c2d30b888efd, 0x343045eff770ce642fe9dffdad740fe722e5e6e8, 0x1605fcabd82509b6a511b594e02b783be1b3fbb0, 0xdf16977cfd5c5fc828a5d8b638c17d11c92d6b1d, 0x71ffb93f30d6a214643cb46408b7b81b8ee60fde, 0xf15e645e8a464c54c3fecbc9e2ffbf5c8f6d77a1, 0x0cce74fce4bb2d56b657e16ccf0a632245327805, 0x0e9935960ff29be2c8edc862b6553774e8be4a9e, 0x1896c9825802bd9f365b4ffe97e2190ce29d1957, 0x4aa92567d7c68e280a45abea45b3947d498d5fe6, 0x81c7f765e3f2c9b64aaf13042b160797623c51b9, 0x5cc67eb15aab9e4d7d01d6e98ad0c21524c10775, 0xff3b4d264bcde80d6ddaa3aca4def91878503279, 0x6d07c731f0025b4071057ecbfd40929f10eef4fb, 0x33290658c3f4f1740e2110c87f4c82b34926f231, 0x69f1deff91b8c65c069a1dbb4534535de3262f94, 0x29ccf28ade49a75c27c57a266979b428ef4e4f52, 0xd1e0ff35a365ec1e15f8801f40be5cd2520d66da, 0xa55ab3f45aa93b87bc2e534d5962442d76d1dade, 0x417db6690e4051e722f9d844002bfd9e88b0b595, 0xb7ad1ae6d9298f33225442765a479517da3250ea, 0x0633ea00ca63c953d1b116d484d515f8532f682a, 0xd813405d44cd63d0b7b913186b5c714a05554034, 0xbcd6e330ab69c9f8435a1af90e59831ecd7d7283, 0x87fa5a4e94c9ca57140da2d8d939c1933f459fe0]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@08APR2025.json new file mode 100644 index 0000000..435c5d8 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0x9d9750F32276B0CDBAF90E2d7D4dF5374D4Ce4D7", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xE1F6b7Cb67FB32A94e32A4B70B748c3a0546E8cc", + "xt": "0x4C36C0b10703a787515852AcF50c9b38fFF28965", + "gt": "0xB13c059D0dfA03495e5AFF3630B6924204800CA4" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-USUALUSDC+@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-USUALUSDC+@08APR2025.json new file mode 100644 index 0000000..d1789ae --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-USUALUSDC+@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0xfc4EF8d5156f06613492821ee65fe94aB6fEc554", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7575677dDa5141E48e8FA6239F805F7BAaA8d369", + "xt": "0xeC098c6073EEC06CF5413A40529F6f87491654fd", + "gt": "0x27134b09545487Bc06671B3460a05f720F85c117" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-WBTC@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-WBTC@08APR2025.json new file mode 100644 index 0000000..e4142f7 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-WBTC@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0x6D07c731F0025b4071057ecbFd40929F10eEF4fB", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x33290658C3f4F1740E2110C87f4C82B34926f231", + "xt": "0x69F1dEff91b8c65C069a1dbB4534535dE3262f94", + "gt": "0x29ccF28ADe49A75c27c57A266979B428ef4e4f52" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-cbBTC@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-cbBTC@08APR2025.json new file mode 100644 index 0000000..5b5fd3a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-cbBTC@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0xD1e0FF35a365ec1e15f8801F40bE5CD2520D66DA", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA55AB3f45Aa93B87BC2e534d5962442d76D1DaDe", + "xt": "0x417Db6690e4051E722F9D844002bFd9E88b0b595", + "gt": "0xB7ad1ae6d9298F33225442765a479517DA3250eA" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-eUSDe@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-eUSDe@08APR2025.json new file mode 100644 index 0000000..66c510b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-eUSDe@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0xF15E645e8a464C54C3fECbC9e2fFbF5C8F6d77a1", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0ccE74Fce4bB2D56b657E16ccf0a632245327805", + "xt": "0x0e9935960FF29bE2C8edC862B6553774E8BE4A9e", + "gt": "0x1896c9825802Bd9F365b4FfE97e2190cE29d1957" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-sUSDe@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-sUSDe@08APR2025.json new file mode 100644 index 0000000..1818800 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-sUSDe@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0xfAE287BC5fe76185b02ac7134de12e5ef9da1e0e", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xf987eE7dc0221dF9bC68beD65c72601276B7586a", + "xt": "0x03D3276DB0655e28938D375E74C1738E2A0e1beb", + "gt": "0x783F9d6B8bF0881b63BEea0877f0273099A8C7Fd" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-wstETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-wstETH@08APR2025.json new file mode 100644 index 0000000..79de7f2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-USDC-wstETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0x91071b54100DE31F771e5400Fc3a9F9A2277431a", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xdF4421fF3389474a12Ab2cF62a5520BaDC8fC911", + "xt": "0x87062B9DFaa8E04aF36ceC89Cdc7875967330a62", + "gt": "0x2634dA53442A678B948fb749c5821Ff6d7580971" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-MCwETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-MCwETH@08APR2025.json new file mode 100644 index 0000000..65316d1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-MCwETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0xdEE71DC2dB65faa883e7a377882C04806Ae5F997", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x80E332b72CFA74a2FE30AaBC4bC270d4BD61F284", + "xt": "0xe2F8adBB49b485AbE63870AF7C30ff68e9b69225", + "gt": "0x45C5E300f5d6bc6e89Ba6A2b8F58c2D30b888EfD" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-gtWETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-gtWETH@08APR2025.json new file mode 100644 index 0000000..5d95304 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-gtWETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0x0633EA00ca63C953d1B116D484D515f8532f682A", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xd813405d44Cd63d0b7B913186b5c714A05554034", + "xt": "0xBCD6e330AB69c9F8435A1af90e59831ecd7D7283", + "gt": "0x87Fa5A4E94C9CA57140dA2D8d939C1933F459fe0" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-pufETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-pufETH@08APR2025.json new file mode 100644 index 0000000..0da99fe --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-pufETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0x4aA92567D7c68E280a45AbEa45b3947D498D5FE6", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x81c7F765E3f2C9B64aAF13042b160797623c51b9", + "xt": "0x5cc67eB15aAB9e4d7d01D6e98aD0c21524c10775", + "gt": "0xfF3b4D264bcDe80d6ddaA3aCa4DeF91878503279" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-weETH@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-weETH@08APR2025.json new file mode 100644 index 0000000..480f0b8 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-WETH-weETH@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0x6e7cb4195e6A565D8199630ad1AAd6FEc14c607E", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x3032Da66f091CfBdE48f7d3FdC55cf4aaeAF12Bf", + "xt": "0x8799eB4bE88da5d150e7102188468eb53A78DC09", + "gt": "0xDD6b9BC5a48e46446B9df71A35fc4de99040d9D9" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@08APR2025.json b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@08APR2025.json new file mode 100644 index 0000000..863e8a9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250408-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@08APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214462", + "timestamp": "1743997931" + }, + "market": "0x343045EFf770ce642Fe9dFfdAd740fE722E5E6e8", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1605FCabd82509b6A511b594E02B783bE1B3FbB0", + "xt": "0xDF16977Cfd5C5Fc828a5D8B638C17D11c92d6B1D", + "gt": "0x71fFB93f30D6a214643Cb46408b7b81B8Ee60FDe" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "08APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy-market-eth-mainnet-20250409-1400-log.txt b/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy-market-eth-mainnet-20250409-1400-log.txt new file mode 100644 index 0000000..9be17b6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy-market-eth-mainnet-20250409-1400-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x5a059d3a272b20ad129ffbe37b9903a61a03595e + + ===== Block Info ===== + Block number: 22214508 + Block timestamp: 1743998495 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22214508 + + ===== Market Info - 0 ===== + Market deployed at: 0x81bfB882FC53B2BEe8665e8e038F1b5dAD668152 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x99607D36aBa4C4B1b3fAD5a53c59dc7BD5690C44 + XT deployed at: 0xd9f1F61ED6331003cf7af06a9049A36eB436b61e + GT deployed at: 0x8bf877dab38cBAFa4eAB1d182f0d0F5B0C1373B0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@09APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xFEf50aE2Ecf1C9360A1E4401e73349F69Bd82937 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x02aacc1CCe8209bd11BA9bBd85c35f5deeCC6fF7 + XT deployed at: 0x07474286f52c7798B8c5Af3350fc1cd1c7e817b7 + GT deployed at: 0xEc6e6eD60588598FDEE32907BF8390Bc95122C22 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@09APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xDe37D78dD580E1c032666F0bc4cf6C6687FFBb06 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x6c897E423a36712a18f00096e33252306EB86E0F + XT deployed at: 0x7f86776a080521d770454Fb4d09353e8FB7A5B96 + GT deployed at: 0x009C06aD4208fC9Bf91dAf3E2f8D26b889f80d58 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@09APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x1A6Ce72390A88f0d31e433c6AacE331c5efF9780 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x017756bfb727adf566cEf4A344683314194E5533 + XT deployed at: 0x84607274D60cFe12f8c78502148Fc33c5707Bb7B + GT deployed at: 0xD1Cf5D4e051334b7992690cFC83f3651E8EBA310 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@09APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xF7c68B682D3171432eab59278950863De35f239d + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x31A9CFB870E3A12B26312D53Ba18585901a4E63a + XT deployed at: 0x9231B31f1d94b009F3Eb8FCBcc8E175BAA1A6B4D + GT deployed at: 0xd1415aF85Ba1ab247a87f0EE5bd3eeee7c3B4A39 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@09APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x035Ef165eBF6607BCb772FD483115889F8E2f0eF + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x91DEa6e3Cfa762FAaA6337712C083ed9722b1665 + XT deployed at: 0xaFe279F0cBB46B5beB89959bb79d1E3b13Bc4435 + GT deployed at: 0x241d27c65eF0aaD6d8096E9DC3B35b33B8b3bAc6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@09APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x485D886748E3a0CD84904bbf436B3Be77037Ba56 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x4Fd9B96E8Ff22957305eeE69A6A2841eFc1A0682 + XT deployed at: 0xc236Dcc5dF373E1330D519EC71673D05465288fF + GT deployed at: 0xC34c3fcB6305c2228DA8EF9c402b475Aff07BDf4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@09APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x1930F3ae7144dA4075cF23e3115636b2296ad568 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5D7269570666400D891e575145D2532C8Ba0a83c + XT deployed at: 0x36Ed1d58f01cCf3d1B323F2721DcC6aE71FD7287 + GT deployed at: 0x9562dE84913aB4a18f17ec83b82c3BD195BF92e0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@09APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xefea0bAcd45416728460443019dCCF89c009a6C0 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x1c1303b9FebE8478F9C77DD0d739eA670D37FAA4 + XT deployed at: 0xad201CF6874F7839b0FE66a69d46DF2970a4059F + GT deployed at: 0x42C64BE1C1c24bCe5BC40444Cb00765789ddaf05 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@09APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x29286e025C433D75262F0232e37C6403eeF5763D + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5f68Cc09418DAe5C64340E506E0B86254E3010b3 + XT deployed at: 0x57C3Fb7D2397e769652A30A01fC7D71b418EC608 + GT deployed at: 0xa199cEc12E02a9e7Ec761cD78C32b58f7f8A4dAd + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@09APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x1dD72578D0B5085Ca1dC9575AE921415D9041939 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x904Dd3E2117d754389c22BB91C2894f747A34E60 + XT deployed at: 0xF91CCB59a8350963CBdc1eF6DFFdE35D87869567 + GT deployed at: 0xd99986A4a62aF578220d66FFE759a47D9cC28000 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@09APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0xE68F0cCeC52bF850C11c51f31d1a103E02D87a36 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x64d99D2dD7d9bd204668e39be174B00ab0A59933 + XT deployed at: 0x7A504c315070476bCD73a358b081f388Cb189e87 + GT deployed at: 0x721CCF70e2b126D3cdB2DF8eA3e04e5576AE24a3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@09APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.647008366 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.097740634426007472 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x81bfb882fc53b2bee8665e8e038f1b5dad668152, 0x99607d36aba4c4b1b3fad5a53c59dc7bd5690c44, 0xd9f1f61ed6331003cf7af06a9049a36eb436b61e, 0x8bf877dab38cbafa4eab1d182f0d0f5b0c1373b0, 0xfef50ae2ecf1c9360a1e4401e73349f69bd82937, 0x02aacc1cce8209bd11ba9bbd85c35f5deecc6ff7, 0x07474286f52c7798b8c5af3350fc1cd1c7e817b7, 0xec6e6ed60588598fdee32907bf8390bc95122c22, 0xde37d78dd580e1c032666f0bc4cf6c6687ffbb06, 0x6c897e423a36712a18f00096e33252306eb86e0f, 0x7f86776a080521d770454fb4d09353e8fb7a5b96, 0x009c06ad4208fc9bf91daf3e2f8d26b889f80d58, 0x1a6ce72390a88f0d31e433c6aace331c5eff9780, 0x017756bfb727adf566cef4a344683314194e5533, 0x84607274d60cfe12f8c78502148fc33c5707bb7b, 0xd1cf5d4e051334b7992690cfc83f3651e8eba310, 0xf7c68b682d3171432eab59278950863de35f239d, 0x31a9cfb870e3a12b26312d53ba18585901a4e63a, 0x9231b31f1d94b009f3eb8fcbcc8e175baa1a6b4d, 0xd1415af85ba1ab247a87f0ee5bd3eeee7c3b4a39, 0x035ef165ebf6607bcb772fd483115889f8e2f0ef, 0x91dea6e3cfa762faaa6337712c083ed9722b1665, 0xafe279f0cbb46b5beb89959bb79d1e3b13bc4435, 0x241d27c65ef0aad6d8096e9dc3b35b33b8b3bac6, 0x485d886748e3a0cd84904bbf436b3be77037ba56, 0x4fd9b96e8ff22957305eee69a6a2841efc1a0682, 0xc236dcc5df373e1330d519ec71673d05465288ff, 0xc34c3fcb6305c2228da8ef9c402b475aff07bdf4, 0x1930f3ae7144da4075cf23e3115636b2296ad568, 0x5d7269570666400d891e575145d2532c8ba0a83c, 0x36ed1d58f01ccf3d1b323f2721dcc6ae71fd7287, 0x9562de84913ab4a18f17ec83b82c3bd195bf92e0, 0xefea0bacd45416728460443019dccf89c009a6c0, 0x1c1303b9febe8478f9c77dd0d739ea670d37faa4, 0xad201cf6874f7839b0fe66a69d46df2970a4059f, 0x42c64be1c1c24bce5bc40444cb00765789ddaf05, 0x29286e025c433d75262f0232e37c6403eef5763d, 0x5f68cc09418dae5c64340e506e0b86254e3010b3, 0x57c3fb7d2397e769652a30a01fc7d71b418ec608, 0xa199cec12e02a9e7ec761cd78c32b58f7f8a4dad, 0x1dd72578d0b5085ca1dc9575ae921415d9041939, 0x904dd3e2117d754389c22bb91c2894f747a34e60, 0xf91ccb59a8350963cbdc1ef6dffde35d87869567, 0xd99986a4a62af578220d66ffe759a47d9cc28000, 0xe68f0ccec52bf850c11c51f31d1a103e02d87a36, 0x64d99d2dd7d9bd204668e39be174b00ab0a59933, 0x7a504c315070476bcd73a358b081f388cb189e87, 0x721ccf70e2b126d3cdb2df8ea3e04e5576ae24a3]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@09APR2025.json new file mode 100644 index 0000000..498e15b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0x1A6Ce72390A88f0d31e433c6AacE331c5efF9780", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x017756bfb727adf566cEf4A344683314194E5533", + "xt": "0x84607274D60cFe12f8c78502148Fc33c5707Bb7B", + "gt": "0xD1Cf5D4e051334b7992690cFC83f3651E8EBA310" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-USUALUSDC+@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-USUALUSDC+@09APR2025.json new file mode 100644 index 0000000..997e739 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-USUALUSDC+@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0xF7c68B682D3171432eab59278950863De35f239d", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x31A9CFB870E3A12B26312D53Ba18585901a4E63a", + "xt": "0x9231B31f1d94b009F3Eb8FCBcc8E175BAA1A6B4D", + "gt": "0xd1415aF85Ba1ab247a87f0EE5bd3eeee7c3B4A39" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-WBTC@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-WBTC@09APR2025.json new file mode 100644 index 0000000..0491aed --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-WBTC@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0x29286e025C433D75262F0232e37C6403eeF5763D", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5f68Cc09418DAe5C64340E506E0B86254E3010b3", + "xt": "0x57C3Fb7D2397e769652A30A01fC7D71b418EC608", + "gt": "0xa199cEc12E02a9e7Ec761cD78C32b58f7f8A4dAd" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-cbBTC@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-cbBTC@09APR2025.json new file mode 100644 index 0000000..daf9aed --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-cbBTC@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0x1dD72578D0B5085Ca1dC9575AE921415D9041939", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x904Dd3E2117d754389c22BB91C2894f747A34E60", + "xt": "0xF91CCB59a8350963CBdc1eF6DFFdE35D87869567", + "gt": "0xd99986A4a62aF578220d66FFE759a47D9cC28000" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-eUSDe@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-eUSDe@09APR2025.json new file mode 100644 index 0000000..6db0ede --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-eUSDe@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0x1930F3ae7144dA4075cF23e3115636b2296ad568", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5D7269570666400D891e575145D2532C8Ba0a83c", + "xt": "0x36Ed1d58f01cCf3d1B323F2721DcC6aE71FD7287", + "gt": "0x9562dE84913aB4a18f17ec83b82c3BD195BF92e0" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-sUSDe@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-sUSDe@09APR2025.json new file mode 100644 index 0000000..fc1d5f4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-sUSDe@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0xDe37D78dD580E1c032666F0bc4cf6C6687FFBb06", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6c897E423a36712a18f00096e33252306EB86E0F", + "xt": "0x7f86776a080521d770454Fb4d09353e8FB7A5B96", + "gt": "0x009C06aD4208fC9Bf91dAf3E2f8D26b889f80d58" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-wstETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-wstETH@09APR2025.json new file mode 100644 index 0000000..b4a442d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-USDC-wstETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0xFEf50aE2Ecf1C9360A1E4401e73349F69Bd82937", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x02aacc1CCe8209bd11BA9bBd85c35f5deeCC6fF7", + "xt": "0x07474286f52c7798B8c5Af3350fc1cd1c7e817b7", + "gt": "0xEc6e6eD60588598FDEE32907BF8390Bc95122C22" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-MCwETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-MCwETH@09APR2025.json new file mode 100644 index 0000000..0f145fc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-MCwETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0x035Ef165eBF6607BCb772FD483115889F8E2f0eF", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x91DEa6e3Cfa762FAaA6337712C083ed9722b1665", + "xt": "0xaFe279F0cBB46B5beB89959bb79d1E3b13Bc4435", + "gt": "0x241d27c65eF0aaD6d8096E9DC3B35b33B8b3bAc6" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-gtWETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-gtWETH@09APR2025.json new file mode 100644 index 0000000..1dda396 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-gtWETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0xE68F0cCeC52bF850C11c51f31d1a103E02D87a36", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x64d99D2dD7d9bd204668e39be174B00ab0A59933", + "xt": "0x7A504c315070476bCD73a358b081f388Cb189e87", + "gt": "0x721CCF70e2b126D3cdB2DF8eA3e04e5576AE24a3" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-pufETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-pufETH@09APR2025.json new file mode 100644 index 0000000..86cb06e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-pufETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0xefea0bAcd45416728460443019dCCF89c009a6C0", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x1c1303b9FebE8478F9C77DD0d739eA670D37FAA4", + "xt": "0xad201CF6874F7839b0FE66a69d46DF2970a4059F", + "gt": "0x42C64BE1C1c24bCe5BC40444Cb00765789ddaf05" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-weETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-weETH@09APR2025.json new file mode 100644 index 0000000..378ff5f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-WETH-weETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0x81bfB882FC53B2BEe8665e8e038F1b5dAD668152", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x99607D36aBa4C4B1b3fAD5a53c59dc7BD5690C44", + "xt": "0xd9f1F61ED6331003cf7af06a9049A36eB436b61e", + "gt": "0x8bf877dab38cBAFa4eAB1d182f0d0F5B0C1373B0" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@09APR2025.json new file mode 100644 index 0000000..7302ebf --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214508", + "timestamp": "1743998495" + }, + "market": "0x485D886748E3a0CD84904bbf436B3Be77037Ba56", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4Fd9B96E8Ff22957305eeE69A6A2841eFc1A0682", + "xt": "0xc236Dcc5dF373E1330D519EC71673D05465288fF", + "gt": "0xC34c3fcB6305c2228DA8EF9c402b475Aff07BDf4" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy-market-eth-mainnet-20250409-2000-log.txt b/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy-market-eth-mainnet-20250409-2000-log.txt new file mode 100644 index 0000000..2db75bd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy-market-eth-mainnet-20250409-2000-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x5a059d3a272b20ad129ffbe37b9903a61a03595e + + ===== Block Info ===== + Block number: 22214581 + Block timestamp: 1743999383 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22214581 + + ===== Market Info - 0 ===== + Market deployed at: 0x1D398AD3B3fD7a7B539c4ba82e85d25bD900BC88 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xf9E89859624FA7680b8fcA2757549bf29498F254 + XT deployed at: 0x69D8F8F19e69011724b9C3A34e343D19fF23A0Cb + GT deployed at: 0x9C71510DFBFb185A21357257F7aC61114DD4d71e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@09APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x29f30087809EdFe8f899e75fb36Dd2b1C074eaFD + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xbe045Db0a804C1911606F22d033Ed2F0Bcc3412a + XT deployed at: 0xf4829BA2d0e9Ed386b8D40cDcc05C78567797225 + GT deployed at: 0xeF29652159dC1Fc60bc297b1159f746942eF0F6a + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@09APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xfa5813da819f86Cc493F55Fe75541f1E5F4e0999 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x6A7D6613686Dea278E04f7311c05bBF584f69F7a + XT deployed at: 0x655fA0e1161cc45f964831D0f1724B950e7087F8 + GT deployed at: 0x10B4C055a975E0a5b0B7CCB7D90C36a2A13E3B54 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@09APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x58D60b36f31AAc6FCab9A1425b816947dc421694 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x88DF7A1561D783b9EAa3fD93F845dAc587E11cAE + XT deployed at: 0xC169Ef6e48BDdC5a756A1fFDfaACD12884e786FB + GT deployed at: 0x68648117139CD16F1E3f99431bb568f9eaa2DDd5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@09APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x3674F00a72E9E5b0689F5B0db7e574315A0E7d3c + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x7309c50c36df4645E6309217Cc0a5fC20D3C2B16 + XT deployed at: 0xDF0E22075554d06Fe86E318a500102f7047c99e4 + GT deployed at: 0x39ED1deDfD4b9a0cbddDb4d588CD1704aD6bD61f + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@09APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x5a0DeDD0466559dd8eb3591c6b060a920AEe10cb + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x59Caaf9278674cea9Ee35e1b4a0DAE948b85A77C + XT deployed at: 0x89c82CcD8b32D0EF460DAE8A40F5B96e94A606CD + GT deployed at: 0xDA99AC42429354Fc24E3726A44897d11b756640B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@09APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x16eea39e611eB70d4Cd1E0e034bb1F47f6448e9E + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x219CADC8DbeB82aeb1Ab34588e09a3c7B25Ce027 + XT deployed at: 0x626a40191748bf3D16E17A66f08440D9602E269d + GT deployed at: 0x9611Bb3a272d15858c8803F519479FAd1d53a9Ec + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@09APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xcc18B36D8d7Da3be8A94C3f7c18A8dFbc916F361 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x786B1Be6E09E535145e786145ea67a37f493e36a + XT deployed at: 0x491fB43c23494151250232E5AFeA9C28F6816d28 + GT deployed at: 0x660A72cd80Ea2836e53fF50Fd91588034dA5F37e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@09APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x44f07715acFa1Cc5B93A7D84F6653163ae0d65e1 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x2f011e024C801968227C6dFF03f106812aAd8c4f + XT deployed at: 0x6cF29753e5BB1ef4bBae9BE7A5Ed52c3b3C13280 + GT deployed at: 0xA66eDfe00224a50578FAEC6b16eA65436622a251 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@09APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x56b8767614B9213e0487E23319242d3B03CB506d + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5ac386B9129d0482437a3ad7aB3DC41eb8484DbD + XT deployed at: 0xBEa33BCD725CC90cCE06b503936bf403D1c8AbF8 + GT deployed at: 0xBaBc34fee407ABDf0ec3212A95EFB218Bce18468 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@09APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x07452fE9A0feF596EE95250434Ed2b3e88B85E9e + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xbcc66AFA01DdCBAe154836A5a5C20195943c3DC7 + XT deployed at: 0xaDD09Fc3DA81066D760dF74a12BA2572F1401441 + GT deployed at: 0x4bA98652D64B36faDb6406F590BE5a82dD4531B5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@09APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0xe49566230b9Cdb882DBEA334dD17B1e6065EF49f + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x5E721DF3afF05114FF09B0632C84E6d38a204ad1 + XT deployed at: 0xEbabF22f41411b832c3B5fD9729bF7C4aBc077DA + GT deployed at: 0x5469eb70182688278709f6233C653171313B864a + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 09APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@09APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 4.050877988 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.070114184160475296 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x1d398ad3b3fd7a7b539c4ba82e85d25bd900bc88, 0xf9e89859624fa7680b8fca2757549bf29498f254, 0x69d8f8f19e69011724b9c3a34e343d19ff23a0cb, 0x9c71510dfbfb185a21357257f7ac61114dd4d71e, 0x29f30087809edfe8f899e75fb36dd2b1c074eafd, 0xbe045db0a804c1911606f22d033ed2f0bcc3412a, 0xf4829ba2d0e9ed386b8d40cdcc05c78567797225, 0xef29652159dc1fc60bc297b1159f746942ef0f6a, 0xfa5813da819f86cc493f55fe75541f1e5f4e0999, 0x6a7d6613686dea278e04f7311c05bbf584f69f7a, 0x655fa0e1161cc45f964831d0f1724b950e7087f8, 0x10b4c055a975e0a5b0b7ccb7d90c36a2a13e3b54, 0x58d60b36f31aac6fcab9a1425b816947dc421694, 0x88df7a1561d783b9eaa3fd93f845dac587e11cae, 0xc169ef6e48bddc5a756a1ffdfaacd12884e786fb, 0x68648117139cd16f1e3f99431bb568f9eaa2ddd5, 0x3674f00a72e9e5b0689f5b0db7e574315a0e7d3c, 0x7309c50c36df4645e6309217cc0a5fc20d3c2b16, 0xdf0e22075554d06fe86e318a500102f7047c99e4, 0x39ed1dedfd4b9a0cbdddb4d588cd1704ad6bd61f, 0x5a0dedd0466559dd8eb3591c6b060a920aee10cb, 0x59caaf9278674cea9ee35e1b4a0dae948b85a77c, 0x89c82ccd8b32d0ef460dae8a40f5b96e94a606cd, 0xda99ac42429354fc24e3726a44897d11b756640b, 0x16eea39e611eb70d4cd1e0e034bb1f47f6448e9e, 0x219cadc8dbeb82aeb1ab34588e09a3c7b25ce027, 0x626a40191748bf3d16e17a66f08440d9602e269d, 0x9611bb3a272d15858c8803f519479fad1d53a9ec, 0xcc18b36d8d7da3be8a94c3f7c18a8dfbc916f361, 0x786b1be6e09e535145e786145ea67a37f493e36a, 0x491fb43c23494151250232e5afea9c28f6816d28, 0x660a72cd80ea2836e53ff50fd91588034da5f37e, 0x44f07715acfa1cc5b93a7d84f6653163ae0d65e1, 0x2f011e024c801968227c6dff03f106812aad8c4f, 0x6cf29753e5bb1ef4bbae9be7a5ed52c3b3c13280, 0xa66edfe00224a50578faec6b16ea65436622a251, 0x56b8767614b9213e0487e23319242d3b03cb506d, 0x5ac386b9129d0482437a3ad7ab3dc41eb8484dbd, 0xbea33bcd725cc90cce06b503936bf403d1c8abf8, 0xbabc34fee407abdf0ec3212a95efb218bce18468, 0x07452fe9a0fef596ee95250434ed2b3e88b85e9e, 0xbcc66afa01ddcbae154836a5a5c20195943c3dc7, 0xadd09fc3da81066d760df74a12ba2572f1401441, 0x4ba98652d64b36fadb6406f590be5a82dd4531b5, 0xe49566230b9cdb882dbea334dd17b1e6065ef49f, 0x5e721df3aff05114ff09b0632c84e6d38a204ad1, 0xebabf22f41411b832c3b5fd9729bf7c4abc077da, 0x5469eb70182688278709f6233c653171313b864a]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@09APR2025.json new file mode 100644 index 0000000..281ae5c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x58D60b36f31AAc6FCab9A1425b816947dc421694", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x88DF7A1561D783b9EAa3fD93F845dAc587E11cAE", + "xt": "0xC169Ef6e48BDdC5a756A1fFDfaACD12884e786FB", + "gt": "0x68648117139CD16F1E3f99431bb568f9eaa2DDd5" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-USUALUSDC+@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-USUALUSDC+@09APR2025.json new file mode 100644 index 0000000..16e6a32 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-USUALUSDC+@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x3674F00a72E9E5b0689F5B0db7e574315A0E7d3c", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7309c50c36df4645E6309217Cc0a5fC20D3C2B16", + "xt": "0xDF0E22075554d06Fe86E318a500102f7047c99e4", + "gt": "0x39ED1deDfD4b9a0cbddDb4d588CD1704aD6bD61f" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-WBTC@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-WBTC@09APR2025.json new file mode 100644 index 0000000..f5deda9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-WBTC@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x56b8767614B9213e0487E23319242d3B03CB506d", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5ac386B9129d0482437a3ad7aB3DC41eb8484DbD", + "xt": "0xBEa33BCD725CC90cCE06b503936bf403D1c8AbF8", + "gt": "0xBaBc34fee407ABDf0ec3212A95EFB218Bce18468" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-cbBTC@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-cbBTC@09APR2025.json new file mode 100644 index 0000000..19e98b1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-cbBTC@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x07452fE9A0feF596EE95250434Ed2b3e88B85E9e", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xbcc66AFA01DdCBAe154836A5a5C20195943c3DC7", + "xt": "0xaDD09Fc3DA81066D760dF74a12BA2572F1401441", + "gt": "0x4bA98652D64B36faDb6406F590BE5a82dD4531B5" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-eUSDe@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-eUSDe@09APR2025.json new file mode 100644 index 0000000..66142da --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-eUSDe@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0xcc18B36D8d7Da3be8A94C3f7c18A8dFbc916F361", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x786B1Be6E09E535145e786145ea67a37f493e36a", + "xt": "0x491fB43c23494151250232E5AFeA9C28F6816d28", + "gt": "0x660A72cd80Ea2836e53fF50Fd91588034dA5F37e" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-sUSDe@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-sUSDe@09APR2025.json new file mode 100644 index 0000000..d4db43b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-sUSDe@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0xfa5813da819f86Cc493F55Fe75541f1E5F4e0999", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6A7D6613686Dea278E04f7311c05bBF584f69F7a", + "xt": "0x655fA0e1161cc45f964831D0f1724B950e7087F8", + "gt": "0x10B4C055a975E0a5b0B7CCB7D90C36a2A13E3B54" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-wstETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-wstETH@09APR2025.json new file mode 100644 index 0000000..d9bc113 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-USDC-wstETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x29f30087809EdFe8f899e75fb36Dd2b1C074eaFD", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xbe045Db0a804C1911606F22d033Ed2F0Bcc3412a", + "xt": "0xf4829BA2d0e9Ed386b8D40cDcc05C78567797225", + "gt": "0xeF29652159dC1Fc60bc297b1159f746942eF0F6a" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-MCwETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-MCwETH@09APR2025.json new file mode 100644 index 0000000..b6127f6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-MCwETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x5a0DeDD0466559dd8eb3591c6b060a920AEe10cb", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x59Caaf9278674cea9Ee35e1b4a0DAE948b85A77C", + "xt": "0x89c82CcD8b32D0EF460DAE8A40F5B96e94A606CD", + "gt": "0xDA99AC42429354Fc24E3726A44897d11b756640B" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-gtWETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-gtWETH@09APR2025.json new file mode 100644 index 0000000..de8af3d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-gtWETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0xe49566230b9Cdb882DBEA334dD17B1e6065EF49f", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x5E721DF3afF05114FF09B0632C84E6d38a204ad1", + "xt": "0xEbabF22f41411b832c3B5fD9729bF7C4aBc077DA", + "gt": "0x5469eb70182688278709f6233C653171313B864a" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-pufETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-pufETH@09APR2025.json new file mode 100644 index 0000000..22cb157 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-pufETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x44f07715acFa1Cc5B93A7D84F6653163ae0d65e1", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x2f011e024C801968227C6dFF03f106812aAd8c4f", + "xt": "0x6cF29753e5BB1ef4bBae9BE7A5Ed52c3b3C13280", + "gt": "0xA66eDfe00224a50578FAEC6b16eA65436622a251" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-weETH@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-weETH@09APR2025.json new file mode 100644 index 0000000..8377c71 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-WETH-weETH@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x1D398AD3B3fD7a7B539c4ba82e85d25bD900BC88", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xf9E89859624FA7680b8fcA2757549bf29498F254", + "xt": "0x69D8F8F19e69011724b9C3A34e343D19fF23A0Cb", + "gt": "0x9C71510DFBFb185A21357257F7aC61114DD4d71e" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@09APR2025.json b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@09APR2025.json new file mode 100644 index 0000000..bd2999f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250409-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@09APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214581", + "timestamp": "1743999383" + }, + "market": "0x16eea39e611eB70d4Cd1E0e034bb1F47f6448e9E", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x219CADC8DbeB82aeb1Ab34588e09a3c7B25Ce027", + "xt": "0x626a40191748bf3D16E17A66f08440D9602E269d", + "gt": "0x9611Bb3a272d15858c8803F519479FAd1d53a9Ec" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "09APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy-market-eth-mainnet-20250410-1400-log.txt b/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy-market-eth-mainnet-20250410-1400-log.txt new file mode 100644 index 0000000..f549b7e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy-market-eth-mainnet-20250410-1400-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x5a059d3a272b20ad129ffbe37b9903a61a03595e + + ===== Block Info ===== + Block number: 22214655 + Block timestamp: 1744000271 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22214655 + + ===== Market Info - 0 ===== + Market deployed at: 0xA4D14471FeD74B1664Fb888bcbA398dcBEBA2890 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xbc6b184b468A9B7e2d165AdeA77b58773Db2a8c3 + XT deployed at: 0xA9D9Cc4471D68433751691b2AbCbFad95A0330e2 + GT deployed at: 0xE68AB0a7C0BE3d4c9149A8601c7Df566276CB11A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@10APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x663e9f58e9ce3231A95a137F30E934ff6473bF9f + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x44E07a9c79a15Cc743C7e04B55064A8bc596B752 + XT deployed at: 0xE383f7f99D7F28A0EEDA31B20E8092E6534AA192 + GT deployed at: 0x4AE866FfA4c8B5173E2239694bE5515C63C5DCfd + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@10APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x37EA82A997Bb160291a05c1c86F869fAb1c4163A + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x60a11DA2Cc690F69F57ee57C12Ff8D599D1609bA + XT deployed at: 0x5086224274b1f38436B16C1Da5b9c5829F66E25C + GT deployed at: 0x79151612e7Ccc54fbCf0048f1Be93EB5aBf7E74d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@10APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x1B5596B24823109352d6c9FeF8c3186df68AFeE7 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1B1Ef48a948696Ed367aDac232A28C5F1205918b + XT deployed at: 0xFA8627D4219eAAEB10F93419872294F09f9D72D7 + GT deployed at: 0xfcCAe4a1B02E160010Ba7d0D97299456C8fb57C0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@10APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xdD1f122F075438De597487494A3acb9C98601e0F + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0dE1b0cd455139F162699847973AF08ebbd98c0B + XT deployed at: 0xB67E81A0CE4834FdC0B7Fef2A52A2DCe4D00756C + GT deployed at: 0x1db01Bb963Ea7f69DedabB148CDD253A23Fd3C86 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@10APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x06ca18bD6DC9dBDe841315A503AFA11Bd68c7DC8 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xeBAfB711848c01271A9bd7A1A76A0bF4a5AaE193 + XT deployed at: 0xe298937ac37A2DAA0ECe8C495c6F2ceeaED1795B + GT deployed at: 0x4Fd71e0D3d96D3B732Dc217CE9aca75acB17Fe62 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@10APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x9647aa6Bd43D004Ff709737cc49Dae17a39Fd9d4 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x64cAa30d514b255bde2B3a39AAda58cFdE0C7bA6 + XT deployed at: 0xf3c804B5F13ce6E6831687b5ace4d26B495Db588 + GT deployed at: 0x6c6F9757BAD25b6A0091A1E83dbF8f3313d25FE0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@10APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x411cC697dC35362B1b2b87a1FBefD762CA017ed0 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x4dBb4b99b98D7dE3E4335bC3B638D480546A0158 + XT deployed at: 0x3E0cC1C776BCEFea410f95d78B7D4cc9c558aa52 + GT deployed at: 0x4A9AeB1398DD87AA1449df58e8EE8578FCE2900f + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@10APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9d813574687cb3B4b5C8F2311eEBa7382D5b229c + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xD2b14ca4Dc6cb7741752Ef9178ed4D5c094b6229 + XT deployed at: 0x183F35437746cC8bCa62868B17d16Ab576EF1Cbf + GT deployed at: 0xcdec35492939e4c254Eec4492A4E9E7D1D939DAB + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@10APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0xFB9Bd7Fa2a707eCC618a5DEc78a916AF3Bc27f8F + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x601D83443eb61f8C8FC6115C937f32855FdcfdbF + XT deployed at: 0xEcbe342E80da2439535440b412DD74D790372179 + GT deployed at: 0xF6654f28D2e92E0Bc03438b3590D56a8380a47D6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@10APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x68eb044886980d657B48094F9daB6CaCc4208Ba5 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD0c19bF74d47E17404EdF8D57aDE39Ed0944f110 + XT deployed at: 0x72e9052DFD7d4a3393956D32616cc53471f47093 + GT deployed at: 0x3a1778527145d0C6B259055d5DBA2601F5AE1e19 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@10APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0xe27E75967c162F97Ab99cE4b0A881D5CB2ABec85 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x48Ba7d3Bb5A604c4e06bbAdb985aCF27a45Cb8d7 + XT deployed at: 0xb76DFE249B9653A2C77216bf310438e6B2a8BdC5 + GT deployed at: 0x200D174855f706e40B75eC5399fbdfAFEEFD02C2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@10APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 1.931674392 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.033434177593097664 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xa4d14471fed74b1664fb888bcba398dcbeba2890, 0xbc6b184b468a9b7e2d165adea77b58773db2a8c3, 0xa9d9cc4471d68433751691b2abcbfad95a0330e2, 0xe68ab0a7c0be3d4c9149a8601c7df566276cb11a, 0x663e9f58e9ce3231a95a137f30e934ff6473bf9f, 0x44e07a9c79a15cc743c7e04b55064a8bc596b752, 0xe383f7f99d7f28a0eeda31b20e8092e6534aa192, 0x4ae866ffa4c8b5173e2239694be5515c63c5dcfd, 0x37ea82a997bb160291a05c1c86f869fab1c4163a, 0x60a11da2cc690f69f57ee57c12ff8d599d1609ba, 0x5086224274b1f38436b16c1da5b9c5829f66e25c, 0x79151612e7ccc54fbcf0048f1be93eb5abf7e74d, 0x1b5596b24823109352d6c9fef8c3186df68afee7, 0x1b1ef48a948696ed367adac232a28c5f1205918b, 0xfa8627d4219eaaeb10f93419872294f09f9d72d7, 0xfccae4a1b02e160010ba7d0d97299456c8fb57c0, 0xdd1f122f075438de597487494a3acb9c98601e0f, 0x0de1b0cd455139f162699847973af08ebbd98c0b, 0xb67e81a0ce4834fdc0b7fef2a52a2dce4d00756c, 0x1db01bb963ea7f69dedabb148cdd253a23fd3c86, 0x06ca18bd6dc9dbde841315a503afa11bd68c7dc8, 0xebafb711848c01271a9bd7a1a76a0bf4a5aae193, 0xe298937ac37a2daa0ece8c495c6f2ceeaed1795b, 0x4fd71e0d3d96d3b732dc217ce9aca75acb17fe62, 0x9647aa6bd43d004ff709737cc49dae17a39fd9d4, 0x64caa30d514b255bde2b3a39aada58cfde0c7ba6, 0xf3c804b5f13ce6e6831687b5ace4d26b495db588, 0x6c6f9757bad25b6a0091a1e83dbf8f3313d25fe0, 0x411cc697dc35362b1b2b87a1fbefd762ca017ed0, 0x4dbb4b99b98d7de3e4335bc3b638d480546a0158, 0x3e0cc1c776bcefea410f95d78b7d4cc9c558aa52, 0x4a9aeb1398dd87aa1449df58e8ee8578fce2900f, 0x9d813574687cb3b4b5c8f2311eeba7382d5b229c, 0xd2b14ca4dc6cb7741752ef9178ed4d5c094b6229, 0x183f35437746cc8bca62868b17d16ab576ef1cbf, 0xcdec35492939e4c254eec4492a4e9e7d1d939dab, 0xfb9bd7fa2a707ecc618a5dec78a916af3bc27f8f, 0x601d83443eb61f8c8fc6115c937f32855fdcfdbf, 0xecbe342e80da2439535440b412dd74d790372179, 0xf6654f28d2e92e0bc03438b3590d56a8380a47d6, 0x68eb044886980d657b48094f9dab6cacc4208ba5, 0xd0c19bf74d47e17404edf8d57ade39ed0944f110, 0x72e9052dfd7d4a3393956d32616cc53471f47093, 0x3a1778527145d0c6b259055d5dba2601f5ae1e19, 0xe27e75967c162f97ab99ce4b0a881d5cb2abec85, 0x48ba7d3bb5a604c4e06bbadb985acf27a45cb8d7, 0xb76dfe249b9653a2c77216bf310438e6b2a8bdc5, 0x200d174855f706e40b75ec5399fbdfafeefd02c2]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@10APR2025.json new file mode 100644 index 0000000..5081ad1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0x1B5596B24823109352d6c9FeF8c3186df68AFeE7", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1B1Ef48a948696Ed367aDac232A28C5F1205918b", + "xt": "0xFA8627D4219eAAEB10F93419872294F09f9D72D7", + "gt": "0xfcCAe4a1B02E160010Ba7d0D97299456C8fb57C0" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-USUALUSDC+@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-USUALUSDC+@10APR2025.json new file mode 100644 index 0000000..c9e7ee7 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-USUALUSDC+@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0xdD1f122F075438De597487494A3acb9C98601e0F", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0dE1b0cd455139F162699847973AF08ebbd98c0B", + "xt": "0xB67E81A0CE4834FdC0B7Fef2A52A2DCe4D00756C", + "gt": "0x1db01Bb963Ea7f69DedabB148CDD253A23Fd3C86" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-WBTC@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-WBTC@10APR2025.json new file mode 100644 index 0000000..3c6d8c1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-WBTC@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0xFB9Bd7Fa2a707eCC618a5DEc78a916AF3Bc27f8F", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x601D83443eb61f8C8FC6115C937f32855FdcfdbF", + "xt": "0xEcbe342E80da2439535440b412DD74D790372179", + "gt": "0xF6654f28D2e92E0Bc03438b3590D56a8380a47D6" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-cbBTC@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-cbBTC@10APR2025.json new file mode 100644 index 0000000..d6bdbd0 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-cbBTC@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0x68eb044886980d657B48094F9daB6CaCc4208Ba5", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD0c19bF74d47E17404EdF8D57aDE39Ed0944f110", + "xt": "0x72e9052DFD7d4a3393956D32616cc53471f47093", + "gt": "0x3a1778527145d0C6B259055d5DBA2601F5AE1e19" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-eUSDe@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-eUSDe@10APR2025.json new file mode 100644 index 0000000..d9c0e34 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-eUSDe@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0x411cC697dC35362B1b2b87a1FBefD762CA017ed0", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4dBb4b99b98D7dE3E4335bC3B638D480546A0158", + "xt": "0x3E0cC1C776BCEFea410f95d78B7D4cc9c558aa52", + "gt": "0x4A9AeB1398DD87AA1449df58e8EE8578FCE2900f" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-sUSDe@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-sUSDe@10APR2025.json new file mode 100644 index 0000000..12d8c3f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-sUSDe@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0x37EA82A997Bb160291a05c1c86F869fAb1c4163A", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x60a11DA2Cc690F69F57ee57C12Ff8D599D1609bA", + "xt": "0x5086224274b1f38436B16C1Da5b9c5829F66E25C", + "gt": "0x79151612e7Ccc54fbCf0048f1Be93EB5aBf7E74d" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-wstETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-wstETH@10APR2025.json new file mode 100644 index 0000000..f3cde9e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-USDC-wstETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0x663e9f58e9ce3231A95a137F30E934ff6473bF9f", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x44E07a9c79a15Cc743C7e04B55064A8bc596B752", + "xt": "0xE383f7f99D7F28A0EEDA31B20E8092E6534AA192", + "gt": "0x4AE866FfA4c8B5173E2239694bE5515C63C5DCfd" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-MCwETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-MCwETH@10APR2025.json new file mode 100644 index 0000000..1c1408b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-MCwETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0x06ca18bD6DC9dBDe841315A503AFA11Bd68c7DC8", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xeBAfB711848c01271A9bd7A1A76A0bF4a5AaE193", + "xt": "0xe298937ac37A2DAA0ECe8C495c6F2ceeaED1795B", + "gt": "0x4Fd71e0D3d96D3B732Dc217CE9aca75acB17Fe62" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-gtWETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-gtWETH@10APR2025.json new file mode 100644 index 0000000..f1e9236 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-gtWETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0xe27E75967c162F97Ab99cE4b0A881D5CB2ABec85", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x48Ba7d3Bb5A604c4e06bbAdb985aCF27a45Cb8d7", + "xt": "0xb76DFE249B9653A2C77216bf310438e6B2a8BdC5", + "gt": "0x200D174855f706e40B75eC5399fbdfAFEEFD02C2" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-pufETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-pufETH@10APR2025.json new file mode 100644 index 0000000..2819ab3 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-pufETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0x9d813574687cb3B4b5C8F2311eEBa7382D5b229c", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xD2b14ca4Dc6cb7741752Ef9178ed4D5c094b6229", + "xt": "0x183F35437746cC8bCa62868B17d16Ab576EF1Cbf", + "gt": "0xcdec35492939e4c254Eec4492A4E9E7D1D939DAB" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-weETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-weETH@10APR2025.json new file mode 100644 index 0000000..d73c72d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-WETH-weETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0xA4D14471FeD74B1664Fb888bcbA398dcBEBA2890", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xbc6b184b468A9B7e2d165AdeA77b58773Db2a8c3", + "xt": "0xA9D9Cc4471D68433751691b2AbCbFad95A0330e2", + "gt": "0xE68AB0a7C0BE3d4c9149A8601c7Df566276CB11A" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@10APR2025.json new file mode 100644 index 0000000..7bbb3ac --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-1400/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214655", + "timestamp": "1744000271" + }, + "market": "0x9647aa6Bd43D004Ff709737cc49Dae17a39Fd9d4", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x64cAa30d514b255bde2B3a39AAda58cFdE0C7bA6", + "xt": "0xf3c804B5F13ce6E6831687b5ace4d26B495Db588", + "gt": "0x6c6F9757BAD25b6A0091A1E83dbF8f3313d25FE0" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy-market-eth-mainnet-20250410-2000-log.txt b/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy-market-eth-mainnet-20250410-2000-log.txt new file mode 100644 index 0000000..387a918 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy-market-eth-mainnet-20250410-2000-log.txt @@ -0,0 +1,358 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x5a059d3a272b20ad129ffbe37b9903a61a03595e + + ===== Block Info ===== + Block number: 22214690 + Block timestamp: 1744000691 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22214690 + + ===== Market Info - 0 ===== + Market deployed at: 0xBa22413143811e2863AdB9815c3c1beeAe8766ab + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0E6A7700D64FCD7af9a4dF1A9D3cd00A06Ab193b + XT deployed at: 0xFb1F5B3EC13cA546112647340B7EF1Ca0b0eA2A8 + GT deployed at: 0xf45422F01FFEA4872EbBA68830b3BCf87B961975 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@10APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x927F8fEF0F79cD65E03eaE5a9A644dAE45025804 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x942898481a41431F9d3E0C6335b1b5B2A8cdC5d8 + XT deployed at: 0xe09782b410Cfeff541e96270f52f6e9C763CB551 + GT deployed at: 0xECF42B12940301Ed76DeF6580aAC4358d5bFC2B2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@10APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xf2f146797cEFC1E7B9f0dD3E858e3477cE29Dc6C + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5fC681DeD819162eb51370b5e6F69EDB65656991 + XT deployed at: 0xB7AFC487446849C149E5d556F4bC2BDe413c055B + GT deployed at: 0xCAF9975c52590A6F793Bb7605c8431258942a323 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@10APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x882e11F79Cf4967D5001ee6a375b323019f7a121 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xf063F502ddaA20AC85f8769af29E459bA0F8CB12 + XT deployed at: 0xe1c68d41862D0361369776972f112Fb37bf857Bd + GT deployed at: 0xFDa44d8e4Ba523b12EB87D1b66a5151fD419FC96 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@10APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x98f897cAa0ebB36797a5227D04Ce63CD35e38D2b + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5f616EcF521d994C7C2FAe20517eCB751fafaCB7 + XT deployed at: 0xfCbF76b53CC9693B49400765e4e47371C99cd95F + GT deployed at: 0xF6620EaFDBD0169Bf2707c76AbDCDd1574F7024A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@10APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x07c0846373017f2886A981c8847F077Ba2B8e2a9 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x2A1B7F154F9713719f9919edB5713CfE45cab80c + XT deployed at: 0xb80cB5a396874e24F50C0bd1B8bc77fa5a5f8F39 + GT deployed at: 0xa0562755Dc317c3E5da0a53bce37580F3bb67CF9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@10APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xd60adA320AE619549036411E7fb218835780f612 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x4B33fA7073306E44B73B8D34B6562dF7f2C4dF23 + XT deployed at: 0xf7A8a1D12Cc3A676Dd83B580A084E365CEEE5238 + GT deployed at: 0xefc0d28E52460e1322A8Acee02E75873B8E2Df8f + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@10APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xF94988fB79d47e50E2c5B7d1fc5F990358FBFce8 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0814D14829b503d331A4902D42918E3fcE320c04 + XT deployed at: 0x771F2a25D79f9C219BB34778571Ee735a49F3cBb + GT deployed at: 0x9d3C7afF92BB93A3FEFB302e3f9bE0ba99bCcD6E + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@10APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xe02bF089843f5F53388a2269e8bcEA9933F89607 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xF4E47Ad40eBAA4200Ae031F861B6dCeCC220db4B + XT deployed at: 0x265037D05637093D5F61DE3476720896097ED0c3 + GT deployed at: 0x2A7A396EC323723d46C4c97Abd5cbC0A53c2a69c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@10APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x56729807526bcEc3B55a635addD0ae59f748b202 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xB7Cfc2363c5695C6D029eee78Bb5A5353c15cb6e + XT deployed at: 0x548BbA937F8714e3303a57Ab4a61f72b7bd33FbE + GT deployed at: 0x5578295b2A30B901Ee5C6cdc1B2243Bf0590176F + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@10APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x825Cac9B7a5E5B9Eb2BCEAe75F163f2988e37CAC + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x7e0919cB1b09FA528f44Feea98Bb039fdE3a8D67 + XT deployed at: 0x5ADc52de3e7C6828c88B8911A3F2eF4A72e23d56 + GT deployed at: 0xE14FB406A99F1D67318a6Df128fef6A9C4a38359 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@10APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x0B0f1F8D08621ae44691541519022CdbaeE59e42 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xCf717D019CCeAC3AF1b818bbC39D926209Ad8d0b + XT deployed at: 0x5309E4507f19a21a699cEb2968a4e12620a77686 + GT deployed at: 0xd7f068fCe893c2C54C2CAd638a3701Ac551509c2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 10APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@10APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 2.39365893 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.04143038707474056 ETH + +========================== + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[ERROR] market deployment to eth-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh eth-mainnet deploy:market --broadcast --resume --verify diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@10APR2025.json new file mode 100644 index 0000000..4ffedfd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0x882e11F79Cf4967D5001ee6a375b323019f7a121", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xf063F502ddaA20AC85f8769af29E459bA0F8CB12", + "xt": "0xe1c68d41862D0361369776972f112Fb37bf857Bd", + "gt": "0xFDa44d8e4Ba523b12EB87D1b66a5151fD419FC96" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-USUALUSDC+@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-USUALUSDC+@10APR2025.json new file mode 100644 index 0000000..aeba8b7 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-USUALUSDC+@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0x98f897cAa0ebB36797a5227D04Ce63CD35e38D2b", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5f616EcF521d994C7C2FAe20517eCB751fafaCB7", + "xt": "0xfCbF76b53CC9693B49400765e4e47371C99cd95F", + "gt": "0xF6620EaFDBD0169Bf2707c76AbDCDd1574F7024A" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-WBTC@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-WBTC@10APR2025.json new file mode 100644 index 0000000..4ca66a2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-WBTC@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0x56729807526bcEc3B55a635addD0ae59f748b202", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB7Cfc2363c5695C6D029eee78Bb5A5353c15cb6e", + "xt": "0x548BbA937F8714e3303a57Ab4a61f72b7bd33FbE", + "gt": "0x5578295b2A30B901Ee5C6cdc1B2243Bf0590176F" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-cbBTC@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-cbBTC@10APR2025.json new file mode 100644 index 0000000..ae0f472 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-cbBTC@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0x825Cac9B7a5E5B9Eb2BCEAe75F163f2988e37CAC", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7e0919cB1b09FA528f44Feea98Bb039fdE3a8D67", + "xt": "0x5ADc52de3e7C6828c88B8911A3F2eF4A72e23d56", + "gt": "0xE14FB406A99F1D67318a6Df128fef6A9C4a38359" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-eUSDe@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-eUSDe@10APR2025.json new file mode 100644 index 0000000..1e28bec --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-eUSDe@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0xF94988fB79d47e50E2c5B7d1fc5F990358FBFce8", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0814D14829b503d331A4902D42918E3fcE320c04", + "xt": "0x771F2a25D79f9C219BB34778571Ee735a49F3cBb", + "gt": "0x9d3C7afF92BB93A3FEFB302e3f9bE0ba99bCcD6E" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-sUSDe@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-sUSDe@10APR2025.json new file mode 100644 index 0000000..7ffaa1e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-sUSDe@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0xf2f146797cEFC1E7B9f0dD3E858e3477cE29Dc6C", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5fC681DeD819162eb51370b5e6F69EDB65656991", + "xt": "0xB7AFC487446849C149E5d556F4bC2BDe413c055B", + "gt": "0xCAF9975c52590A6F793Bb7605c8431258942a323" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-wstETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-wstETH@10APR2025.json new file mode 100644 index 0000000..2564740 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-USDC-wstETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0x927F8fEF0F79cD65E03eaE5a9A644dAE45025804", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x942898481a41431F9d3E0C6335b1b5B2A8cdC5d8", + "xt": "0xe09782b410Cfeff541e96270f52f6e9C763CB551", + "gt": "0xECF42B12940301Ed76DeF6580aAC4358d5bFC2B2" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-MCwETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-MCwETH@10APR2025.json new file mode 100644 index 0000000..c7939bb --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-MCwETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0x07c0846373017f2886A981c8847F077Ba2B8e2a9", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x2A1B7F154F9713719f9919edB5713CfE45cab80c", + "xt": "0xb80cB5a396874e24F50C0bd1B8bc77fa5a5f8F39", + "gt": "0xa0562755Dc317c3E5da0a53bce37580F3bb67CF9" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-gtWETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-gtWETH@10APR2025.json new file mode 100644 index 0000000..d434f6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-gtWETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0x0B0f1F8D08621ae44691541519022CdbaeE59e42", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xCf717D019CCeAC3AF1b818bbC39D926209Ad8d0b", + "xt": "0x5309E4507f19a21a699cEb2968a4e12620a77686", + "gt": "0xd7f068fCe893c2C54C2CAd638a3701Ac551509c2" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-pufETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-pufETH@10APR2025.json new file mode 100644 index 0000000..db3ed33 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-pufETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0xe02bF089843f5F53388a2269e8bcEA9933F89607", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xF4E47Ad40eBAA4200Ae031F861B6dCeCC220db4B", + "xt": "0x265037D05637093D5F61DE3476720896097ED0c3", + "gt": "0x2A7A396EC323723d46C4c97Abd5cbC0A53c2a69c" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-weETH@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-weETH@10APR2025.json new file mode 100644 index 0000000..a138639 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-WETH-weETH@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0xBa22413143811e2863AdB9815c3c1beeAe8766ab", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x0E6A7700D64FCD7af9a4dF1A9D3cd00A06Ab193b", + "xt": "0xFb1F5B3EC13cA546112647340B7EF1Ca0b0eA2A8", + "gt": "0xf45422F01FFEA4872EbBA68830b3BCf87B961975" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@10APR2025.json b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@10APR2025.json new file mode 100644 index 0000000..2ea9af9 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250410-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@10APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22214690", + "timestamp": "1744000691" + }, + "market": "0xd60adA320AE619549036411E7fb218835780f612", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4B33fA7073306E44B73B8D34B6562dF7f2C4dF23", + "xt": "0xf7A8a1D12Cc3A676Dd83B580A084E365CEEE5238", + "gt": "0xefc0d28E52460e1322A8Acee02E75873B8E2Df8f" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "10APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/accept-oracles-20250418-log.txt b/deployments/eth-mainnet-v1.0.8-20250530/accept-oracles-20250418-log.txt new file mode 100644 index 0000000..65cd055 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/accept-oracles-20250418-log.txt @@ -0,0 +1,77 @@ + ./script.sh eth-mainnet script:AcceptOracles --broadcast --verify +Running on eth-mainnet... +=== Configuration === +Operation: Script Execution +Network: eth-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Network: eth-mainnet + Current Block Timestamp: 1744907987 + + Accepted oracle for token: + Token Symbol: MC_USDCP + Token Address: 0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: gtusdcf + Token Address: 0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x81195F8A79f6553A4078f89eF87b21a7d3C2855A + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: mhyETH + Token Address: 0x701907283a57FF77E255C3f1aAD790466B8CE4ef + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 5 + Oracles accepted: 3 + Oracles not ready: 2 + + === Oracles Not Ready for Acceptance === + 1. USDC (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) + Price Feed: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Backup Price Feed: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Heartbeat: 86400 + Status: Oracle is already configured with the correct values + --- + 2. WETH (0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) + Price Feed: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Backup Price Feed: 0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4 + Heartbeat: 86400 + Status: Oracle is already configured with the correct values + --- + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-20250530/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/deploy-eth-markets-20250530.txt b/deployments/eth-mainnet-v1.0.8-20250530/deploy-eth-markets-20250530.txt new file mode 100644 index 0000000..e448f27 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/deploy-eth-markets-20250530.txt @@ -0,0 +1,396 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0x561b96a021112cba8323e544ec0268dd640b4a22 + + ===== Block Info ===== + Block number: 22232653 + Block timestamp: 1744217435 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22232653 + + ===== Market Info - 0 ===== + Market deployed at: 0x0B7eFE5DE3c3B5d75de33e25965b193d6Ba79f52 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x409E45a47629F45B91607Bb87bcD8D043f32Bc9a + XT deployed at: 0x21aD8e3b575b65f2c937b201749a738ec53786E8 + GT deployed at: 0x02DA4fdA501396e036DCB591827e938E25Fe3DD4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@30MAY2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xEd7cD45E5e6ef68261929B58539805bA3c061f14 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x94b0b2679bDEe922039D8B0Bb952F5048FF8B87f + XT deployed at: 0xbD99501360FFe943C60546C422f4885Ea022FcbC + GT deployed at: 0xEF15C2C9D5213FE471d9d28a8908cd3b007c4539 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@30MAY2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x6f5c8838E618448e43385E4C401006822Aa15142 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1be1A3B4A052F669F521F5966a37B49171AEF57C + XT deployed at: 0x7705d2B0990192c3b3d1ea6C3A7908250605120A + GT deployed at: 0x1bb662b38EC6ff531DeF9CAa37a3489c7F5e2f98 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@30MAY2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xe867255dC0c3a27c90f756ECC566a5292ce19492 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x07Ef01ba0947eb64df31A826C8a084Ca005e545d + XT deployed at: 0xb58036be9723Ba7766161ddb8d4050B3c44dc273 + GT deployed at: 0x3A888cb50b4b1BfCB61507D4a453eF67BA1E4055 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x352D81f954C37C2defAaD1B43531a1131983043F + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x00996971EFEC45402b0F135468C3dEe00bDAF44f + XT deployed at: 0xC034b54C49843185c6b328847abaB31eEB12DA27 + GT deployed at: 0x76318548169af6d6df07544E7E75e8cB07b31927 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@30MAY2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x09722C9CB389f6Ebf5ac9C33eB0067949a3a063a + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x5365f147fCA4298380947edD4919b8814e5eb6ec + XT deployed at: 0x01792484Eb39399921663Ddd814d241fA69425Fd + GT deployed at: 0xF601D19D6285741D9Abd6D1E37f32A1533622A29 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@30MAY2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xBebB5CEe893110cF477901AF7FA94E4840606421 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x5db7A477dEdE7d12feA665312282E052e0207FC1 + XT deployed at: 0xE8a7A6dD9218202996D9cF825426Ab283b3396eD + GT deployed at: 0x69cf2ACd3499dF9b322d3B3Fb579E1Af420f601d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x403863917316Bf8AA1966F9D90b393Cec98F991b + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x7E5dA817e4cD2f2a897c997FB6EB3506d9861432 + XT deployed at: 0x9C4ef4476130f92CEF4b661f99130157d35129CD + GT deployed at: 0xe09Ad59438A1EA4041217cd1Ee018589DB508268 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 29MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@29MAY2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x484CDece3FC951a7D009b9dBAC66EC287eC1f58e + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xc74Af187D844dC35998271B5696053CF57816413 + XT deployed at: 0x1f2f2af9FbBa146CB03B4eAFD8C8aE9ed5B91F60 + GT deployed at: 0x89BCE5e162cdB10ea0d0B84B5E7Aff8F51036E89 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@30MAY2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0xd699EFC4162d76BfD3cB553D65f850c882C29F5F + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0297807b6f251431BC60D96E74DADDAaaCD8533E + XT deployed at: 0x68f2E8b2B09122475c5208456A39CAF87a097fE4 + GT deployed at: 0xBe53610FD2870BA0f221c40ed734f173685e3666 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@30MAY2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x03f2Af12aE4eb5533c3f7773BE826e8da56F6E1a + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x970D02242B8339Fc3148643A00e0a1e52c1eb5Eb + XT deployed at: 0xf1f31F2668ADa8400d91BfC00f9a3c316c538cB3 + GT deployed at: 0x49d06206055e0cbDcbE94257782284B69b4B15Fd + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@30MAY2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0xc68a2fbD7cb560c71CcAfbDeE971824Ed9bF4556 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xD31d16770d10fEee37FEc90777697546F5388F85 + XT deployed at: 0xa7DbC90d2959E40EB093Abe75C7405Ff26ac3fE3 + GT deployed at: 0x9BdD5071f150d02Af43A65e56A0622d03E846DdB + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@30MAY2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 2.158515108 gwei + +Estimated total gas used for script: 17548228 + +Estimated amount required: 0.037878115256628624 ETH + +========================== + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[ERROR] market deployment to eth-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh eth-mainnet deploy:market --broadcast --resume --verify +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x0b7efe5de3c3b5d75de33e25965b193d6ba79f52, 0x409e45a47629f45b91607bb87bcd8d043f32bc9a, 0x21ad8e3b575b65f2c937b201749a738ec53786e8, 0x02da4fda501396e036dcb591827e938e25fe3dd4, 0xed7cd45e5e6ef68261929b58539805ba3c061f14, 0x94b0b2679bdee922039d8b0bb952f5048ff8b87f, 0xbd99501360ffe943c60546c422f4885ea022fcbc, 0xef15c2c9d5213fe471d9d28a8908cd3b007c4539, 0x6f5c8838e618448e43385e4c401006822aa15142, 0x1be1a3b4a052f669f521f5966a37b49171aef57c, 0x7705d2b0990192c3b3d1ea6c3a7908250605120a, 0x1bb662b38ec6ff531def9caa37a3489c7f5e2f98, 0xe867255dc0c3a27c90f756ecc566a5292ce19492, 0x07ef01ba0947eb64df31a826c8a084ca005e545d, 0xb58036be9723ba7766161ddb8d4050b3c44dc273, 0x3a888cb50b4b1bfcb61507d4a453ef67ba1e4055, 0x352d81f954c37c2defaad1b43531a1131983043f, 0x00996971efec45402b0f135468c3dee00bdaf44f, 0xc034b54c49843185c6b328847abab31eeb12da27, 0x76318548169af6d6df07544e7e75e8cb07b31927, 0x09722c9cb389f6ebf5ac9c33eb0067949a3a063a, 0x5365f147fca4298380947edd4919b8814e5eb6ec, 0x01792484eb39399921663ddd814d241fa69425fd, 0xf601d19d6285741d9abd6d1e37f32a1533622a29, 0xbebb5cee893110cf477901af7fa94e4840606421, 0x5db7a477dede7d12fea665312282e052e0207fc1, 0xe8a7a6dd9218202996d9cf825426ab283b3396ed, 0x69cf2acd3499df9b322d3b3fb579e1af420f601d, 0x403863917316bf8aa1966f9d90b393cec98f991b, 0x7e5da817e4cd2f2a897c997fb6eb3506d9861432, 0x9c4ef4476130f92cef4b661f99130157d35129cd, 0xe09ad59438a1ea4041217cd1ee018589db508268, 0x484cdece3fc951a7d009b9dbac66ec287ec1f58e, 0xc74af187d844dc35998271b5696053cf57816413, 0x1f2f2af9fbba146cb03b4eafd8c8ae9ed5b91f60, 0x89bce5e162cdb10ea0d0b84b5e7aff8f51036e89, 0xd699efc4162d76bfd3cb553d65f850c882c29f5f, 0x0297807b6f251431bc60d96e74daddaaacd8533e, 0x68f2e8b2b09122475c5208456a39caf87a097fe4, 0xbe53610fd2870ba0f221c40ed734f173685e3666, 0x03f2af12ae4eb5533c3f7773be826e8da56f6e1a, 0x970d02242b8339fc3148643a00e0a1e52c1eb5eb, 0xf1f31f2668ada8400d91bfc00f9a3c316c538cb3, 0x49d06206055e0cbdcbe94257782284b69b4b15fd, 0xc68a2fbd7cb560c71ccafbdee971824ed9bf4556, 0xd31d16770d10feee37fec90777697546f5388f85, 0xa7dbc90d2959e40eb093abe75c7405ff26ac3fe3, 0x9bdd5071f150d02af43a65e56a0622d03e846ddb]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250530/deploy-markets-20250417-log.txt b/deployments/eth-mainnet-v1.0.8-20250530/deploy-markets-20250417-log.txt new file mode 100644 index 0000000..4dcb173 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/deploy-markets-20250417-log.txt @@ -0,0 +1,122 @@ +./script.sh eth-mainnet deploy:market --broadcast --verify +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.9 + Git commit hash: + 0x4402458004a3655ec11709e2f86118ae7bfd0d18 + + ===== Block Info ===== + Block number: 22286356 + Block timestamp: 1744864451 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22286356 + + ===== Market Info - 0 ===== + Market deployed at: 0xf4924D6189552ae5A7818088dA6f23Bd33281C1b + Market name: USDC/MC_USDCP@30MAY2025 + Market symbol: USDC/MC_USDCP@30MAY2025 + Collateral (MC_USDCP) address: 0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xe7b3c858FF8031DC6c84D899aEeC343c89A246e0 + XT deployed at: 0x2568d2B892b5c761e1155F4f1c05E5b61961f126 + GT deployed at: 0x5C4db8DB0CA1d040e7fD6FB2AfAA81032df0a4f7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_USDCP@30MAY2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x2EaafFbCdE68337341C0eC65A862e648A413dc14 + Market name: USDC/gtusdcf@30MAY2025 + Market symbol: USDC/gtusdcf@30MAY2025 + Collateral (gtusdcf) address: 0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x81195F8A79f6553A4078f89eF87b21a7d3C2855A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x09ec4BE9869BfAbF9fF6652fe7703276D6F5E5d8 + XT deployed at: 0x9c7fBdd0055604bbf7736B153407e9513C818C22 + GT deployed at: 0x8Ee590224c6cddE0d27FB60B37B05784dD794E59 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-gtusdcf@30MAY2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xb9919eE2169a7dA664AD024C6dDCF0ccD4121C26 + Market name: WETH/mhyETH@30MAY2025 + Market symbol: WETH/mhyETH@30MAY2025 + Collateral (mhyETH) address: 0x701907283a57FF77E255C3f1aAD790466B8CE4ef + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 86400 + FT deployed at: 0xbC9c191613c6e77c03A3F792579520d455e852a6 + XT deployed at: 0x1aA1fF0D8c47066C72902040716F91Df18090ADc + GT deployed at: 0x489f04a08d6ee13789cd59c5ce241494b063b3DB + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-mhyETH@30MAY2025.json + + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/deploy-price-feeds-morpho-20250417-log.txt b/deployments/eth-mainnet-v1.0.8-20250530/deploy-price-feeds-morpho-20250417-log.txt new file mode 100644 index 0000000..02bf798 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/deploy-price-feeds-morpho-20250417-log.txt @@ -0,0 +1,21 @@ +% forge script script/deploy/DeployPriceFeedsMorpho.s.sol --rpc-url $ETH_MAINNET_RPC_URL --broadcast --verify +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + gtusdcf price feed address 0x81195F8A79f6553A4078f89eF87b21a7d3C2855A + gtusdcf last answer 101266087 + mhyETH price feed address 0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931 + mhyETH last answer 161205311756 + mhyETHBackup price feed address 0x00B96F0eBf39158cb4E3F801073966bD6Db7959C + mhyETHBackup last answer 162030447776 + mevUsdcPrime price feed address 0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322 + mevUsdcPrime last answer 99992088 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-20250530/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-accumulated.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-accumulated.json new file mode 100644 index 0000000..baeda6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-accumulated.json @@ -0,0 +1,743 @@ +{ + "configNum": "18", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "594347733812822000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "backupPriceFeedAddr": "0x24CFEf73A30b2CEEC23d3659fA98B491D996F152", + "heartBeat": "86400", + "name": "Wrapped eETH", + "symbol": "weETH", + "decimals": "18", + "initialPrice": "168251670000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/weETH@30MAY2025", + "marketSymbol": "WETH/weETH@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "527664486788797000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "priceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "backupPriceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "189514360000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/wstETH@30MAY2025", + "marketSymbol": "USDC/wstETH@30MAY2025" + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "862068965517241000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "backupPriceFeedAddr": "0xb99D174ED06c83588Af997c8859F93E83dD4733f", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "115999999", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/sUSDe@30MAY2025", + "marketSymbol": "USDC/sUSDe@30MAY2025" + }, + "configs_3": { + "salt": 0, + "collateralCapForGt": "1025010250102500000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0x333651c5710Fc8C4fe65E5D15E5639348F267D7c", + "heartBeat": "86400", + "name": "PT Ethena sUSDE 29MAY2025", + "symbol": "PT-sUSDE-29MAY2025", + "decimals": "18", + "initialPrice": "97560000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025" + }, + "configs_4": { + "salt": 0, + "collateralCapForGt": "952380952380952000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "priceFeedAddr": "0xF8f79b5b527e2cb3900956eB0D17A4D4aA6ae220", + "backupPriceFeedAddr": "0xF8f79b5b527e2cb3900956eB0D17A4D4aA6ae220", + "heartBeat": "86400", + "name": "USUAL Boosted USDC", + "symbol": "USUALUSDC+", + "decimals": "18", + "initialPrice": "105000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/USUALUSDC+@30MAY2025", + "marketSymbol": "USDC/USUALUSDC+@30MAY2025" + }, + "configs_5": { + "salt": 0, + "collateralCapForGt": "613081294525419000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "priceFeedAddr": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "backupPriceFeedAddr": "0x3b82860EC8815Fc2A1dcC53580bd647b0042C93e", + "heartBeat": "86400", + "name": "MEV Capital wETH", + "symbol": "MCwETH", + "decimals": "18", + "initialPrice": "163110510000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/MCwETH@30MAY2025", + "marketSymbol": "WETH/MCwETH@30MAY2025" + }, + "configs_6": { + "salt": 0, + "collateralCapForGt": "678858023394089000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "183668000000" + }, + "collateralConfig": { + "tokenAddr": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "priceFeedAddr": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "backupPriceFeedAddr": "0x5D18F4cB3c95568F315cb1C1eF48261a5A4D6053", + "heartBeat": "86400", + "name": "PT Puffer ETH 26JUN2025", + "symbol": "PT-pufETH-26JUN2025", + "decimals": "18", + "initialPrice": "147306210000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025" + }, + "configs_7": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748476800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "priceFeedAddr": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "backupPriceFeedAddr": "0x6B09d473dB784D840E307Cb3Da63CbA79D300CAc", + "heartBeat": "86400", + "name": "Ethereal Pre-deposit Vault", + "symbol": "eUSDe", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/eUSDe@29MAY2025", + "marketSymbol": "USDC/eUSDe@29MAY2025" + }, + "configs_8": { + "salt": 0, + "collateralCapForGt": "604886995192922000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "165320140000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/pufETH@30MAY2025", + "marketSymbol": "WETH/pufETH@30MAY2025" + }, + "configs_9": { + "salt": 0, + "collateralCapForGt": "1191418262", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "priceFeedAddr": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "backupPriceFeedAddr": "0xAB7f623fb2F6fea6601D4350FA0E2290663C28Fc", + "heartBeat": "86400", + "name": "Wrapped BTC", + "symbol": "WBTC", + "decimals": "8", + "initialPrice": "8393358000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WBTC@30MAY2025", + "marketSymbol": "USDC/WBTC@30MAY2025" + }, + "configs_10": { + "salt": 0, + "collateralCapForGt": "1191418262", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "priceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "backupPriceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400", + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC", + "decimals": "8", + "initialPrice": "8393358000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/cbBTC@30MAY2025", + "marketSymbol": "USDC/cbBTC@30MAY2025" + }, + "configs_11": { + "salt": 0, + "collateralCapForGt": "617578223336119000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "priceFeedAddr": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "backupPriceFeedAddr": "0x3A44454F173b082F1dbbA9587b046Dc90B2F0AE7", + "heartBeat": "86400", + "name": "Gauntlet WETH Prime", + "symbol": "gtWETH", + "decimals": "18", + "initialPrice": "161922810000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/gtWETH@30MAY2025", + "marketSymbol": "WETH/gtWETH@30MAY2025" + }, + "configs_12": { + "salt": 0, + "collateralCapForGt": "1025010250102500000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "96000000", + "maxLtv": "94000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "backupPriceFeedAddr": "0xb99D174ED06c83588Af997c8859F93E83dD4733f", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "115999999" + }, + "collateralConfig": { + "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0x333651c5710Fc8C4fe65E5D15E5639348F267D7c", + "heartBeat": "86400", + "name": "PT Ethena sUSDE 29MAY2025", + "symbol": "PT-sUSDE-29MAY2025", + "decimals": "18", + "initialPrice": "97560000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025", + "marketSymbol": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025" + }, + "configs_13": { + "salt": 0, + "collateralCapForGt": "941442289587648000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x7C1156E515aA1A2E851674120074968C905aAF37", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "Level USD", + "symbol": "lvlUSD", + "decimals": "18", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x4737d9b4592b40d51e110b94c9c043c6654067ae", + "priceFeedAddr": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "backupPriceFeedAddr": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "heartBeat": "86400", + "name": "Staked lvlUSD", + "symbol": "slvlUSD", + "decimals": "18", + "initialPrice": "106220000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "lvlUSD/slvlUSD@30MAY2025", + "marketSymbol": "lvlUSD/slvlUSD@30MAY2025" + }, + "configs_14": { + "salt": 0, + "collateralCapForGt": "1014919313914540000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x9BcA74F805AB0a22DDD0886dB0942199a0feBa71", + "priceFeedAddr": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "backupPriceFeedAddr": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "heartBeat": "86400", + "name": "PT lvlUSD 29MAY2025", + "symbol": "PT-lvlUSD-29MAY2025", + "decimals": "18", + "initialPrice": "98530000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-lvlUSD-29MAY2025@30MAY2025", + "marketSymbol": "USDC/PT-lvlUSD-29MAY2025@30MAY2025" + }, + "configs_15": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D", + "priceFeedAddr": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "backupPriceFeedAddr": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "heartBeat": "86400", + "name": "MEV Capital USDC Prime", + "symbol": "MC_USDCP", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/MC_USDCP@30MAY2025", + "marketSymbol": "USDC/MC_USDCP@30MAY2025" + }, + "configs_16": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e", + "priceFeedAddr": "0x81195F8A79f6553A4078f89eF87b21a7d3C2855A", + "backupPriceFeedAddr": "0x81195F8A79f6553A4078f89eF87b21a7d3C2855A", + "heartBeat": "86400", + "name": "Gauntlet USDC Frontier", + "symbol": "gtusdcf", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/gtusdcf@30MAY2025", + "marketSymbol": "USDC/gtusdcf@30MAY2025" + }, + "configs_17": { + "salt": 0, + "collateralCapForGt": "624356074116256000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0x701907283a57FF77E255C3f1aAD790466B8CE4ef", + "priceFeedAddr": "0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931", + "backupPriceFeedAddr": "0x00B96F0eBf39158cb4E3F801073966bD6Db7959C", + "heartBeat": "86400", + "name": "IndexCoop hyETH", + "symbol": "mhyETH", + "decimals": "18", + "initialPrice": "160165020000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/mhyETH@30MAY2025", + "marketSymbol": "WETH/mhyETH@30MAY2025" + } + } + } \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core-before-change-pendle-swap-adapter.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core-before-change-pendle-swap-adapter.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core-before-change-pendle-swap-adapter.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core-before-change-vault-factory.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core-before-change-vault-factory.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core-before-change-vault-factory.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core.json new file mode 100644 index 0000000..ce54c6c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x4c51a1595a1887932858b2a3C6b34BA6AEeAD899", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-MC_USDCP@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-MC_USDCP@30MAY2025.json new file mode 100644 index 0000000..d1f41c8 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-MC_USDCP@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22286356", + "timestamp": "1744864451" + }, + "market": "0xf4924D6189552ae5A7818088dA6f23Bd33281C1b", + "collateral": { + "address": "0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D", + "symbol": "MC_USDCP", + "priceFeed": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xe7b3c858FF8031DC6c84D899aEeC343c89A246e0", + "xt": "0x2568d2B892b5c761e1155F4f1c05E5b61961f126", + "gt": "0x5C4db8DB0CA1d040e7fD6FB2AfAA81032df0a4f7" + }, + "config": { + "marketSymbol": "USDC/MC_USDCP@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@14APR2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@14APR2025.json new file mode 100644 index 0000000..e3a396b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266244", + "timestamp": "1744621823" + }, + "market": "0x305349b7D1Deba03950D71Ae1C8673cDA1463116", + "collateral": { + "address": "0x9BcA74F805AB0a22DDD0886dB0942199a0feBa71", + "symbol": "PT-lvlUSD-29MAY2025", + "priceFeed": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9a52c9303914B68692380d8bFF20F981BD2fF47B", + "xt": "0x4953dD3c3cADA884Ae07eB91E51aa2FC5EC70E35", + "gt": "0x35Ba6CF0ac6b1a1D9D44ec5A479b2602D12Ad690" + }, + "config": { + "marketSymbol": "USDC/PT-lvlUSD-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..e3757f8 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266137", + "timestamp": "1744620539" + }, + "market": "0x2524D9a55C2D18A3F257A7F67AfD552B285de34E", + "collateral": { + "address": "0x9BcA74F805AB0a22DDD0886dB0942199a0feBa71", + "symbol": "PT-lvlUSD-29MAY2025", + "priceFeed": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3448d6883c7762ed95f59b4A9780b07981b6afee", + "xt": "0xfFD2743Ca5FCDd97b690C33434ef456be9885D20", + "gt": "0x581577E0b27Fc695B21089A08be962Ae3F60aa2f" + }, + "config": { + "marketSymbol": "USDC/PT-lvlUSD-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..8ff5af1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0xe867255dC0c3a27c90f756ECC566a5292ce19492", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x07Ef01ba0947eb64df31A826C8a084Ca005e545d", + "xt": "0xb58036be9723Ba7766161ddb8d4050B3c44dc273", + "gt": "0x3A888cb50b4b1BfCB61507D4a453eF67BA1E4055" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-USUALUSDC+@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-USUALUSDC+@30MAY2025.json new file mode 100644 index 0000000..325c9d2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-USUALUSDC+@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0x352D81f954C37C2defAaD1B43531a1131983043F", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x00996971EFEC45402b0F135468C3dEe00bDAF44f", + "xt": "0xC034b54C49843185c6b328847abaB31eEB12DA27", + "gt": "0x76318548169af6d6df07544E7E75e8cB07b31927" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-WBTC@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..e5dc807 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0xd699EFC4162d76BfD3cB553D65f850c882C29F5F", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0297807b6f251431BC60D96E74DADDAaaCD8533E", + "xt": "0x68f2E8b2B09122475c5208456A39CAF87a097fE4", + "gt": "0xBe53610FD2870BA0f221c40ed734f173685e3666" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-cbBTC@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-cbBTC@30MAY2025.json new file mode 100644 index 0000000..0e979c0 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-cbBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0x03f2Af12aE4eb5533c3f7773BE826e8da56F6E1a", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x970D02242B8339Fc3148643A00e0a1e52c1eb5Eb", + "xt": "0xf1f31F2668ADa8400d91BfC00f9a3c316c538cB3", + "gt": "0x49d06206055e0cbDcbE94257782284B69b4B15Fd" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-eUSDe@29MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-eUSDe@29MAY2025.json new file mode 100644 index 0000000..42ddd1f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-eUSDe@29MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0x403863917316Bf8AA1966F9D90b393Cec98F991b", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7E5dA817e4cD2f2a897c997FB6EB3506d9861432", + "xt": "0x9C4ef4476130f92CEF4b661f99130157d35129CD", + "gt": "0xe09Ad59438A1EA4041217cd1Ee018589DB508268" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "29MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-gtusdcf@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-gtusdcf@30MAY2025.json new file mode 100644 index 0000000..6f270dd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-gtusdcf@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22286356", + "timestamp": "1744864451" + }, + "market": "0x2EaafFbCdE68337341C0eC65A862e648A413dc14", + "collateral": { + "address": "0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e", + "symbol": "gtusdcf", + "priceFeed": "0x81195F8A79f6553A4078f89eF87b21a7d3C2855A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x09ec4BE9869BfAbF9fF6652fe7703276D6F5E5d8", + "xt": "0x9c7fBdd0055604bbf7736B153407e9513C818C22", + "gt": "0x8Ee590224c6cddE0d27FB60B37B05784dD794E59" + }, + "config": { + "marketSymbol": "USDC/gtusdcf@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-sUSDe@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-sUSDe@30MAY2025.json new file mode 100644 index 0000000..6970e59 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-sUSDe@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0x6f5c8838E618448e43385E4C401006822Aa15142", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1be1A3B4A052F669F521F5966a37B49171AEF57C", + "xt": "0x7705d2B0990192c3b3d1ea6C3A7908250605120A", + "gt": "0x1bb662b38EC6ff531DeF9CAa37a3489c7F5e2f98" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-wstETH@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..f2772e1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0xEd7cD45E5e6ef68261929B58539805bA3c061f14", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x94b0b2679bDEe922039D8B0Bb952F5048FF8B87f", + "xt": "0xbD99501360FFe943C60546C422f4885Ea022FcbC", + "gt": "0xEF15C2C9D5213FE471d9d28a8908cd3b007c4539" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-MCwETH@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-MCwETH@30MAY2025.json new file mode 100644 index 0000000..82a207e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-MCwETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0x09722C9CB389f6Ebf5ac9C33eB0067949a3a063a", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x5365f147fCA4298380947edD4919b8814e5eb6ec", + "xt": "0x01792484Eb39399921663Ddd814d241fA69425Fd", + "gt": "0xF601D19D6285741D9Abd6D1E37f32A1533622A29" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-gtWETH@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-gtWETH@30MAY2025.json new file mode 100644 index 0000000..c33fc1f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-gtWETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0xc68a2fbD7cb560c71CcAfbDeE971824Ed9bF4556", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xD31d16770d10fEee37FEc90777697546F5388F85", + "xt": "0xa7DbC90d2959E40EB093Abe75C7405Ff26ac3fE3", + "gt": "0x9BdD5071f150d02Af43A65e56A0622d03E846DdB" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-mhyETH@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-mhyETH@30MAY2025.json new file mode 100644 index 0000000..26c31af --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-mhyETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22286356", + "timestamp": "1744864451" + }, + "market": "0xb9919eE2169a7dA664AD024C6dDCF0ccD4121C26", + "collateral": { + "address": "0x701907283a57FF77E255C3f1aAD790466B8CE4ef", + "symbol": "mhyETH", + "priceFeed": "0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xbC9c191613c6e77c03A3F792579520d455e852a6", + "xt": "0x1aA1fF0D8c47066C72902040716F91Df18090ADc", + "gt": "0x489f04a08d6ee13789cd59c5ce241494b063b3DB" + }, + "config": { + "marketSymbol": "WETH/mhyETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-pufETH@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-pufETH@30MAY2025.json new file mode 100644 index 0000000..0f393f3 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-pufETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0x484CDece3FC951a7D009b9dBAC66EC287eC1f58e", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xc74Af187D844dC35998271B5696053CF57816413", + "xt": "0x1f2f2af9FbBa146CB03B4eAFD8C8aE9ed5B91F60", + "gt": "0x89BCE5e162cdB10ea0d0B84B5E7Aff8F51036E89" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-weETH@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..041745d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0x0B7eFE5DE3c3B5d75de33e25965b193d6Ba79f52", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x409E45a47629F45B91607Bb87bcD8D043f32Bc9a", + "xt": "0x21aD8e3b575b65f2c937b201749a738ec53786E8", + "gt": "0x02DA4fdA501396e036DCB591827e938E25Fe3DD4" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-lvlUSD-slvlUSD@14APR2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-lvlUSD-slvlUSD@14APR2025.json new file mode 100644 index 0000000..02a2d81 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-lvlUSD-slvlUSD@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266244", + "timestamp": "1744621823" + }, + "market": "0x9B6D377027d36146D1C734e02B8808568D002179", + "collateral": { + "address": "0x4737D9b4592B40d51e110b94c9C043c6654067Ae", + "symbol": "slvlUSD", + "priceFeed": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7C1156E515aA1A2E851674120074968C905aAF37", + "symbol": "lvlUSD", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x82Fa71444c041eA40bD565F622a00A6509562544", + "xt": "0xD16353C409d80B7FA4B80F4832aa28F323A0F1bb", + "gt": "0x2EB9Ef9967d108132c289975674AD0D4328C1A8a" + }, + "config": { + "marketSymbol": "lvlUSD/slvlUSD@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-lvlUSD-slvlUSD@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-lvlUSD-slvlUSD@30MAY2025.json new file mode 100644 index 0000000..eacf7ce --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-lvlUSD-slvlUSD@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266137", + "timestamp": "1744620539" + }, + "market": "0xa1ed39C786eea298925DD6FcC33199C3fF06765E", + "collateral": { + "address": "0x4737D9b4592B40d51e110b94c9C043c6654067Ae", + "symbol": "slvlUSD", + "priceFeed": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7C1156E515aA1A2E851674120074968C905aAF37", + "symbol": "lvlUSD", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5623695881DB8cFc84ee1f40a1F4A0999D1552f6", + "xt": "0x453dFD4db1a92Bf8D84b4E4Fa6381019370d0C5d", + "gt": "0xE1e045a8a238994703ec0dD7e4E2aD6f97c5F186" + }, + "config": { + "marketSymbol": "lvlUSD/slvlUSD@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json new file mode 100644 index 0000000..5de0634 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22232653", + "timestamp": "1744217435" + }, + "market": "0xBebB5CEe893110cF477901AF7FA94E4840606421", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5db7A477dEdE7d12feA665312282E052e0207FC1", + "xt": "0xE8a7A6dD9218202996D9cF825426Ab283b3396eD", + "gt": "0x69cf2ACd3499dF9b322d3B3Fb579E1Af420f601d" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@14APR2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@14APR2025.json new file mode 100644 index 0000000..66cee1f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266244", + "timestamp": "1744621823" + }, + "market": "0x7A28a1a4d54F5a74BC87471B9EE4Ba41B07a4cD3", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6CD5968D8703E40bdaD77F40722ead51cF3DFEe6", + "xt": "0x81ac31e4f598f3d0C455aD27C38686B8c1A3256E", + "gt": "0xF147cfD201930840ec8E9424E447dB22f67D6Ef1" + }, + "config": { + "marketSymbol": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..3c4775c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266137", + "timestamp": "1744620539" + }, + "market": "0x37877773B1289c27Bb6159b86613Efd0d15cADaE", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6fbE672e148dB5374a17dcfe78c22a31751b0F5F", + "xt": "0x9b23666F665aA6B280d1f5C3a580EEad7414DcAC", + "gt": "0x4f1B12bFe07534C68ECd6a971d3f6295b423CD09" + }, + "config": { + "marketSymbol": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-wstETH-inwstETHs@30MAY2025.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-wstETH-inwstETHs@30MAY2025.json new file mode 100644 index 0000000..935cebc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-market-wstETH-inwstETHs@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22325579", + "timestamp": "1745337359" + }, + "market": "0x918D8Ecba4C683EF3004b1C313cfEF5e3b9E1146", + "collateral": { + "address": "0x8E0789d39db454DBE9f4a77aCEF6dc7c69f6D552", + "symbol": "inwstETHs", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xC4CE5aA3caBaB5525d838f3095105e68764a4863", + "xt": "0xD54417D73FEdBBFa242E296A9199D401c377A23f", + "gt": "0x79614885F2b286A20a18315A9963e9e7A5eF0824" + }, + "config": { + "marketSymbol": "wstETH/inwstETHs@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-pendle-swap-v3-adapter.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-pendle-swap-v3-adapter.json new file mode 100644 index 0000000..2a27d62 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-pendle-swap-v3-adapter.json @@ -0,0 +1,14 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1744434875", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x1b19b284f4f6a7ffebcb90e1d9af5058a71d0ab5", + "blockInfo": { + "number": "22250716", + "timestamp": "1744434875" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "contracts": { + "pendleSwapV3Adapter": "0x4c51a1595a1887932858b2a3C6b34BA6AEeAD899" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-USDC-PRIME.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-USDC-PRIME.json new file mode 100644 index 0000000..1ca2367 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-USDC-PRIME.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x9ccea93c0ceff6a76f38270be9ea3d3aad9552d7" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22283141", + "timestamp": "1744825595" + }, + "vaultInfo": { + "name": "TermMax USDC Prime", + "symbol": "TMX-USDC-PRIME", + "address": "0x13e361dC94459a01bc4991F9e681033Dc2b0fA5A", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "50000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-wstETH-Vault.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-wstETH-Vault.json new file mode 100644 index 0000000..0fc28cf --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-TMX-wstETH-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x3b6b686d5080fff47dc1aaa51357454b9614490d" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22325729", + "timestamp": "1745339159" + }, + "vaultInfo": { + "name": "TermMax wstETH Vault", + "symbol": "TMX-wstETH-Vault", + "address": "0xDAdeAcC03a59639C0ecE5ec4fF3BC0d9920A47eC", + "asset": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "performanceFeeRate": 0, + "maxCapacity": "25000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-factory.json b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-factory.json new file mode 100644 index 0000000..8f8ecb5 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-20250530/eth-mainnet-vault-factory.json @@ -0,0 +1,14 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1744824947", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x9ccea93c0ceff6a76f38270be9ea3d3aad9552d7", + "blockInfo": { + "number": "22283087", + "timestamp": "1744824947" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "contracts": { + "vaultFactory": "0x4778CBf91d8369843281c8f5a2D7b56d1420dFF5" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy-eth-markets-test-20250411-1500-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy-eth-markets-test-20250411-1500-log.txt new file mode 100644 index 0000000..055d7ca --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy-eth-markets-test-20250411-1500-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xbca66c3c7c82ed859143ed822fee071f5be097df + + ===== Block Info ===== + Block number: 22242879 + Block timestamp: 1744340555 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22242879 + + ===== Market Info - 0 ===== + Market deployed at: 0x56997E6e199A70AEc8AB4db23577E624c089d2f2 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x89BfE4525Ee4c0c64C30CDFB6617dBCee7EaDBaD + XT deployed at: 0x0B17f2Cc037731b7B6Df067E2bDB62A9fd235959 + GT deployed at: 0x0CC0f90739FFc1b6E42b9Cb9C0FC068cc9F82Eb8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@11APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xfbEd00590F747dfCCA69A8034295BD3ac1d94cA4 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x99B073F2aE5c427e265Cb197a56F6C6186bA389c + XT deployed at: 0xc5bca99b3D360f46bc09924C92F8e1032B2D3374 + GT deployed at: 0x859e98297aB9b73995FB55eE644c55661a6bdbD0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@11APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x8A7E21b9D73db83bc28F606dC230BDBa573c1E7B + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD2D76A31EdC312eBef2F9F6dEf759A29160D2cAb + XT deployed at: 0x016dE2309722d31355C501626DdE3696d22854d1 + GT deployed at: 0x1e9E69321Dd8E881206298038EA777791B29C2eA + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@11APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xFf4B82316c054361c21bAb197be39e98f54b7a40 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x023318E476088E693403c9fbB851d69655305802 + XT deployed at: 0xBC490A47ED19feC718c65d40AF4B25dF4d0e2f3f + GT deployed at: 0x52e2F493269Fd8a3DF8282A91928fBf167E39b43 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@11APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x87A7c4C85d203B07C137E52EC93322158Fafc406 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x4a315696D9ebAF5Fd2cCbc290aF9EfcD2266881d + XT deployed at: 0x6F4BBE042f05e53C862C392f7fD9BED7e6cCB1c5 + GT deployed at: 0xE779663041bcd63675990FaDE6BA91E0756DD5bf + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@11APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x35cCd7d1448660a34aa89972d4dcd40544Da98Cb + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x9618A90C4497D883E19a72e7Afc93f2740Fdfc84 + XT deployed at: 0xC717cE996BFa22A11CDd1f95B3843DD3EDa5C755 + GT deployed at: 0x8C641328781268E62992Ac0CeA79907C56f06ad0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@11APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x8479D1b5555D4f0065cb14B9b8c8a81C40d6C704 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x8Ef8b5c727F69F9c13FFa5E788eD0742e9206E47 + XT deployed at: 0x6222B9E51c3Dfa3c6e718b2Bac39cA4Ce1274a90 + GT deployed at: 0xb1c0e92D47eE1c5A52E33AD4a3D955cd7D6cF5B3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@11APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xa52c8526BF27d9186Af3E7dcBF46dE2CbE2ecF6c + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x797d3EAa8Ff67b4862cc920f237dB13fd9FDC2bE + XT deployed at: 0xCb5467766D87644a7F736f375906122bD6Df8fb6 + GT deployed at: 0xF063800D8cB183f61EC05C90AAdD1416d247A7D8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@11APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x174E707467D7A399dFB0f8475ec89F839CF98979 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xb265640d1a426D3e7b2A14ea49a410583ff1cf52 + XT deployed at: 0x62Eb22cDb54aD5FdDBE710457d6F1D8792Af7d0c + GT deployed at: 0xdC9c6B88c68a0FBf75d3f1a788bf576da4Ac10B1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@11APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x80052bE24fF76DeC4B2AAd90F21d726EA1734232 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x05fc0a8d8776B69d35d5737ef0dBac0eE07d1C57 + XT deployed at: 0xcF68e9b1ACC151D3e9977a54260B156eb1132459 + GT deployed at: 0x792c3A8B7d405e2dF35D3fAe0971935ec034F55B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@11APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x66C1C3843E517192EBc587115Ac4c80219cE0D97 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xAB4498B12D847f70DEb45FBeFa8325e7508C369F + XT deployed at: 0x3D4aeA73e92f92ec9e325aF601719155C05672EA + GT deployed at: 0x499cFb6c70D6f6DBB5FBA3248A4B7520C23D8390 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@11APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x39FCb93db01aB37695C51d33aCcb36DBFE4cBac3 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x616F8094c591540df0d635F543A1c4CD60575226 + XT deployed at: 0xaBA04dA83763C10D6A7C66a1B217d7445301Ea92 + GT deployed at: 0xE62880FCF0a02ddF46417E062C5300d4165Db5e3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@11APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.945397614 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.016363312498976688 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x56997e6e199a70aec8ab4db23577e624c089d2f2, 0x89bfe4525ee4c0c64c30cdfb6617dbcee7eadbad, 0x0b17f2cc037731b7b6df067e2bdb62a9fd235959, 0x0cc0f90739ffc1b6e42b9cb9c0fc068cc9f82eb8, 0xfbed00590f747dfcca69a8034295bd3ac1d94ca4, 0x99b073f2ae5c427e265cb197a56f6c6186ba389c, 0xc5bca99b3d360f46bc09924c92f8e1032b2d3374, 0x859e98297ab9b73995fb55ee644c55661a6bdbd0, 0x8a7e21b9d73db83bc28f606dc230bdba573c1e7b, 0xd2d76a31edc312ebef2f9f6def759a29160d2cab, 0x016de2309722d31355c501626dde3696d22854d1, 0x1e9e69321dd8e881206298038ea777791b29c2ea, 0xff4b82316c054361c21bab197be39e98f54b7a40, 0x023318e476088e693403c9fbb851d69655305802, 0xbc490a47ed19fec718c65d40af4b25df4d0e2f3f, 0x52e2f493269fd8a3df8282a91928fbf167e39b43, 0x87a7c4c85d203b07c137e52ec93322158fafc406, 0x4a315696d9ebaf5fd2ccbc290af9efcd2266881d, 0x6f4bbe042f05e53c862c392f7fd9bed7e6ccb1c5, 0xe779663041bcd63675990fade6ba91e0756dd5bf, 0x35ccd7d1448660a34aa89972d4dcd40544da98cb, 0x9618a90c4497d883e19a72e7afc93f2740fdfc84, 0xc717ce996bfa22a11cdd1f95b3843dd3eda5c755, 0x8c641328781268e62992ac0cea79907c56f06ad0, 0x8479d1b5555d4f0065cb14b9b8c8a81c40d6c704, 0x8ef8b5c727f69f9c13ffa5e788ed0742e9206e47, 0x6222b9e51c3dfa3c6e718b2bac39ca4ce1274a90, 0xb1c0e92d47ee1c5a52e33ad4a3d955cd7d6cf5b3, 0xa52c8526bf27d9186af3e7dcbf46de2cbe2ecf6c, 0x797d3eaa8ff67b4862cc920f237db13fd9fdc2be, 0xcb5467766d87644a7f736f375906122bd6df8fb6, 0xf063800d8cb183f61ec05c90aadd1416d247a7d8, 0x174e707467d7a399dfb0f8475ec89f839cf98979, 0xb265640d1a426d3e7b2a14ea49a410583ff1cf52, 0x62eb22cdb54ad5fddbe710457d6f1d8792af7d0c, 0xdc9c6b88c68a0fbf75d3f1a788bf576da4ac10b1, 0x80052be24ff76dec4b2aad90f21d726ea1734232, 0x05fc0a8d8776b69d35d5737ef0dbac0ee07d1c57, 0xcf68e9b1acc151d3e9977a54260b156eb1132459, 0x792c3a8b7d405e2df35d3fae0971935ec034f55b, 0x66c1c3843e517192ebc587115ac4c80219ce0d97, 0xab4498b12d847f70deb45fbefa8325e7508c369f, 0x3d4aea73e92f92ec9e325af601719155c05672ea, 0x499cfb6c70d6f6dbb5fba3248a4b7520c23d8390, 0x39fcb93db01ab37695c51d33accb36dbfe4cbac3, 0x616f8094c591540df0d635f543a1c4cd60575226, 0xaba04da83763c10d6a7c66a1b217d7445301ea92, 0xe62880fcf0a02ddf46417e062c5300d4165db5e3]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@11APR2025.json new file mode 100644 index 0000000..894ebbc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0xFf4B82316c054361c21bAb197be39e98f54b7a40", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x023318E476088E693403c9fbB851d69655305802", + "xt": "0xBC490A47ED19feC718c65d40AF4B25dF4d0e2f3f", + "gt": "0x52e2F493269Fd8a3DF8282A91928fBf167E39b43" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-USUALUSDC+@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-USUALUSDC+@11APR2025.json new file mode 100644 index 0000000..8cfa95a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-USUALUSDC+@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x87A7c4C85d203B07C137E52EC93322158Fafc406", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4a315696D9ebAF5Fd2cCbc290aF9EfcD2266881d", + "xt": "0x6F4BBE042f05e53C862C392f7fD9BED7e6cCB1c5", + "gt": "0xE779663041bcd63675990FaDE6BA91E0756DD5bf" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-WBTC@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-WBTC@11APR2025.json new file mode 100644 index 0000000..c68296a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-WBTC@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x80052bE24fF76DeC4B2AAd90F21d726EA1734232", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x05fc0a8d8776B69d35d5737ef0dBac0eE07d1C57", + "xt": "0xcF68e9b1ACC151D3e9977a54260B156eb1132459", + "gt": "0x792c3A8B7d405e2dF35D3fAe0971935ec034F55B" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-cbBTC@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-cbBTC@11APR2025.json new file mode 100644 index 0000000..f7dbe7b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-cbBTC@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x66C1C3843E517192EBc587115Ac4c80219cE0D97", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xAB4498B12D847f70DEb45FBeFa8325e7508C369F", + "xt": "0x3D4aeA73e92f92ec9e325aF601719155C05672EA", + "gt": "0x499cFb6c70D6f6DBB5FBA3248A4B7520C23D8390" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-eUSDe@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-eUSDe@11APR2025.json new file mode 100644 index 0000000..232173d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-eUSDe@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0xa52c8526BF27d9186Af3E7dcBF46dE2CbE2ecF6c", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x797d3EAa8Ff67b4862cc920f237dB13fd9FDC2bE", + "xt": "0xCb5467766D87644a7F736f375906122bD6Df8fb6", + "gt": "0xF063800D8cB183f61EC05C90AAdD1416d247A7D8" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-sUSDe@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-sUSDe@11APR2025.json new file mode 100644 index 0000000..6fef5d0 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-sUSDe@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x8A7E21b9D73db83bc28F606dC230BDBa573c1E7B", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD2D76A31EdC312eBef2F9F6dEf759A29160D2cAb", + "xt": "0x016dE2309722d31355C501626DdE3696d22854d1", + "gt": "0x1e9E69321Dd8E881206298038EA777791B29C2eA" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-wstETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-wstETH@11APR2025.json new file mode 100644 index 0000000..cb92b37 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-USDC-wstETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0xfbEd00590F747dfCCA69A8034295BD3ac1d94cA4", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x99B073F2aE5c427e265Cb197a56F6C6186bA389c", + "xt": "0xc5bca99b3D360f46bc09924C92F8e1032B2D3374", + "gt": "0x859e98297aB9b73995FB55eE644c55661a6bdbD0" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-MCwETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-MCwETH@11APR2025.json new file mode 100644 index 0000000..af4ee31 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-MCwETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x35cCd7d1448660a34aa89972d4dcd40544Da98Cb", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x9618A90C4497D883E19a72e7Afc93f2740Fdfc84", + "xt": "0xC717cE996BFa22A11CDd1f95B3843DD3EDa5C755", + "gt": "0x8C641328781268E62992Ac0CeA79907C56f06ad0" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-gtWETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-gtWETH@11APR2025.json new file mode 100644 index 0000000..440a531 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-gtWETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x39FCb93db01aB37695C51d33aCcb36DBFE4cBac3", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x616F8094c591540df0d635F543A1c4CD60575226", + "xt": "0xaBA04dA83763C10D6A7C66a1B217d7445301Ea92", + "gt": "0xE62880FCF0a02ddF46417E062C5300d4165Db5e3" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-pufETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-pufETH@11APR2025.json new file mode 100644 index 0000000..aef252e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-pufETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x174E707467D7A399dFB0f8475ec89F839CF98979", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xb265640d1a426D3e7b2A14ea49a410583ff1cf52", + "xt": "0x62Eb22cDb54aD5FdDBE710457d6F1D8792Af7d0c", + "gt": "0xdC9c6B88c68a0FBf75d3f1a788bf576da4Ac10B1" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-weETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-weETH@11APR2025.json new file mode 100644 index 0000000..3f1160f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-WETH-weETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x56997E6e199A70AEc8AB4db23577E624c089d2f2", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x89BfE4525Ee4c0c64C30CDFB6617dBCee7EaDBaD", + "xt": "0x0B17f2Cc037731b7B6Df067E2bDB62A9fd235959", + "gt": "0x0CC0f90739FFc1b6E42b9Cb9C0FC068cc9F82Eb8" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@11APR2025.json new file mode 100644 index 0000000..6b8d563 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242879", + "timestamp": "1744340555" + }, + "market": "0x8479D1b5555D4f0065cb14B9b8c8a81C40d6C704", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8Ef8b5c727F69F9c13FFa5E788eD0742e9206E47", + "xt": "0x6222B9E51c3Dfa3c6e718b2Bac39cA4Ce1274a90", + "gt": "0xb1c0e92D47eE1c5A52E33AD4a3D955cd7D6cF5B3" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-1500/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy-eth-markets-test-20250411-2000-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy-eth-markets-test-20250411-2000-log.txt new file mode 100644 index 0000000..e1d9fd1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy-eth-markets-test-20250411-2000-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xbca66c3c7c82ed859143ed822fee071f5be097df + + ===== Block Info ===== + Block number: 22242960 + Block timestamp: 1744341539 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22242960 + + ===== Market Info - 0 ===== + Market deployed at: 0x7459F5E02aA9b751C71b1af202b7B249C70E0886 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xC7B3c4c7Fd51F47949E5732db2CaE6fB56F16c8E + XT deployed at: 0x72e40Ac9C2e937078BE717c62b2B6D2Df33A2b6C + GT deployed at: 0xE2988a97D4fF062ec3ADAbA0DBE8F9BeeE049F1d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@11APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xCf6e91C22014F80cF9d47026d96481ccfd5F069b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x461f2Da3954F9bbb76594Cd6f054438EFcd4e1B6 + XT deployed at: 0x57322fF9A8387308B96830a37A619960DDA55B54 + GT deployed at: 0x661712C8297949F8444Ada97c5a7D302A14E7A40 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@11APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x1BB62059ebDb5c2f09870D3078c3541E1dE01466 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA9D1a6DE856d650bf842257c8043a25ca12810a0 + XT deployed at: 0x56fB1b6b7B36eCFB2D68d5b6ba2Ea4643e9C9179 + GT deployed at: 0xb07f6Ac43053476a475093f10A9C6F04556d6066 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@11APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xECB4f5a6e8FE7dfe2Fc6Bd5659b7D4F8511320c5 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xC6aC78180B37853FD1C04E616554184766FF70B9 + XT deployed at: 0x6581A9F61C75A4cb43485CBB3A01C0C2Ada7ac2C + GT deployed at: 0x50D61D6171E48777949f235b2ac90bEDc2069bc8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@11APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x3Bd0AFdC947B0Fc98181636590759Cc899b82c28 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA58590Df49d4eF69A39B29763cc2294f608aA417 + XT deployed at: 0xB19eb7596CfD71e359453d40b8f27F24247b31A2 + GT deployed at: 0x7E2Eee9b4C57370d68DB04eFfF50F76EBa70B7Cc + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@11APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x39fcF484849844996C2BdFdBC3424C186115C55A + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xF1383899664116Fa965d744Df7054bf250799248 + XT deployed at: 0x57ceeA893b138cab4e964683C7B9bbf5a5bcb089 + GT deployed at: 0xcE02c85656467D888A938d7480C22593634e29BD + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@11APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xcBB56d3978Be480358938Ac7dE6d92400e37ff6B + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x9d3bD34323Ce8C999Dea6b998F4B6F8b3aF0DDB3 + XT deployed at: 0xf448c05b099FDA6d9B9D2b62524ed6Ca4Cd6C67a + GT deployed at: 0x4a674822E59e8d7d2De36DC9fB4A55cA9f577A4e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@11APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x480a10Af30358bbf8A9Bb8bAe8A310Ac9d2e2d58 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x179Efa7aaCa2Fb1d4a1bE18a1CdAA614A0c16d13 + XT deployed at: 0x3fe1EcAA6d25B754a193ffD59e7d00985D08D93D + GT deployed at: 0x02B0dF8F37239af567E1E141b72a215C16c084f3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@11APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xb0d1787BBcC0AF39AB457e00f16E2f1317FF0287 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x38d24cc0fdCce376FE2d7F20BAC0f7dB7eDb7987 + XT deployed at: 0x22017d37A8aE978E1dBD4b509732c7DbA67b5b29 + GT deployed at: 0xc87fDfd8304d2eaa892baEFF077850A13176bA16 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@11APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0xeead29C4cD1B8E0666eEa2b0207fCCde7cFf92E5 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x7dB5424DA6d89591398783F006D7d784178AbB8F + XT deployed at: 0x8C9C0d8cdA1a7FD6Eec26B7B1167740bdF885047 + GT deployed at: 0x86C7B4c9D290CfC4740926b539FA1354c80Fe5Cc + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@11APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x15FA6a5E3eFbE2F9a0EdC47d3fe4A74C27A687eA + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5f0d3F32e6085B018102ac6645Ae342286a706Af + XT deployed at: 0xF566aa665714151D6fDEe7Be73dE573f87173b58 + GT deployed at: 0x922481086cfac73697db1838f8b84f404DDDbC87 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@11APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x9C3883dd81f171376bDD5D00A7efD9470b8d25AC + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x6384afFD4C8465E6701E248386638931e9027618 + XT deployed at: 0x89eAacB3c02343AA72f9CC95BC63bd8231185093 + GT deployed at: 0xCf21507a39aF04532202C53dC45FB04bB58DB17B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 11APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@11APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.945460868 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.016364407324004256 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x7459f5e02aa9b751c71b1af202b7b249c70e0886, 0xc7b3c4c7fd51f47949e5732db2cae6fb56f16c8e, 0x72e40ac9c2e937078be717c62b2b6d2df33a2b6c, 0xe2988a97d4ff062ec3adaba0dbe8f9beee049f1d, 0xcf6e91c22014f80cf9d47026d96481ccfd5f069b, 0x461f2da3954f9bbb76594cd6f054438efcd4e1b6, 0x57322ff9a8387308b96830a37a619960dda55b54, 0x661712c8297949f8444ada97c5a7d302a14e7a40, 0x1bb62059ebdb5c2f09870d3078c3541e1de01466, 0xa9d1a6de856d650bf842257c8043a25ca12810a0, 0x56fb1b6b7b36ecfb2d68d5b6ba2ea4643e9c9179, 0xb07f6ac43053476a475093f10a9c6f04556d6066, 0xecb4f5a6e8fe7dfe2fc6bd5659b7d4f8511320c5, 0xc6ac78180b37853fd1c04e616554184766ff70b9, 0x6581a9f61c75a4cb43485cbb3a01c0c2ada7ac2c, 0x50d61d6171e48777949f235b2ac90bedc2069bc8, 0x3bd0afdc947b0fc98181636590759cc899b82c28, 0xa58590df49d4ef69a39b29763cc2294f608aa417, 0xb19eb7596cfd71e359453d40b8f27f24247b31a2, 0x7e2eee9b4c57370d68db04efff50f76eba70b7cc, 0x39fcf484849844996c2bdfdbc3424c186115c55a, 0xf1383899664116fa965d744df7054bf250799248, 0x57ceea893b138cab4e964683c7b9bbf5a5bcb089, 0xce02c85656467d888a938d7480c22593634e29bd, 0xcbb56d3978be480358938ac7de6d92400e37ff6b, 0x9d3bd34323ce8c999dea6b998f4b6f8b3af0ddb3, 0xf448c05b099fda6d9b9d2b62524ed6ca4cd6c67a, 0x4a674822e59e8d7d2de36dc9fb4a55ca9f577a4e, 0x480a10af30358bbf8a9bb8bae8a310ac9d2e2d58, 0x179efa7aaca2fb1d4a1be18a1cdaa614a0c16d13, 0x3fe1ecaa6d25b754a193ffd59e7d00985d08d93d, 0x02b0df8f37239af567e1e141b72a215c16c084f3, 0xb0d1787bbcc0af39ab457e00f16e2f1317ff0287, 0x38d24cc0fdcce376fe2d7f20bac0f7db7edb7987, 0x22017d37a8ae978e1dbd4b509732c7dba67b5b29, 0xc87fdfd8304d2eaa892baeff077850a13176ba16, 0xeead29c4cd1b8e0666eea2b0207fccde7cff92e5, 0x7db5424da6d89591398783f006d7d784178abb8f, 0x8c9c0d8cda1a7fd6eec26b7b1167740bdf885047, 0x86c7b4c9d290cfc4740926b539fa1354c80fe5cc, 0x15fa6a5e3efbe2f9a0edc47d3fe4a74c27a687ea, 0x5f0d3f32e6085b018102ac6645ae342286a706af, 0xf566aa665714151d6fdee7be73de573f87173b58, 0x922481086cfac73697db1838f8b84f404dddbc87, 0x9c3883dd81f171376bdd5d00a7efd9470b8d25ac, 0x6384affd4c8465e6701e248386638931e9027618, 0x89eaacb3c02343aa72f9cc95bc63bd8231185093, 0xcf21507a39af04532202c53dc45fb04bb58db17b]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@11APR2025.json new file mode 100644 index 0000000..4a62097 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0xECB4f5a6e8FE7dfe2Fc6Bd5659b7D4F8511320c5", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xC6aC78180B37853FD1C04E616554184766FF70B9", + "xt": "0x6581A9F61C75A4cb43485CBB3A01C0C2Ada7ac2C", + "gt": "0x50D61D6171E48777949f235b2ac90bEDc2069bc8" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-USUALUSDC+@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-USUALUSDC+@11APR2025.json new file mode 100644 index 0000000..4d0db96 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-USUALUSDC+@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0x3Bd0AFdC947B0Fc98181636590759Cc899b82c28", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA58590Df49d4eF69A39B29763cc2294f608aA417", + "xt": "0xB19eb7596CfD71e359453d40b8f27F24247b31A2", + "gt": "0x7E2Eee9b4C57370d68DB04eFfF50F76EBa70B7Cc" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-WBTC@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-WBTC@11APR2025.json new file mode 100644 index 0000000..cb3d010 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-WBTC@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0xeead29C4cD1B8E0666eEa2b0207fCCde7cFf92E5", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7dB5424DA6d89591398783F006D7d784178AbB8F", + "xt": "0x8C9C0d8cdA1a7FD6Eec26B7B1167740bdF885047", + "gt": "0x86C7B4c9D290CfC4740926b539FA1354c80Fe5Cc" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-cbBTC@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-cbBTC@11APR2025.json new file mode 100644 index 0000000..63bb54b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-cbBTC@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0x15FA6a5E3eFbE2F9a0EdC47d3fe4A74C27A687eA", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5f0d3F32e6085B018102ac6645Ae342286a706Af", + "xt": "0xF566aa665714151D6fDEe7Be73dE573f87173b58", + "gt": "0x922481086cfac73697db1838f8b84f404DDDbC87" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-eUSDe@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-eUSDe@11APR2025.json new file mode 100644 index 0000000..9e9ffbe --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-eUSDe@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0x480a10Af30358bbf8A9Bb8bAe8A310Ac9d2e2d58", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x179Efa7aaCa2Fb1d4a1bE18a1CdAA614A0c16d13", + "xt": "0x3fe1EcAA6d25B754a193ffD59e7d00985D08D93D", + "gt": "0x02B0dF8F37239af567E1E141b72a215C16c084f3" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-sUSDe@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-sUSDe@11APR2025.json new file mode 100644 index 0000000..eff1577 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-sUSDe@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0x1BB62059ebDb5c2f09870D3078c3541E1dE01466", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA9D1a6DE856d650bf842257c8043a25ca12810a0", + "xt": "0x56fB1b6b7B36eCFB2D68d5b6ba2Ea4643e9C9179", + "gt": "0xb07f6Ac43053476a475093f10A9C6F04556d6066" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-wstETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-wstETH@11APR2025.json new file mode 100644 index 0000000..edbfff5 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-USDC-wstETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0xCf6e91C22014F80cF9d47026d96481ccfd5F069b", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x461f2Da3954F9bbb76594Cd6f054438EFcd4e1B6", + "xt": "0x57322fF9A8387308B96830a37A619960DDA55B54", + "gt": "0x661712C8297949F8444Ada97c5a7D302A14E7A40" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-MCwETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-MCwETH@11APR2025.json new file mode 100644 index 0000000..50e30ff --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-MCwETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0x39fcF484849844996C2BdFdBC3424C186115C55A", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xF1383899664116Fa965d744Df7054bf250799248", + "xt": "0x57ceeA893b138cab4e964683C7B9bbf5a5bcb089", + "gt": "0xcE02c85656467D888A938d7480C22593634e29BD" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-gtWETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-gtWETH@11APR2025.json new file mode 100644 index 0000000..30cb094 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-gtWETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0x9C3883dd81f171376bDD5D00A7efD9470b8d25AC", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x6384afFD4C8465E6701E248386638931e9027618", + "xt": "0x89eAacB3c02343AA72f9CC95BC63bd8231185093", + "gt": "0xCf21507a39aF04532202C53dC45FB04bB58DB17B" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-pufETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-pufETH@11APR2025.json new file mode 100644 index 0000000..17a5655 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-pufETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0xb0d1787BBcC0AF39AB457e00f16E2f1317FF0287", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x38d24cc0fdCce376FE2d7F20BAC0f7dB7eDb7987", + "xt": "0x22017d37A8aE978E1dBD4b509732c7DbA67b5b29", + "gt": "0xc87fDfd8304d2eaa892baEFF077850A13176bA16" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-weETH@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-weETH@11APR2025.json new file mode 100644 index 0000000..8b78184 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-WETH-weETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0x7459F5E02aA9b751C71b1af202b7B249C70E0886", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xC7B3c4c7Fd51F47949E5732db2CaE6fB56F16c8E", + "xt": "0x72e40Ac9C2e937078BE717c62b2B6D2Df33A2b6C", + "gt": "0xE2988a97D4fF062ec3ADAbA0DBE8F9BeeE049F1d" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@11APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@11APR2025.json new file mode 100644 index 0000000..cd92885 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22242960", + "timestamp": "1744341539" + }, + "market": "0xcBB56d3978Be480358938Ac7dE6d92400e37ff6B", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9d3bD34323Ce8C999Dea6b998F4B6F8b3aF0DDB3", + "xt": "0xf448c05b099FDA6d9B9D2b62524ed6Ca4Cd6C67a", + "gt": "0x4a674822E59e8d7d2De36DC9fB4A55cA9f577A4e" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250411-2000/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy-eth-markets-test-20250412-1500-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy-eth-markets-test-20250412-1500-log.txt new file mode 100644 index 0000000..fd3815e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy-eth-markets-test-20250412-1500-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xbca66c3c7c82ed859143ed822fee071f5be097df + + ===== Block Info ===== + Block number: 22243104 + Block timestamp: 1744343279 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22243104 + + ===== Market Info - 0 ===== + Market deployed at: 0xEe334D273ACbA047D53E3b99e8B1Ff825B17BC63 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xff3ABE4a024246d4253CeBf989a52a11C706F5C8 + XT deployed at: 0x3eD770710cbd1D7935a09486413BEf8F4Adc439d + GT deployed at: 0xA2dCEb6F5Cb1fA7e2886688c523b785f7090b9fA + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@12APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x08A7909436a3aa171a49A1ab4F81cAb10fBd8F74 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xCFDb7768202AD455Ac8650E20cB85aA22EEC7FFb + XT deployed at: 0x76B4f3a642916e7c69117Fe01B91d98E107a26A3 + GT deployed at: 0x4823DA259ae433bD2d38827Da07B8273285A5Aa3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@12APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xC7423B364321A570CC88081AE52c53F461653E9f + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x23944658b8648738cBE587eea8aB8c808117bbe0 + XT deployed at: 0x9932bF095Bb863E42C748A7BA0E36A59676cF34C + GT deployed at: 0x3910f5F1fA92B7A0f4a2eF3ec3a7043F5a73a66B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@12APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x613edfBa1B7e42509d5Ed03C609332cA26489B25 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xFBa6228712E44a3dc5BfFA024aF053733F272deC + XT deployed at: 0x2E7627052A4b59bF95925aA5a63b8cD9B6682Cdb + GT deployed at: 0x7A58a019f945Bb3C0e8e796F11baa5b323cF1c86 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@12APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x3e8e1D4f920875fe17B51885d364A5b0E3F30D9f + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xEaceB75C60e2E2Bd43C1047420128069A466238c + XT deployed at: 0xe132C634E064b108afBE8501B5ceEc7b58A956ea + GT deployed at: 0xDA816e80e99e5F11695Ee905083Fc7a6519296a2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@12APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xA153C910FA9C31A26626EFd0ef2055F688bAF391 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x55E7cD260bD7991047d221556B8e9bDEDe7784eC + XT deployed at: 0xD930622B63FA8136467F883b8FA06bf9Ce386eb7 + GT deployed at: 0xEc82CEe8Ce6a8103290062B6B0430Bb2b4F7886B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@12APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x8a4253b8884a990ee5b0B9B8e21aD00B913DdcAD + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x21e34C7CBf8CdA0d4F3677Db358d5B6b1a44C3C4 + XT deployed at: 0xc0072b17D740dac4e98E6cb7746D520b80dABa32 + GT deployed at: 0xAc6E6400BA555effCB380F89dd60eDabf02BA944 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@12APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x1920F2a997984596b966E6ff3A5379fA4795CD0b + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x993E69a147afE51269BDC90b456370600799AFDC + XT deployed at: 0x882cb586Eeb4EB557FA2BD3A389aCA3cD82FEe92 + GT deployed at: 0x70e1fB6F88606Df1537236fE31a60542Dc188AdE + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@12APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xE09B216DE2c223243adDCf887488d904d4F84aBF + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x83a8E15258fa69b346042940E5a335BA6b03ab30 + XT deployed at: 0xB3473464E022F81656A52b79f5d6C6495613484d + GT deployed at: 0x17ff5EB311Eb4507cD594D648f8131cA2619c0b6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@12APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x9f4Ee159d7d38fA9b5f6A3c5D448D898180E8789 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD71b68c0a0E8d97F32dDd671941F5eb9D2835cF8 + XT deployed at: 0xF9D87d221bCFe91Bb43fF8bff97C08Bb16d1AF8e + GT deployed at: 0x49E8822196afEC087914348B9ad901E99E067086 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@12APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x820E2CAE027dD3C55B444146BE737d698C81d791 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x6dc0947843c42df4A2f39A7a32591EE3D27a11eC + XT deployed at: 0x4C8e43681582aCe73087e944c7Fc72b91987cF76 + GT deployed at: 0xf292D6B9023D9E643EFddF07Bb57E9d997704BbB + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@12APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x60bf77fB6775cD6C3BC2caf61Aa6d61c820ac4c4 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xFa8aF4bbE413F0819B8d14aeF565F17b115Db97e + XT deployed at: 0xdF7e0b628DEB1c26162e6787ced0f882ED705397 + GT deployed at: 0xA63010405020939D1c5653C3Ff211653b806d3B3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@12APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.892029377 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.015439594132631784 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xee334d273acba047d53e3b99e8b1ff825b17bc63, 0xff3abe4a024246d4253cebf989a52a11c706f5c8, 0x3ed770710cbd1d7935a09486413bef8f4adc439d, 0xa2dceb6f5cb1fa7e2886688c523b785f7090b9fa, 0x08a7909436a3aa171a49a1ab4f81cab10fbd8f74, 0xcfdb7768202ad455ac8650e20cb85aa22eec7ffb, 0x76b4f3a642916e7c69117fe01b91d98e107a26a3, 0x4823da259ae433bd2d38827da07b8273285a5aa3, 0xc7423b364321a570cc88081ae52c53f461653e9f, 0x23944658b8648738cbe587eea8ab8c808117bbe0, 0x9932bf095bb863e42c748a7ba0e36a59676cf34c, 0x3910f5f1fa92b7a0f4a2ef3ec3a7043f5a73a66b, 0x613edfba1b7e42509d5ed03c609332ca26489b25, 0xfba6228712e44a3dc5bffa024af053733f272dec, 0x2e7627052a4b59bf95925aa5a63b8cd9b6682cdb, 0x7a58a019f945bb3c0e8e796f11baa5b323cf1c86, 0x3e8e1d4f920875fe17b51885d364a5b0e3f30d9f, 0xeaceb75c60e2e2bd43c1047420128069a466238c, 0xe132c634e064b108afbe8501b5ceec7b58a956ea, 0xda816e80e99e5f11695ee905083fc7a6519296a2, 0xa153c910fa9c31a26626efd0ef2055f688baf391, 0x55e7cd260bd7991047d221556b8e9bdede7784ec, 0xd930622b63fa8136467f883b8fa06bf9ce386eb7, 0xec82cee8ce6a8103290062b6b0430bb2b4f7886b, 0x8a4253b8884a990ee5b0b9b8e21ad00b913ddcad, 0x21e34c7cbf8cda0d4f3677db358d5b6b1a44c3c4, 0xc0072b17d740dac4e98e6cb7746d520b80daba32, 0xac6e6400ba555effcb380f89dd60edabf02ba944, 0x1920f2a997984596b966e6ff3a5379fa4795cd0b, 0x993e69a147afe51269bdc90b456370600799afdc, 0x882cb586eeb4eb557fa2bd3a389aca3cd82fee92, 0x70e1fb6f88606df1537236fe31a60542dc188ade, 0xe09b216de2c223243addcf887488d904d4f84abf, 0x83a8e15258fa69b346042940e5a335ba6b03ab30, 0xb3473464e022f81656a52b79f5d6c6495613484d, 0x17ff5eb311eb4507cd594d648f8131ca2619c0b6, 0x9f4ee159d7d38fa9b5f6a3c5d448d898180e8789, 0xd71b68c0a0e8d97f32ddd671941f5eb9d2835cf8, 0xf9d87d221bcfe91bb43ff8bff97c08bb16d1af8e, 0x49e8822196afec087914348b9ad901e99e067086, 0x820e2cae027dd3c55b444146be737d698c81d791, 0x6dc0947843c42df4a2f39a7a32591ee3d27a11ec, 0x4c8e43681582ace73087e944c7fc72b91987cf76, 0xf292d6b9023d9e643efddf07bb57e9d997704bbb, 0x60bf77fb6775cd6c3bc2caf61aa6d61c820ac4c4, 0xfa8af4bbe413f0819b8d14aef565f17b115db97e, 0xdf7e0b628deb1c26162e6787ced0f882ed705397, 0xa63010405020939d1c5653c3ff211653b806d3b3]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@12APR2025.json new file mode 100644 index 0000000..e71cdbb --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0x613edfBa1B7e42509d5Ed03C609332cA26489B25", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFBa6228712E44a3dc5BfFA024aF053733F272deC", + "xt": "0x2E7627052A4b59bF95925aA5a63b8cD9B6682Cdb", + "gt": "0x7A58a019f945Bb3C0e8e796F11baa5b323cF1c86" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-USUALUSDC+@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-USUALUSDC+@12APR2025.json new file mode 100644 index 0000000..0f591f5 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-USUALUSDC+@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0x3e8e1D4f920875fe17B51885d364A5b0E3F30D9f", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xEaceB75C60e2E2Bd43C1047420128069A466238c", + "xt": "0xe132C634E064b108afBE8501B5ceEc7b58A956ea", + "gt": "0xDA816e80e99e5F11695Ee905083Fc7a6519296a2" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-WBTC@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-WBTC@12APR2025.json new file mode 100644 index 0000000..59076ad --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-WBTC@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0x9f4Ee159d7d38fA9b5f6A3c5D448D898180E8789", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD71b68c0a0E8d97F32dDd671941F5eb9D2835cF8", + "xt": "0xF9D87d221bCFe91Bb43fF8bff97C08Bb16d1AF8e", + "gt": "0x49E8822196afEC087914348B9ad901E99E067086" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-cbBTC@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-cbBTC@12APR2025.json new file mode 100644 index 0000000..6cb82ae --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-cbBTC@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0x820E2CAE027dD3C55B444146BE737d698C81d791", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6dc0947843c42df4A2f39A7a32591EE3D27a11eC", + "xt": "0x4C8e43681582aCe73087e944c7Fc72b91987cF76", + "gt": "0xf292D6B9023D9E643EFddF07Bb57E9d997704BbB" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-eUSDe@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-eUSDe@12APR2025.json new file mode 100644 index 0000000..43ce099 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-eUSDe@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0x1920F2a997984596b966E6ff3A5379fA4795CD0b", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x993E69a147afE51269BDC90b456370600799AFDC", + "xt": "0x882cb586Eeb4EB557FA2BD3A389aCA3cD82FEe92", + "gt": "0x70e1fB6F88606Df1537236fE31a60542Dc188AdE" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-sUSDe@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-sUSDe@12APR2025.json new file mode 100644 index 0000000..05e536b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-sUSDe@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0xC7423B364321A570CC88081AE52c53F461653E9f", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x23944658b8648738cBE587eea8aB8c808117bbe0", + "xt": "0x9932bF095Bb863E42C748A7BA0E36A59676cF34C", + "gt": "0x3910f5F1fA92B7A0f4a2eF3ec3a7043F5a73a66B" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-wstETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-wstETH@12APR2025.json new file mode 100644 index 0000000..0ba8992 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-USDC-wstETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0x08A7909436a3aa171a49A1ab4F81cAb10fBd8F74", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xCFDb7768202AD455Ac8650E20cB85aA22EEC7FFb", + "xt": "0x76B4f3a642916e7c69117Fe01B91d98E107a26A3", + "gt": "0x4823DA259ae433bD2d38827Da07B8273285A5Aa3" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-MCwETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-MCwETH@12APR2025.json new file mode 100644 index 0000000..ec27231 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-MCwETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0xA153C910FA9C31A26626EFd0ef2055F688bAF391", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x55E7cD260bD7991047d221556B8e9bDEDe7784eC", + "xt": "0xD930622B63FA8136467F883b8FA06bf9Ce386eb7", + "gt": "0xEc82CEe8Ce6a8103290062B6B0430Bb2b4F7886B" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-gtWETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-gtWETH@12APR2025.json new file mode 100644 index 0000000..177ad61 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-gtWETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0x60bf77fB6775cD6C3BC2caf61Aa6d61c820ac4c4", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xFa8aF4bbE413F0819B8d14aeF565F17b115Db97e", + "xt": "0xdF7e0b628DEB1c26162e6787ced0f882ED705397", + "gt": "0xA63010405020939D1c5653C3Ff211653b806d3B3" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-pufETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-pufETH@12APR2025.json new file mode 100644 index 0000000..781273c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-pufETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0xE09B216DE2c223243adDCf887488d904d4F84aBF", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x83a8E15258fa69b346042940E5a335BA6b03ab30", + "xt": "0xB3473464E022F81656A52b79f5d6C6495613484d", + "gt": "0x17ff5EB311Eb4507cD594D648f8131cA2619c0b6" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-weETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-weETH@12APR2025.json new file mode 100644 index 0000000..182e487 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-WETH-weETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0xEe334D273ACbA047D53E3b99e8B1Ff825B17BC63", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xff3ABE4a024246d4253CeBf989a52a11C706F5C8", + "xt": "0x3eD770710cbd1D7935a09486413BEf8F4Adc439d", + "gt": "0xA2dCEb6F5Cb1fA7e2886688c523b785f7090b9fA" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@12APR2025.json new file mode 100644 index 0000000..d447a3f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243104", + "timestamp": "1744343279" + }, + "market": "0x8a4253b8884a990ee5b0B9B8e21aD00B913DdcAD", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x21e34C7CBf8CdA0d4F3677Db358d5B6b1a44C3C4", + "xt": "0xc0072b17D740dac4e98E6cb7746D520b80dABa32", + "gt": "0xAc6E6400BA555effCB380F89dd60eDabf02BA944" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-1500/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy-eth-markets-test-20250412-2000-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy-eth-markets-test-20250412-2000-log.txt new file mode 100644 index 0000000..42bb694 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy-eth-markets-test-20250412-2000-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xbca66c3c7c82ed859143ed822fee071f5be097df + + ===== Block Info ===== + Block number: 22243149 + Block timestamp: 1744343819 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22243149 + + ===== Market Info - 0 ===== + Market deployed at: 0x206B965b0201C9db8cbF360801A822E56FCd7DBd + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x1a32fa2B60fb913e14a4Dd71eE9a2B5B3CaA330c + XT deployed at: 0x1B890F505442b7dDFbEa43C3fe1f18fD73Ce64ca + GT deployed at: 0xEeFDcF4dD432E57D33b77CEaB6A398C00018Bf34 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@12APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xd264fD9ED7094B2aA52a43D939B90F645FAf3269 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0FeadBc171bc18d6e9933d91D29d5567506C777D + XT deployed at: 0x496fF4f33f202c990a210560D5d88EdE70295D3C + GT deployed at: 0xc89d1a74b072Ed2053EbDf3066202e0E2D74aAFA + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@12APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x36b473202bFB68bE0C40d4497679050554fC2f51 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xd3722A7b5d8e639FF194682075329E9aeC4feA25 + XT deployed at: 0xDcEb3ab4E74872787cD0db3c9aFaAb82342ca6F7 + GT deployed at: 0x1A997891D2d8ff180C00f0A0b2Df3F039bb1809d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@12APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x22F537697aD1f9aC2F39088ab93eA8065F2c5356 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xCB655D961B4e45BC0291d9C670AeCEbBdB6dFAdd + XT deployed at: 0x84e19bfAfd150F18Ae837ecFD94732a7d4D1dBd1 + GT deployed at: 0xF76a0d8f59a150b72D5A424b1bAC8148376263A2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@12APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xBC3fd25F73b978713d4E3C022c9e7D01d0892F50 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0dBB260439216921fae35Cd67dF242ceec97c49c + XT deployed at: 0x51eb734ACBd2228b50865766618f34e2191bB12E + GT deployed at: 0x12D869A3dF8F9A3b34a3f6C0A4F103514218fb03 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@12APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x163a6068FCcbE407CbbF640C40374a08f67DDb61 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x94afEf173240ae59d815eC3A0a52b10d2B7DB082 + XT deployed at: 0x0E5f7DC2198d67A604c1dee32acA4c6ED3eF20a9 + GT deployed at: 0x336DF173ef7e32b5A974D2698640A590c42F1450 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@12APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x4CF733d2BC4a56Bd0b16bfA32537Cc6BE2c3D4AF + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xeE5Ec32Ab26037E51c1D539533bc6B4F261EA57C + XT deployed at: 0x96635e1Ef5F9ECe88b77883C892EFef72779D0b1 + GT deployed at: 0x956caE1907F5Fefe2C46dbF06Ab80a9B3748b5f9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@12APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xd53684d38a5B199A149CA39AFc48305669a0962f + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x7566577F31751E0370B63bdDe1955F254fc87e25 + XT deployed at: 0xc386d5D3046fe8B6CEE581f25D1b9787a5F66206 + GT deployed at: 0x681Cfb9159a59407E18362A4fb798040788c1c74 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@12APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xA461955e9ccBE5f7F76019BfbBE171FeF2E2E65a + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xE6e92DD4a8bcB99F2F2d7948eAb833132718D352 + XT deployed at: 0xa189c5194c97AbEFAB262C4047308C9009d347Ad + GT deployed at: 0x2f2b74Fbe6b68c348F8cdF0C116036F31EbFA13c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@12APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x6759B1180929d206ac12799618c1CCA45ADF8db8 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x41BE708b3D3a703e5ec77902aCCD02eb08623E5d + XT deployed at: 0x272f39b3170625E5e375749c3fE2ae61c6E615C7 + GT deployed at: 0x2bbe92918e372568b675a1D4477e4b264702a48A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@12APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0xbDbB23aE4cfF68188d2c092253775CbBf19aA24C + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1019D260A295Ca4d57e06276F6F0e8D5Efa87a6a + XT deployed at: 0x85a195400f0088e283e226348934Bc88b2fb9F15 + GT deployed at: 0x0abCc3841C7f33C1ff2d8f339cAd4BD56B17C7F2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@12APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x87BBB0E5CC1b923269e922C70b4027D5E5116D41 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x9d74ED435C6fCc77722A7C46888d31B8792d2d80 + XT deployed at: 0x3DD6A7b04e03b01D3AB359218B26acCFBd1F29c4 + GT deployed at: 0x9432Bf8a0a8D81c5902FB7b6a294c3B31Cc5c061 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 12APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@12APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.738585046 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.012783719501506032 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x206b965b0201c9db8cbf360801a822e56fcd7dbd, 0x1a32fa2b60fb913e14a4dd71ee9a2b5b3caa330c, 0x1b890f505442b7ddfbea43c3fe1f18fd73ce64ca, 0xeefdcf4dd432e57d33b77ceab6a398c00018bf34, 0xd264fd9ed7094b2aa52a43d939b90f645faf3269, 0x0feadbc171bc18d6e9933d91d29d5567506c777d, 0x496ff4f33f202c990a210560d5d88ede70295d3c, 0xc89d1a74b072ed2053ebdf3066202e0e2d74aafa, 0x36b473202bfb68be0c40d4497679050554fc2f51, 0xd3722a7b5d8e639ff194682075329e9aec4fea25, 0xdceb3ab4e74872787cd0db3c9afaab82342ca6f7, 0x1a997891d2d8ff180c00f0a0b2df3f039bb1809d, 0x22f537697ad1f9ac2f39088ab93ea8065f2c5356, 0xcb655d961b4e45bc0291d9c670aecebbdb6dfadd, 0x84e19bfafd150f18ae837ecfd94732a7d4d1dbd1, 0xf76a0d8f59a150b72d5a424b1bac8148376263a2, 0xbc3fd25f73b978713d4e3c022c9e7d01d0892f50, 0x0dbb260439216921fae35cd67df242ceec97c49c, 0x51eb734acbd2228b50865766618f34e2191bb12e, 0x12d869a3df8f9a3b34a3f6c0a4f103514218fb03, 0x163a6068fccbe407cbbf640c40374a08f67ddb61, 0x94afef173240ae59d815ec3a0a52b10d2b7db082, 0x0e5f7dc2198d67a604c1dee32aca4c6ed3ef20a9, 0x336df173ef7e32b5a974d2698640a590c42f1450, 0x4cf733d2bc4a56bd0b16bfa32537cc6be2c3d4af, 0xee5ec32ab26037e51c1d539533bc6b4f261ea57c, 0x96635e1ef5f9ece88b77883c892efef72779d0b1, 0x956cae1907f5fefe2c46dbf06ab80a9b3748b5f9, 0xd53684d38a5b199a149ca39afc48305669a0962f, 0x7566577f31751e0370b63bdde1955f254fc87e25, 0xc386d5d3046fe8b6cee581f25d1b9787a5f66206, 0x681cfb9159a59407e18362a4fb798040788c1c74, 0xa461955e9ccbe5f7f76019bfbbe171fef2e2e65a, 0xe6e92dd4a8bcb99f2f2d7948eab833132718d352, 0xa189c5194c97abefab262c4047308c9009d347ad, 0x2f2b74fbe6b68c348f8cdf0c116036f31ebfa13c, 0x6759b1180929d206ac12799618c1cca45adf8db8, 0x41be708b3d3a703e5ec77902accd02eb08623e5d, 0x272f39b3170625e5e375749c3fe2ae61c6e615c7, 0x2bbe92918e372568b675a1d4477e4b264702a48a, 0xbdbb23ae4cff68188d2c092253775cbbf19aa24c, 0x1019d260a295ca4d57e06276f6f0e8d5efa87a6a, 0x85a195400f0088e283e226348934bc88b2fb9f15, 0x0abcc3841c7f33c1ff2d8f339cad4bd56b17c7f2, 0x87bbb0e5cc1b923269e922c70b4027d5e5116d41, 0x9d74ed435c6fcc77722a7c46888d31b8792d2d80, 0x3dd6a7b04e03b01d3ab359218b26accfbd1f29c4, 0x9432bf8a0a8d81c5902fb7b6a294c3b31cc5c061]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@12APR2025.json new file mode 100644 index 0000000..ec501e6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0x22F537697aD1f9aC2F39088ab93eA8065F2c5356", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xCB655D961B4e45BC0291d9C670AeCEbBdB6dFAdd", + "xt": "0x84e19bfAfd150F18Ae837ecFD94732a7d4D1dBd1", + "gt": "0xF76a0d8f59a150b72D5A424b1bAC8148376263A2" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-USUALUSDC+@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-USUALUSDC+@12APR2025.json new file mode 100644 index 0000000..485de46 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-USUALUSDC+@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0xBC3fd25F73b978713d4E3C022c9e7D01d0892F50", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0dBB260439216921fae35Cd67dF242ceec97c49c", + "xt": "0x51eb734ACBd2228b50865766618f34e2191bB12E", + "gt": "0x12D869A3dF8F9A3b34a3f6C0A4F103514218fb03" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-WBTC@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-WBTC@12APR2025.json new file mode 100644 index 0000000..d6c4cec --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-WBTC@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0x6759B1180929d206ac12799618c1CCA45ADF8db8", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x41BE708b3D3a703e5ec77902aCCD02eb08623E5d", + "xt": "0x272f39b3170625E5e375749c3fE2ae61c6E615C7", + "gt": "0x2bbe92918e372568b675a1D4477e4b264702a48A" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-cbBTC@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-cbBTC@12APR2025.json new file mode 100644 index 0000000..bfe6f95 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-cbBTC@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0xbDbB23aE4cfF68188d2c092253775CbBf19aA24C", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1019D260A295Ca4d57e06276F6F0e8D5Efa87a6a", + "xt": "0x85a195400f0088e283e226348934Bc88b2fb9F15", + "gt": "0x0abCc3841C7f33C1ff2d8f339cAd4BD56B17C7F2" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-eUSDe@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-eUSDe@12APR2025.json new file mode 100644 index 0000000..16715ed --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-eUSDe@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0xd53684d38a5B199A149CA39AFc48305669a0962f", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7566577F31751E0370B63bdDe1955F254fc87e25", + "xt": "0xc386d5D3046fe8B6CEE581f25D1b9787a5F66206", + "gt": "0x681Cfb9159a59407E18362A4fb798040788c1c74" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-sUSDe@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-sUSDe@12APR2025.json new file mode 100644 index 0000000..69aa055 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-sUSDe@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0x36b473202bFB68bE0C40d4497679050554fC2f51", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xd3722A7b5d8e639FF194682075329E9aeC4feA25", + "xt": "0xDcEb3ab4E74872787cD0db3c9aFaAb82342ca6F7", + "gt": "0x1A997891D2d8ff180C00f0A0b2Df3F039bb1809d" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-wstETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-wstETH@12APR2025.json new file mode 100644 index 0000000..81e9370 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-USDC-wstETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0xd264fD9ED7094B2aA52a43D939B90F645FAf3269", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0FeadBc171bc18d6e9933d91D29d5567506C777D", + "xt": "0x496fF4f33f202c990a210560D5d88EdE70295D3C", + "gt": "0xc89d1a74b072Ed2053EbDf3066202e0E2D74aAFA" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-MCwETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-MCwETH@12APR2025.json new file mode 100644 index 0000000..b008791 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-MCwETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0x163a6068FCcbE407CbbF640C40374a08f67DDb61", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x94afEf173240ae59d815eC3A0a52b10d2B7DB082", + "xt": "0x0E5f7DC2198d67A604c1dee32acA4c6ED3eF20a9", + "gt": "0x336DF173ef7e32b5A974D2698640A590c42F1450" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-gtWETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-gtWETH@12APR2025.json new file mode 100644 index 0000000..4ef2f27 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-gtWETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0x87BBB0E5CC1b923269e922C70b4027D5E5116D41", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x9d74ED435C6fCc77722A7C46888d31B8792d2d80", + "xt": "0x3DD6A7b04e03b01D3AB359218B26acCFBd1F29c4", + "gt": "0x9432Bf8a0a8D81c5902FB7b6a294c3B31Cc5c061" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-pufETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-pufETH@12APR2025.json new file mode 100644 index 0000000..550f035 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-pufETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0xA461955e9ccBE5f7F76019BfbBE171FeF2E2E65a", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xE6e92DD4a8bcB99F2F2d7948eAb833132718D352", + "xt": "0xa189c5194c97AbEFAB262C4047308C9009d347Ad", + "gt": "0x2f2b74Fbe6b68c348F8cdF0C116036F31EbFA13c" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-weETH@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-weETH@12APR2025.json new file mode 100644 index 0000000..e49793f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-WETH-weETH@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0x206B965b0201C9db8cbF360801A822E56FCd7DBd", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x1a32fa2B60fb913e14a4Dd71eE9a2B5B3CaA330c", + "xt": "0x1B890F505442b7dDFbEa43C3fe1f18fD73Ce64ca", + "gt": "0xEeFDcF4dD432E57D33b77CEaB6A398C00018Bf34" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@12APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@12APR2025.json new file mode 100644 index 0000000..2f409fd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@12APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243149", + "timestamp": "1744343819" + }, + "market": "0x4CF733d2BC4a56Bd0b16bfA32537Cc6BE2c3D4AF", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xeE5Ec32Ab26037E51c1D539533bc6B4F261EA57C", + "xt": "0x96635e1Ef5F9ECe88b77883C892EFef72779D0b1", + "gt": "0x956caE1907F5Fefe2C46dbF06Ab80a9B3748b5f9" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "12APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250412-2000/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy-eth-markets-test-20250413-1500-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy-eth-markets-test-20250413-1500-log.txt new file mode 100644 index 0000000..ed0fac4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy-eth-markets-test-20250413-1500-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xbca66c3c7c82ed859143ed822fee071f5be097df + + ===== Block Info ===== + Block number: 22243196 + Block timestamp: 1744344383 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22243196 + + ===== Market Info - 0 ===== + Market deployed at: 0x177D9c755C474e19bc35cf42E57E2a857C6ae166 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xfF3FFb56FB65a65e41e9DA5ddc8b5C1805d37A14 + XT deployed at: 0x505C69BEaFeC61B32269621d16fEe3e3D6CA4A66 + GT deployed at: 0xC431dB076237A542d11e9dBE76623d4232D37BBF + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@13APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x91c83bc9BBCB5AA22121e0F7Fb5C9E56c80A2E4D + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x514436CC23f153f07e2bF38c96fF7ffA3ce9Da26 + XT deployed at: 0x911a0f5c1DC90e000CC2219C28EC24bE11c9bc2B + GT deployed at: 0xe2fB0AC0e75e93E82D9432Ea5EB7DF5b9870833D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@13APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xbA17d51cC68317A17EdE461D3a6e5545067AbF92 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xfF49D0377B2Fbd015C33Bd70C76EB82D44019A31 + XT deployed at: 0x4Ed14F7724fcD1281873E43CEcAbCC46502e8DD7 + GT deployed at: 0x98901d84688F3987A3A6aB136a96fb98bcaC360D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@13APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x32Deef77d205889FAD1715E48d2A2f5293974EB8 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0C3A4c6CA30711A9A2F0B2E19bc9Ed48B8D46fBE + XT deployed at: 0xca6601f22c29af175E7792a1b32F4577670d4ab6 + GT deployed at: 0x9536f0b339A51B80eA8157DE5499350F9E4F8235 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@13APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xE9Bd653ff5A333cDc9685f3Ee1FF8529881E6116 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x519A04e23135bc8cCAfA00AA041369D1a2eeaa7D + XT deployed at: 0xF80EAdc98B7237Aa7d994fb2aDcc5D83D8C6bC2D + GT deployed at: 0x4c9490f8E3b653EbEc938842B5DAdD4c5a0aEc00 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@13APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xD6148DBB8664E0801cC7A14a0Dc3238bA6cC0b87 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xad8a54dD460E7ef9FDB641337182b1821FAC424B + XT deployed at: 0xE7a5FDc611B02C5D1A424aaeD96daE168b20bC8c + GT deployed at: 0x0ae08CA900A124025F7485b87340a45F01B2727C + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@13APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0xbaC160DCC2bDe67D4A3Ac363946EA7ed43eBF48a + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x1fD3604E7FE6266eE79969Aca1F24b5Ed7EEa1eF + XT deployed at: 0x496008DD5242E107Df1749f3A724d9287484DD71 + GT deployed at: 0xC433Fa7ACb1170145ffF4A0De4d17C0edBe9b523 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@13APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xA06723A966B41824316976EdfA9Bb518CA4159c7 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xb8a815134E82F0875394Fa64eba24359FC91E637 + XT deployed at: 0xf90D85D9C7670b3fE0Ab57C56aEAa131C0cFCb7e + GT deployed at: 0x542e59a3887885dFb0E2bBaaaA253ADf643988F5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@13APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x74A93faA07E343E40b956e300865F04b0FDD5A3b + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xfcf9F40Ea4b83507d0f650b519CBc947f79bb171 + XT deployed at: 0x7a205421ABFb630e5eE70df3CDC37d9f7522CcF4 + GT deployed at: 0x8E8589D6BffC0e404a0c8fa8cF811d204452c7D2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@13APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x099d361cAa0CF3C2198447fBB16301E1D8cc4d66 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ce6DA32f8667aF6abDF21eDeCD8bB83f5479C9B + XT deployed at: 0x01189027b5cdE5f50c3eF17860644390787eE94c + GT deployed at: 0x318Bf410525d79656AD8078cb44F95e456d94CAc + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@13APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x5ebaEd480A6C753691B56891a90950001E330eC1 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x653956361C81684B850A6B1C91D6ad29392401d5 + XT deployed at: 0x03D2Dd64c045ba9D7F39bF6dbE25BDe80e7C1874 + GT deployed at: 0xd293d1B9af776CA6459B947972d4FeC9031Ac749 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@13APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x528698fB9fAb2d0C17DFa0d2461582BEa0dDf3d5 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xc6FF8f6AC083b12D62F299BeAf7e3D4580D2Cc9a + XT deployed at: 0x494F799553ca86FA5Dbad217C97a59f06EA80Db7 + GT deployed at: 0x887F16BedFE1EF55610Fc06ddBd0eF2b61794849 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@13APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 1.019497839 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.017645868240564888 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x177d9c755c474e19bc35cf42e57e2a857c6ae166, 0xff3ffb56fb65a65e41e9da5ddc8b5c1805d37a14, 0x505c69beafec61b32269621d16fee3e3d6ca4a66, 0xc431db076237a542d11e9dbe76623d4232d37bbf, 0x91c83bc9bbcb5aa22121e0f7fb5c9e56c80a2e4d, 0x514436cc23f153f07e2bf38c96ff7ffa3ce9da26, 0x911a0f5c1dc90e000cc2219c28ec24be11c9bc2b, 0xe2fb0ac0e75e93e82d9432ea5eb7df5b9870833d, 0xba17d51cc68317a17ede461d3a6e5545067abf92, 0xff49d0377b2fbd015c33bd70c76eb82d44019a31, 0x4ed14f7724fcd1281873e43cecabcc46502e8dd7, 0x98901d84688f3987a3a6ab136a96fb98bcac360d, 0x32deef77d205889fad1715e48d2a2f5293974eb8, 0x0c3a4c6ca30711a9a2f0b2e19bc9ed48b8d46fbe, 0xca6601f22c29af175e7792a1b32f4577670d4ab6, 0x9536f0b339a51b80ea8157de5499350f9e4f8235, 0xe9bd653ff5a333cdc9685f3ee1ff8529881e6116, 0x519a04e23135bc8ccafa00aa041369d1a2eeaa7d, 0xf80eadc98b7237aa7d994fb2adcc5d83d8c6bc2d, 0x4c9490f8e3b653ebec938842b5dadd4c5a0aec00, 0xd6148dbb8664e0801cc7a14a0dc3238ba6cc0b87, 0xad8a54dd460e7ef9fdb641337182b1821fac424b, 0xe7a5fdc611b02c5d1a424aaed96dae168b20bc8c, 0x0ae08ca900a124025f7485b87340a45f01b2727c, 0xbac160dcc2bde67d4a3ac363946ea7ed43ebf48a, 0x1fd3604e7fe6266ee79969aca1f24b5ed7eea1ef, 0x496008dd5242e107df1749f3a724d9287484dd71, 0xc433fa7acb1170145fff4a0de4d17c0edbe9b523, 0xa06723a966b41824316976edfa9bb518ca4159c7, 0xb8a815134e82f0875394fa64eba24359fc91e637, 0xf90d85d9c7670b3fe0ab57c56aeaa131c0cfcb7e, 0x542e59a3887885dfb0e2bbaaaa253adf643988f5, 0x74a93faa07e343e40b956e300865f04b0fdd5a3b, 0xfcf9f40ea4b83507d0f650b519cbc947f79bb171, 0x7a205421abfb630e5ee70df3cdc37d9f7522ccf4, 0x8e8589d6bffc0e404a0c8fa8cf811d204452c7d2, 0x099d361caa0cf3c2198447fbb16301e1d8cc4d66, 0x3ce6da32f8667af6abdf21edecd8bb83f5479c9b, 0x01189027b5cde5f50c3ef17860644390787ee94c, 0x318bf410525d79656ad8078cb44f95e456d94cac, 0x5ebaed480a6c753691b56891a90950001e330ec1, 0x653956361c81684b850a6b1c91d6ad29392401d5, 0x03d2dd64c045ba9d7f39bf6dbe25bde80e7c1874, 0xd293d1b9af776ca6459b947972d4fec9031ac749, 0x528698fb9fab2d0c17dfa0d2461582bea0ddf3d5, 0xc6ff8f6ac083b12d62f299beaf7e3d4580d2cc9a, 0x494f799553ca86fa5dbad217c97a59f06ea80db7, 0x887f16bedfe1ef55610fc06ddbd0ef2b61794849]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@13APR2025.json new file mode 100644 index 0000000..b4ae63d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0x32Deef77d205889FAD1715E48d2A2f5293974EB8", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0C3A4c6CA30711A9A2F0B2E19bc9Ed48B8D46fBE", + "xt": "0xca6601f22c29af175E7792a1b32F4577670d4ab6", + "gt": "0x9536f0b339A51B80eA8157DE5499350F9E4F8235" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-USUALUSDC+@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-USUALUSDC+@13APR2025.json new file mode 100644 index 0000000..44208f2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-USUALUSDC+@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0xE9Bd653ff5A333cDc9685f3Ee1FF8529881E6116", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x519A04e23135bc8cCAfA00AA041369D1a2eeaa7D", + "xt": "0xF80EAdc98B7237Aa7d994fb2aDcc5D83D8C6bC2D", + "gt": "0x4c9490f8E3b653EbEc938842B5DAdD4c5a0aEc00" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-WBTC@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-WBTC@13APR2025.json new file mode 100644 index 0000000..322e01e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-WBTC@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0x099d361cAa0CF3C2198447fBB16301E1D8cc4d66", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3ce6DA32f8667aF6abDF21eDeCD8bB83f5479C9B", + "xt": "0x01189027b5cdE5f50c3eF17860644390787eE94c", + "gt": "0x318Bf410525d79656AD8078cb44F95e456d94CAc" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-cbBTC@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-cbBTC@13APR2025.json new file mode 100644 index 0000000..52a0368 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-cbBTC@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0x5ebaEd480A6C753691B56891a90950001E330eC1", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x653956361C81684B850A6B1C91D6ad29392401d5", + "xt": "0x03D2Dd64c045ba9D7F39bF6dbE25BDe80e7C1874", + "gt": "0xd293d1B9af776CA6459B947972d4FeC9031Ac749" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-eUSDe@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-eUSDe@13APR2025.json new file mode 100644 index 0000000..56e9c75 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-eUSDe@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0xA06723A966B41824316976EdfA9Bb518CA4159c7", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb8a815134E82F0875394Fa64eba24359FC91E637", + "xt": "0xf90D85D9C7670b3fE0Ab57C56aEAa131C0cFCb7e", + "gt": "0x542e59a3887885dFb0E2bBaaaA253ADf643988F5" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-sUSDe@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-sUSDe@13APR2025.json new file mode 100644 index 0000000..25e0804 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-sUSDe@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0xbA17d51cC68317A17EdE461D3a6e5545067AbF92", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xfF49D0377B2Fbd015C33Bd70C76EB82D44019A31", + "xt": "0x4Ed14F7724fcD1281873E43CEcAbCC46502e8DD7", + "gt": "0x98901d84688F3987A3A6aB136a96fb98bcaC360D" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-wstETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-wstETH@13APR2025.json new file mode 100644 index 0000000..432019e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-USDC-wstETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0x91c83bc9BBCB5AA22121e0F7Fb5C9E56c80A2E4D", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x514436CC23f153f07e2bF38c96fF7ffA3ce9Da26", + "xt": "0x911a0f5c1DC90e000CC2219C28EC24bE11c9bc2B", + "gt": "0xe2fB0AC0e75e93E82D9432Ea5EB7DF5b9870833D" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-MCwETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-MCwETH@13APR2025.json new file mode 100644 index 0000000..de5091c --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-MCwETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0xD6148DBB8664E0801cC7A14a0Dc3238bA6cC0b87", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xad8a54dD460E7ef9FDB641337182b1821FAC424B", + "xt": "0xE7a5FDc611B02C5D1A424aaeD96daE168b20bC8c", + "gt": "0x0ae08CA900A124025F7485b87340a45F01B2727C" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-gtWETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-gtWETH@13APR2025.json new file mode 100644 index 0000000..80c6770 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-gtWETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0x528698fB9fAb2d0C17DFa0d2461582BEa0dDf3d5", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xc6FF8f6AC083b12D62F299BeAf7e3D4580D2Cc9a", + "xt": "0x494F799553ca86FA5Dbad217C97a59f06EA80Db7", + "gt": "0x887F16BedFE1EF55610Fc06ddBd0eF2b61794849" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-pufETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-pufETH@13APR2025.json new file mode 100644 index 0000000..f79c2b2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-pufETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0x74A93faA07E343E40b956e300865F04b0FDD5A3b", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xfcf9F40Ea4b83507d0f650b519CBc947f79bb171", + "xt": "0x7a205421ABFb630e5eE70df3CDC37d9f7522CcF4", + "gt": "0x8E8589D6BffC0e404a0c8fa8cF811d204452c7D2" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-weETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-weETH@13APR2025.json new file mode 100644 index 0000000..988d884 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-WETH-weETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0x177D9c755C474e19bc35cf42E57E2a857C6ae166", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xfF3FFb56FB65a65e41e9DA5ddc8b5C1805d37A14", + "xt": "0x505C69BEaFeC61B32269621d16fEe3e3D6CA4A66", + "gt": "0xC431dB076237A542d11e9dBE76623d4232D37BBF" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@13APR2025.json new file mode 100644 index 0000000..ea0ce50 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243196", + "timestamp": "1744344383" + }, + "market": "0xbaC160DCC2bDe67D4A3Ac363946EA7ed43eBF48a", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1fD3604E7FE6266eE79969Aca1F24b5Ed7EEa1eF", + "xt": "0x496008DD5242E107Df1749f3A724d9287484DD71", + "gt": "0xC433Fa7ACb1170145ffF4A0De4d17C0edBe9b523" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-1500/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy-eth-markets-test-20250413-2000-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy-eth-markets-test-20250413-2000-log.txt new file mode 100644 index 0000000..47285ce --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy-eth-markets-test-20250413-2000-log.txt @@ -0,0 +1,452 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xbca66c3c7c82ed859143ed822fee071f5be097df + + ===== Block Info ===== + Block number: 22243244 + Block timestamp: 1744344959 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22243244 + + ===== Market Info - 0 ===== + Market deployed at: 0x2259f8438e4BD4440867478D8D7cf1BB34b927fe + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xe007112761B49CA8967470856709aFec79678779 + XT deployed at: 0x5Bb01FB8E42C702C2CA3Ad1B3ca0abcB6504F5d3 + GT deployed at: 0xE48475C8cB73BBed168A7D504f57052C4a37772f + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@13APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x803e1E969B4aFED1302afF237bBE131cA9D83B19 + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0620e5a01d979318Eaa56FaeEb56Bedf8FCa198A + XT deployed at: 0x090D77D57c49cADd9ce4C38b3C2d87C190d4b9A2 + GT deployed at: 0xFfB480840205bc1f0bD8F4EcE18200072a86225d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@13APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xF27106E6178EB95791ca11162A5F273a5a139D9e + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x8047efD9Eb4412B91F4A8E92340A9EF8334B5459 + XT deployed at: 0x979253D67AfCB30517e1C11ED53e6AA20228E167 + GT deployed at: 0x48dc2f63127D90FC5d76856Ed0d9A2209250AAB5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@13APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xDCfB75a0F37cee909f7E69E15afbA2bF01345577 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x9A648b27a18D48Be872e74E5c1Ab589E026862B1 + XT deployed at: 0xa64a2101dC13A8C50E82542f52288A1B70FadBD8 + GT deployed at: 0xF22B5302aD24312243798F16570C7fE566C79eF6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@13APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xf54eD138E194130aA6ee02919F87d1b6d55c92B0 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x4B498E6280313821d149F0C6F38602a1D6126412 + XT deployed at: 0x22CfCe5f3CAFF192f69171d83ed9075f77F53bF7 + GT deployed at: 0xfa729265A8A51c6eB0943d8B44565813D42773A9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@13APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xeA91bf7EBD1352aD54fb1aaDd05849B2dff5b2c0 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x6CBA68fA687332F3dB063E08115c561D87B42268 + XT deployed at: 0x1548d94c3c59C1a39e0B02689D2844D584676808 + GT deployed at: 0x444D0FB322Eb03Cd7EdC3E5D513B354DB3A4De93 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@13APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x050c7011929b3516AbDCaE9128EdCDD5ebea7090 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xcC860adF804229576ad7BF4f2978aC51C5c870Cb + XT deployed at: 0xA4a7A631EBD9992DB395682805a16E3dFC00189A + GT deployed at: 0x058a5f599017130E9949040C1d8E9C1a54dD606b + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@13APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x51d2e305168adF87F814259e2d9f6308fE667f8e + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x9d8fb7415c3cbE9F3ABCA0E67ca08d1f73684712 + XT deployed at: 0x6364bdf3A0833803bA6F357ceD0857B54Be2126B + GT deployed at: 0xe346887540B7447ED9ab279464E10ad12967e9C6 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@13APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xb0f5CE0D01a0E627728D7864893410d40831C41b + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x3A5545aFDbE7d1A9Db074ADC57790d5629A91BFC + XT deployed at: 0x01121cE872095E548d66422B37a08573b188Eefc + GT deployed at: 0xD0d9D7f690771517756abaf1F12350b2FF9C33E2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@13APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x3cC1cA355fD16476a38061BE04D7c55557E93dE9 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3646D895B2C2c6B7974d4D191447b84327fCb8a4 + XT deployed at: 0xfc31ECe6A14ceCdbB243FAD505e154acdf1BB875 + GT deployed at: 0x50d898b7B7367a459565dAF3876f9EbF775e72FE + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@13APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x159867e725D718c7DcaA6e231Bd1497860d6397f + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x6b8fA8809c9a2EBa06c60EC0BeC404579d32cfd0 + XT deployed at: 0x44976616379dEe591c538E6f38B41B9C3EbE575e + GT deployed at: 0x2bAbE2b2A5AA4Ab0AB2F826BB1eD4B603d2EA0AF + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@13APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x1Ac9A6Bf2F569F57E2a823FDF7690e94f089d828 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xb7dA63AE7f99dbd0dA4500cbDF2b1e90A3026997 + XT deployed at: 0x480615f979996924E122A3a67A5daea4e4c856b1 + GT deployed at: 0xCA2Edd3ee1c62782DDb9AB2Bdc213FC762e6106E + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 13APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@13APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 1.222183026 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.021154022909754192 ETH + +========================== + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[ERROR] market deployment to eth-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh eth-mainnet deploy:market --broadcast --resume --verify +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[ERROR] market deployment to eth-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh eth-mainnet deploy:market --broadcast --resume --verify +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[ERROR] market deployment to eth-mainnet failed! +You can resume the failed deployment by running the same command with the --resume option: +./script.sh eth-mainnet deploy:market --broadcast --resume --verify +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Enabled (will resume from last broadcasted transaction) +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --resume --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x2259f8438e4bd4440867478d8d7cf1bb34b927fe, 0xe007112761b49ca8967470856709afec79678779, 0x5bb01fb8e42c702c2ca3ad1b3ca0abcb6504f5d3, 0xe48475c8cb73bbed168a7d504f57052c4a37772f, 0x803e1e969b4afed1302aff237bbe131ca9d83b19, 0x0620e5a01d979318eaa56faeeb56bedf8fca198a, 0x090d77d57c49cadd9ce4c38b3c2d87c190d4b9a2, 0xffb480840205bc1f0bd8f4ece18200072a86225d, 0xf27106e6178eb95791ca11162a5f273a5a139d9e, 0x8047efd9eb4412b91f4a8e92340a9ef8334b5459, 0x979253d67afcb30517e1c11ed53e6aa20228e167, 0x48dc2f63127d90fc5d76856ed0d9a2209250aab5, 0xdcfb75a0f37cee909f7e69e15afba2bf01345577, 0x9a648b27a18d48be872e74e5c1ab589e026862b1, 0xa64a2101dc13a8c50e82542f52288a1b70fadbd8, 0xf22b5302ad24312243798f16570c7fe566c79ef6, 0xf54ed138e194130aa6ee02919f87d1b6d55c92b0, 0x4b498e6280313821d149f0c6f38602a1d6126412, 0x22cfce5f3caff192f69171d83ed9075f77f53bf7, 0xfa729265a8a51c6eb0943d8b44565813d42773a9, 0xea91bf7ebd1352ad54fb1aadd05849b2dff5b2c0, 0x6cba68fa687332f3db063e08115c561d87b42268, 0x1548d94c3c59c1a39e0b02689d2844d584676808, 0x444d0fb322eb03cd7edc3e5d513b354db3a4de93, 0x050c7011929b3516abdcae9128edcdd5ebea7090, 0xcc860adf804229576ad7bf4f2978ac51c5c870cb, 0xa4a7a631ebd9992db395682805a16e3dfc00189a, 0x058a5f599017130e9949040c1d8e9c1a54dd606b, 0x51d2e305168adf87f814259e2d9f6308fe667f8e, 0x9d8fb7415c3cbe9f3abca0e67ca08d1f73684712, 0x6364bdf3a0833803ba6f357ced0857b54be2126b, 0xe346887540b7447ed9ab279464e10ad12967e9c6, 0xb0f5ce0d01a0e627728d7864893410d40831c41b, 0x3a5545afdbe7d1a9db074adc57790d5629a91bfc, 0x01121ce872095e548d66422b37a08573b188eefc, 0xd0d9d7f690771517756abaf1f12350b2ff9c33e2, 0x3cc1ca355fd16476a38061be04d7c55557e93de9, 0x3646d895b2c2c6b7974d4d191447b84327fcb8a4, 0xfc31ece6a14cecdbb243fad505e154acdf1bb875, 0x50d898b7b7367a459565daf3876f9ebf775e72fe, 0x159867e725d718c7dcaa6e231bd1497860d6397f, 0x6b8fa8809c9a2eba06c60ec0bec404579d32cfd0, 0x44976616379dee591c538e6f38b41b9c3ebe575e, 0x2babe2b2a5aa4ab0ab2f826bb1ed4b603d2ea0af, 0x1ac9a6bf2f569f57e2a823fdf7690e94f089d828, 0xb7da63ae7f99dbd0da4500cbdf2b1e90a3026997, 0x480615f979996924e122a3a67a5daea4e4c856b1, 0xca2edd3ee1c62782ddb9ab2bdc213fc762e6106e]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@13APR2025.json new file mode 100644 index 0000000..1e16285 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0xDCfB75a0F37cee909f7E69E15afbA2bF01345577", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9A648b27a18D48Be872e74E5c1Ab589E026862B1", + "xt": "0xa64a2101dC13A8C50E82542f52288A1B70FadBD8", + "gt": "0xF22B5302aD24312243798F16570C7fE566C79eF6" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-USUALUSDC+@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-USUALUSDC+@13APR2025.json new file mode 100644 index 0000000..d71b653 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-USUALUSDC+@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0xf54eD138E194130aA6ee02919F87d1b6d55c92B0", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4B498E6280313821d149F0C6F38602a1D6126412", + "xt": "0x22CfCe5f3CAFF192f69171d83ed9075f77F53bF7", + "gt": "0xfa729265A8A51c6eB0943d8B44565813D42773A9" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-WBTC@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-WBTC@13APR2025.json new file mode 100644 index 0000000..7ba7828 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-WBTC@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0x3cC1cA355fD16476a38061BE04D7c55557E93dE9", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3646D895B2C2c6B7974d4D191447b84327fCb8a4", + "xt": "0xfc31ECe6A14ceCdbB243FAD505e154acdf1BB875", + "gt": "0x50d898b7B7367a459565dAF3876f9EbF775e72FE" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-cbBTC@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-cbBTC@13APR2025.json new file mode 100644 index 0000000..a8f8d21 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-cbBTC@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0x159867e725D718c7DcaA6e231Bd1497860d6397f", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6b8fA8809c9a2EBa06c60EC0BeC404579d32cfd0", + "xt": "0x44976616379dEe591c538E6f38B41B9C3EbE575e", + "gt": "0x2bAbE2b2A5AA4Ab0AB2F826BB1eD4B603d2EA0AF" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-eUSDe@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-eUSDe@13APR2025.json new file mode 100644 index 0000000..f2a4ae4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-eUSDe@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0x51d2e305168adF87F814259e2d9f6308fE667f8e", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9d8fb7415c3cbE9F3ABCA0E67ca08d1f73684712", + "xt": "0x6364bdf3A0833803bA6F357ceD0857B54Be2126B", + "gt": "0xe346887540B7447ED9ab279464E10ad12967e9C6" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-sUSDe@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-sUSDe@13APR2025.json new file mode 100644 index 0000000..94c171b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-sUSDe@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0xF27106E6178EB95791ca11162A5F273a5a139D9e", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8047efD9Eb4412B91F4A8E92340A9EF8334B5459", + "xt": "0x979253D67AfCB30517e1C11ED53e6AA20228E167", + "gt": "0x48dc2f63127D90FC5d76856Ed0d9A2209250AAB5" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-wstETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-wstETH@13APR2025.json new file mode 100644 index 0000000..12fb07b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-USDC-wstETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0x803e1E969B4aFED1302afF237bBE131cA9D83B19", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0620e5a01d979318Eaa56FaeEb56Bedf8FCa198A", + "xt": "0x090D77D57c49cADd9ce4C38b3C2d87C190d4b9A2", + "gt": "0xFfB480840205bc1f0bD8F4EcE18200072a86225d" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-MCwETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-MCwETH@13APR2025.json new file mode 100644 index 0000000..5d0fb94 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-MCwETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0xeA91bf7EBD1352aD54fb1aaDd05849B2dff5b2c0", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x6CBA68fA687332F3dB063E08115c561D87B42268", + "xt": "0x1548d94c3c59C1a39e0B02689D2844D584676808", + "gt": "0x444D0FB322Eb03Cd7EdC3E5D513B354DB3A4De93" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-gtWETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-gtWETH@13APR2025.json new file mode 100644 index 0000000..f78a648 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-gtWETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0x1Ac9A6Bf2F569F57E2a823FDF7690e94f089d828", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xb7dA63AE7f99dbd0dA4500cbDF2b1e90A3026997", + "xt": "0x480615f979996924E122A3a67A5daea4e4c856b1", + "gt": "0xCA2Edd3ee1c62782DDb9AB2Bdc213FC762e6106E" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-pufETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-pufETH@13APR2025.json new file mode 100644 index 0000000..2d958cd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-pufETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0xb0f5CE0D01a0E627728D7864893410d40831C41b", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x3A5545aFDbE7d1A9Db074ADC57790d5629A91BFC", + "xt": "0x01121cE872095E548d66422B37a08573b188Eefc", + "gt": "0xD0d9D7f690771517756abaf1F12350b2FF9C33E2" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-weETH@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-weETH@13APR2025.json new file mode 100644 index 0000000..ae62f59 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-WETH-weETH@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0x2259f8438e4BD4440867478D8D7cf1BB34b927fe", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xe007112761B49CA8967470856709aFec79678779", + "xt": "0x5Bb01FB8E42C702C2CA3Ad1B3ca0abcB6504F5d3", + "gt": "0xE48475C8cB73BBed168A7D504f57052C4a37772f" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@13APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@13APR2025.json new file mode 100644 index 0000000..daf7b8b --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@13APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22243244", + "timestamp": "1744344959" + }, + "market": "0x050c7011929b3516AbDCaE9128EdCDD5ebea7090", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xcC860adF804229576ad7BF4f2978aC51C5c870Cb", + "xt": "0xA4a7A631EBD9992DB395682805a16E3dFC00189A", + "gt": "0x058a5f599017130E9949040C1d8E9C1a54dD606b" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "13APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250413-2000/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy-eth-markets-test-20250414-1500-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy-eth-markets-test-20250414-1500-log.txt new file mode 100644 index 0000000..0de3c35 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy-eth-markets-test-20250414-1500-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xde1cdb58961941699a119629baed0334da2512a3 + + ===== Block Info ===== + Block number: 22244768 + Block timestamp: 1744363271 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22244768 + + ===== Market Info - 0 ===== + Market deployed at: 0xa8B6a7f5A853085E10fB1ed9023b9f868077ac81 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x60355895A4d9bb2Ade15647F3351D73763DE1cc3 + XT deployed at: 0xb1579c61AeedabA073639dD8EBdacBBb30Da53f9 + GT deployed at: 0x2A00633b3390F0281d8889b099450983Fd99D481 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@14APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xeC116dFbaf4327156eF4aAA978D8dde983aE44fd + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x4053C31D425EB56D74A8Fb78231D9778534f2810 + XT deployed at: 0xfDEEA1bE41a69ED7A7f9842389cb235856E856e3 + GT deployed at: 0x4f40A08f9CEC422a74bE4C8D4709675E05057ACC + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@14APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x9FB634a5F0681bd0F763417c8fD2Aa3725cB90C2 + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x5c7C1B0A2D266cAa66187877FA95A4F69046Aa2C + XT deployed at: 0xb0809583db7DF4F2f0D90AABaA9bD0c356d31567 + GT deployed at: 0x9142698C62107239016Df746F8e977DeF441E270 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@14APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x8EA27065DD2eEbb368F7343cB91Bca95Dc20d147 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x86710187BbC10Db9C7FBaf25aDC74Bfa5926dB47 + XT deployed at: 0x7723E0fb69d67410209c5d99eBD33e775E4A5fa9 + GT deployed at: 0x41c333f478574357781f8b0576FBFf0930b4FfC4 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@14APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0xA09831705b1A8E49841d9eFa02B5252Db222602e + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x92014746188a35BD34c00182aCCf55F0e62B6572 + XT deployed at: 0x4ac9988d93b66068EfD4eB43e4ABCF2eb694A6cA + GT deployed at: 0x7ef2297c4A99f717578657824f363D78Be150D38 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@14APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xA5fd6674ADD172Fb7F81caDD017F062e47605900 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xd33D52b813640b7254fAC6a2f286801605E7ad6F + XT deployed at: 0xEba70e9d5cD9F9b87722eab0A3c09913C5101A46 + GT deployed at: 0x6da7aa264b0Eb83F3579396460e5F4CB4bc5e4CF + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@14APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x7b3F3353C9ebDaD3B0A33063031e8409e2A79F87 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0x8fbd04b0Ae9482625AF39c8dED017187dAa9F626 + XT deployed at: 0xc468BD06e6Fc4A67e1c652Bdd9041c753D564675 + GT deployed at: 0xa640EC44c7ff412c2e24f0782786F16e6129851d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@14APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xE030A25Dd4e51BD2963C8DD50B1CE95F75E0E435 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xa7480B0E347241e5238dAE50157676a26EC03f03 + XT deployed at: 0x4ED04f07532047E2bB11077c1C4C77A474814832 + GT deployed at: 0x85c3346EF9be9Ca2f17f236582572c720287979C + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@14APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0xbEB41E083482Fa6cdb17A6F28Ab5B7E3FF423280 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x2ad6A8959c0856326D2d634a138433Fe77708fc4 + XT deployed at: 0x8ffc593cd32b39b9D505Ec98b81EFE4a72c2B0FE + GT deployed at: 0x28AF6A1a90e408738933f6c4f8857a159bB8333B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@14APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x0754AA18e80cC4ede02209C21DF5093570587A4f + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xB3009e7ed1444e92BCeC1e4385129f84762D08bC + XT deployed at: 0xE047Ca0DA3e9dB30d3Cc2b47c9a22F077558BC7F + GT deployed at: 0x56F6FD38Cd0e82F77bFC4c0312770d0809f257e9 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@14APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x4425eBD492e4B017fCeA53B67078eF3410267602 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x345d3A0fD229CE18E3a0964e5eC9F56F7C196246 + XT deployed at: 0xdD3dc5838a3f1FC58ea2AE4B153D0a740Ef50735 + GT deployed at: 0xefdDd66b6bf1a66B49Fd9F29BAFdcd6d208D2411 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@14APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0xffD597D836d57D63a6fAa834618B867eA0FC7CEe + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xD4b2EB2E56A7EAbEAdfbD5C79787aF4463536621 + XT deployed at: 0xA4BfD21943CA970C5583EDA382C83a1d867c963d + GT deployed at: 0xc1F353062499BF1B9199d6A8Db9E79e208811F75 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@14APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 1.059580224 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.018339629872439808 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xa8b6a7f5a853085e10fb1ed9023b9f868077ac81, 0x60355895a4d9bb2ade15647f3351d73763de1cc3, 0xb1579c61aeedaba073639dd8ebdacbbb30da53f9, 0x2a00633b3390f0281d8889b099450983fd99d481, 0xec116dfbaf4327156ef4aaa978d8dde983ae44fd, 0x4053c31d425eb56d74a8fb78231d9778534f2810, 0xfdeea1be41a69ed7a7f9842389cb235856e856e3, 0x4f40a08f9cec422a74be4c8d4709675e05057acc, 0x9fb634a5f0681bd0f763417c8fd2aa3725cb90c2, 0x5c7c1b0a2d266caa66187877fa95a4f69046aa2c, 0xb0809583db7df4f2f0d90aabaa9bd0c356d31567, 0x9142698c62107239016df746f8e977def441e270, 0x8ea27065dd2eebb368f7343cb91bca95dc20d147, 0x86710187bbc10db9c7fbaf25adc74bfa5926db47, 0x7723e0fb69d67410209c5d99ebd33e775e4a5fa9, 0x41c333f478574357781f8b0576fbff0930b4ffc4, 0xa09831705b1a8e49841d9efa02b5252db222602e, 0x92014746188a35bd34c00182accf55f0e62b6572, 0x4ac9988d93b66068efd4eb43e4abcf2eb694a6ca, 0x7ef2297c4a99f717578657824f363d78be150d38, 0xa5fd6674add172fb7f81cadd017f062e47605900, 0xd33d52b813640b7254fac6a2f286801605e7ad6f, 0xeba70e9d5cd9f9b87722eab0a3c09913c5101a46, 0x6da7aa264b0eb83f3579396460e5f4cb4bc5e4cf, 0x7b3f3353c9ebdad3b0a33063031e8409e2a79f87, 0x8fbd04b0ae9482625af39c8ded017187daa9f626, 0xc468bd06e6fc4a67e1c652bdd9041c753d564675, 0xa640ec44c7ff412c2e24f0782786f16e6129851d, 0xe030a25dd4e51bd2963c8dd50b1ce95f75e0e435, 0xa7480b0e347241e5238dae50157676a26ec03f03, 0x4ed04f07532047e2bb11077c1c4c77a474814832, 0x85c3346ef9be9ca2f17f236582572c720287979c, 0xbeb41e083482fa6cdb17a6f28ab5b7e3ff423280, 0x2ad6a8959c0856326d2d634a138433fe77708fc4, 0x8ffc593cd32b39b9d505ec98b81efe4a72c2b0fe, 0x28af6a1a90e408738933f6c4f8857a159bb8333b, 0x0754aa18e80cc4ede02209c21df5093570587a4f, 0xb3009e7ed1444e92bcec1e4385129f84762d08bc, 0xe047ca0da3e9db30d3cc2b47c9a22f077558bc7f, 0x56f6fd38cd0e82f77bfc4c0312770d0809f257e9, 0x4425ebd492e4b017fcea53b67078ef3410267602, 0x345d3a0fd229ce18e3a0964e5ec9f56f7c196246, 0xdd3dc5838a3f1fc58ea2ae4b153d0a740ef50735, 0xefddd66b6bf1a66b49fd9f29bafdcd6d208d2411, 0xffd597d836d57d63a6faa834618b867ea0fc7cee, 0xd4b2eb2e56a7eabeadfbd5c79787af4463536621, 0xa4bfd21943ca970c5583eda382c83a1d867c963d, 0xc1f353062499bf1b9199d6a8db9e79e208811f75]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@14APR2025.json new file mode 100644 index 0000000..d989d44 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0x8EA27065DD2eEbb368F7343cB91Bca95Dc20d147", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x86710187BbC10Db9C7FBaf25aDC74Bfa5926dB47", + "xt": "0x7723E0fb69d67410209c5d99eBD33e775E4A5fa9", + "gt": "0x41c333f478574357781f8b0576FBFf0930b4FfC4" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-USUALUSDC+@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-USUALUSDC+@14APR2025.json new file mode 100644 index 0000000..46244ab --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-USUALUSDC+@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0xA09831705b1A8E49841d9eFa02B5252Db222602e", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x92014746188a35BD34c00182aCCf55F0e62B6572", + "xt": "0x4ac9988d93b66068EfD4eB43e4ABCF2eb694A6cA", + "gt": "0x7ef2297c4A99f717578657824f363D78Be150D38" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-WBTC@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-WBTC@14APR2025.json new file mode 100644 index 0000000..74fa1d6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-WBTC@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0x0754AA18e80cC4ede02209C21DF5093570587A4f", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xB3009e7ed1444e92BCeC1e4385129f84762D08bC", + "xt": "0xE047Ca0DA3e9dB30d3Cc2b47c9a22F077558BC7F", + "gt": "0x56F6FD38Cd0e82F77bFC4c0312770d0809f257e9" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-cbBTC@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-cbBTC@14APR2025.json new file mode 100644 index 0000000..1a33425 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-cbBTC@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0x4425eBD492e4B017fCeA53B67078eF3410267602", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x345d3A0fD229CE18E3a0964e5eC9F56F7C196246", + "xt": "0xdD3dc5838a3f1FC58ea2AE4B153D0a740Ef50735", + "gt": "0xefdDd66b6bf1a66B49Fd9F29BAFdcd6d208D2411" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-eUSDe@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-eUSDe@14APR2025.json new file mode 100644 index 0000000..d69e791 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-eUSDe@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0xE030A25Dd4e51BD2963C8DD50B1CE95F75E0E435", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xa7480B0E347241e5238dAE50157676a26EC03f03", + "xt": "0x4ED04f07532047E2bB11077c1C4C77A474814832", + "gt": "0x85c3346EF9be9Ca2f17f236582572c720287979C" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-sUSDe@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-sUSDe@14APR2025.json new file mode 100644 index 0000000..0948819 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-sUSDe@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0x9FB634a5F0681bd0F763417c8fD2Aa3725cB90C2", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5c7C1B0A2D266cAa66187877FA95A4F69046Aa2C", + "xt": "0xb0809583db7DF4F2f0D90AABaA9bD0c356d31567", + "gt": "0x9142698C62107239016Df746F8e977DeF441E270" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-wstETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-wstETH@14APR2025.json new file mode 100644 index 0000000..5b1b69e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-USDC-wstETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0xeC116dFbaf4327156eF4aAA978D8dde983aE44fd", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4053C31D425EB56D74A8Fb78231D9778534f2810", + "xt": "0xfDEEA1bE41a69ED7A7f9842389cb235856E856e3", + "gt": "0x4f40A08f9CEC422a74bE4C8D4709675E05057ACC" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-MCwETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-MCwETH@14APR2025.json new file mode 100644 index 0000000..80bc99e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-MCwETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0xA5fd6674ADD172Fb7F81caDD017F062e47605900", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xd33D52b813640b7254fAC6a2f286801605E7ad6F", + "xt": "0xEba70e9d5cD9F9b87722eab0A3c09913C5101A46", + "gt": "0x6da7aa264b0Eb83F3579396460e5F4CB4bc5e4CF" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-gtWETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-gtWETH@14APR2025.json new file mode 100644 index 0000000..167feb1 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-gtWETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0xffD597D836d57D63a6fAa834618B867eA0FC7CEe", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xD4b2EB2E56A7EAbEAdfbD5C79787aF4463536621", + "xt": "0xA4BfD21943CA970C5583EDA382C83a1d867c963d", + "gt": "0xc1F353062499BF1B9199d6A8Db9E79e208811F75" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-pufETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-pufETH@14APR2025.json new file mode 100644 index 0000000..68b4bd7 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-pufETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0xbEB41E083482Fa6cdb17A6F28Ab5B7E3FF423280", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x2ad6A8959c0856326D2d634a138433Fe77708fc4", + "xt": "0x8ffc593cd32b39b9D505Ec98b81EFE4a72c2B0FE", + "gt": "0x28AF6A1a90e408738933f6c4f8857a159bB8333B" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-weETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-weETH@14APR2025.json new file mode 100644 index 0000000..67a0ea7 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-WETH-weETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0xa8B6a7f5A853085E10fB1ed9023b9f868077ac81", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x60355895A4d9bb2Ade15647F3351D73763DE1cc3", + "xt": "0xb1579c61AeedabA073639dD8EBdacBBb30Da53f9", + "gt": "0x2A00633b3390F0281d8889b099450983Fd99D481" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@14APR2025.json new file mode 100644 index 0000000..dcd1107 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244768", + "timestamp": "1744363271" + }, + "market": "0x7b3F3353C9ebDaD3B0A33063031e8409e2A79F87", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8fbd04b0Ae9482625AF39c8dED017187dAa9F626", + "xt": "0xc468BD06e6Fc4A67e1c652Bdd9041c753D564675", + "gt": "0xa640EC44c7ff412c2e24f0782786F16e6129851d" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-1500/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy-eth-markets-test-20250414-2000-log.txt b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy-eth-markets-test-20250414-2000-log.txt new file mode 100644 index 0000000..aad21cd --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy-eth-markets-test-20250414-2000-log.txt @@ -0,0 +1,368 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Resume: Disabled +Verification: Enabled--verify +Using API Key: ETHERSCAN_API_KEY +Tenderly Verification: Disabled +Debug Mode: Disabled +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xde1cdb58961941699a119629baed0334da2512a3 + + ===== Block Info ===== + Block number: 22244815 + Block timestamp: 1744363835 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22244815 + + ===== Market Info - 0 ===== + Market deployed at: 0x661FC2119f708bb44E420D473670C4cc70e95E24 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x3258711670B86998a63CAFEB4D02Ff7d7b2d3641 + XT deployed at: 0x37a93f9BEe52ef0a36Bc78f5C3B7E46027E9C64d + GT deployed at: 0xaFcC9d9fABb2AbE3ED8D6411B87A6f4fC1AEA79A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@14APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xa526df5B6C4a3085016430B80739dDBCe97EBCAd + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xfBfE5bA1d79cbA976FBAf6889a903410ACf0BFb2 + XT deployed at: 0x80c192d365df3AEdBF5b9b7CDC08A72A2EDa698b + GT deployed at: 0x8B6fE07b0708e61080BAFB39606a7559bA7b1289 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@14APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x681C23bAd298e6B56a9F56D95D69a3D8a07F5f0f + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x692E74f580E18628D37EBb68dA85e22C8281f22b + XT deployed at: 0x7D64e0d8fA9ee82598702D42D07d0358d461D2b9 + GT deployed at: 0x5A75fcE3595416638138be5bd577F010036164A1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@14APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xAB0977943637E842d47A8d356cB705d9f4A59dCD + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xfA1A4d597C66635c99B0b67b1ba02da71AEE0F11 + XT deployed at: 0x2b01FE36d7c4Ec9e3C2F53a49B741384c660e8A9 + GT deployed at: 0x6FA40feEce7EF0254A24823140837Ec8E8589B21 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@14APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x19587686e3041f9555C78F2ad2A43773788681A6 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xb7485B1591A227fa73fb63EB5c4F9399278ab3f5 + XT deployed at: 0xd7fE6F90B9873B355252f7D5d5d19F7F2b7Ba84f + GT deployed at: 0xdAC684D26662a76EA23A6844344a7F3e95c63F1B + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@14APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xe88889FE441453750b39D619b0210aa40Bdb538C + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0xF3307795fEb5b1229505264eF16488f0BDc77fba + XT deployed at: 0x353Fc2F80F2Ebe51b8818D77d8c85Bf813A05C27 + GT deployed at: 0xc0B9C46Dd1618ab1c26C0E63014d55050Ef97b35 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@14APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x77836614fD70413FA99a804e15b5F2033BefA016 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xD5cB4308809A33eDDE9585D53F1820287C1Cb4c1 + XT deployed at: 0xA98c16Fff65B9801D272F6565a77f9eE9a7E3eF4 + GT deployed at: 0x6465702a2570f373ed83c8f0546a11E9d3f35E48 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@14APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xC4012dB1F028f95Db4f797531A35Dbef08e61E5D + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0b14cD4D922aEeaCA2FcB1ED31f7230284457Bf5 + XT deployed at: 0xBfF9B8935e98369c89733c4C5A0215236626f829 + GT deployed at: 0x308C581f5cAa7feA63C1C69041ffc3dd0eFAd58a + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@14APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x031094122f036f89d9AAa216dFE50e3fcCE10379 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x64a50dCB8b16bF3d6A754463E55D7D9a54BA3a4d + XT deployed at: 0xa6aD3CE64fFA18c15BF33E07afc031AABD47460D + GT deployed at: 0xB752cEd15121C4Fc536fBD371763E45A31997cD2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@14APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x396a8466a83f745ce4787e402Fc9948E263EbBf0 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x4445fa588F1F4DBe5Aa919f1f6d87f7D333EE2a5 + XT deployed at: 0x2482121a55D707F0254804010Ed6e7D6E439829c + GT deployed at: 0xdC37255D20fE1c81174Fc32C5F04D5b5694039a8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@14APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x9F3Fb39085F6B1819c49D4D2D43B7A8f48562498 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xf01740239Bf5BCA436ea609115C181334287DC92 + XT deployed at: 0xF04020C13c175abbeC424B18522c021315648335 + GT deployed at: 0xcd003E964c8C48B7FBe95a78656EE2BF33FF189b + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@14APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x9D855Ed97CeDF0f715790C98B881A22dD916E912 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x6404782C16aEFDd720954b7654c37bC8aa8A7Bf2 + XT deployed at: 0x0f553395664cf582B0FcCDD71d07ab79a8442aa1 + GT deployed at: 0xAC79dd69ef1E6Fb47D572a90048b1A99B1cdB889 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 14APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@14APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.966124683 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.016722064734239736 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x661fc2119f708bb44e420d473670c4cc70e95e24, 0x3258711670b86998a63cafeb4d02ff7d7b2d3641, 0x37a93f9bee52ef0a36bc78f5c3b7e46027e9c64d, 0xafcc9d9fabb2abe3ed8d6411b87a6f4fc1aea79a, 0xa526df5b6c4a3085016430b80739ddbce97ebcad, 0xfbfe5ba1d79cba976fbaf6889a903410acf0bfb2, 0x80c192d365df3aedbf5b9b7cdc08a72a2eda698b, 0x8b6fe07b0708e61080bafb39606a7559ba7b1289, 0x681c23bad298e6b56a9f56d95d69a3d8a07f5f0f, 0x692e74f580e18628d37ebb68da85e22c8281f22b, 0x7d64e0d8fa9ee82598702d42d07d0358d461d2b9, 0x5a75fce3595416638138be5bd577f010036164a1, 0xab0977943637e842d47a8d356cb705d9f4a59dcd, 0xfa1a4d597c66635c99b0b67b1ba02da71aee0f11, 0x2b01fe36d7c4ec9e3c2f53a49b741384c660e8a9, 0x6fa40feece7ef0254a24823140837ec8e8589b21, 0x19587686e3041f9555c78f2ad2a43773788681a6, 0xb7485b1591a227fa73fb63eb5c4f9399278ab3f5, 0xd7fe6f90b9873b355252f7d5d5d19f7f2b7ba84f, 0xdac684d26662a76ea23a6844344a7f3e95c63f1b, 0xe88889fe441453750b39d619b0210aa40bdb538c, 0xf3307795feb5b1229505264ef16488f0bdc77fba, 0x353fc2f80f2ebe51b8818d77d8c85bf813a05c27, 0xc0b9c46dd1618ab1c26c0e63014d55050ef97b35, 0x77836614fd70413fa99a804e15b5f2033befa016, 0xd5cb4308809a33edde9585d53f1820287c1cb4c1, 0xa98c16fff65b9801d272f6565a77f9ee9a7e3ef4, 0x6465702a2570f373ed83c8f0546a11e9d3f35e48, 0xc4012db1f028f95db4f797531a35dbef08e61e5d, 0x0b14cd4d922aeeaca2fcb1ed31f7230284457bf5, 0xbff9b8935e98369c89733c4c5a0215236626f829, 0x308c581f5caa7fea63c1c69041ffc3dd0efad58a, 0x031094122f036f89d9aaa216dfe50e3fcce10379, 0x64a50dcb8b16bf3d6a754463e55d7d9a54ba3a4d, 0xa6ad3ce64ffa18c15bf33e07afc031aabd47460d, 0xb752ced15121c4fc536fbd371763e45a31997cd2, 0x396a8466a83f745ce4787e402fc9948e263ebbf0, 0x4445fa588f1f4dbe5aa919f1f6d87f7d333ee2a5, 0x2482121a55d707f0254804010ed6e7d6e439829c, 0xdc37255d20fe1c81174fc32c5f04d5b5694039a8, 0x9f3fb39085f6b1819c49d4d2d43b7a8f48562498, 0xf01740239bf5bca436ea609115c181334287dc92, 0xf04020c13c175abbec424b18522c021315648335, 0xcd003e964c8c48b7fbe95a78656ee2bf33ff189b, 0x9d855ed97cedf0f715790c98b881a22dd916e912, 0x6404782c16aefdd720954b7654c37bc8aa8a7bf2, 0x0f553395664cf582b0fccdd71d07ab79a8442aa1, 0xac79dd69ef1e6fb47d572a90048b1a99b1cdb889]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-access-manager.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-core.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-core.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@14APR2025.json new file mode 100644 index 0000000..4013c54 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0xAB0977943637E842d47A8d356cB705d9f4A59dCD", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xfA1A4d597C66635c99B0b67b1ba02da71AEE0F11", + "xt": "0x2b01FE36d7c4Ec9e3C2F53a49B741384c660e8A9", + "gt": "0x6FA40feEce7EF0254A24823140837Ec8E8589B21" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-USUALUSDC+@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-USUALUSDC+@14APR2025.json new file mode 100644 index 0000000..63cf121 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-USUALUSDC+@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0x19587686e3041f9555C78F2ad2A43773788681A6", + "collateral": { + "address": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb7485B1591A227fa73fb63EB5c4F9399278ab3f5", + "xt": "0xd7fE6F90B9873B355252f7D5d5d19F7F2b7Ba84f", + "gt": "0xdAC684D26662a76EA23A6844344a7F3e95c63F1B" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-WBTC@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-WBTC@14APR2025.json new file mode 100644 index 0000000..a77341d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-WBTC@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0x396a8466a83f745ce4787e402Fc9948E263EbBf0", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4445fa588F1F4DBe5Aa919f1f6d87f7D333EE2a5", + "xt": "0x2482121a55D707F0254804010Ed6e7D6E439829c", + "gt": "0xdC37255D20fE1c81174Fc32C5F04D5b5694039a8" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-cbBTC@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-cbBTC@14APR2025.json new file mode 100644 index 0000000..8b273b6 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-cbBTC@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0x9F3Fb39085F6B1819c49D4D2D43B7A8f48562498", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xf01740239Bf5BCA436ea609115C181334287DC92", + "xt": "0xF04020C13c175abbeC424B18522c021315648335", + "gt": "0xcd003E964c8C48B7FBe95a78656EE2BF33FF189b" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-eUSDe@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-eUSDe@14APR2025.json new file mode 100644 index 0000000..a26f563 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-eUSDe@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0xC4012dB1F028f95Db4f797531A35Dbef08e61E5D", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0b14cD4D922aEeaCA2FcB1ED31f7230284457Bf5", + "xt": "0xBfF9B8935e98369c89733c4C5A0215236626f829", + "gt": "0x308C581f5cAa7feA63C1C69041ffc3dd0eFAd58a" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-sUSDe@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-sUSDe@14APR2025.json new file mode 100644 index 0000000..1f614cf --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-sUSDe@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0x681C23bAd298e6B56a9F56D95D69a3D8a07F5f0f", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x692E74f580E18628D37EBb68dA85e22C8281f22b", + "xt": "0x7D64e0d8fA9ee82598702D42D07d0358d461D2b9", + "gt": "0x5A75fcE3595416638138be5bd577F010036164A1" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-wstETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-wstETH@14APR2025.json new file mode 100644 index 0000000..00d1b1e --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-USDC-wstETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0xa526df5B6C4a3085016430B80739dDBCe97EBCAd", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xfBfE5bA1d79cbA976FBAf6889a903410ACf0BFb2", + "xt": "0x80c192d365df3AEdBF5b9b7CDC08A72A2EDa698b", + "gt": "0x8B6fE07b0708e61080BAFB39606a7559bA7b1289" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-MCwETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-MCwETH@14APR2025.json new file mode 100644 index 0000000..105089f --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-MCwETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0xe88889FE441453750b39D619b0210aa40Bdb538C", + "collateral": { + "address": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xF3307795fEb5b1229505264eF16488f0BDc77fba", + "xt": "0x353Fc2F80F2Ebe51b8818D77d8c85Bf813A05C27", + "gt": "0xc0B9C46Dd1618ab1c26C0E63014d55050Ef97b35" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-gtWETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-gtWETH@14APR2025.json new file mode 100644 index 0000000..6202367 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-gtWETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0x9D855Ed97CeDF0f715790C98B881A22dD916E912", + "collateral": { + "address": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x6404782C16aEFDd720954b7654c37bC8aa8A7Bf2", + "xt": "0x0f553395664cf582B0FcCDD71d07ab79a8442aa1", + "gt": "0xAC79dd69ef1E6Fb47D572a90048b1A99B1cdB889" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-pufETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-pufETH@14APR2025.json new file mode 100644 index 0000000..81516c2 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-pufETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0x031094122f036f89d9AAa216dFE50e3fcCE10379", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x64a50dCB8b16bF3d6A754463E55D7D9a54BA3a4d", + "xt": "0xa6aD3CE64fFA18c15BF33E07afc031AABD47460D", + "gt": "0xB752cEd15121C4Fc536fBD371763E45A31997cD2" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-weETH@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-weETH@14APR2025.json new file mode 100644 index 0000000..2787f1d --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-WETH-weETH@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0x661FC2119f708bb44E420D473670C4cc70e95E24", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x3258711670B86998a63CAFEB4D02Ff7d7b2d3641", + "xt": "0x37a93f9BEe52ef0a36Bc78f5C3B7E46027E9C64d", + "gt": "0xaFcC9d9fABb2AbE3ED8D6411B87A6f4fC1AEA79A" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@14APR2025.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@14APR2025.json new file mode 100644 index 0000000..141e657 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22244815", + "timestamp": "1744363835" + }, + "market": "0x77836614fD70413FA99a804e15b5F2033BefA016", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xD5cB4308809A33eDDE9585D53F1820287C1Cb4c1", + "xt": "0xA98c16Fff65B9801D272F6565a77f9eE9a7E3eF4", + "gt": "0x6465702a2570f373ed83c8f0546a11E9d3f35E48" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet-v1.0.8-test-20250414-2000/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/accept-oracle-PT-USDS-log.txt b/deployments/eth-mainnet/accept-oracle-PT-USDS-log.txt new file mode 100644 index 0000000..0c11e6c --- /dev/null +++ b/deployments/eth-mainnet/accept-oracle-PT-USDS-log.txt @@ -0,0 +1,73 @@ +Running on eth-mainnet... +=== Configuration === +Operation: Script Execution +Network: eth-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Network: eth-mainnet + Current Block Timestamp: 1748397779 + + Accepted oracle for token: + Token Symbol: PT-USDS-14AUG2025 + Token Address: 0xFfEc096c087C13Cc268497B89A613cACE4DF9A48 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x4599f532E03458017Fa55F7DCF7A296267637B74 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 2 + Oracles accepted: 1 + Oracles not ready: 1 + + === Oracles Not Ready for Acceptance === + 1. USDC (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) + Price Feed: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Backup Price Feed: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Heartbeat: 86400 + Status: Oracle is already configured with the correct values + --- + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 2.208132754 gwei + +Estimated total gas used for script: 111038 + +Estimated amount required: 0.000245186644738652 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/AcceptOracles.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/AcceptOracles.s.sol/1/run-latest.json + +[SUCCESS] Script AcceptOracles executed successfully on eth-mainnet (Broadcast mode)! diff --git a/deployments/eth-mainnet/accept-oracles-20250418-log.txt b/deployments/eth-mainnet/accept-oracles-20250418-log.txt new file mode 100644 index 0000000..65cd055 --- /dev/null +++ b/deployments/eth-mainnet/accept-oracles-20250418-log.txt @@ -0,0 +1,77 @@ + ./script.sh eth-mainnet script:AcceptOracles --broadcast --verify +Running on eth-mainnet... +=== Configuration === +Operation: Script Execution +Network: eth-mainnet +Script: AcceptOracles.s.sol +Path: script/AcceptOracles.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/AcceptOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + === Checking Pending Oracles === + Oracle Aggregator Address: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Network: eth-mainnet + Current Block Timestamp: 1744907987 + + Accepted oracle for token: + Token Symbol: MC_USDCP + Token Address: 0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: gtusdcf + Token Address: 0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x81195F8A79f6553A4078f89eF87b21a7d3C2855A + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: mhyETH + Token Address: 0x701907283a57FF77E255C3f1aAD790466B8CE4ef + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931 + Heartbeat: 86400 + -------------------------------- + + === Oracle Acceptance Summary === + Total tokens checked: 5 + Oracles accepted: 3 + Oracles not ready: 2 + + === Oracles Not Ready for Acceptance === + 1. USDC (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48) + Price Feed: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Backup Price Feed: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Heartbeat: 86400 + Status: Oracle is already configured with the correct values + --- + 2. WETH (0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) + Price Feed: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Backup Price Feed: 0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4 + Heartbeat: 86400 + Status: Oracle is already configured with the correct values + --- + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/accept-oracles-20250515-log.txt b/deployments/eth-mainnet/accept-oracles-20250515-log.txt new file mode 100644 index 0000000..28b24b6 --- /dev/null +++ b/deployments/eth-mainnet/accept-oracles-20250515-log.txt @@ -0,0 +1,28 @@ +Accepted oracle for token: + Token Symbol: PT-slvlUSD-25SEP2025 + Token Address: 0x2CA5f2C4300450D53214B00546795c1c07B89acB + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x5042768E83E2b5F9A7251A41C4E66855DD65fe31 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: PT-mMEV-31JUL2025 + Token Address: 0x1132065009850C72E27B7950C0f9285d1D103589 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: mMEV + Token Address: 0x030b69280892c888670EDCDCD8B69Fd8026A0BF3 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61 + Heartbeat: 86400 + -------------------------------- + Accepted oracle for token: + Token Symbol: XAUM + Token Address: 0x2103E845C5E135493Bb6c2A4f0B8651956eA8682 + Previous Oracle: 0x0000000000000000000000000000000000000000 + New Oracle: 0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6 + Heartbeat: 86400 + -------------------------------- \ No newline at end of file diff --git a/deployments/eth-mainnet/accept-oracles-20250516-log.txt b/deployments/eth-mainnet/accept-oracles-20250516-log.txt new file mode 100644 index 0000000..cf9e631 --- /dev/null +++ b/deployments/eth-mainnet/accept-oracles-20250516-log.txt @@ -0,0 +1,21 @@ +=== Checking Pending Oracles === + Oracle Aggregator Address: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Network: eth-mainnet + Current Block Timestamp: 1747362275 + + Accepted oracle for token: + Token Symbol: PT-mMEV-31JUL2025 + Token Address: 0x1132065009850C72E27B7950C0f9285d1D103589 + Previous Oracle: 0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1 + New Oracle: 0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1 + Heartbeat: 432000 + -------------------------------- + Accepted oracle for token: + Token Symbol: mMEV + Token Address: 0x030b69280892c888670EDCDCD8B69Fd8026A0BF3 + Previous Oracle: 0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61 + New Oracle: 0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61 + Heartbeat: 432000 + -------------------------------- + + === Oracle Acceptance Summary === \ No newline at end of file diff --git a/deployments/eth-mainnet/deploy-PT-cUSDO-PT-lvlUSD-markets-log.txt b/deployments/eth-mainnet/deploy-PT-cUSDO-PT-lvlUSD-markets-log.txt new file mode 100644 index 0000000..950795a --- /dev/null +++ b/deployments/eth-mainnet/deploy-PT-cUSDO-PT-lvlUSD-markets-log.txt @@ -0,0 +1,145 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.9 + Git commit hash: + 0xef905ec00b1a193aa7ed7d51a9b9e0a2688ae56f + + ===== Block Info ===== + Block number: 22451097 + Block timestamp: 1746857087 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22451097 + + ===== Market Info - 0 ===== + Market deployed at: 0xCE511791715D1A84cD2f7BfA279F92c187bb9d93 + Market name: USDC/PT-cUSDO-19JUN2025@20JUN2025 + Market symbol: USDC/PT-cUSDO-19JUN2025@20JUN2025 + Collateral (PT-cUSDO-19JUN2025) address: 0x933B9FfEE0Ad3Ef8E4DBb52688ea905826D73755 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x1B4A4208d6AfD76332206F2Aefd977aeEf108575 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x89D6CD335090d67E6A18A63F97b55d7d177D2A1B + XT deployed at: 0xC1A89e8c63f5162e78f339F138f3585F4372ece0 + GT deployed at: 0xD08C49be9063512c49DC113f1F7C00cD2519c654 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 20JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-cUSDO-19JUN2025@20JUN2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xd017E469d22AB7FfB097b9aA329391874954523b + Market name: USDC/PT-lvlUSD-25SEP2025@25JUL2025 + Market symbol: USDC/PT-lvlUSD-25SEP2025@25JUL2025 + Collateral (PT-lvlUSD-25SEP2025) address: 0x207F7205fd6c4b602Fa792C8b2B60e6006D4a0b8 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x32401387EDCB60CD74E2FCae50B3C542E03B1ec5 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xc53C94AaeECc2f58aC64f97eF26F6947B8a1fa49 + XT deployed at: 0x13Dd004a37cD8E35ECEA7379Ab45BD03c1F4E249 + GT deployed at: 0x022E7d8585f9214bBE29077501Ce938e552F8D5e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 25JUL2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-25SEP2025@25JUL2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x7526D036cDDbD3bdFDd8370D75304b822740b291 + Market name: USDC/PT-lvlUSD-25SEP2025@26SEP2025 + Market symbol: USDC/PT-lvlUSD-25SEP2025@26SEP2025 + Collateral (PT-lvlUSD-25SEP2025) address: 0x207F7205fd6c4b602Fa792C8b2B60e6006D4a0b8 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x32401387EDCB60CD74E2FCae50B3C542E03B1ec5 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x51Ae9eF7395A46E2861fE6b93F97728f9595e6e5 + XT deployed at: 0xA95cDaaC1Bf0aF025CEd0F259ac74cdec7503450 + GT deployed at: 0x6fA797c9675880654f098B554AE5B9CFdd6B2310 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 26SEP2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-25SEP2025@26SEP2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 3.943883546 gwei + +Estimated total gas used for script: 5214161 + +Estimated amount required: 0.020564043774094906 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xce511791715d1a84cd2f7bfa279f92c187bb9d93, 0x89d6cd335090d67e6a18a63f97b55d7d177d2a1b, 0xc1a89e8c63f5162e78f339f138f3585f4372ece0, 0xd08c49be9063512c49dc113f1f7c00cd2519c654, 0xd017e469d22ab7ffb097b9aa329391874954523b, 0xc53c94aaeecc2f58ac64f97ef26f6947b8a1fa49, 0x13dd004a37cd8e35ecea7379ab45bd03c1f4e249, 0x022e7d8585f9214bbe29077501ce938e552f8d5e, 0x7526d036cddbd3bdfdd8370d75304b822740b291, 0x51ae9ef7395a46e2861fe6b93f97728f9595e6e5, 0xa95cdaac1bf0af025ced0f259ac74cdec7503450, 0x6fa797c9675880654f098b554ae5b9cfdd6b2310]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet/deploy-eth-mainnet-oracle-aggregator-0401-log.txt b/deployments/eth-mainnet/deploy-eth-mainnet-oracle-aggregator-0401-log.txt new file mode 100644 index 0000000..81ca312 --- /dev/null +++ b/deployments/eth-mainnet/deploy-eth-mainnet-oracle-aggregator-0401-log.txt @@ -0,0 +1,21 @@ +== Logs == + Network: eth-mainnet + Deployer balance: 158879257545733090 + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175070 + Block timestamp: 1743522719 + + ===== Oracle Aggregator Info ===== + Deployer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Admin: 0x8409a9C1A911CED491892c5694E43994c9d47E8f + Oracle Aggregator deployed at: 0xE3a31690392E8E18DC3d862651C079339E2c1ADE + Oracle Timelock: 43200 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/deploy-eth-markets-20250515-log.txt b/deployments/eth-mainnet/deploy-eth-markets-20250515-log.txt new file mode 100644 index 0000000..8ca0649 --- /dev/null +++ b/deployments/eth-mainnet/deploy-eth-markets-20250515-log.txt @@ -0,0 +1,197 @@ +./script.sh eth-mainnet deploy:market --broadcast --verify +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.9 + Git commit hash: + 0x468bc0ff42983731ee2c257bd0d26cff9cd7447b + + ===== Block Info ===== + Block number: 22482505 + Block timestamp: 1747239083 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22482505 + + ===== Market Info - 0 ===== + Market deployed at: 0x9D7386F68d9001a809860B4D88EC8E2cc3DD81B0 + Market name: USDC/PT-slvlUSD-25SEP2025@26SEP2025 + Market symbol: USDC/PT-slvlUSD-25SEP2025@26SEP2025 + Collateral (PT-slvlUSD-25SEP2025) address: 0x2CA5f2C4300450D53214B00546795c1c07B89acB + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x5042768E83E2b5F9A7251A41C4E66855DD65fe31 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x831a11a25a98715e632A51D46A6296dA47883743 + XT deployed at: 0x733F08C07fe2d37c86516aBE830Fc2756E56ac1C + GT deployed at: 0x68DCe038aF76f907617A0E648e23011143774e8A + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 26SEP2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 6000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-slvlUSD-25SEP2025@26SEP2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x08d6E7D4F49f6e34878a6f35DB96F3130c43245F + Market name: USDC/PT-mMEV-31JUL2025@01AUG2025 + Market symbol: USDC/PT-mMEV-31JUL2025@01AUG2025 + Collateral (PT-mMEV-31JUL2025) address: 0x1132065009850C72E27B7950C0f9285d1D103589 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x8445C7A468Bc74D9A6Af8006F36fE5703ccae230 + XT deployed at: 0x38636a20a312094aC71D73481A2FC51E691c5680 + GT deployed at: 0x94257D83ba7B89A53F6bb4dfa282D1C992118986 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 01AUG2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 6000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-mMEV-31JUL2025@01AUG2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x6C7B36f0a2136CB0da7b38293925d9af06895C20 + Market name: USDC/mMEV@01AUG2025 + Market symbol: USDC/mMEV@01AUG2025 + Collateral (mMEV) address: 0x030b69280892c888670EDCDCD8B69Fd8026A0BF3 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xFc97e7b4728d81b275DAd8701F2a53b72e5A0898 + XT deployed at: 0x56c7334191D0CC03043f5e6203C56245de3D9bCa + GT deployed at: 0x4bdf64B59A1cadaB0ff34E18cDee225435D0479E + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 01AUG2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 6000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-mMEV@01AUG2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0x975CBA8Bad13EF86BC4d2BBb3Eb7497327c640d1 + Market name: USDC/XAUm@27JUN2025 + Market symbol: USDC/XAUm@27JUN2025 + Collateral (XAUM) address: 0x2103E845C5E135493Bb6c2A4f0B8651956eA8682 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xF8c1CdA465071665D3ECAf906732899186fD4856 + XT deployed at: 0xf7e8F91286E3D4685A4D8e4F2a7413FE273DB503 + GT deployed at: 0x6216D113CbBC1c4a1017699E691E949D1Dee8812 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 6000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-XAUM@27JUN2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x7D042A2800C2Bf66A2Af99014c96513Bc4CEfeda + Market name: WBTC/sUSDe@27JUN2025 + Market symbol: WBTC/sUSDe@27JUN2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Underlying heartbeat: 86400 + FT deployed at: 0x775157A35b1EfB4D86c5bC732f047758085d2127 + XT deployed at: 0x91BC1c8dDe63ec666397a7e1500aCbD9b028fEA3 + GT deployed at: 0xe173C8D8192d20D820061D04323c3E89Aa836a4c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 3000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WBTC-sUSDe@27JUN2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0xc7559e952666fac90206758e664f86D09e7f1f72 + Market name: WETH/sUSDe@27JUN2025 + Market symbol: WETH/sUSDe@27JUN2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 86400 + FT deployed at: 0x7337261Cf19cc2D2146F6A30Dd4Fb186e31728cC + XT deployed at: 0x0fE1a8E392F4c03eedb805260C12716B4B4Ed68F + GT deployed at: 0xdf7E3C6BA0239E1933E431ad68Be7861ea51387e + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 3000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-sUSDe@27JUN2025.json + + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/deploy-eth-markets-mature-20250627-log.txt b/deployments/eth-mainnet/deploy-eth-markets-mature-20250627-log.txt new file mode 100644 index 0000000..24387c4 --- /dev/null +++ b/deployments/eth-mainnet/deploy-eth-markets-mature-20250627-log.txt @@ -0,0 +1,270 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.9 + Git commit hash: + 0x60cf3b55c07eb0c4735685b95514e2fe1a55d2e5 + + ===== Block Info ===== + Block number: 22430551 + Block timestamp: 1746605843 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22430551 + + ===== Market Info - 0 ===== + Market deployed at: 0xf0dE37189366F0f3AAe2795160763F3F34797B11 + Market name: WETH/weETH@27JUN2025 + Market symbol: WETH/weETH@27JUN2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 86400 + FT deployed at: 0xe8503FFEcc5D4065ba0eB11DCbdcD47A4F752572 + XT deployed at: 0xf98042dD2ca30440d27373ECA2727e9540897EBf + GT deployed at: 0x272f222de90ADF7B1cCA859d685beC738993bA6C + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 4000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@27JUN2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x22Cd4c59eD4bb2ad852892518073056441c55BFE + Market name: USDC/wstETH@27JUN2025 + Market symbol: USDC/wstETH@27JUN2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x285a4618d3349e2Fff63f750FCaC94Fb002f932e + XT deployed at: 0x874AdBD54F7bA2cF46f97BB569AB7BA4cB8f89C9 + GT deployed at: 0xec4Aa75e5C4b09eb65761f8328252d3509F232C0 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@27JUN2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x988a287c4340B18665cC5E128DC76906A5C839e6 + Market name: USDC/sUSDe@27JUN2025 + Market symbol: USDC/sUSDe@27JUN2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xcE7decb042927EC42DB8ECc75A8E526824376A3e + XT deployed at: 0x13b29958f0F6eB39a587704034E531E4090E9D59 + GT deployed at: 0xDBa3379F0406F5c90eb74D27e511e4FB4D10B6B3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@27JUN2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xaBE8ab2223c846466Eb30f5137A7f05106c9d0c4 + Market name: WETH/pufETH@27JUN2025 + Market symbol: WETH/pufETH@27JUN2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 86400 + FT deployed at: 0x23Ed558080CEB4755a24d841E24558e85B1DDb18 + XT deployed at: 0xA97Ba034797386d9987c88Beff430B40c4fDc6c5 + GT deployed at: 0xb4a859d44470F0168464a5DB99f058CF9A7B4df1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 4000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@27JUN2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x9904F3b879385033faa31B50d1D63cb80b3495A3 + Market name: USDC/WBTC@27JUN2025 + Market symbol: USDC/WBTC@27JUN2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x75b8ea5178baA489c9ab208Ec80AF10780927890 + XT deployed at: 0x6182feffC89A170154a991fe09c31765bA5441C8 + GT deployed at: 0x42C57cDE40B26c5E68c28e687eACa7B83dC48377 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@27JUN2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x1A69127188B72A155165255270017b4c78f31b88 + Market name: USDC/cbBTC@27JUN2025 + Market symbol: USDC/cbBTC@27JUN2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x0f8A293C6f7E578d46B1da2A44A5A65ce874da2d + XT deployed at: 0x5ba653575Ea036d734d703EAF9dE2Fe8936A6979 + GT deployed at: 0xe81E8F37aC256253c78f5D880AD3d1CFCd00a5B2 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@27JUN2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x8d501c7640595EC9D2A39Fbd30dED7672e9631BD + Market name: lvlUSD/slvlUSD@27JUN2025 + Market symbol: lvlUSD/slvlUSD@27JUN2025 + Collateral (slvlUSD) address: 0x4737D9b4592B40d51e110b94c9C043c6654067Ae + Underlying (lvlUSD) address: 0x7C1156E515aA1A2E851674120074968C905aAF37 + Collateral price feed address: 0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x53b52637923839676F6441C7e824D91478F882D3 + XT deployed at: 0xc5421aAD009F200b60a8cC67B60cF6f774a1E693 + GT deployed at: 0xC03746e7441A523686D93C5282557e3970065d6a + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@27JUN2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0xD316d4494c840F8A758FB6184e9b60281e35cC02 + Market name: wstETH/inwstETHs@27JUN2025 + Market symbol: wstETH/inwstETHs@27JUN2025 + Collateral (inwstETHs) address: 0x8E0789d39db454DBE9f4a77aCEF6dc7c69f6D552 + Underlying (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Collateral price feed address: 0xbfA4F6a74c7F02FE3B52e570D782033011270CEb + Collateral heartbeat: 86400 + Underlying price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Underlying heartbeat: 86400 + FT deployed at: 0x6B3aaAB883d2B5A42276206B18C62dBd2F075B73 + XT deployed at: 0x1Ad25fC3fAD6B5fb2744Ec684c74BC301A3a26dC + GT deployed at: 0xcE6Df2c8A6B5d7f70f73a71f78c64F54bDA4DbED + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 4000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@27JUN2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 0.812900011 gwei + +Estimated total gas used for script: 11103430 + +Estimated amount required: 0.00902597836913773 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xf0de37189366f0f3aae2795160763f3f34797b11, 0xe8503ffecc5d4065ba0eb11dcbdcd47a4f752572, 0xf98042dd2ca30440d27373eca2727e9540897ebf, 0x272f222de90adf7b1cca859d685bec738993ba6c, 0x22cd4c59ed4bb2ad852892518073056441c55bfe, 0x285a4618d3349e2fff63f750fcac94fb002f932e, 0x874adbd54f7ba2cf46f97bb569ab7ba4cb8f89c9, 0xec4aa75e5c4b09eb65761f8328252d3509f232c0, 0x988a287c4340b18665cc5e128dc76906a5c839e6, 0xce7decb042927ec42db8ecc75a8e526824376a3e, 0x13b29958f0f6eb39a587704034e531e4090e9d59, 0xdba3379f0406f5c90eb74d27e511e4fb4d10b6b3, 0xabe8ab2223c846466eb30f5137a7f05106c9d0c4, 0x23ed558080ceb4755a24d841e24558e85b1ddb18, 0xa97ba034797386d9987c88beff430b40c4fdc6c5, 0xb4a859d44470f0168464a5db99f058cf9a7b4df1, 0x9904f3b879385033faa31b50d1d63cb80b3495a3, 0x75b8ea5178baa489c9ab208ec80af10780927890, 0x6182feffc89a170154a991fe09c31765ba5441c8, 0x42c57cde40b26c5e68c28e687eaca7b83dc48377, 0x1a69127188b72a155165255270017b4c78f31b88, 0x0f8a293c6f7e578d46b1da2a44a5a65ce874da2d, 0x5ba653575ea036d734d703eaf9de2fe8936a6979, 0xe81e8f37ac256253c78f5d880ad3d1cfcd00a5b2, 0x8d501c7640595ec9d2a39fbd30ded7672e9631bd, 0x53b52637923839676f6441c7e824d91478f882d3, 0xc5421aad009f200b60a8cc67b60cf6f774a1e693, 0xc03746e7441a523686d93c5282557e3970065d6a, 0xd316d4494c840f8a758fb6184e9b60281e35cc02, 0x6b3aaab883d2b5a42276206b18c62dbd2f075b73, 0x1ad25fc3fad6b5fb2744ec684c74bc301a3a26dc, 0xce6df2c8a6b5d7f70f73a71f78c64f54bda4dbed]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet/deploy-inwsteth-price-feed-log.txt b/deployments/eth-mainnet/deploy-inwsteth-price-feed-log.txt new file mode 100644 index 0000000..df8b900 --- /dev/null +++ b/deployments/eth-mainnet/deploy-inwsteth-price-feed-log.txt @@ -0,0 +1,16 @@ + forge script script/deploy/DeployPriceFeedsEthInWstETH.s.sol --rpc-url $ETH_MAINNET_RPC_URL --broadcast --verify +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠆] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + PriceFeedFactory deployed at 0xA40239B024012E427D3981c3DA055c4C5A58D0b3 + inwstETH price feed address 0x4dDD3d3F3a92939BF352d503aFd4666773fEfa1B + inwstETH last answer 213780497802 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/deploy-markets-20250417-log.txt b/deployments/eth-mainnet/deploy-markets-20250417-log.txt new file mode 100644 index 0000000..4dcb173 --- /dev/null +++ b/deployments/eth-mainnet/deploy-markets-20250417-log.txt @@ -0,0 +1,122 @@ +./script.sh eth-mainnet deploy:market --broadcast --verify +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.9 + Git commit hash: + 0x4402458004a3655ec11709e2f86118ae7bfd0d18 + + ===== Block Info ===== + Block number: 22286356 + Block timestamp: 1744864451 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22286356 + + ===== Market Info - 0 ===== + Market deployed at: 0xf4924D6189552ae5A7818088dA6f23Bd33281C1b + Market name: USDC/MC_USDCP@30MAY2025 + Market symbol: USDC/MC_USDCP@30MAY2025 + Collateral (MC_USDCP) address: 0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xe7b3c858FF8031DC6c84D899aEeC343c89A246e0 + XT deployed at: 0x2568d2B892b5c761e1155F4f1c05E5b61961f126 + GT deployed at: 0x5C4db8DB0CA1d040e7fD6FB2AfAA81032df0a4f7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_USDCP@30MAY2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0x2EaafFbCdE68337341C0eC65A862e648A413dc14 + Market name: USDC/gtusdcf@30MAY2025 + Market symbol: USDC/gtusdcf@30MAY2025 + Collateral (gtusdcf) address: 0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x81195F8A79f6553A4078f89eF87b21a7d3C2855A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x09ec4BE9869BfAbF9fF6652fe7703276D6F5E5d8 + XT deployed at: 0x9c7fBdd0055604bbf7736B153407e9513C818C22 + GT deployed at: 0x8Ee590224c6cddE0d27FB60B37B05784dD794E59 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-gtusdcf@30MAY2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0xb9919eE2169a7dA664AD024C6dDCF0ccD4121C26 + Market name: WETH/mhyETH@30MAY2025 + Market symbol: WETH/mhyETH@30MAY2025 + Collateral (mhyETH) address: 0x701907283a57FF77E255C3f1aAD790466B8CE4ef + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 86400 + FT deployed at: 0xbC9c191613c6e77c03A3F792579520d455e852a6 + XT deployed at: 0x1aA1fF0D8c47066C72902040716F91Df18090ADc + GT deployed at: 0x489f04a08d6ee13789cd59c5ce241494b063b3DB + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 30MAY2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-mhyETH@30MAY2025.json + + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/deploy-markets-pt-susde-and-pt-pufeth-log.txt b/deployments/eth-mainnet/deploy-markets-pt-susde-and-pt-pufeth-log.txt new file mode 100644 index 0000000..7380a37 --- /dev/null +++ b/deployments/eth-mainnet/deploy-markets-pt-susde-and-pt-pufeth-log.txt @@ -0,0 +1,120 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify --etherscan-api-key [MASKED] +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.9 + Git commit hash: + 0x64011b4d4413cf97574d431e77a79602064cae38 + + ===== Block Info ===== + Block number: 22439649 + Block timestamp: 1746717503 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22439649 + + ===== Market Info - 0 ===== + Market deployed at: 0xdBB2D44c238c459cCB820De886ABF721EF6E6941 + Market name: USDC/PT-sUSDE-31JUL2025@01AUG2025 + Market symbol: USDC/PT-sUSDE-31JUL2025@01AUG2025 + Collateral (PT-sUSDE-31JUL2025) address: 0x3b3fB9C57858EF816833dC91565EFcd85D96f634 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x53399c17DbB2Ba67BB3B6E5bf692251267A3F861 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x39815280F3804a860a09B0FfbcCAF8a0679FF5BA + XT deployed at: 0x6CfA4b8506736dD838DCbEC5187d777801160684 + GT deployed at: 0xa7793d67dcbcc16ef92eD455Bc17594311d58d55 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 01AUG2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 10000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-31JUL2025@01AUG2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC898Fa3A26CEAcAE25cCffF6003B087948dEDE2a + Market name: WETH/PT-pufETH-26JUN2025@27JUN2025 + Market symbol: WETH/PT-pufETH-26JUN2025@27JUN2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 86400 + FT deployed at: 0x0ad67BB21bE025f9C47ceb0DB3ac490e473Afd9a + XT deployed at: 0x0E960CFde8730DA71e72b52bb1BC8ef4F4F5a9Bb + GT deployed at: 0xAB490460b78c481fdf4d10Ed85378cFa1dd342f1 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 27JUN2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 10000000 + Issue FT Fee Ref: 4000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-PT-pufETH-26JUN2025@27JUN2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 37.958381628 gwei + +Estimated total gas used for script: 3465107 + +Estimated amount required: 0.131529853887854196 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0xdbb2d44c238c459ccb820de886abf721ef6e6941, 0x39815280f3804a860a09b0ffbccaf8a0679ff5ba, 0x6cfa4b8506736dd838dcbec5187d777801160684, 0xa7793d67dcbcc16ef92ed455bc17594311d58d55, 0xc898fa3a26ceacae25ccfff6003b087948dede2a, 0x0ad67bb21be025f9c47ceb0db3ac490e473afd9a, 0x0e960cfde8730da71e72b52bb1bc8ef4f4f5a9bb, 0xab490460b78c481fdf4d10ed85378cfa1dd342f1]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet/deploy-price-feeds-20250508-log.txt b/deployments/eth-mainnet/deploy-price-feeds-20250508-log.txt new file mode 100644 index 0000000..93eed0e --- /dev/null +++ b/deployments/eth-mainnet/deploy-price-feeds-20250508-log.txt @@ -0,0 +1,34 @@ +% ./script.sh eth-mainnet script:DeployPriceFeedsEth_20250508 --broadcast --verify +== Logs == + PriceFeedFactory deployed at 0xcac930B240163fDB71b74514E8FAA113ec0dA844 + pt_sUsde_31JUL2025 price feed address 0x53399c17DbB2Ba67BB3B6E5bf692251267A3F861 + pt_sUsde_31JUL2025 last answer 98096991 + pt_lvlUSD_25SEP2025 price feed address 0x32401387EDCB60CD74E2FCae50B3C542E03B1ec5 + pt_lvlUSD_25SEP2025 last answer 97019308 + cUSDO price feed address 0xf158000de86899b5EB5E6fA3BB78F32A072bD14b + cUSDO last answer 101257254 + pt_cUSDO_19JUN2025 price feed address 0x1B4A4208d6AfD76332206F2Aefd977aeEf108575 + pt_cUSDO_19JUN2025 last answer 98917556 + wstUsr price feed address 0xD14a49eDF484ce994C3dD61c4eF36CC33C96179A + wstUsr last answer 107803645 + pt_wstUSR_25SEP2025 price feed address 0xB94D176656220Ee22CAEA8e5827BE5854cB42035 + pt_wstUSR_25SEP2025 last answer 97198117 + +## Setting up 1 EVM. + +========================== + + +% ./script.sh eth-mainnet script:DeployPriceFeedsEth_20250508_Backup --broadcast --verify +== Logs == + PriceFeedFactory deployed at 0xcac930B240163fDB71b74514E8FAA113ec0dA844 + pt_sUsde_31JUL2025 price feed address 0x28eBF137e6659f9037b2393D7f52D37CD963B51a + pt_sUsde_31JUL2025 last answer 98307229 + wstUsr price feed address 0xc7c005753d649a432EbC858f82B7bDd4338Fa333 + wstUsr last answer 107785311 + pt_wstUSR_25SEP2025 price feed address 0xBA06F387B245aE60289f16FE208867C1eE38934D + pt_wstUSR_25SEP2025 last answer 97181714 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/deploy-price-feeds-morpho-20250417-log.txt b/deployments/eth-mainnet/deploy-price-feeds-morpho-20250417-log.txt new file mode 100644 index 0000000..02bf798 --- /dev/null +++ b/deployments/eth-mainnet/deploy-price-feeds-morpho-20250417-log.txt @@ -0,0 +1,21 @@ +% forge script script/deploy/DeployPriceFeedsMorpho.s.sol --rpc-url $ETH_MAINNET_RPC_URL --broadcast --verify +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + gtusdcf price feed address 0x81195F8A79f6553A4078f89eF87b21a7d3C2855A + gtusdcf last answer 101266087 + mhyETH price feed address 0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931 + mhyETH last answer 161205311756 + mhyETHBackup price feed address 0x00B96F0eBf39158cb4E3F801073966bD6Db7959C + mhyETHBackup last answer 162030447776 + mevUsdcPrime price feed address 0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322 + mevUsdcPrime last answer 99992088 + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/deploy_markets_test_0402_log.txt b/deployments/eth-mainnet/deploy_markets_test_0402_log.txt new file mode 100644 index 0000000..236c256 --- /dev/null +++ b/deployments/eth-mainnet/deploy_markets_test_0402_log.txt @@ -0,0 +1,370 @@ +Running on eth-mainnet... +Deployment type: market +=== Configuration === +Operation: Deployment +Type: market +Network: eth-mainnet +Script: DeployMarket.s.sol +Path: script/deploy/DeployMarket.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting deployment... +Executing: forge script script/deploy/DeployMarket.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +No files changed, compilation skipped +Script ran successfully. + +== Logs == + ===== Git Info ===== + Git branch: deploy/v1.0.8 + Git commit hash: + 0xf0e7aead33f178cc18e33b5c6e07f406fb95194d + + ===== Block Info ===== + Block number: 22175185 + Block timestamp: 1743524099 + + ===== Address Info ===== + Deplyer: 0x56E3665038C5F0b56Cc7D81aC66C86521274B251 + Deployed at block number: 22175185 + + ===== Market Info - 0 ===== + Market deployed at: 0x4a20DdEB8696b1f542649626889522068cc19438 + Market name: WETH/weETH@30MAY2025 + Market symbol: WETH/weETH@30MAY2025 + Collateral (weETH) address: 0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136 + Collateral heartbeat: 21600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x00B210A7f79653A0fe7e2bc31d6Fe3026421195d + XT deployed at: 0x465c30b940E792262Ef65B7Fe7A5bAd3b5b7f034 + GT deployed at: 0xca3F986978ADEf5aA8e4F9e4F3d27f6f4Eb3f47d + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@02APR2025.json + + ===== Market Info - 1 ===== + Market deployed at: 0xC8c3A49b64dB371F96EdC15941e043966297Ea6b + Market name: USDC/wstETH@30MAY2025 + Market symbol: USDC/wstETH@30MAY2025 + Collateral (wstETH) address: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x164b276057258d81941e97B0a900D4C7B358bCe0 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x19632ff799BA54B54934b52a89964F6cb12D396f + XT deployed at: 0xe459c64a852Df70Ea7D0cc46142A1a0d8BCd4f2A + GT deployed at: 0x9CEA72e4C7Fd1dd0bb2D0AAF98D756B1f85e096D + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@02APR2025.json + + ===== Market Info - 2 ===== + Market deployed at: 0x54ACdb3da45bBDEb1a53e1E3F6DB51C8384c7F9c + Market name: USDC/sUSDe@30MAY2025 + Market symbol: USDC/sUSDe@30MAY2025 + Collateral (sUSDe) address: 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x3ebabb95e4276DD2850666a95037f5EE3bb798Bb + XT deployed at: 0xb7d4329b11Dff286890F4d7e5b10763E09E8804C + GT deployed at: 0x28C108FD44B2E58DD9B07CBE453c0BCF836b8CB7 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@02APR2025.json + + ===== Market Info - 3 ===== + Market deployed at: 0xf2F9b0fDD5D22e574421A7Ee0E29e410E63C70A9 + Market name: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Market symbol: USDC/PT-sUSDE-29MAY2025@30MAY2025 + Collateral (PT-sUSDE-29MAY2025) address: 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x8f29Df42c617C222Bc2B416AC8a022E85e853276 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x594Db033Ade81E0C8182B66d2B07fbc97452d1FA + XT deployed at: 0x544786112d542910634109BcCEF84C3Deb1b65e0 + GT deployed at: 0x81CAc518B14B28570C667A143F801bF2e05b6BEe + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-29MAY2025@02APR2025.json + + ===== Market Info - 4 ===== + Market deployed at: 0x10aCD317ebf3F65e30c72720D89c55B7C68a9628 + Market name: USDC/USUALUSDC+@30MAY2025 + Market symbol: USDC/USUALUSDC+@30MAY2025 + Collateral (USUALUSDC+) address: 0xd63070114470f685b75B74D60EEc7c1113d33a3D + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2a2a0e32c54670045256EBcA681887E32e689E97 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xA03710F73585cb5458F43739624611633Bf24173 + XT deployed at: 0x80525c75690102bb024BcEd8bE81D18A56172EC0 + GT deployed at: 0xe2e5403923B0421FA5a9D28c1012aeAFfc820f02 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-USUALUSDC+@02APR2025.json + + ===== Market Info - 5 ===== + Market deployed at: 0x49913B7Bd178e21FaC84C3dED810Ff4CcDcb8403 + Market name: WETH/MCwETH@30MAY2025 + Market symbol: WETH/MCwETH@30MAY2025 + Collateral (MCwETH) address: 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006 + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x8CDe48E20b5d77C3ec0fbCbf50d0C78B2DE11264 + XT deployed at: 0x8b596614c9ac30bd9DF615c3C18F0f05a97F0779 + GT deployed at: 0xBA03824B38E83B7CBAF3Fcb5aF02EF8342A110d8 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-MCwETH@02APR2025.json + + ===== Market Info - 6 ===== + Market deployed at: 0x69E1A695Ee24e7BcFc55d2dA7DfD479E4C7Eb6A3 + Market name: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Market symbol: pufETH/PT-pufETH-26JUN2025@30MAY2025 + Collateral (PT-pufETH-26JUN2025) address: 0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D + Underlying (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Collateral price feed address: 0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1 + Collateral heartbeat: 86400 + Underlying price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Underlying heartbeat: 86400 + FT deployed at: 0xc7d5476d361C8d0E5c0478EA320431AD4a49A558 + XT deployed at: 0xe1710D5449241ce311Bfcefb5272594ECD930ec0 + GT deployed at: 0x4B87E9281de9573f2025565E632bdb8F136766E5 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@02APR2025.json + + ===== Market Info - 7 ===== + Market deployed at: 0x9dA149D4Bc9eF4e6Eb1D131E837270f76dc62e79 + Market name: USDC/eUSDe@29MAY2025 + Market symbol: USDC/eUSDe@29MAY2025 + Collateral (eUSDe) address: 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3 + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD667a61e822564e1399f73196c73B2C41bCBda69 + XT deployed at: 0x2348B91F2037799d6AE604D792101534461DB06E + GT deployed at: 0x1aE5482Db2883e1ae8CDBFDbaE95539266F1bF32 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@02APR2025.json + + ===== Market Info - 8 ===== + Market deployed at: 0x9cde69Ea28c9125060F86eB982305BafaE57f585 + Market name: WETH/pufETH@30MAY2025 + Market symbol: WETH/pufETH@30MAY2025 + Collateral (pufETH) address: 0xD9A442856C234a39a81a089C06451EBAa4306a72 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761 + Collateral heartbeat: 86400 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x4bDD2b0f934EECCE01A8Fc47E3762Ce86C9D061F + XT deployed at: 0x63B96518024b49C8F16104fDFd9d94a79A3d185C + GT deployed at: 0xa78bE568bc5ec42C8E41734dADcb86D3dde73af3 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@02APR2025.json + + ===== Market Info - 9 ===== + Market deployed at: 0x565656a354F6C2953EB2D00DC7e2e0Ab815e19E7 + Market name: USDC/WBTC@30MAY2025 + Market symbol: USDC/WBTC@30MAY2025 + Collateral (WBTC) address: 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c + Collateral heartbeat: 3600 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0x1184866Ed937F4605efc100c1f18E028F7CBDD86 + XT deployed at: 0x3F56b53953adf3a65f5Bb8E8Dce1C4926e1D629c + GT deployed at: 0x315f180e74247E01ca0377244Eb6b6D1c7444452 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@02APR2025.json + + ===== Market Info - 10 ===== + Market deployed at: 0x0ed76A80D639E7Bf88524b63429bB841c1633E60 + Market name: USDC/cbBTC@30MAY2025 + Market symbol: USDC/cbBTC@30MAY2025 + Collateral (cbBTC) address: 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf + Underlying (USDC) address: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 + Collateral price feed address: 0x2665701293fCbEB223D11A08D826563EDcCE423A + Collateral heartbeat: 86400 + Underlying price feed address: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 + Underlying heartbeat: 86400 + FT deployed at: 0xD4771df4a0f6338f521512A1651D8DB7EF5Af633 + XT deployed at: 0x4bbc10317e5b70B6B491836F5B2b496EE35f5E31 + GT deployed at: 0xFF601c3788236F231a8771cACBbB3087D0Ee7A2c + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 2000000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@02APR2025.json + + ===== Market Info - 11 ===== + Market deployed at: 0x8c07c10a0a3530a9fB64c65f109A32F7B4b2DB80 + Market name: WETH/gtWETH@30MAY2025 + Market symbol: WETH/gtWETH@30MAY2025 + Collateral (gtWETH) address: 0x2371e134e3455e0593363cBF89d3b6cf53740618 + Underlying (WETH) address: 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 + Collateral price feed address: 0xdc0115fe09600FeDa15D317cCa3D2f21F389036d + Collateral heartbeat: 3600 + Underlying price feed address: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 + Underlying heartbeat: 3600 + FT deployed at: 0x0469A60F8fbc0c35c4D1D965a50A6Bd29c9dAB8C + XT deployed at: 0xE292927A017d58823957A83ea5EFeAF9C37D6F94 + GT deployed at: 0x7AdE4961Fccba087E8b4De84E8be61098Daf0230 + + Treasurer: 0x719e77027952929ed3060dbFFC5D43EC50c1cf79 + Maturity: 02APR2025 + Salt: 0 + Lend Taker Fee Ratio: 2000000 + Lend Maker Fee Ratio: 2000000 + Borrow Taker Fee Ratio: 3000000 + Borrow Maker Fee Ratio: 3000000 + Mint GT Fee Ratio: 1000000 + Issue FT Fee Ref: 400000 + Market config written to: /Users/vincent/Documents/ts-codes/termmax-contract/deployments/eth-mainnet/eth-mainnet-market-WETH-gtWETH@02APR2025.json + + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.079885262 gwei + +Estimated total gas used for script: 17308392 + +Estimated amount required: 0.087924645429718704 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. + +We haven't found any matching bytecode for the following contracts: [0x4a20ddeb8696b1f542649626889522068cc19438, 0x00b210a7f79653a0fe7e2bc31d6fe3026421195d, 0x465c30b940e792262ef65b7fe7a5bad3b5b7f034, 0xca3f986978adef5aa8e4f9e4f3d27f6f4eb3f47d, 0xc8c3a49b64db371f96edc15941e043966297ea6b, 0x19632ff799ba54b54934b52a89964f6cb12d396f, 0xe459c64a852df70ea7d0cc46142a1a0d8bcd4f2a, 0x9cea72e4c7fd1dd0bb2d0aaf98d756b1f85e096d, 0x54acdb3da45bbdeb1a53e1e3f6db51c8384c7f9c, 0x3ebabb95e4276dd2850666a95037f5ee3bb798bb, 0xb7d4329b11dff286890f4d7e5b10763e09e8804c, 0x28c108fd44b2e58dd9b07cbe453c0bcf836b8cb7, 0xf2f9b0fdd5d22e574421a7ee0e29e410e63c70a9, 0x594db033ade81e0c8182b66d2b07fbc97452d1fa, 0x544786112d542910634109bccef84c3deb1b65e0, 0x81cac518b14b28570c667a143f801bf2e05b6bee, 0x10acd317ebf3f65e30c72720d89c55b7c68a9628, 0xa03710f73585cb5458f43739624611633bf24173, 0x80525c75690102bb024bced8be81d18a56172ec0, 0xe2e5403923b0421fa5a9d28c1012aeaffc820f02, 0x49913b7bd178e21fac84c3ded810ff4ccdcb8403, 0x8cde48e20b5d77c3ec0fbcbf50d0c78b2de11264, 0x8b596614c9ac30bd9df615c3c18f0f05a97f0779, 0xba03824b38e83b7cbaf3fcb5af02ef8342a110d8, 0x69e1a695ee24e7bcfc55d2da7dfd479e4c7eb6a3, 0xc7d5476d361c8d0e5c0478ea320431ad4a49a558, 0xe1710d5449241ce311bfcefb5272594ecd930ec0, 0x4b87e9281de9573f2025565e632bdb8f136766e5, 0x9da149d4bc9ef4e6eb1d131e837270f76dc62e79, 0xd667a61e822564e1399f73196c73b2c41bcbda69, 0x2348b91f2037799d6ae604d792101534461db06e, 0x1ae5482db2883e1ae8cdbfdbae95539266f1bf32, 0x9cde69ea28c9125060f86eb982305bafae57f585, 0x4bdd2b0f934eecce01a8fc47e3762ce86c9d061f, 0x63b96518024b49c8f16104fdfd9d94a79a3d185c, 0xa78be568bc5ec42c8e41734dadcb86d3dde73af3, 0x565656a354f6c2953eb2d00dc7e2e0ab815e19e7, 0x1184866ed937f4605efc100c1f18e028f7cbdd86, 0x3f56b53953adf3a65f5bb8e8dce1c4926e1d629c, 0x315f180e74247e01ca0377244eb6b6d1c7444452, 0x0ed76a80d639e7bf88524b63429bb841c1633e60, 0xd4771df4a0f6338f521512a1651d8db7ef5af633, 0x4bbc10317e5b70b6b491836f5b2b496ee35f5e31, 0xff601c3788236f231a8771cacbbb3087d0ee7a2c, 0x8c07c10a0a3530a9fb64c65f109a32f7b4b2db80, 0x0469a60f8fbc0c35c4d1d965a50a6bd29c9dab8c, 0xe292927a017d58823957a83ea5efeaf9c37d6f94, 0x7ade4961fccba087e8b4de84e8be61098daf0230]. + +This may occur when resuming a verification, but the underlying source code or compiler version has changed. +## +Start verification for (0) contracts +All (0) contracts were verified! + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployMarket.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployMarket.s.sol/1/run-latest.json + +[SUCCESS] market deployment to eth-mainnet completed successfully! diff --git a/deployments/eth-mainnet/eth-mainnet-V2-adapters-03JUN2025.json b/deployments/eth-mainnet/eth-mainnet-V2-adapters-03JUN2025.json new file mode 100644 index 0000000..cf31edf --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-V2-adapters-03JUN2025.json @@ -0,0 +1,26 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1748946155", + "dateString": "03JUN2025", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x0489591746b16bb969ea123423e618e76b7e2dcb", + "blockInfo": { + "number": "22623501", + "timestamp": "1748946155" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x0000000000000000000000000000000000000000", + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "contracts": { + "odosV2Adapter": "0xDDBDF3B7e314A806aC296E6932135Db026B11a85", + "pendleSwapV3Adapter": "0x01D3BAb30674740b3d3A323f0Bac067a82c4FC9c", + "uniswapV3Adapter": "0xCCf64e1A69273ACb15eAd25BC60D436a047F404f", + "erc4626VaultAdapter": "0xb57dd1092390eDd37EC91e86d11BA530D748D63C" + }, + "routerAddresses": { + "uniswapV3Router": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "odosV2Router": "0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559", + "pendleSwapV3Router": "0x888888888889758F76e7103c6CbF23ABbF58F946" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-access-manager.json b/deployments/eth-mainnet/eth-mainnet-access-manager.json new file mode 100644 index 0000000..a1a5b6a --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743155675", + "gitBranch": "deploy/v1.0.5", + "gitCommitHash": "0x0x65c418860c22aecb27054e7a8c3207a4f87ad6af", + "blockInfo": { + "number": "22144647", + "timestamp": "1743155675" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "accessManager": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-accumulated.json b/deployments/eth-mainnet/eth-mainnet-accumulated.json new file mode 100644 index 0000000..baeda6a --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-accumulated.json @@ -0,0 +1,743 @@ +{ + "configNum": "18", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "594347733812822000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "backupPriceFeedAddr": "0x24CFEf73A30b2CEEC23d3659fA98B491D996F152", + "heartBeat": "86400", + "name": "Wrapped eETH", + "symbol": "weETH", + "decimals": "18", + "initialPrice": "168251670000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/weETH@30MAY2025", + "marketSymbol": "WETH/weETH@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "527664486788797000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "priceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "backupPriceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "189514360000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/wstETH@30MAY2025", + "marketSymbol": "USDC/wstETH@30MAY2025" + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "862068965517241000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "backupPriceFeedAddr": "0xb99D174ED06c83588Af997c8859F93E83dD4733f", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "115999999", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/sUSDe@30MAY2025", + "marketSymbol": "USDC/sUSDe@30MAY2025" + }, + "configs_3": { + "salt": 0, + "collateralCapForGt": "1025010250102500000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0x333651c5710Fc8C4fe65E5D15E5639348F267D7c", + "heartBeat": "86400", + "name": "PT Ethena sUSDE 29MAY2025", + "symbol": "PT-sUSDE-29MAY2025", + "decimals": "18", + "initialPrice": "97560000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025" + }, + "configs_4": { + "salt": 0, + "collateralCapForGt": "952380952380952000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "priceFeedAddr": "0xF8f79b5b527e2cb3900956eB0D17A4D4aA6ae220", + "backupPriceFeedAddr": "0xF8f79b5b527e2cb3900956eB0D17A4D4aA6ae220", + "heartBeat": "86400", + "name": "USUAL Boosted USDC", + "symbol": "USUALUSDC+", + "decimals": "18", + "initialPrice": "105000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/USUALUSDC+@30MAY2025", + "marketSymbol": "USDC/USUALUSDC+@30MAY2025" + }, + "configs_5": { + "salt": 0, + "collateralCapForGt": "613081294525419000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "priceFeedAddr": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "backupPriceFeedAddr": "0x3b82860EC8815Fc2A1dcC53580bd647b0042C93e", + "heartBeat": "86400", + "name": "MEV Capital wETH", + "symbol": "MCwETH", + "decimals": "18", + "initialPrice": "163110510000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/MCwETH@30MAY2025", + "marketSymbol": "WETH/MCwETH@30MAY2025" + }, + "configs_6": { + "salt": 0, + "collateralCapForGt": "678858023394089000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "183668000000" + }, + "collateralConfig": { + "tokenAddr": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "priceFeedAddr": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "backupPriceFeedAddr": "0x5D18F4cB3c95568F315cb1C1eF48261a5A4D6053", + "heartBeat": "86400", + "name": "PT Puffer ETH 26JUN2025", + "symbol": "PT-pufETH-26JUN2025", + "decimals": "18", + "initialPrice": "147306210000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025" + }, + "configs_7": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748476800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "priceFeedAddr": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "backupPriceFeedAddr": "0x6B09d473dB784D840E307Cb3Da63CbA79D300CAc", + "heartBeat": "86400", + "name": "Ethereal Pre-deposit Vault", + "symbol": "eUSDe", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/eUSDe@29MAY2025", + "marketSymbol": "USDC/eUSDe@29MAY2025" + }, + "configs_8": { + "salt": 0, + "collateralCapForGt": "604886995192922000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "165320140000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/pufETH@30MAY2025", + "marketSymbol": "WETH/pufETH@30MAY2025" + }, + "configs_9": { + "salt": 0, + "collateralCapForGt": "1191418262", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "priceFeedAddr": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "backupPriceFeedAddr": "0xAB7f623fb2F6fea6601D4350FA0E2290663C28Fc", + "heartBeat": "86400", + "name": "Wrapped BTC", + "symbol": "WBTC", + "decimals": "8", + "initialPrice": "8393358000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WBTC@30MAY2025", + "marketSymbol": "USDC/WBTC@30MAY2025" + }, + "configs_10": { + "salt": 0, + "collateralCapForGt": "1191418262", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "priceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "backupPriceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400", + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC", + "decimals": "8", + "initialPrice": "8393358000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/cbBTC@30MAY2025", + "marketSymbol": "USDC/cbBTC@30MAY2025" + }, + "configs_11": { + "salt": 0, + "collateralCapForGt": "617578223336119000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "priceFeedAddr": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "backupPriceFeedAddr": "0x3A44454F173b082F1dbbA9587b046Dc90B2F0AE7", + "heartBeat": "86400", + "name": "Gauntlet WETH Prime", + "symbol": "gtWETH", + "decimals": "18", + "initialPrice": "161922810000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/gtWETH@30MAY2025", + "marketSymbol": "WETH/gtWETH@30MAY2025" + }, + "configs_12": { + "salt": 0, + "collateralCapForGt": "1025010250102500000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "96000000", + "maxLtv": "94000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "backupPriceFeedAddr": "0xb99D174ED06c83588Af997c8859F93E83dD4733f", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "115999999" + }, + "collateralConfig": { + "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0x333651c5710Fc8C4fe65E5D15E5639348F267D7c", + "heartBeat": "86400", + "name": "PT Ethena sUSDE 29MAY2025", + "symbol": "PT-sUSDE-29MAY2025", + "decimals": "18", + "initialPrice": "97560000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025", + "marketSymbol": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025" + }, + "configs_13": { + "salt": 0, + "collateralCapForGt": "941442289587648000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x7C1156E515aA1A2E851674120074968C905aAF37", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "Level USD", + "symbol": "lvlUSD", + "decimals": "18", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x4737d9b4592b40d51e110b94c9c043c6654067ae", + "priceFeedAddr": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "backupPriceFeedAddr": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "heartBeat": "86400", + "name": "Staked lvlUSD", + "symbol": "slvlUSD", + "decimals": "18", + "initialPrice": "106220000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "lvlUSD/slvlUSD@30MAY2025", + "marketSymbol": "lvlUSD/slvlUSD@30MAY2025" + }, + "configs_14": { + "salt": 0, + "collateralCapForGt": "1014919313914540000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x9BcA74F805AB0a22DDD0886dB0942199a0feBa71", + "priceFeedAddr": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "backupPriceFeedAddr": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "heartBeat": "86400", + "name": "PT lvlUSD 29MAY2025", + "symbol": "PT-lvlUSD-29MAY2025", + "decimals": "18", + "initialPrice": "98530000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-lvlUSD-29MAY2025@30MAY2025", + "marketSymbol": "USDC/PT-lvlUSD-29MAY2025@30MAY2025" + }, + "configs_15": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D", + "priceFeedAddr": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "backupPriceFeedAddr": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "heartBeat": "86400", + "name": "MEV Capital USDC Prime", + "symbol": "MC_USDCP", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/MC_USDCP@30MAY2025", + "marketSymbol": "USDC/MC_USDCP@30MAY2025" + }, + "configs_16": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e", + "priceFeedAddr": "0x81195F8A79f6553A4078f89eF87b21a7d3C2855A", + "backupPriceFeedAddr": "0x81195F8A79f6553A4078f89eF87b21a7d3C2855A", + "heartBeat": "86400", + "name": "Gauntlet USDC Frontier", + "symbol": "gtusdcf", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/gtusdcf@30MAY2025", + "marketSymbol": "USDC/gtusdcf@30MAY2025" + }, + "configs_17": { + "salt": 0, + "collateralCapForGt": "624356074116256000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0x701907283a57FF77E255C3f1aAD790466B8CE4ef", + "priceFeedAddr": "0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931", + "backupPriceFeedAddr": "0x00B96F0eBf39158cb4E3F801073966bD6Db7959C", + "heartBeat": "86400", + "name": "IndexCoop hyETH", + "symbol": "mhyETH", + "decimals": "18", + "initialPrice": "160165020000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/mhyETH@30MAY2025", + "marketSymbol": "WETH/mhyETH@30MAY2025" + } + } + } \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-adapters-20250629.json b/deployments/eth-mainnet/eth-mainnet-adapters-20250629.json new file mode 100644 index 0000000..fe474c0 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-adapters-20250629.json @@ -0,0 +1,18 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1751205023", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x01db0f8091230ac2c6befb08cc423cd7c3551428", + "blockInfo": { + "number": "22810493", + "timestamp": "1751205023" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "swapAdapter": { + "uniswapV3Adapter": "0xE7a88Ab1329cAD4168563516E35753b979d0c7a9", + "odosV2Adapter": "0x24c7e21a91cDB7760798e02EA5639d4C60b0C442", + "pendleSwapV3Adapter": "0x15Aa533cdEd42c2E38d2BC3ece5Bd2bFcf3dD2c0", + "ERC4626VaultAdapter": "0x98b0C4c13068C3010a809174Af31061AeF547Fbe" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-adapters.json b/deployments/eth-mainnet/eth-mainnet-adapters.json new file mode 100644 index 0000000..0451a01 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-adapters.json @@ -0,0 +1,18 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1750473743", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x0x53496c4b59815c620e0ac5b4504e4b712ef08515", + "blockInfo": { + "number": "22749924", + "timestamp": "1750473743" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "swapAdapter": { + "uniswapV3Adapter": "0xEce68C88D0d1789Bd13a8519FBa51eb870FA0cC7", + "odosV2Adapter": "0xd402019Cd1ec046dD74a70922F24c2E3cBb05E24", + "pendleSwapV3Adapter": "0xFBBBB37Aaa95A8F1C4498c9066318C2B5680fB84", + "ERC4626VaultAdapter": "0xE62567e9a8969AAE406195f7C4C7e4e85d4ed879" + }, +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-core-before-change-pendle-swap-adapter.json b/deployments/eth-mainnet/eth-mainnet-core-before-change-pendle-swap-adapter.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-core-before-change-pendle-swap-adapter.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-core-before-change-vault-factory.json b/deployments/eth-mainnet/eth-mainnet-core-before-change-vault-factory.json new file mode 100644 index 0000000..34b5474 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-core-before-change-vault-factory.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x01D8C1e0584751085a876892151Bf8490e862E3E", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-core.json b/deployments/eth-mainnet/eth-mainnet-core.json new file mode 100644 index 0000000..1219632 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-core.json @@ -0,0 +1,25 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1743518639", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x30f0c30e4edf518e2bf6700837dad2a7624d35df", + "blockInfo": { + "number": "22174730", + "timestamp": "1743518639" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "admin": "0x8409a9C1A911CED491892c5694E43994c9d47E8f", + "contracts": { + "factory": "0x37Ba9934aAbA7a49cC29d0952C6a91d7c7043dbc", + "vaultFactory": "0x4778CBf91d8369843281c8f5a2D7b56d1420dFF5", + "oracleAggregator": "0xE3a31690392E8E18DC3d862651C079339E2c1ADE", + "router": "0xC47591F5c023e44931c78D5A993834875b79FB11", + "swapAdapter": { + "uniswapV3Adapter": "0x34F7b52b0d33959C8351eF95F3523C89b6123C0b", + "odosV2Adapter": "0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779", + "pendleSwapV3Adapter": "0x0B30251FA697A39Fd41813b267b50F03414E82da", + "ERC4626VaultAdapter": "0x85ce30537c14EFB66B673f284bEa7c28351244F6" + }, + "marketViewer": "0x74Dfb95Ae623123ecf82Ba841985fB460bB9d45D" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_PTs@15SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_PTs@15SEP2025.json new file mode 100644 index 0000000..6fb2346 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_PTs@15SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22635749", + "timestamp": "1749094211" + }, + "market": "0xce37de7F6b2d9171F6B9Fd3B4c52FAc7895Dd18a", + "collateral": { + "address": "0xd41830d88dfD08678b0B886E0122193d54b02Acc", + "symbol": "MC_PTs", + "priceFeed": "0xe594f0E0013d304c63012F3C14fCf523Fd98613D", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xdf974145c8b86405dd8436b993169A3DABA7448e", + "xt": "0xcED405D1a4c0e71Ba4C2bA43b28e7e6bB415DF1c", + "gt": "0xbCc70FfC8373DA483DC384F69e45930D1b161699" + }, + "config": { + "marketSymbol": "USDC/MC_PTs@15SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "15SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_USDCP@29AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_USDCP@29AUG2025.json new file mode 100644 index 0000000..c8c9437 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_USDCP@29AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22565662", + "timestamp": "1748246735" + }, + "market": "0xeBa58Eb4dAf0b89F7669314EE783Dc0243801E83", + "collateral": { + "address": "0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D", + "symbol": "MC_USDCP", + "priceFeed": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x131C0d3dF32680aFB388736E6a2E14a42c75E6CE", + "xt": "0xf237F81Ed834Ce38c5994b969252b04A8C15B39d", + "gt": "0x4327608EB0D183846ab583eFa02a5C2f3B175416" + }, + "config": { + "marketSymbol": "USDC/MC_USDCP@29AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "29AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_USDCP@30MAY2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_USDCP@30MAY2025.json new file mode 100644 index 0000000..d1f41c8 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-MC_USDCP@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22286356", + "timestamp": "1744864451" + }, + "market": "0xf4924D6189552ae5A7818088dA6f23Bd33281C1b", + "collateral": { + "address": "0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D", + "symbol": "MC_USDCP", + "priceFeed": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xe7b3c858FF8031DC6c84D899aEeC343c89A246e0", + "xt": "0x2568d2B892b5c761e1155F4f1c05E5b61961f126", + "gt": "0x5C4db8DB0CA1d040e7fD6FB2AfAA81032df0a4f7" + }, + "config": { + "marketSymbol": "USDC/MC_USDCP@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-USDS-14AUG2025@15AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-USDS-14AUG2025@15AUG2025.json new file mode 100644 index 0000000..a04733a --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-USDS-14AUG2025@15AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22573449", + "timestamp": "1748340791" + }, + "market": "0x485305178358b0c367802FC2DcdAdDa5D079e848", + "collateral": { + "address": "0xFfEc096c087C13Cc268497B89A613cACE4DF9A48", + "symbol": "PT-USDS-14AUG2025", + "priceFeed": "0x4599f532E03458017Fa55F7DCF7A296267637B74", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1e9a8e3eB8EDb5c1448ce1Aa837807D20eb07830", + "xt": "0xC3853fCFb3F831C1dbE00552C54500e50c6ADd65", + "gt": "0x268cC19Da828606E9DacDAD95a38c6C2B619fc65" + }, + "config": { + "marketSymbol": "USDC/PT-USDS-14AUG2025@15AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "15AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-cUSDO-19JUN2025@20JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-cUSDO-19JUN2025@20JUN2025.json new file mode 100644 index 0000000..dc54d85 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-cUSDO-19JUN2025@20JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22451097", + "timestamp": "1746857087" + }, + "market": "0xCE511791715D1A84cD2f7BfA279F92c187bb9d93", + "collateral": { + "address": "0x933B9FfEE0Ad3Ef8E4DBb52688ea905826D73755", + "symbol": "PT-cUSDO-19JUN2025", + "priceFeed": "0x1B4A4208d6AfD76332206F2Aefd977aeEf108575", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x89D6CD335090d67E6A18A63F97b55d7d177D2A1B", + "xt": "0xC1A89e8c63f5162e78f339F138f3585F4372ece0", + "gt": "0xD08C49be9063512c49DC113f1F7C00cD2519c654" + }, + "config": { + "marketSymbol": "USDC/PT-cUSDO-19JUN2025@20JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "20JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-cUSDO-20NOV2025@21NOV2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-cUSDO-20NOV2025@21NOV2025.json new file mode 100644 index 0000000..09da7aa --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-cUSDO-20NOV2025@21NOV2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22750245", + "timestamp": "1750477607" + }, + "market": "0xb8D33503a851D2d44E02F14Fb0321E900C7A89ac", + "collateral": { + "address": "0xB10DA2F9147f9cf2B8826877Cd0c95c18A0f42dc", + "symbol": "PT-cUSDO-20NOV2025", + "priceFeed": "0x1039F090392798Be2FeA222D6468676cB2F07699", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x52D0713604f23383063ce89cf36801428B0136B8", + "xt": "0x5aa72d45B2b6381B87Eb407288920e3fC4C0E9c3", + "gt": "0x424a1e95eAaD4E768Dc925679C63ba230552965b" + }, + "config": { + "marketSymbol": "USDC/PT-cUSDO-20NOV2025@21NOV2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "21NOV2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-25SEP2025@25JUL2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-25SEP2025@25JUL2025.json new file mode 100644 index 0000000..54ec566 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-25SEP2025@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22451097", + "timestamp": "1746857087" + }, + "market": "0xd017E469d22AB7FfB097b9aA329391874954523b", + "collateral": { + "address": "0x207F7205fd6c4b602Fa792C8b2B60e6006D4a0b8", + "symbol": "PT-lvlUSD-25SEP2025", + "priceFeed": "0x32401387EDCB60CD74E2FCae50B3C542E03B1ec5", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xc53C94AaeECc2f58aC64f97eF26F6947B8a1fa49", + "xt": "0x13Dd004a37cD8E35ECEA7379Ab45BD03c1F4E249", + "gt": "0x022E7d8585f9214bBE29077501Ce938e552F8D5e" + }, + "config": { + "marketSymbol": "USDC/PT-lvlUSD-25SEP2025@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-25SEP2025@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-25SEP2025@26SEP2025.json new file mode 100644 index 0000000..591322e --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-25SEP2025@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22451097", + "timestamp": "1746857087" + }, + "market": "0x7526D036cDDbD3bdFDd8370D75304b822740b291", + "collateral": { + "address": "0x207F7205fd6c4b602Fa792C8b2B60e6006D4a0b8", + "symbol": "PT-lvlUSD-25SEP2025", + "priceFeed": "0x32401387EDCB60CD74E2FCae50B3C542E03B1ec5", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x51Ae9eF7395A46E2861fE6b93F97728f9595e6e5", + "xt": "0xA95cDaaC1Bf0aF025CEd0F259ac74cdec7503450", + "gt": "0x6fA797c9675880654f098B554AE5B9CFdd6B2310" + }, + "config": { + "marketSymbol": "USDC/PT-lvlUSD-25SEP2025@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@14APR2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@14APR2025.json new file mode 100644 index 0000000..e3a396b --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266244", + "timestamp": "1744621823" + }, + "market": "0x305349b7D1Deba03950D71Ae1C8673cDA1463116", + "collateral": { + "address": "0x9BcA74F805AB0a22DDD0886dB0942199a0feBa71", + "symbol": "PT-lvlUSD-29MAY2025", + "priceFeed": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9a52c9303914B68692380d8bFF20F981BD2fF47B", + "xt": "0x4953dD3c3cADA884Ae07eB91E51aa2FC5EC70E35", + "gt": "0x35Ba6CF0ac6b1a1D9D44ec5A479b2602D12Ad690" + }, + "config": { + "marketSymbol": "USDC/PT-lvlUSD-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@30MAY2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..e3757f8 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-lvlUSD-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266137", + "timestamp": "1744620539" + }, + "market": "0x2524D9a55C2D18A3F257A7F67AfD552B285de34E", + "collateral": { + "address": "0x9BcA74F805AB0a22DDD0886dB0942199a0feBa71", + "symbol": "PT-lvlUSD-29MAY2025", + "priceFeed": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3448d6883c7762ed95f59b4A9780b07981b6afee", + "xt": "0xfFD2743Ca5FCDd97b690C33434ef456be9885D20", + "gt": "0x581577E0b27Fc695B21089A08be962Ae3F60aa2f" + }, + "config": { + "marketSymbol": "USDC/PT-lvlUSD-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-mMEV-31JUL2025@01AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-mMEV-31JUL2025@01AUG2025.json new file mode 100644 index 0000000..9fe6208 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-mMEV-31JUL2025@01AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22482505", + "timestamp": "1747239083" + }, + "market": "0x08d6E7D4F49f6e34878a6f35DB96F3130c43245F", + "collateral": { + "address": "0x1132065009850C72E27B7950C0f9285d1D103589", + "symbol": "PT-mMEV-31JUL2025", + "priceFeed": "0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8445C7A468Bc74D9A6Af8006F36fE5703ccae230", + "xt": "0x38636a20a312094aC71D73481A2FC51E691c5680", + "gt": "0x94257D83ba7B89A53F6bb4dfa282D1C992118986" + }, + "config": { + "marketSymbol": "USDC/PT-mMEV-31JUL2025@01AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "01AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-31JUL2025@01AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-31JUL2025@01AUG2025.json new file mode 100644 index 0000000..82c494c --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-sUSDE-31JUL2025@01AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22439649", + "timestamp": "1746717503" + }, + "market": "0xdBB2D44c238c459cCB820De886ABF721EF6E6941", + "collateral": { + "address": "0x3b3fB9C57858EF816833dC91565EFcd85D96f634", + "symbol": "PT-sUSDE-31JUL2025", + "priceFeed": "0x53399c17DbB2Ba67BB3B6E5bf692251267A3F861", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x39815280F3804a860a09B0FfbcCAF8a0679FF5BA", + "xt": "0x6CfA4b8506736dD838DCbEC5187d777801160684", + "gt": "0xa7793d67dcbcc16ef92eD455Bc17594311d58d55" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-31JUL2025@01AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "01AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-slvlUSD-25SEP2025@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-slvlUSD-25SEP2025@26SEP2025.json new file mode 100644 index 0000000..f9efcc8 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-PT-slvlUSD-25SEP2025@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22482505", + "timestamp": "1747239083" + }, + "market": "0x9D7386F68d9001a809860B4D88EC8E2cc3DD81B0", + "collateral": { + "address": "0x2CA5f2C4300450D53214B00546795c1c07B89acB", + "symbol": "PT-slvlUSD-25SEP2025", + "priceFeed": "0x5042768E83E2b5F9A7251A41C4E66855DD65fe31", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x831a11a25a98715e632A51D46A6296dA47883743", + "xt": "0x733F08C07fe2d37c86516aBE830Fc2756E56ac1C", + "gt": "0x68DCe038aF76f907617A0E648e23011143774e8A" + }, + "config": { + "marketSymbol": "USDC/PT-slvlUSD-25SEP2025@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-SPK@05JUL2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-SPK@05JUL2025.json new file mode 100644 index 0000000..922c439 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-SPK@05JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22785845", + "timestamp": "1750907471" + }, + "market": "0x6B24654F5154214D1A39b09AE0E2342bB48eFE08", + "collateral": { + "address": "0xc20059e0317DE91738d13af027DfC4a50781b066", + "symbol": "SPK", + "priceFeed": "0x552116E747a5b386B2E7EEd4371002359cf2A574", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xEF73A3623A6c23C0271c4fC798CB6A745e211487", + "xt": "0xa11A440e7720c55caAF5b2155B172E6F32339813", + "gt": "0x72036acE0D05c6De44a3bD0fF47F59F41efa386E" + }, + "config": { + "marketSymbol": "USDC/SPK@05JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "05JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@26SEP2025.json new file mode 100644 index 0000000..3141d1c --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22678811", + "timestamp": "1749614639" + }, + "market": "0xEdA710f383646c3F5e2AAf1728037e5C9CA3dDdd", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x04EE27695CdD9772314DE5cb0F9619Dc0e93693d", + "xt": "0x97d563387b858d61EDceCAf70e304b464085aD47", + "gt": "0x777C76d2f9EaCeb09290403701Fca92DFB1FdEd9" + }, + "config": { + "marketSymbol": "USDC/WBTC@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@27JUN2025.json new file mode 100644 index 0000000..1e2d1a9 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-WBTC@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22430551", + "timestamp": "1746605843" + }, + "market": "0x9904F3b879385033faa31B50d1D63cb80b3495A3", + "collateral": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x75b8ea5178baA489c9ab208Ec80AF10780927890", + "xt": "0x6182feffC89A170154a991fe09c31765bA5441C8", + "gt": "0x42C57cDE40B26c5E68c28e687eACa7B83dC48377" + }, + "config": { + "marketSymbol": "USDC/WBTC@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-XAUM@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-XAUM@27JUN2025.json new file mode 100644 index 0000000..aa19176 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-XAUM@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22482505", + "timestamp": "1747239083" + }, + "market": "0x975CBA8Bad13EF86BC4d2BBb3Eb7497327c640d1", + "collateral": { + "address": "0x2103E845C5E135493Bb6c2A4f0B8651956eA8682", + "symbol": "XAUM", + "priceFeed": "0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xF8c1CdA465071665D3ECAf906732899186fD4856", + "xt": "0xf7e8F91286E3D4685A4D8e4F2a7413FE273DB503", + "gt": "0x6216D113CbBC1c4a1017699E691E949D1Dee8812" + }, + "config": { + "marketSymbol": "USDC/XAUm@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-cUSDO@25JUL2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-cUSDO@25JUL2025.json new file mode 100644 index 0000000..e4fab2e --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-cUSDO@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22539398", + "timestamp": "1747928783" + }, + "market": "0x466d9d8a49B68151de52A0fD7676a6E49e630EFE", + "collateral": { + "address": "0xaD55aebc9b8c03FC43cd9f62260391c13c23e7c0", + "symbol": "cUSDO", + "priceFeed": "0xf158000de86899b5EB5E6fA3BB78F32A072bD14b", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xf02fc191356E725329e04996eF88C5b070E17f8b", + "xt": "0x84D36D6CCe4B9f5fa89dce996d439Fe63b6E1Bca", + "gt": "0xB95401F96029f505414f3209C6Ee11315A119629" + }, + "config": { + "marketSymbol": "USDC/cUSDO@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@27JUN2025.json new file mode 100644 index 0000000..34a1484 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-cbBTC@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22430551", + "timestamp": "1746605843" + }, + "market": "0x1A69127188B72A155165255270017b4c78f31b88", + "collateral": { + "address": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0f8A293C6f7E578d46B1da2A44A5A65ce874da2d", + "xt": "0x5ba653575Ea036d734d703EAF9dE2Fe8936A6979", + "gt": "0xe81E8F37aC256253c78f5D880AD3d1CFCd00a5B2" + }, + "config": { + "marketSymbol": "USDC/cbBTC@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@15AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@15AUG2025.json new file mode 100644 index 0000000..f061e81 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-eUSDe@15AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22537449", + "timestamp": "1747905251" + }, + "market": "0x80305Dc3968B3c8E895027B1cd05eDD9cff1C504", + "collateral": { + "address": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5A6615DeEa32CCd9f58d8Ae902be0F936eC3e384", + "xt": "0x7B66f1D0A74cECee6b2c384FD76D5E041d5FFa8E", + "gt": "0x48Ec1a69850e44EB838408d655471a059B72ef00" + }, + "config": { + "marketSymbol": "USDC/eUSDe@15AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "15AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-gtusdcf@30MAY2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-gtusdcf@30MAY2025.json new file mode 100644 index 0000000..6f270dd --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-gtusdcf@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22286356", + "timestamp": "1744864451" + }, + "market": "0x2EaafFbCdE68337341C0eC65A862e648A413dc14", + "collateral": { + "address": "0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e", + "symbol": "gtusdcf", + "priceFeed": "0x81195F8A79f6553A4078f89eF87b21a7d3C2855A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x09ec4BE9869BfAbF9fF6652fe7703276D6F5E5d8", + "xt": "0x9c7fBdd0055604bbf7736B153407e9513C818C22", + "gt": "0x8Ee590224c6cddE0d27FB60B37B05784dD794E59" + }, + "config": { + "marketSymbol": "USDC/gtusdcf@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-mMEV@01AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-mMEV@01AUG2025.json new file mode 100644 index 0000000..ed8dbd9 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-mMEV@01AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22482505", + "timestamp": "1747239083" + }, + "market": "0x6C7B36f0a2136CB0da7b38293925d9af06895C20", + "collateral": { + "address": "0x030b69280892c888670EDCDCD8B69Fd8026A0BF3", + "symbol": "mMEV", + "priceFeed": "0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFc97e7b4728d81b275DAd8701F2a53b72e5A0898", + "xt": "0x56c7334191D0CC03043f5e6203C56245de3D9bCa", + "gt": "0x4bdf64B59A1cadaB0ff34E18cDee225435D0479E" + }, + "config": { + "marketSymbol": "USDC/mMEV@01AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "01AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@26SEP2025.json new file mode 100644 index 0000000..ed3a863 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22678811", + "timestamp": "1749614639" + }, + "market": "0x794173535173B5c44B58ad2DbE8415dC6529b942", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x111e0726772Fd700D4D7Ee0a5b8bF7529A5FE7c8", + "xt": "0x3f73E622c05a25Ecfb2388d7e5E68b4dcC14e8fC", + "gt": "0xCe9d8fD19fccB14e523809309217c3B5112056F7" + }, + "config": { + "marketSymbol": "USDC/sUSDe@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@27JUN2025.json new file mode 100644 index 0000000..9fab5c6 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-sUSDe@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22430551", + "timestamp": "1746605843" + }, + "market": "0x988a287c4340B18665cC5E128DC76906A5C839e6", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xcE7decb042927EC42DB8ECc75A8E526824376A3e", + "xt": "0x13b29958f0F6eB39a587704034E531E4090E9D59", + "gt": "0xDBa3379F0406F5c90eb74D27e511e4FB4D10B6B3" + }, + "config": { + "marketSymbol": "USDC/sUSDe@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@27JUN2025.json new file mode 100644 index 0000000..50d9cd9 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-wstETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22430551", + "timestamp": "1746605843" + }, + "market": "0x22Cd4c59eD4bb2ad852892518073056441c55BFE", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x285a4618d3349e2Fff63f750FCaC94Fb002f932e", + "xt": "0x874AdBD54F7bA2cF46f97BB569AB7BA4cB8f89C9", + "gt": "0xec4Aa75e5C4b09eb65761f8328252d3509F232C0" + }, + "config": { + "marketSymbol": "USDC/wstETH@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-xUSD@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-xUSD@26SEP2025.json new file mode 100644 index 0000000..994a734 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-xUSD@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22701265", + "timestamp": "1749885683" + }, + "market": "0x017BA8e72619460359e35B57358A8bd08171e62B", + "collateral": { + "address": "0xE2Fc85BfB48C4cF147921fBE110cf92Ef9f26F94", + "symbol": "xUSD", + "priceFeed": "0x91F37A3058A7fD3f4f66ED87d715CF05bB4fbfBd", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7BC22Da8Cd3631A916EC55E0a6eD473522CD100E", + "xt": "0x14f027A17D0E7b33F0E2077D9A58C8B850feD92C", + "gt": "0x465e0666335e52235a8152309A00f0f61890f924" + }, + "config": { + "marketSymbol": "USDC/xUSD@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-USDC-xUSD@29AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-USDC-xUSD@29AUG2025.json new file mode 100644 index 0000000..3bc3a4b --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-USDC-xUSD@29AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22701265", + "timestamp": "1749885683" + }, + "market": "0x613ED6f663A5697A38B3F59B67BE5174d92fF9E2", + "collateral": { + "address": "0xE2Fc85BfB48C4cF147921fBE110cf92Ef9f26F94", + "symbol": "xUSD", + "priceFeed": "0x91F37A3058A7fD3f4f66ED87d715CF05bB4fbfBd", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb2822cb1FA9a69926Bc636a102F5A359f42C7733", + "xt": "0xf70C592c3EAF45885d5d5A9e76254cD0Ca2f2965", + "gt": "0xABA25990c1A593bda360430E0dA7a834B7c1F0Ff" + }, + "config": { + "marketSymbol": "USDC/xUSD@29AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "29AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WBTC-sUSDe@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-WBTC-sUSDe@26SEP2025.json new file mode 100644 index 0000000..ba4b7f0 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WBTC-sUSDe@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22678811", + "timestamp": "1749614639" + }, + "market": "0xf0bca0d267eac9f5bf1b364345FE439d29e9a601", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x4c282fC94977717b293BAA7c3B489a3290AC72A2", + "xt": "0x41479a29A7BB3B56b60E59282A9cF45789AF2927", + "gt": "0x0B146abb57Ba63617F0c8EF34F38dB7E6f203476" + }, + "config": { + "marketSymbol": "WBTC/sUSDe@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WBTC-sUSDe@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-WBTC-sUSDe@27JUN2025.json new file mode 100644 index 0000000..0bf6a2a --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WBTC-sUSDe@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22482505", + "timestamp": "1747239083" + }, + "market": "0x7D042A2800C2Bf66A2Af99014c96513Bc4CEfeda", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x775157A35b1EfB4D86c5bC732f047758085d2127", + "xt": "0x91BC1c8dDe63ec666397a7e1500aCbD9b028fEA3", + "gt": "0xe173C8D8192d20D820061D04323c3E89Aa836a4c" + }, + "config": { + "marketSymbol": "WBTC/sUSDe@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-PT-pufETH-26JUN2025@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-PT-pufETH-26JUN2025@27JUN2025.json new file mode 100644 index 0000000..004f489 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-PT-pufETH-26JUN2025@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22439649", + "timestamp": "1746717503" + }, + "market": "0xC898Fa3A26CEAcAE25cCffF6003B087948dEDE2a", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0ad67BB21bE025f9C47ceb0DB3ac490e473Afd9a", + "xt": "0x0E960CFde8730DA71e72b52bb1BC8ef4F4F5a9Bb", + "gt": "0xAB490460b78c481fdf4d10Ed85378cFa1dd342f1" + }, + "config": { + "marketSymbol": "WETH/PT-pufETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-mhyETH@30MAY2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-mhyETH@30MAY2025.json new file mode 100644 index 0000000..26c31af --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-mhyETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22286356", + "timestamp": "1744864451" + }, + "market": "0xb9919eE2169a7dA664AD024C6dDCF0ccD4121C26", + "collateral": { + "address": "0x701907283a57FF77E255C3f1aAD790466B8CE4ef", + "symbol": "mhyETH", + "priceFeed": "0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xbC9c191613c6e77c03A3F792579520d455e852a6", + "xt": "0x1aA1fF0D8c47066C72902040716F91Df18090ADc", + "gt": "0x489f04a08d6ee13789cd59c5ce241494b063b3DB" + }, + "config": { + "marketSymbol": "WETH/mhyETH@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@27JUN2025.json new file mode 100644 index 0000000..39bcf8a --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22430551", + "timestamp": "1746605843" + }, + "market": "0xaBE8ab2223c846466Eb30f5137A7f05106c9d0c4", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x23Ed558080CEB4755a24d841E24558e85B1DDb18", + "xt": "0xA97Ba034797386d9987c88Beff430B40c4fDc6c5", + "gt": "0xb4a859d44470F0168464a5DB99f058CF9A7B4df1" + }, + "config": { + "marketSymbol": "WETH/pufETH@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@29AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@29AUG2025.json new file mode 100644 index 0000000..4e58261 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-pufETH@29AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22678811", + "timestamp": "1749614639" + }, + "market": "0xD75DEfEB9Fbff0c6f41CA54a42bc6cEb344363C8", + "collateral": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7e1827722E812e29258e197F9F8dD508146a51ef", + "xt": "0xE34e455d978B522bCD6f478ee262F25Edafa5030", + "gt": "0x05b8e2477971DcdECAA839D25f265e9Fc78d41bc" + }, + "config": { + "marketSymbol": "WETH/pufETH@29AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "29AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-sUSDe@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-sUSDe@26SEP2025.json new file mode 100644 index 0000000..3e02781 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-sUSDe@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22678811", + "timestamp": "1749614639" + }, + "market": "0xbc55152b15c24f47Ef0B753B262ac07F7f504E69", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x69C761463102Ca47796C2b9F6D9F9f91d7acAA85", + "xt": "0xB018275840C1076fA87E86E29E855D3Ec0b77CeB", + "gt": "0x2D8f6Ff917A727e1a429A8711d86d6Ecd93A7a60" + }, + "config": { + "marketSymbol": "WETH/sUSDe@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-sUSDe@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-sUSDe@27JUN2025.json new file mode 100644 index 0000000..c0daaeb --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-sUSDe@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22482505", + "timestamp": "1747239083" + }, + "market": "0xc7559e952666fac90206758e664f86D09e7f1f72", + "collateral": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7337261Cf19cc2D2146F6A30Dd4Fb186e31728cC", + "xt": "0x0fE1a8E392F4c03eedb805260C12716B4B4Ed68F", + "gt": "0xdf7E3C6BA0239E1933E431ad68Be7861ea51387e" + }, + "config": { + "marketSymbol": "WETH/sUSDe@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@26SEP2025.json new file mode 100644 index 0000000..70e65e5 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22678811", + "timestamp": "1749614639" + }, + "market": "0xD4c468f76ac06980EcDD28499383ae64461FfcDb", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xcb16CD4204ACA54b761820a538060716B1716D7D", + "xt": "0xC206Ba4E6F159caFA32A6e15fA93cf7BC58bCa5D", + "gt": "0x49a793165B2b60afe0EE2bd6Ce69b743AA3b8cD5" + }, + "config": { + "marketSymbol": "WETH/weETH@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@27JUN2025.json new file mode 100644 index 0000000..e13e1c1 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-weETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22430551", + "timestamp": "1746605843" + }, + "market": "0xf0dE37189366F0f3AAe2795160763F3F34797B11", + "collateral": { + "address": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xe8503FFEcc5D4065ba0eB11DCbdcD47A4F752572", + "xt": "0xf98042dD2ca30440d27373ECA2727e9540897EBf", + "gt": "0x272f222de90ADF7B1cCA859d685beC738993bA6C" + }, + "config": { + "marketSymbol": "WETH/weETH@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-wstETH@26SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-wstETH@26SEP2025.json new file mode 100644 index 0000000..18f4240 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-wstETH@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22678811", + "timestamp": "1749614639" + }, + "market": "0x4AF4b1E5b05C4759F316A5201e6571F9B97406A2", + "collateral": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x453DB840338AcB3835E7A215ACaE4ab9d8A4eB2E", + "xt": "0x73E4a17bd8Bb7aFb2Bcd13E9d60C446b3CC1D171", + "gt": "0x6aCEef5E46590a4E3f4F201641c468Eb570111fe" + }, + "config": { + "marketSymbol": "WETH/wstETH@26SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-WETH-ynETHx@29AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-WETH-ynETHx@29AUG2025.json new file mode 100644 index 0000000..34e5a55 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-WETH-ynETHx@29AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22565662", + "timestamp": "1748246735" + }, + "market": "0x369f628DcAD1c5F0f7A4EEf7a22fE550D193ef36", + "collateral": { + "address": "0x657d9ABA1DBb59e53f9F3eCAA878447dCfC96dCb", + "symbol": "ynETHx", + "priceFeed": "0x5FDaa369D623d86191105435c7DA03F25417753a", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x621aFe2B3CC5F1A841F03164769b0C3bcDdB092e", + "xt": "0x82992FBD095Ce85273d50147568975EF277a87dc", + "gt": "0xd4d60b4Cd0aC8682a9a800176d7dc0Ef3e1D6090" + }, + "config": { + "marketSymbol": "WETH/ynETHx@29AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "29AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@14APR2025.json b/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@14APR2025.json new file mode 100644 index 0000000..02a2d81 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266244", + "timestamp": "1744621823" + }, + "market": "0x9B6D377027d36146D1C734e02B8808568D002179", + "collateral": { + "address": "0x4737D9b4592B40d51e110b94c9C043c6654067Ae", + "symbol": "slvlUSD", + "priceFeed": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7C1156E515aA1A2E851674120074968C905aAF37", + "symbol": "lvlUSD", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x82Fa71444c041eA40bD565F622a00A6509562544", + "xt": "0xD16353C409d80B7FA4B80F4832aa28F323A0F1bb", + "gt": "0x2EB9Ef9967d108132c289975674AD0D4328C1A8a" + }, + "config": { + "marketSymbol": "lvlUSD/slvlUSD@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@27JUN2025.json new file mode 100644 index 0000000..4686781 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22430551", + "timestamp": "1746605843" + }, + "market": "0x8d501c7640595EC9D2A39Fbd30dED7672e9631BD", + "collateral": { + "address": "0x4737D9b4592B40d51e110b94c9C043c6654067Ae", + "symbol": "slvlUSD", + "priceFeed": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7C1156E515aA1A2E851674120074968C905aAF37", + "symbol": "lvlUSD", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x53b52637923839676F6441C7e824D91478F882D3", + "xt": "0xc5421aAD009F200b60a8cC67B60cF6f774a1E693", + "gt": "0xC03746e7441A523686D93C5282557e3970065d6a" + }, + "config": { + "marketSymbol": "lvlUSD/slvlUSD@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@30MAY2025.json b/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@30MAY2025.json new file mode 100644 index 0000000..eacf7ce --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-lvlUSD-slvlUSD@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266137", + "timestamp": "1744620539" + }, + "market": "0xa1ed39C786eea298925DD6FcC33199C3fF06765E", + "collateral": { + "address": "0x4737D9b4592B40d51e110b94c9C043c6654067Ae", + "symbol": "slvlUSD", + "priceFeed": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7C1156E515aA1A2E851674120074968C905aAF37", + "symbol": "lvlUSD", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5623695881DB8cFc84ee1f40a1F4A0999D1552f6", + "xt": "0x453dFD4db1a92Bf8D84b4E4Fa6381019370d0C5d", + "gt": "0xE1e045a8a238994703ec0dD7e4E2aD6f97c5F186" + }, + "config": { + "marketSymbol": "lvlUSD/slvlUSD@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@27JUN2025.json new file mode 100644 index 0000000..3f0d0af --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-pufETH-PT-pufETH-26JUN2025@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22537449", + "timestamp": "1747905251" + }, + "market": "0x23ce4AD98eCB62258AD2aCE43aDbC63aa50Df2e1", + "collateral": { + "address": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x69967F15A2aCdA92040353b3b3C85F2BE613Fc31", + "xt": "0xB0c6f823d2Cfe89c708d393aE8079871F764D634", + "gt": "0x05c67446e26C478F89615688ad107C9601F49205" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@14APR2025.json b/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@14APR2025.json new file mode 100644 index 0000000..66cee1f --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@14APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266244", + "timestamp": "1744621823" + }, + "market": "0x7A28a1a4d54F5a74BC87471B9EE4Ba41B07a4cD3", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6CD5968D8703E40bdaD77F40722ead51cF3DFEe6", + "xt": "0x81ac31e4f598f3d0C455aD27C38686B8c1A3256E", + "gt": "0xF147cfD201930840ec8E9424E447dB22f67D6Ef1" + }, + "config": { + "marketSymbol": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "14APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@30MAY2025.json b/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..3c4775c --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22266137", + "timestamp": "1744620539" + }, + "market": "0x37877773B1289c27Bb6159b86613Efd0d15cADaE", + "collateral": { + "address": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6fbE672e148dB5374a17dcfe78c22a31751b0F5F", + "xt": "0x9b23666F665aA6B280d1f5C3a580EEad7414DcAC", + "gt": "0x4f1B12bFe07534C68ECd6a971d3f6295b423CD09" + }, + "config": { + "marketSymbol": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-31JUL2025@01AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-31JUL2025@01AUG2025.json new file mode 100644 index 0000000..87be1fa --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-sUSDe-PT-sUSDE-31JUL2025@01AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22627923", + "timestamp": "1748999531" + }, + "market": "0xa00874Aebe73B4b9867d733eFa1b11640FC17EbA", + "collateral": { + "address": "0x3b3fB9C57858EF816833dC91565EFcd85D96f634", + "symbol": "PT-sUSDE-31JUL2025", + "priceFeed": "0x53399c17DbB2Ba67BB3B6E5bf692251267A3F861", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x1CD288C5D5373B6a62FA693B8D6dA0333Ac9d85E", + "xt": "0xCf7e55080155F1bb3E81b80B2D5016ac80aA4Ee3", + "gt": "0xD710FD59085704A2D2e64ce0274d051f077F5865" + }, + "config": { + "marketSymbol": "sUSDe/PT-sUSDE-31JUL2025@01AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "01AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-wstETH-ETH+@15AUG2025.json b/deployments/eth-mainnet/eth-mainnet-market-wstETH-ETH+@15AUG2025.json new file mode 100644 index 0000000..7ada265 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-wstETH-ETH+@15AUG2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22700737", + "timestamp": "1749879299" + }, + "market": "0x7EF98154058C61f391F4C2CBe9Ee497900957b66", + "collateral": { + "address": "0xE72B141DF173b999AE7c1aDcbF60Cc9833Ce56a8", + "symbol": "ETH+", + "priceFeed": "0x1d309F2E29b0b30dbB536a8100fCCCe3bd90F776", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0687cFcA987F873aCc0F8B0219beff8d8cAa55c3", + "xt": "0x8c2A76d6ea3a7E2bA47DDa62Fa5738b5b1B4D48C", + "gt": "0x5fB1D1Dc57b32464321E82Da1D525A51Bb795f53" + }, + "config": { + "marketSymbol": "wstETH/ETH+@15AUG2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "15AUG2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-wstETH-ETH+@15SEP2025.json b/deployments/eth-mainnet/eth-mainnet-market-wstETH-ETH+@15SEP2025.json new file mode 100644 index 0000000..0456832 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-wstETH-ETH+@15SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22700737", + "timestamp": "1749879299" + }, + "market": "0x6FFA08eC4aD912451c9c1315cC3CEa5e211d8f04", + "collateral": { + "address": "0xE72B141DF173b999AE7c1aDcbF60Cc9833Ce56a8", + "symbol": "ETH+", + "priceFeed": "0x1d309F2E29b0b30dbB536a8100fCCCe3bd90F776", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x9dff60c3f47b0C4A2447bf3419c1d8992bf4509d", + "xt": "0x589b20BE4323b786fe1d09E2016A7cbebe610e0a", + "gt": "0x71009A2d946392ec40baD687a8c0Dbd6eD5a363B" + }, + "config": { + "marketSymbol": "wstETH/ETH+@15SEP2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "15SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@25JUL2025.json b/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@25JUL2025.json new file mode 100644 index 0000000..e589b14 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@25JUL2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22678811", + "timestamp": "1749614639" + }, + "market": "0x976DC6902d311Bab27A56EAbE00999CA46048550", + "collateral": { + "address": "0x8E0789d39db454DBE9f4a77aCEF6dc7c69f6D552", + "symbol": "inwstETHs", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x70159fE9D204f760c4828a2518e92965A75cD4Cf", + "xt": "0x9D2c06ea6b857E432535155a99E9c46bc715fE01", + "gt": "0x72f598dd676E6c9361FbCd0a82115D6E6CB8658B" + }, + "config": { + "marketSymbol": "wstETH/inwstETHs@25JUL2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "25JUL2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@27JUN2025.json b/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@27JUN2025.json new file mode 100644 index 0000000..65df224 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22430551", + "timestamp": "1746605843" + }, + "market": "0xD316d4494c840F8A758FB6184e9b60281e35cC02", + "collateral": { + "address": "0x8E0789d39db454DBE9f4a77aCEF6dc7c69f6D552", + "symbol": "inwstETHs", + "priceFeed": "0xbfA4F6a74c7F02FE3B52e570D782033011270CEb", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6B3aaAB883d2B5A42276206B18C62dBd2F075B73", + "xt": "0x1Ad25fC3fAD6B5fb2744Ec684c74BC301A3a26dC", + "gt": "0xcE6Df2c8A6B5d7f70f73a71f78c64F54bDA4DbED" + }, + "config": { + "marketSymbol": "wstETH/inwstETHs@27JUN2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@30MAY2025.json b/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@30MAY2025.json new file mode 100644 index 0000000..935cebc --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-market-wstETH-inwstETHs@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "22325579", + "timestamp": "1745337359" + }, + "market": "0x918D8Ecba4C683EF3004b1C313cfEF5e3b9E1146", + "collateral": { + "address": "0x8E0789d39db454DBE9f4a77aCEF6dc7c69f6D552", + "symbol": "inwstETHs", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xC4CE5aA3caBaB5525d838f3095105e68764a4863", + "xt": "0xD54417D73FEdBBFa242E296A9199D401c377A23f", + "gt": "0x79614885F2b286A20a18315A9963e9e7A5eF0824" + }, + "config": { + "marketSymbol": "wstETH/inwstETHs@30MAY2025", + "treasurer": "0x719e77027952929ed3060dbFFC5D43EC50c1cf79", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-pendle-swap-v3-adapter.json b/deployments/eth-mainnet/eth-mainnet-pendle-swap-v3-adapter.json new file mode 100644 index 0000000..2a27d62 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-pendle-swap-v3-adapter.json @@ -0,0 +1,14 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1744434875", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x1b19b284f4f6a7ffebcb90e1d9af5058a71d0ab5", + "blockInfo": { + "number": "22250716", + "timestamp": "1744434875" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "contracts": { + "pendleSwapV3Adapter": "0x4c51a1595a1887932858b2a3C6b34BA6AEeAD899" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-LBTC-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-LBTC-Vault.json new file mode 100644 index 0000000..cc2a69a --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-LBTC-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503704", + "timestamp": "1747496375" + }, + "vaultInfo": { + "name": "TermMax LBTC Vault", + "symbol": "TMX-LBTC-Vault", + "address": "0xBc33ECf9113268BaAc561e9f0d9Df0FB8b1A5922", + "asset": "0x8236a87084f8B84306f72007F36F2618A5634494", + "performanceFeeRate": 0, + "maxCapacity": "10000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC-Delivery-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC-Delivery-Vault.json new file mode 100644 index 0000000..39191eb --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC-Delivery-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503803", + "timestamp": "1747497575" + }, + "vaultInfo": { + "name": "TermMax USDC Coll-Deliverable Vault", + "symbol": "TMX-USDC-Delivery-Vault", + "address": "0xf841f6974A84dBcE954227975A1bb7BAD7C3Df3D", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "10000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC-PRIME.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC-PRIME.json new file mode 100644 index 0000000..1ca2367 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC-PRIME.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x9ccea93c0ceff6a76f38270be9ea3d3aad9552d7" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22283141", + "timestamp": "1744825595" + }, + "vaultInfo": { + "name": "TermMax USDC Prime", + "symbol": "TMX-USDC-PRIME", + "address": "0x13e361dC94459a01bc4991F9e681033Dc2b0fA5A", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "50000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC.json new file mode 100644 index 0000000..56904bc --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232838", + "timestamp": "1744219655" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x984408C88a9B042BF3e2ddf921Cd1fAFB4b735D1", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-WBTC-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-WBTC-Vault.json new file mode 100644 index 0000000..6124612 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-WBTC-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503649", + "timestamp": "1747495715" + }, + "vaultInfo": { + "name": "TermMax WBTC Vault", + "symbol": "TMX-WBTC-Vault", + "address": "0x8Df27B83B447Efde8fE58B60F12cFB5dF98Ac211", + "asset": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "performanceFeeRate": 0, + "maxCapacity": "10000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-WETH-Delivery-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-WETH-Delivery-Vault.json new file mode 100644 index 0000000..fb668c4 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-WETH-Delivery-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503817", + "timestamp": "1747497743" + }, + "vaultInfo": { + "name": "TermMax WETH Coll-Deliverable Vault", + "symbol": "TMX-WETH-Delivery-Vault", + "address": "0x3CaB0abCb93C81D7f6B8Ca23EB9e9C717AEEf5Ea", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "4000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-WETH.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-WETH.json new file mode 100644 index 0000000..c096a93 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x561b96a021112cba8323e544ec0268dd640b4a22" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22232798", + "timestamp": "1744219175" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xDEB8a9C0546A01b7e5CeE8e44Fd0C8D8B96a1f6e", + "asset": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "performanceFeeRate": 0, + "maxCapacity": "5000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-XAU-USDC-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-XAU-USDC-Vault.json new file mode 100644 index 0000000..332266f --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-XAU-USDC-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xfd23dc00fb2079de90aa13e1378b438b30951d85" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22495773", + "timestamp": "1747400171" + }, + "vaultInfo": { + "name": "TermMax XAU USDC vault", + "symbol": "TMX-XAU-USDC-Vault", + "address": "0x240Dd52089899a71454942b6Ba3ef4dbcBAd57fd", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 0, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-eUSDe-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-eUSDe-Vault.json new file mode 100644 index 0000000..30b809b --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-eUSDe-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503765", + "timestamp": "1747497119" + }, + "vaultInfo": { + "name": "TermMax eUSDe Vault", + "symbol": "TMX-eUSDe-Vault", + "address": "0x23EA636813B308EfA0Af35F556d3410104E88e5c", + "asset": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "performanceFeeRate": 0, + "maxCapacity": "10000000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-pufETH-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-pufETH-Vault.json new file mode 100644 index 0000000..2c70e1c --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-pufETH-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503786", + "timestamp": "1747497371" + }, + "vaultInfo": { + "name": "TermMax pufETH Vault", + "symbol": "TMX-pufETH-Vault", + "address": "0xdC4d99aB6c69943b4E17431357AbC5b54B4C2F56", + "asset": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "performanceFeeRate": 0, + "maxCapacity": "4000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-sUSDe-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-sUSDe-Vault.json new file mode 100644 index 0000000..da8515e --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-sUSDe-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503669", + "timestamp": "1747495955" + }, + "vaultInfo": { + "name": "TermMax sUSDe Vault", + "symbol": "TMX-sUSDe-Vault", + "address": "0xb12e979a021635Df56277d67D57f76D1c01388ca", + "asset": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "performanceFeeRate": 0, + "maxCapacity": "10000000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-uniBTC-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-uniBTC-Vault.json new file mode 100644 index 0000000..9ebc677 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-uniBTC-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503727", + "timestamp": "1747496651" + }, + "vaultInfo": { + "name": "TermMax uniBTC Vault", + "symbol": "TMX-uniBTC-Vault", + "address": "0xCD2291be7d2D71425A612C1d5837893de38a953B", + "asset": "0x004E9C3EF86bc1ca1f0bB5C7662861Ee93350568", + "performanceFeeRate": 0, + "maxCapacity": "10000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-wstETH-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-wstETH-Vault.json new file mode 100644 index 0000000..0fc28cf --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-wstETH-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x3b6b686d5080fff47dc1aaa51357454b9614490d" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22325729", + "timestamp": "1745339159" + }, + "vaultInfo": { + "name": "TermMax wstETH Vault", + "symbol": "TMX-wstETH-Vault", + "address": "0xDAdeAcC03a59639C0ecE5ec4fF3BC0d9920A47eC", + "asset": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "performanceFeeRate": 0, + "maxCapacity": "25000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-TMX-wstUSR-Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-TMX-wstUSR-Vault.json new file mode 100644 index 0000000..68b85a8 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-TMX-wstUSR-Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xde6187269321ebd08b5d536ff89f9bb4a54c3a39" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22503686", + "timestamp": "1747496159" + }, + "vaultInfo": { + "name": "TermMax wstUSR Vault", + "symbol": "TMX-wstUSR-Vault", + "address": "0xb1717d2fE0e20f584194c3E8808450817f52d620", + "asset": "0x1202F5C7b4B9E47a1A484E8B270be34dbbC75055", + "performanceFeeRate": 0, + "maxCapacity": "10000000000000000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x008c7DC790fA31E6CA19D8Cb6d11C53f6A88DF6c", + "guardian": "0x6383EDe871F8B0167905C2466505381CDcD9cC78", + "allocator": "0x518C292A86450808E593Bcf26Fc29A7a7b682198" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-Weiting USDC Vault.json b/deployments/eth-mainnet/eth-mainnet-vault-Weiting USDC Vault.json new file mode 100644 index 0000000..31301e4 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-Weiting USDC Vault.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xb07dca68abfa0915501a9f9b5e5f8ae686c02d95" + }, + "blockInfo": { + "network": "eth-mainnet", + "blockNumber": "22215681", + "timestamp": "1744012679" + }, + "vaultInfo": { + "name": "Weiting USDC Vault", + "symbol": "Weiting USDC Vault", + "address": "0x5C16d84e998c661D9F6C7Cc23e1144E4b7f39759", + "asset": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 86400, + "admin": "0xDA4aAF85Bb924B53DCc2DFFa9e1A9C2Ef97aCFDF", + "curator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "guardian": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A", + "allocator": "0x1c59f7A0AA3f01DDACd17c0EF7Bc00c3D18feD0A" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/eth-mainnet-vault-factory.json b/deployments/eth-mainnet/eth-mainnet-vault-factory.json new file mode 100644 index 0000000..8f8ecb5 --- /dev/null +++ b/deployments/eth-mainnet/eth-mainnet-vault-factory.json @@ -0,0 +1,14 @@ +{ + "network": "eth-mainnet", + "deployedAt": "1744824947", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x9ccea93c0ceff6a76f38270be9ea3d3aad9552d7", + "blockInfo": { + "number": "22283087", + "timestamp": "1744824947" + }, + "deployer": "0x56E3665038C5F0b56Cc7D81aC66C86521274B251", + "contracts": { + "vaultFactory": "0x4778CBf91d8369843281c8f5a2D7b56d1420dFF5" + } +} \ No newline at end of file diff --git a/deployments/eth-mainnet/submit-eth-mainnet-pt-susde-31jul2025-log.txt b/deployments/eth-mainnet/submit-eth-mainnet-pt-susde-31jul2025-log.txt new file mode 100644 index 0000000..9223436 --- /dev/null +++ b/deployments/eth-mainnet/submit-eth-mainnet-pt-susde-31jul2025-log.txt @@ -0,0 +1,12 @@ +./script.sh eth-mainnet script:SubmitOracles --broadcast + +== Logs == + Submitted oracle for collateral: PT-sUSDE-31JUL2025 + Price feed: 0x53399c17DbB2Ba67BB3B6E5bf692251267A3F861 + Backup price feed: 0x28eBF137e6659f9037b2393D7f52D37CD963B51a + Heartbeat: 86400 + -------------------------------- + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/submit-inwsteth-oracle-log.txt b/deployments/eth-mainnet/submit-inwsteth-oracle-log.txt new file mode 100644 index 0000000..1b59063 --- /dev/null +++ b/deployments/eth-mainnet/submit-inwsteth-oracle-log.txt @@ -0,0 +1,37 @@ +./script.sh eth-mainnet script:SubmitOracles --broadcast +Running on eth-mainnet... +=== Configuration === +Operation: Script Execution +Network: eth-mainnet +Script: SubmitOracles.s.sol +Path: script/SubmitOracles.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Disabled +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/SubmitOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + Submitted oracle for collateral: inwstETHs + Price feed: 0x4dDD3d3F3a92939BF352d503aFd4666773fEfa1B + Backup price feed: 0x4dDD3d3F3a92939BF352d503aFd4666773fEfa1B + Heartbeat: 86400 + -------------------------------- + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/submit-oracles-20250417-log.txt b/deployments/eth-mainnet/submit-oracles-20250417-log.txt new file mode 100644 index 0000000..519b533 --- /dev/null +++ b/deployments/eth-mainnet/submit-oracles-20250417-log.txt @@ -0,0 +1,47 @@ + ./script.sh eth-mainnet script:SubmitOracles --broadcast --verify +Running on eth-mainnet... +=== Configuration === +Operation: Script Execution +Network: eth-mainnet +Script: SubmitOracles.s.sol +Path: script/SubmitOracles.s.sol +RPC URL: http*****://eth-main*****.g.alch*****.com/v2/u8Dd*****-2C-AIUn***** +Admin Address: 0x8409a9C1A911CED491892c5694E43994c9d47E8f +Mode: Live Broadcast--broadcast +Verification: Enabled--verify +Tenderly Verification: Disabled +Debug Mode: Disabled +Uniswap V3 Router: 0xE592427A0AEce92De3Edee1F18E0157C05861564 +Odos V2 Router: 0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559 +Pendle Swap V3 Router: 0x888888888889758F76e7103c6CbF23ABbF58F946 +Oracle Timelock: 43200 +=============================== +Starting script execution... +Executing: forge script script/SubmitOracles.s.sol --private-key [MASKED] --rpc-url [MASKED] --broadcast --slow --verify +warning: Found unknown config section in foundry.toml: [soldeer] +This notation for profiles has been deprecated and may result in the profile not being registered in future versions. +Please use [profile.soldeer] instead or run `forge config --fix`. +[⠒] Compiling... +No files changed, compilation skipped +Script ran successfully. + +== Logs == + Submitted oracle for collateral: MC_USDCP + Price feed: 0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322 + Backup price feed: 0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322 + Heartbeat: 86400 + -------------------------------- + Submitted oracle for collateral: gtusdcf + Price feed: 0x81195F8A79f6553A4078f89eF87b21a7d3C2855A + Backup price feed: 0x81195F8A79f6553A4078f89eF87b21a7d3C2855A + Heartbeat: 86400 + -------------------------------- + Submitted oracle for collateral: mhyETH + Price feed: 0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931 + Backup price feed: 0x00B96F0eBf39158cb4E3F801073966bD6Db7959C + Heartbeat: 86400 + -------------------------------- + +## Setting up 1 EVM. + +========================== \ No newline at end of file diff --git a/deployments/eth-mainnet/submit-oracles-20250515-log.txt b/deployments/eth-mainnet/submit-oracles-20250515-log.txt new file mode 100644 index 0000000..2d1ce45 --- /dev/null +++ b/deployments/eth-mainnet/submit-oracles-20250515-log.txt @@ -0,0 +1,23 @@ +== Logs == + Submitted oracle for collateral: PT-slvlUSD-25SEP2025 + Price feed: 0x5042768E83E2b5F9A7251A41C4E66855DD65fe31 + Backup price feed: 0x5042768E83E2b5F9A7251A41C4E66855DD65fe31 + Heartbeat: 86400 + -------------------------------- + Submitted oracle for collateral: PT-mMEV-31JUL2025 + Price feed: 0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1 + Backup price feed: 0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1 + Heartbeat: 86400 + -------------------------------- + Submitted oracle for collateral: mMEV + Price feed: 0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61 + Backup price feed: 0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61 + Heartbeat: 86400 + -------------------------------- + Submitted oracle for collateral: XAUM + Price feed: 0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6 + Backup price feed: 0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6 + Heartbeat: 86400 + -------------------------------- + +## Setting up 1 EVM. diff --git a/deployments/eth-mainnet/submit-price-feed-20250522-log.txt b/deployments/eth-mainnet/submit-price-feed-20250522-log.txt new file mode 100644 index 0000000..939c78b --- /dev/null +++ b/deployments/eth-mainnet/submit-price-feed-20250522-log.txt @@ -0,0 +1,120 @@ +No files changed, compilation skipped +Script ran successfully. + +== Logs == + PriceFeedFactory deployed at 0xcac930B240163fDB71b74514E8FAA113ec0dA844 + PT-eUSDE-14AUG2025 primary price feed address 0x1db66D3BAc8d405643716BF6605D1a045a4AC56C + PT-eUSDE-14AUG2025 primary last answer 98051069 + PT-eUSDE-14AUG2025 secondary price feed address 0x00d14fD4D4525bBe8D6C7d67535df0FAf348f405 + PT-eUSDE-14AUG2025 secondary last answer 98005405 + lbtc primary price feed address 0x68D619f8a4E21c4CC0EAb3c4572ec0c9FeD78D3C + lbtc primary last answer 11033548163381 + lbtc secondary price feed address 0xf338eA0349a717F665842752FabA755B741ee9CA + lbtc secondary last answer 11050039009139 + PT-LBTC-26JUN2025 primary price feed address 0x592a2ef26E70663359514da51F9E2DA62Cfa65e9 + PT-LBTC-26JUN2025 primary last answer 11013920137787 + PT-LBTC-26JUN2025 secondary price feed address 0xEf3E4F385BeB78be528b67560e9E72f96B2Eee99 + PT-LBTC-26JUN2025 secondary last answer 11030381647312 + ynEthx primary price feed address 0x5FDaa369D623d86191105435c7DA03F25417753a + ynEthx primary last answer 278062302772 + ynEthx secondary price feed address 0x2D9f82CcF2068686B46218B7A5Ad47177aF2ef7a + ynEthx secondary last answer 277746919835 + PT-USDS-14AUG2025 primary price feed address 0x4599f532E03458017Fa55F7DCF7A296267637B74 + PT-USDS-14AUG2025 primary last answer 97928861 + +## Setting up 1 EVM. + +========================== + +Chain 1 + +Estimated gas price: 5.73982903 gwei + +Estimated total gas used for script: 9105328 + +Estimated amount required: 0.05226302598207184 ETH + +========================== + + +========================== + +ONCHAIN EXECUTION COMPLETE & SUCCESSFUL. +## +Start verification for (9) contracts +Start verifying contract `0x1db66D3BAc8d405643716BF6605D1a045a4AC56C` deployed on mainnet + +Submitting verification for [contracts/extensions/PTWithPriceFeed.sol:PTWithPriceFeed] 0x1db66D3BAc8d405643716BF6605D1a045a4AC56C. +Submitted contract for verification: + Response: `OK` + GUID: `f3rbjgkxtzhwnkyrhagn6mgc9qrj3vexgxbbx4zfvhl4s8mv5t` + URL: https://etherscan.io/address/0x1db66d3bac8d405643716bf6605d1a045a4ac56c +Start verifying contract `0x00d14fD4D4525bBe8D6C7d67535df0FAf348f405` deployed on mainnet + +Submitting verification for [contracts/extensions/PTWithPriceFeed.sol:PTWithPriceFeed] 0x00d14fD4D4525bBe8D6C7d67535df0FAf348f405. +Submitted contract for verification: + Response: `OK` + GUID: `fmpygyj8xvjhn5lnq5s7gzszpnpv2juapf79gut3itctzzr5wk` + URL: https://etherscan.io/address/0x00d14fd4d4525bbe8d6c7d67535df0faf348f405 +Contract source code already verified +Start verifying contract `0x68D619f8a4E21c4CC0EAb3c4572ec0c9FeD78D3C` deployed on mainnet + +Submitting verification for [contracts/extensions/PriceFeedConverter.sol:PriceFeedConverter] 0x68D619f8a4E21c4CC0EAb3c4572ec0c9FeD78D3C. +Submitted contract for verification: + Response: `OK` + GUID: `bg9phpmkxq138idcd8ztybgdbrfvrvpuh8agca2julfcganrwd` + URL: https://etherscan.io/address/0x68d619f8a4e21c4cc0eab3c4572ec0c9fed78d3c +Contract source code already verified +Start verifying contract `0xf338eA0349a717F665842752FabA755B741ee9CA` deployed on mainnet + +Submitting verification for [contracts/extensions/PriceFeedConverter.sol:PriceFeedConverter] 0xf338eA0349a717F665842752FabA755B741ee9CA. +Submitted contract for verification: + Response: `OK` + GUID: `izz7sz1veq9qu217kz8yzd7qqdw4yrup2cdpkbgbggkbadrdcz` + URL: https://etherscan.io/address/0xf338ea0349a717f665842752faba755b741ee9ca +Contract source code already verified +Start verifying contract `0x592a2ef26E70663359514da51F9E2DA62Cfa65e9` deployed on mainnet + +Submitting verification for [contracts/extensions/PTWithPriceFeed.sol:PTWithPriceFeed] 0x592a2ef26E70663359514da51F9E2DA62Cfa65e9. +Submitted contract for verification: + Response: `OK` + GUID: `wldppnkfympazxzu2uubmjtgjufukvdxv6fvcygyu6w7wndvve` + URL: https://etherscan.io/address/0x592a2ef26e70663359514da51f9e2da62cfa65e9 +Contract source code already verified +Start verifying contract `0xEf3E4F385BeB78be528b67560e9E72f96B2Eee99` deployed on mainnet + +Submitting verification for [contracts/extensions/PTWithPriceFeed.sol:PTWithPriceFeed] 0xEf3E4F385BeB78be528b67560e9E72f96B2Eee99. +Submitted contract for verification: + Response: `OK` + GUID: `avsyilixfu8sjtahftidhwnvgffkkwhjphwh6nnudfslrtl2ye` + URL: https://etherscan.io/address/0xef3e4f385beb78be528b67560e9e72f96b2eee99 +Contract source code already verified +Start verifying contract `0x5FDaa369D623d86191105435c7DA03F25417753a` deployed on mainnet + +Submitting verification for [contracts/extensions/PriceFeedWithERC4626.sol:PriceFeedWithERC4626] 0x5FDaa369D623d86191105435c7DA03F25417753a. +Submitted contract for verification: + Response: `OK` + GUID: `rnhweftihe3wppmjnipblajxrihvflmjsy17y5yywcuc9khxpg` + URL: https://etherscan.io/address/0x5fdaa369d623d86191105435c7da03f25417753a +Contract source code already verified +Start verifying contract `0x2D9f82CcF2068686B46218B7A5Ad47177aF2ef7a` deployed on mainnet + +Submitting verification for [contracts/extensions/PriceFeedWithERC4626.sol:PriceFeedWithERC4626] 0x2D9f82CcF2068686B46218B7A5Ad47177aF2ef7a. +Submitted contract for verification: + Response: `OK` + GUID: `q9q1nqek5vnyuwhi4rpfljjgfa77n71l6zwdjrbatdz4bx9xkq` + URL: https://etherscan.io/address/0x2d9f82ccf2068686b46218b7a5ad47177af2ef7a +Contract source code already verified +Start verifying contract `0x4599f532E03458017Fa55F7DCF7A296267637B74` deployed on mainnet + +Submitting verification for [contracts/extensions/PTWithPriceFeed.sol:PTWithPriceFeed] 0x4599f532E03458017Fa55F7DCF7A296267637B74. +Submitted contract for verification: + Response: `OK` + GUID: `8adtm68vr3xycjcq4dxhbiee1dc25ewdngn8xwmq9avlxf49at` + URL: https://etherscan.io/address/0x4599f532e03458017fa55f7dcf7a296267637b74 +Contract successfully verified + +Transactions saved to: /Users/vincent/Documents/ts-codes/termmax-contract/broadcast/DeployPriceFeedsEth_20250522.s.sol/1/run-latest.json + +Sensitive values saved to: /Users/vincent/Documents/ts-codes/termmax-contract/cache/DeployPriceFeedsEth_20250522.s.sol/1/run-latest.json + diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-access-manager.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-access-manager.json new file mode 100644 index 0000000..6088188 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1743741852", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x02fff1d6d797ed5e62117eb2d07b7f4f25d0e281", + "blockInfo": { + "number": "8046695", + "timestamp": "1743741852" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x593320B6222A31850FA4AB911EdDf9f1Ad15dad1" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-core.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-core.json new file mode 100644 index 0000000..8253e56 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1743742452", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x02fff1d6d797ed5e62117eb2d07b7f4f25d0e281", + "blockInfo": { + "number": "8046744", + "timestamp": "1743742452" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x04031181e1d5860DEA665e43E29749b341817edc", + "vaultFactory": "0x7594f6f6807d277094539d164B89918a62C07DeB", + "oracleAggregator": "0xcc63A183778281d4DB937A1d02E7f8f7C96a8F91", + "router": "0x7730c2fA4F4A17A53705BD1a471ceC305b6421e4", + "swapAdapter": "0xA7218B54C3781F2E77019e3F179455Bd3Da68EDc", + "faucet": "0x9C6300161351626a3B91a64f02174eC14917347c", + "marketViewer": "0x784647f66D8156Ab4942649940469A73Da10Efb0" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json new file mode 100644 index 0000000..c367f45 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x66A109Cbf4D89FE09595B8CC15d2d7a459Eca99c", + "collateral": { + "address": "0xADCa62Ad0F7D3645a196833b0b51E77D685fF238", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x412e037E092E5dc77d4D7DffdC105132eCb9AB62", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0fD365C479bd2b5CECC2eca2Cab0100D838d0f97", + "xt": "0xd93fbf89601A986A84Fc941C9084853f5D85b530", + "gt": "0x4Db48db538F2d0511ab645041dbdC987FDbE0F32" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-USUALUSDC+@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-USUALUSDC+@06APR2025.json new file mode 100644 index 0000000..f3a1a3c --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-USUALUSDC+@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x42186bb9250DBcD8a582d07192Eb567CC27582A1", + "collateral": { + "address": "0xEC04d3c184114000f9d7dE9C74b52B17DaACCa20", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x412e037E092E5dc77d4D7DffdC105132eCb9AB62", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xdac41ADd721c0dAe6257e6759909454DeD73f0d6", + "xt": "0x70AD6a4e480d1236d47C6FEC92558d3eaC88120a", + "gt": "0x4D7CE3bCd82DEBDBa1E7f29404B793176A40361C" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-WBTC@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-WBTC@06APR2025.json new file mode 100644 index 0000000..6e15fb6 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-WBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x14d0210Be617e05101B127fCEA72FC884b2c16EF", + "collateral": { + "address": "0xbb96F91E8D9108015242F018E89dEf1f3e0c3bA4", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0x412e037E092E5dc77d4D7DffdC105132eCb9AB62", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2c99be0a4A188B62AF74AB233cA6E7aEe34f57b3", + "xt": "0xBE1C2c1e39a1B195B72cc2F69968EB9D4264E89B", + "gt": "0x4fcA326cE27f8EB6A50410795817f905D43B6a92" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-cbBTC@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-cbBTC@06APR2025.json new file mode 100644 index 0000000..230a407 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-cbBTC@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0xa9CA6Ae9C447aC8C6fc9dcBC6b0530C33cF6EF68", + "collateral": { + "address": "0x11b90630189Cf88699d5b642E1dCc295EE3519A6", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x412e037E092E5dc77d4D7DffdC105132eCb9AB62", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xC90788d0A26215376E2Dc09E15F801bd4D81cE18", + "xt": "0x99A9D2eaa682E1C5BDe22857d417f691f7F97d3a", + "gt": "0x9dEDbcbE19477Fb344bFe0EAEB4e2a8B71224011" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-eUSDe@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-eUSDe@06APR2025.json new file mode 100644 index 0000000..828ce28 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-eUSDe@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x93aa2855328C2648A0Ff920204ceb598C1151Cb1", + "collateral": { + "address": "0xD7C8D7F7971e0ca111c59ea60b007236bC143e49", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x412e037E092E5dc77d4D7DffdC105132eCb9AB62", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x58F7761aE5990e92107e9B6d78a9B3240206C93c", + "xt": "0x2bCfffb78b544496c86F49afD4539eABB33E0Acb", + "gt": "0x0e38524019992056dA89340BBa8f0CC9900Fd8A1" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-sUSDe@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-sUSDe@06APR2025.json new file mode 100644 index 0000000..b784172 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-sUSDe@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x3141f0839113dFB6e81fdedB2D9C495F93A1F5c3", + "collateral": { + "address": "0x75748B0B25a5076d7D1441b8667af99284fBbDF8", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x412e037E092E5dc77d4D7DffdC105132eCb9AB62", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb71e2F953DD20c1F7dd0362C09dbf741857043AB", + "xt": "0xF47eb1809a11c688dabfFD384417F1FBbda535dA", + "gt": "0x8303D51AE712f0188661f8a07479891041eb45d9" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-wstETH@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-wstETH@06APR2025.json new file mode 100644 index 0000000..e244038 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-USDC-wstETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x01BB77Be04b452BFc74F99Ec75F8B929BB8A73a0", + "collateral": { + "address": "0xf155CF40d6c0f1099757706BFaA84E2F8a77f8ef", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x412e037E092E5dc77d4D7DffdC105132eCb9AB62", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x548EA2246877f93069bf09E2995d97b9e02d3acf", + "xt": "0xd0Efe8009bB566fc1A53951DfDAa1C54666D3e94", + "gt": "0x1a00628decFecF5E326229ca169519e462880256" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-MCwETH@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-MCwETH@06APR2025.json new file mode 100644 index 0000000..a85a565 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-MCwETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x4D0dbba1062AD039E31f6a7Bc2Cb27154fcC54a1", + "collateral": { + "address": "0x20043D6bf20f29a4b22D9a094A74469d47481976", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0x61ccFfB89b22859cB970D2580715Fe219a151B25", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xF696089a74d66aC705b575438665A39515aa370B", + "xt": "0x570752307BAFa979be030D41bAC77B9947eB9738", + "gt": "0x7F098EEf0543FB08B9A7057d225bA075fdAF9475" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-gtWETH@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-gtWETH@06APR2025.json new file mode 100644 index 0000000..35261e1 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-gtWETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x818e016050Ec7d40B9bc58728Fe6D18De6807a31", + "collateral": { + "address": "0x854421001374da9113BB51F7dc0DeAEf31be691e", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0x61ccFfB89b22859cB970D2580715Fe219a151B25", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0xd5faEdD923c39e25839874883067dE85f15f273D", + "xt": "0xf1a8F361AEA15f226C6619f5C4bE2234A48D9Ec9", + "gt": "0x86acC70f85579B2f840F33dC08d492eaaF8234Cd" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-pufETH@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-pufETH@06APR2025.json new file mode 100644 index 0000000..48c9dc3 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-pufETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x6B697AaCe1c228051166f6a82d8eF54bB476D0DD", + "collateral": { + "address": "0x4CdA4bDEf6bD54a59F4FB35cF8041e44e861Dd15", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x61ccFfB89b22859cB970D2580715Fe219a151B25", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x044D2bD3A83Be02a0c16C96eA8587c95d36d256a", + "xt": "0x73f9Bf61ab3B2f0557ff189C4d5E17E6567BfbBC", + "gt": "0x75bb96bBeAE7e2DD424859ca4b7E0151b980E47C" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-weETH@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-weETH@06APR2025.json new file mode 100644 index 0000000..faf1b44 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-WETH-weETH@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x6886860b4EC95fd8373E698c3031c59796F0b2Ea", + "collateral": { + "address": "0x79d81c5Bdb4bc98ac31B25D1B5790f84F04b2542", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0x61ccFfB89b22859cB970D2580715Fe219a151B25", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x9BD1fFe8dCFA66a81585AEfDEC877044B5Fb54DA", + "xt": "0x853Bc8eA1884a68502dD61790A3676211bad21A0", + "gt": "0x9C1B7C8f2D44ef1d866F38aF12edb27FF38b1bcA" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json new file mode 100644 index 0000000..c43b9e0 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250404/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@06APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8046796", + "timestamp": "1743743112" + }, + "market": "0x11a1Ac00C0069E8f05E50926888c3cdeE673d676", + "collateral": { + "address": "0x75D7C7d49147688F3704e5bd80e6166896F0fd65", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x4CdA4bDEf6bD54a59F4FB35cF8041e44e861Dd15", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x3F13C05019b903C6395E467bf8a5121BB62fa07e", + "xt": "0x5862b0ae0d868e1dDb7A1d4b2b12187Eb452A139", + "gt": "0x7e88697feBa219837AcD6a2e4B7e217150bC1d2F" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "06APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-access-manager.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-access-manager.json new file mode 100644 index 0000000..cded3a2 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1744523760", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x1b19b284f4f6a7ffebcb90e1d9af5058a71d0ab5", + "blockInfo": { + "number": "8108621", + "timestamp": "1744523760" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x1b020ed8272AADe274a25Aa46E20bEEe00115995" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-core.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-core.json new file mode 100644 index 0000000..8fd4a4a --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1744524012", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x1b19b284f4f6a7ffebcb90e1d9af5058a71d0ab5", + "blockInfo": { + "number": "8108640", + "timestamp": "1744524012" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0xd5c4Ac6F6Adc283e74005E5691F0DC1D41f18738", + "vaultFactory": "0x62D2c0171A5D20af57f19EFb29C07C1AB5fEE1f0", + "oracleAggregator": "0x8D1b01CBD98352c6f85c4f583a143C6507e23545", + "router": "0x52bcBa6FF60d1f4f5b2460Ed2c1Ed278fCdfA776", + "swapAdapter": "0x78854923503eF5183426891d580CA586Dd1F69b7", + "faucet": "0xBFADf85c4aaf2E57EB814ce7195BAE27ED0097c7", + "marketViewer": "0xd8be21e186bfcCFcD78801436B2c4d1fbF8C2101" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..f4b2119 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0x4Baa6798534fFEf42F9B8C413908F15FcC8220d5", + "collateral": { + "address": "0x7E0145c0a969889eD1c2aFb1e4133FB85771f302", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x1D82d84c77903611825915682224b8a6008277dF", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0230cE501E03559ae7822BDC499a8C01256B1ca9", + "xt": "0x03027C4e72Fe79F75Db5996Cbe48e623b28e58ba", + "gt": "0x0e52b4733F0D5a352cBcd45bD9B44AeFF8Bf9586" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json new file mode 100644 index 0000000..5794795 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0xD8C7491a568774Ff0B00542bCF399493AD0713e4", + "collateral": { + "address": "0xC34365d7Ec59b3348688081cf4A0C5CAf79fcfF8", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x1D82d84c77903611825915682224b8a6008277dF", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x0790d6a0CfC66529cfAcEeD296DE2d48e105c2fF", + "xt": "0xBc00519DF74D4DC46260a77Aa05d3Bb37f072D24", + "gt": "0x67C303Ee204dA1B6793a7Fc61B1b24DaAC71e0D1" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-WBTC@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..6e50667 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0x4F3e9C8C26949D46C1dc27d03A288c8555759F48", + "collateral": { + "address": "0xA563d8C7fD838Ac0cb602028A854B225230b9626", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x1D82d84c77903611825915682224b8a6008277dF", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xA30bb367476A32E0fe2Cf32E634DD1d83C7DB5D2", + "xt": "0xE57302E26bAcc4De743F52622e3686C29ECB885A", + "gt": "0xd1882D7cb7C49b59862fB192179a2AB950c5f92f" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-cbBTC@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-cbBTC@30MAY2025.json new file mode 100644 index 0000000..097a1e0 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-cbBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0xE6bA5cD44ECd1e3A0470CC9b4464D04dA8d71660", + "collateral": { + "address": "0x951a44312d7Ad087d6FCA3a5e13583481ED10453", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x1D82d84c77903611825915682224b8a6008277dF", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xFc0535dB78e90a080351537aBfC808E50dB935bf", + "xt": "0x4302aBe1ebEB82117C647Fa13dd5dac5652d0525", + "gt": "0x2427049A01DbEb47D0Ee50BDB678F6563cC3452D" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-eUSDe@29MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-eUSDe@29MAY2025.json new file mode 100644 index 0000000..c388a69 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-eUSDe@29MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0x81657aeF2ec1141DD10eD737550FB5019E6F27F5", + "collateral": { + "address": "0x4C2aeA7Fa8E72D9A556918781821e2CFF113de5C", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x1D82d84c77903611825915682224b8a6008277dF", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xee4B45E7F9c55FCefECe310f56CFd73b11486e8E", + "xt": "0xbd6CC033c568e0ee5480144248F600a92e517c95", + "gt": "0x311553240D8efd1A93901f0ef6A516458ee586e0" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "29MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-sUSDe@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-sUSDe@30MAY2025.json new file mode 100644 index 0000000..0d3aa96 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-sUSDe@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0x2c4Fa22583db4987467fE01b12d2475AC809594b", + "collateral": { + "address": "0xd3Db12Df959Daea1D6cCF288D00b79a8B96FCfD4", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x1D82d84c77903611825915682224b8a6008277dF", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6F446d40C08D1C2Ba6dfbc7C0946aE137002644a", + "xt": "0x7A0011ebDb220d31E87172aCF8D5Db3B30F94Ca6", + "gt": "0xDFaaaB0530f5c9e31F4387Cd930Ee5c9c56e5D74" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-wstETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..dbda43c --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0xDC5c03df7f67ad0e64DBe57831F6f21E480Ec248", + "collateral": { + "address": "0xFD37068aa721F85522d0042f9Fa97dED1162EbD0", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x1D82d84c77903611825915682224b8a6008277dF", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb400d13a248Ec1F65526013bEf84451A553396d8", + "xt": "0x9309fa5f406BF5882ca65d3A1b53e0BaFEDed1a1", + "gt": "0x0908F4AF6AA1cabc3379cB7fE25446b1db027E00" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-MCwETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-MCwETH@30MAY2025.json new file mode 100644 index 0000000..9b01d29 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-MCwETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0x4c7Cd8eDAe914Edad8883347343Dd565fD5A40f7", + "collateral": { + "address": "0xf63e8AcCaf7FEC5A132b3564aDBEB6a950f9D9CD", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x5f9B1d24D9029c89b49aE3DEbc85Ab49245fC39e", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x00e736e9E4A89C2F811eD2e0F6F81f00241fD00a", + "xt": "0x7E1942F69bFa6D06ED4CD2920e9953631FE25498", + "gt": "0xf2D36d48BB912aa12Cf04e7f10c0bCf55AFa4cf8" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-gtWETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-gtWETH@30MAY2025.json new file mode 100644 index 0000000..143998d --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-gtWETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0x17cb434b11F050c98e5B0d119495Ae11a28Ef027", + "collateral": { + "address": "0xa4fF38705348B21b1154BAb14081bBDDddf3DAb4", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x5f9B1d24D9029c89b49aE3DEbc85Ab49245fC39e", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x72c4a9284DC1e6dB682384ff069F5621F3e31EDF", + "xt": "0xe21f51746faEd41ea67f0C2317378b496aA63244", + "gt": "0xaCceC7ACefE2e2dEcD0B78767D31b973F4a7A395" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-pufETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-pufETH@30MAY2025.json new file mode 100644 index 0000000..3beada3 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-pufETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0xE5CF329Da44c579DB1774339Eab62df06a476853", + "collateral": { + "address": "0x343e2bDA178FBFc995da36AbF45d872567F172E2", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x5f9B1d24D9029c89b49aE3DEbc85Ab49245fC39e", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x14C2e2ECE5D506A052cb39b63C559DccD26dcB4C", + "xt": "0x781669e1da8CDA943Be4Af519820AeFef789f762", + "gt": "0x68215ace62F0B0C332986E6a3f3BAb8d3509E73f" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-weETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..0a7a7d5 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0x956E1158Be33A40aB4D80aCaa8a277Cc3b0C6DD4", + "collateral": { + "address": "0x870252AE60aCa9667935CA94fe6768489D77e2E0", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x5f9B1d24D9029c89b49aE3DEbc85Ab49245fC39e", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xb209269F8074eD80e78E17eb4BB4309312b99766", + "xt": "0x9A852cdbBc4f1eF5A9046F84CCF4a0439dD59AB3", + "gt": "0x7aAd9577F8115404Cc1f7F72FB6D1a871A5ce0dd" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json new file mode 100644 index 0000000..52f8e10 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-sandbox-20250413/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8108682", + "timestamp": "1744524624" + }, + "market": "0x88B76e249c052a719Cb2701fd16B299550011CF9", + "collateral": { + "address": "0xA435495bC3CF5DF19E2Ec9e44331408768B66861", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x343e2bDA178FBFc995da36AbF45d872567F172E2", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7183A133b9f7C9a2E52E522038038b88ea706900", + "xt": "0x786199b1bE0D8B2AeD2691007619c7c356d9731A", + "gt": "0x5b0404cA0975f799eeAA3ae56655E3B0Bc54d969" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-access-manager.json b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-access-manager.json new file mode 100644 index 0000000..0854349 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1748270760", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0xf96b35287288133061e1101131d7783969d2940d", + "blockInfo": { + "number": "8411075", + "timestamp": "1748270760" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0xF97f629993AF917fFCa5Aa5dbFC89937098270fd" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-core.json b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-core.json new file mode 100644 index 0000000..412f8f8 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1748271696", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0xf96b35287288133061e1101131d7783969d2940d", + "blockInfo": { + "number": "8411153", + "timestamp": "1748271696" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x80F84584b1bcAc9653261DD647e08f2893DC7cC2", + "vaultFactory": "0x1d75f27D66E11ac21D8970A7f9087D8a8a08a847", + "oracleAggregator": "0x79F31F8e0D7DAEd9C47292A0b8141fb9F3C2Cb63", + "router": "0x73b41257862498346FbCd1C4CFF447450ED7732a", + "swapAdapter": "0xbA3AFe7F2A906b6A06279A496DA56f0C4cEc6497", + "faucet": "0x0c48c8379b1499A6bb4bb25F0865eE1E05D11cb7", + "marketViewer": "0xa4F749FfF8462e7dE95069D134A2ed79e2ce3F32" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-market-USDC-wstETH@27MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-market-USDC-wstETH@27MAY2025.json new file mode 100644 index 0000000..a053826 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-market-USDC-wstETH@27MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8411286", + "timestamp": "1748273304" + }, + "market": "0x9293a829E9f1BF86d3c0dbAD0D404b08672E5a3c", + "collateral": { + "address": "0x34EB42E88Ee00949212F98d86DF30DB10f306eef", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x7866f61d2cD2AFF9262C53bE9328e0Ab9f0f0D72", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6A8980374c354c313be7B75f17Ac165569ca1D87", + "xt": "0xdB904a3568f944fF568232Dce6b057C48485057C", + "gt": "0xf64b12Cd1514d0c6Af80830A0F86E0104fDDffD9" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-market-WETH-weETH@27MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-market-WETH-weETH@27MAY2025.json new file mode 100644 index 0000000..e43b5bc --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-market-WETH-weETH@27MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8411247", + "timestamp": "1748272824" + }, + "market": "0x2dbAF062C29bf4981BCee272fD3531307Bd82dD5", + "collateral": { + "address": "0xAEacaC65Ae784f761693d8F957950720015caCcD", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x57b9B1641d4e4bD32AA0543f2343c20CBaDfa5d9", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDcEdB8d09761ddA87dDc314656a63a9ade6AceAC", + "xt": "0x9A764C82C84a871271ecbDb49b920aeb0d401E36", + "gt": "0xa94d5064485eB290690cD7709e7afFe43162E760" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-vault-TMX-USDC.json b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-vault-TMX-USDC.json new file mode 100644 index 0000000..64e34da --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250527/eth-sepolia-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xf96b35287288133061e1101131d7783969d2940d" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8411332", + "timestamp": "1748273856" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x218Caa7cd17E90b27EDC4a711B4C6aE52111441E", + "asset": "0x7866f61d2cD2AFF9262C53bE9328e0Ab9f0f0D72", + "performanceFeeRate": 0, + "maxCapacity": "4000000000", + "timelock": 86400, + "admin": "0xF97f629993AF917fFCa5Aa5dbFC89937098270fd", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-access-manager.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-access-manager.json new file mode 100644 index 0000000..3d63b1b --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1744104768", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69", + "blockInfo": { + "number": "8076356", + "timestamp": "1744104768" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0xcAe062fCe470C1A8567Fd812905C18EC08431644" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-core.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-core.json new file mode 100644 index 0000000..9e6c488 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1744105236", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69", + "blockInfo": { + "number": "8076395", + "timestamp": "1744105236" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x74d7E445852E405E92aDC75e4309E9626A4E142f", + "vaultFactory": "0xb14488641C7206636C0ab681A67CB8dbb930ae90", + "oracleAggregator": "0xa54F41EB0Ce499F07a044bcf76F6Bb4cCdb0F4A1", + "router": "0x769020BDbD532a7e1A7C15521Ab4b0Df7a95328a", + "swapAdapter": "0xE146A9e954b2DFD0Fd71668A9Ac70A590486c758", + "faucet": "0xeEbc49f73bC2faF0E6b52Fd78aec4a4eaA3e64D5", + "marketViewer": "0x7602984752987Ccb9cf526F51984124c0C30f73b" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..232c0df --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xd039A90DAeEe9665a2a5cf90858406a93418610C", + "collateral": { + "address": "0xE752EAf6c376F3aFc92F491C038b6034cFF2ed6B", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x09974090Cc5dd30dD903dd900A2b311371dD695c", + "xt": "0xb9FE59e12d06360D91034C069dbc90bc436053CB", + "gt": "0x73e90e6101F914B799E7aaB6cafe475560272eEB" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json new file mode 100644 index 0000000..2d9db4f --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xc5ACFAe592806404DEc2b10114E1bC4F59D3a2BB", + "collateral": { + "address": "0x3b6Dc6959f6BC2e0a771F42c2ed5AC61558A070D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5C9e92db7f7bE6dD506C30A6a28e9201c78782Fa", + "xt": "0x8a85fe2f51d1e13859A42aad0436909dc312F567", + "gt": "0x4F7d358943b0Ced097ec89Cc3908CE8feCaD8B7a" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-WBTC@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..48a26d7 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xaFe10Ad8d4d179cb8D843E03729d47e2C4c2bbc5", + "collateral": { + "address": "0xeA569a4Ae4Bd3C71De9839DE21744177E979D86B", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xfD44183B0d3a124F7c17aa34148B870d3aBBD219", + "xt": "0x8D4310d7857D06B96239ab2c66d16bCeA639c487", + "gt": "0x62cDC480FFbfE711888116c87DFD56778Da797E6" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-cbBTC@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-cbBTC@30MAY2025.json new file mode 100644 index 0000000..8a85133 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-cbBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x17AcE2764c593c3A29139686B7e70Abe46964Cbf", + "collateral": { + "address": "0x0Ab56705cBEcb370077C9061ce0c1001F18d7D65", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x62E9bDC0B04bb449A1482627d4CcE53BEB1D12e9", + "xt": "0x5871FeDc05Db81d957CC8c8AFfdEB10A796F489a", + "gt": "0xBbEf58570483147FFF5b098a53AC194213a47390" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-eUSDe@29MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-eUSDe@29MAY2025.json new file mode 100644 index 0000000..e2938d4 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-eUSDe@29MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xA01ebcc30F5A04d05ef08509bEba37369c7Ad5c4", + "collateral": { + "address": "0x8d1674d9Faa6D000C5Fccb96C6E3Ea243fE7dAb9", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x541F31deB35c3A30Db9803bFC5f62931bd90eAe0", + "xt": "0xa39432D9D68bf009c3DeF643255837D43fFFb6D9", + "gt": "0x01356e9680b64FA4B06597ddd4802F7638D3BFE9" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "29MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-sUSDe@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-sUSDe@30MAY2025.json new file mode 100644 index 0000000..d477aee --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-sUSDe@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x635430374F936e1371caa5f423253aE6A60c6094", + "collateral": { + "address": "0x668756092EF35B95e5972Daf4646B0904D77B8A2", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6bE96A6Fb035b68C8d32B1F3F45B8a83A2C1eDE6", + "xt": "0x2506129881eB3363b9Fc72640162c195F9093cF8", + "gt": "0xEA861a9b80D6Bf302A180A1d71a761558cf7F588" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@11APR2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@11APR2025.json new file mode 100644 index 0000000..36538cc --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8094955", + "timestamp": "1744344168" + }, + "market": "0x4B36FAB576513175f16aE91640385bB0d8E769fA", + "collateral": { + "address": "0x5f5b868451Bef658C72B553783A1E514aB581e8a", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2D136A7807B464fb6a46B69C15cef14824039BD9", + "xt": "0x0BDb214ebA6CB1D025137B92Da1b90409F12362E", + "gt": "0x6ea3Ba9CB69969Dcdadf1B258e78F2858ed0c794" + }, + "config": { + "marketSymbol": "USDC/wstETH@11APR2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@27JUN2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@27JUN2025.json new file mode 100644 index 0000000..0b3e753 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8461289", + "timestamp": "1748874444" + }, + "market": "0xe0308B314bbF277C334191e98d606d354f4B74e8", + "collateral": { + "address": "0x5f5b868451Bef658C72B553783A1E514aB581e8a", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xCe2BD4DB80d7A032Def93eF32E082A50C5DF5F16", + "xt": "0xDc446841905Cb9780a6f66338eaefE60CeC5124C", + "gt": "0x17264609C0A416aBbC14BF5f87c5eA1E5c58e95D" + }, + "config": { + "marketSymbol": "USDC/wstETH@27MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@27MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@27MAY2025.json new file mode 100644 index 0000000..1e24413 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@27MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8414564", + "timestamp": "1748312688" + }, + "market": "0x8B36F71b9038B070ab903Eb332Ba447cA8d33D0E", + "collateral": { + "address": "0x5f5b868451Bef658C72B553783A1E514aB581e8a", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x74048d5Ac367F1c89fe862d49efeddB73f9b609E", + "xt": "0x82cE065382D3c7971bE96fEE001C4C2bbA05b51c", + "gt": "0x39996693EbD0c334dC239c0aa2f8219ead9E2C72" + }, + "config": { + "marketSymbol": "USDC/wstETH@27MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@28MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@28MAY2025.json new file mode 100644 index 0000000..77a2530 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@28MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8417107", + "timestamp": "1748343288" + }, + "market": "0x0C209db1AA33675514011BA415c741C5f6Aff32f", + "collateral": { + "address": "0x5f5b868451Bef658C72B553783A1E514aB581e8a", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x7Ea4d044CDFf19530F8A87393C583Fc391285b8A", + "xt": "0xFF13770Fbd40Aed5E6eefC3C225FFCc672c45275", + "gt": "0x5fE8D5210C0B9501C55Ab15A60836f02Be71c325" + }, + "config": { + "marketSymbol": "USDC/wstETH@27MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "28MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..623b24c --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x68B0CDe0E2a22A02324EdAD07499d10De6552cEb", + "collateral": { + "address": "0x5f5b868451Bef658C72B553783A1E514aB581e8a", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDa25e32D8Eae7dC967d75d77b54D323C31Fa6d22", + "xt": "0xdC1599eDb36b05461955Ac5e0be79246c6085Fd7", + "gt": "0xc41EA3022711d2ddea27F90e44cc2E863DF853F5" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-MCwETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-MCwETH@30MAY2025.json new file mode 100644 index 0000000..ee91fb3 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-MCwETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xDD73Fd1D293Db5E10DfD2a51753BeF401060eddB", + "collateral": { + "address": "0xE30bD12bC98d29F0ACd2ee1113e96463b493b057", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x63E867cb03b6C5b8014f4a15721AC0Cd35Ef2522", + "xt": "0x8135c8e310767a10f9aF093A733f734880279eb4", + "gt": "0x118d44E474f8E50FBeF1Fc5481E73cBcDf3a6E32" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-gtWETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-gtWETH@30MAY2025.json new file mode 100644 index 0000000..be07db5 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-gtWETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xf9523f3B29b85e83d15e7f57476c4cF21259d6B9", + "collateral": { + "address": "0xcad5E8d21fFF8E3aba0399016d16473CFd3F52Fc", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x7e20bC2453e278625f62f8e4C276D62A1E58129a", + "xt": "0x2ABd5C144AB31FBd46B059f0E70131f998Be76bc", + "gt": "0x60aa3ab271CA709dC93Affe3186229D2Ca9AB746" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-pufETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-pufETH@30MAY2025.json new file mode 100644 index 0000000..9dfab83 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-pufETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x3e85d91F08fd4a951C00B5745b4e4D545257235f", + "collateral": { + "address": "0xf06D04d0532643613dD5E2BCfF337f41EcC63017", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x6Da4110366bC29F7813FbcD3670897a4909B8258", + "xt": "0xc1F4C031657B86923e6Edf3Fd9DD00bCc1c365E4", + "gt": "0x200488e8CcB1807Dd16F0879491Feb20d5f2e4cD" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@11APR2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@11APR2025.json new file mode 100644 index 0000000..ab75e81 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8094955", + "timestamp": "1744344168" + }, + "market": "0x06a89a2aC9861b3792105fC94B2B9b3Be292A9B8", + "collateral": { + "address": "0xaE232da97AC082aa0FB91637285041afcc330D02", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x71Dd465a7f0b74BE2a74E8aEe08B1d9965551C9A", + "xt": "0x6f1BE4F650e894376B597643B189869Bf6149CC6", + "gt": "0x73348d53f4dAF4C0991C100C0e2608f7610a6859" + }, + "config": { + "marketSymbol": "WETH/weETH@11APR2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@27JUN2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@27JUN2025.json new file mode 100644 index 0000000..c0c87a2 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@27JUN2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8461289", + "timestamp": "1748874444" + }, + "market": "0x9baB531b1e667Ad3707A1F98d4313D340B0D4569", + "collateral": { + "address": "0xaE232da97AC082aa0FB91637285041afcc330D02", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x08dDda75b2c79D799AB36f9041311d5d80837baF", + "xt": "0x1B472F1ae6513d962c03DF338107F4A37563ce11", + "gt": "0xdAe0AE31ec66e85EF39c75834D554895f58483Cb" + }, + "config": { + "marketSymbol": "WETH/weETH@27MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27JUN2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@27MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@27MAY2025.json new file mode 100644 index 0000000..8ef545b --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@27MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8417107", + "timestamp": "1748343288" + }, + "market": "0x55eE721d93c8e078E57567A86A10C39Aee07BB79", + "collateral": { + "address": "0xaE232da97AC082aa0FB91637285041afcc330D02", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x71bB0aF0Ea6CF6cc1bFAC95B248d0Dd39Ee3d986", + "xt": "0x68A6Cb81ACC437693f77796101A0f9B2F7A3fB2c", + "gt": "0x2176560A9F704c5F0E940edA3ECC3E690DB353BB" + }, + "config": { + "marketSymbol": "WETH/weETH@27MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "27MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..9284cde --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x16fcC0C341325Ab3142E9475ecE5A04ca5DEFffe", + "collateral": { + "address": "0xaE232da97AC082aa0FB91637285041afcc330D02", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x971202ae0d7f96193B9360D5e7b382E4afdac01B", + "xt": "0xA23ACAABB8F004ac045056bBb6899B6DDbA78927", + "gt": "0x94cF59fe7aA5C743FA87beaB9dc00471c0a41940" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json new file mode 100644 index 0000000..1956bfa --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x4bd6A608FA84dd23731923F56f3a70d71A89Acfd", + "collateral": { + "address": "0x8253a8Ab8fc41925a86C31b9A862C463332Fea7d", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xf06D04d0532643613dD5E2BCfF337f41EcC63017", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x291EA27b47AB3Cc90DF30799388Da8b0102DaC41", + "xt": "0xB65586D75742D06617453f5eabB9B6628a983A4a", + "gt": "0x7dbc6ce9447902710514d90C1FB1CcCc2f6144e3" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMT-USDC.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMT-USDC.json new file mode 100644 index 0000000..e3468f9 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMT-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xeca33b7ad0696b64ee9d768b832b5cf252689f41" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8115159", + "timestamp": "1744609716" + }, + "vaultInfo": { + "name": "TermMatt USDC Vault", + "symbol": "TMT-USDC", + "address": "0x4b1272314F984F95Dadf8FD6C289fE39b633c291", + "asset": "0x9EfB1F973a4B9215028094B71392961266177736", + "performanceFeeRate": 0, + "maxCapacity": "100000000000", + "timelock": 1, + "admin": "0xcAe062fCe470C1A8567Fd812905C18EC08431644", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-USDC-Vault-02JUN2025.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-USDC-Vault-02JUN2025.json new file mode 100644 index 0000000..551dafd --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-USDC-Vault-02JUN2025.json @@ -0,0 +1,25 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0xea7dfc944db2987fc0842066b5a72fe6696ea8d6" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8461312", + "timestamp": "1748874720", + "dateString": "02JUN2025" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC-Vault", + "address": "0x3Ee26f3695B880dd02195f958ed4f09362bd2f7F", + "asset": "0x9EfB1F973a4B9215028094B71392961266177736", + "performanceFeeRate": 0, + "maxCapacity": "10000000000000000", + "timelock": 1, + "admin": "0xcAe062fCe470C1A8567Fd812905C18EC08431644", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-USDC.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-USDC.json new file mode 100644 index 0000000..2f70585 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8076543", + "timestamp": "1744107120" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x2f324e829C3A54AB1e9A8aa5825E2b43707fc650", + "asset": "0x9EfB1F973a4B9215028094B71392961266177736", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 1, + "admin": "0xcAe062fCe470C1A8567Fd812905C18EC08431644", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-WETH.json b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-WETH.json new file mode 100644 index 0000000..09db6da --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-staging-20250603/eth-sepolia-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8076554", + "timestamp": "1744107252" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xd722217C99Aa2619E1AaD961B05F7f71B3363E2A", + "asset": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "performanceFeeRate": 10000000, + "maxCapacity": "5000000000000000000000", + "timelock": 1, + "admin": "0xcAe062fCe470C1A8567Fd812905C18EC08431644", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-access-manager.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-access-manager.json new file mode 100644 index 0000000..3d63b1b --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1744104768", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69", + "blockInfo": { + "number": "8076356", + "timestamp": "1744104768" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0xcAe062fCe470C1A8567Fd812905C18EC08431644" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-core.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-core.json new file mode 100644 index 0000000..9e6c488 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1744105236", + "gitBranch": "deploy/v1.0.8", + "gitCommitHash": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69", + "blockInfo": { + "number": "8076395", + "timestamp": "1744105236" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0x74d7E445852E405E92aDC75e4309E9626A4E142f", + "vaultFactory": "0xb14488641C7206636C0ab681A67CB8dbb930ae90", + "oracleAggregator": "0xa54F41EB0Ce499F07a044bcf76F6Bb4cCdb0F4A1", + "router": "0x769020BDbD532a7e1A7C15521Ab4b0Df7a95328a", + "swapAdapter": "0xE146A9e954b2DFD0Fd71668A9Ac70A590486c758", + "faucet": "0xeEbc49f73bC2faF0E6b52Fd78aec4a4eaA3e64D5", + "marketViewer": "0x7602984752987Ccb9cf526F51984124c0C30f73b" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json new file mode 100644 index 0000000..232c0df --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-PT-sUSDE-29MAY2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xd039A90DAeEe9665a2a5cf90858406a93418610C", + "collateral": { + "address": "0xE752EAf6c376F3aFc92F491C038b6034cFF2ed6B", + "symbol": "PT-sUSDE-29MAY2025", + "priceFeed": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x09974090Cc5dd30dD903dd900A2b311371dD695c", + "xt": "0xb9FE59e12d06360D91034C069dbc90bc436053CB", + "gt": "0x73e90e6101F914B799E7aaB6cafe475560272eEB" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json new file mode 100644 index 0000000..2d9db4f --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-USUALUSDC+@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xc5ACFAe592806404DEc2b10114E1bC4F59D3a2BB", + "collateral": { + "address": "0x3b6Dc6959f6BC2e0a771F42c2ed5AC61558A070D", + "symbol": "USUALUSDC+", + "priceFeed": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x5C9e92db7f7bE6dD506C30A6a28e9201c78782Fa", + "xt": "0x8a85fe2f51d1e13859A42aad0436909dc312F567", + "gt": "0x4F7d358943b0Ced097ec89Cc3908CE8feCaD8B7a" + }, + "config": { + "marketSymbol": "USDC/USUALUSDC+@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-WBTC@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-WBTC@30MAY2025.json new file mode 100644 index 0000000..48a26d7 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-WBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xaFe10Ad8d4d179cb8D843E03729d47e2C4c2bbc5", + "collateral": { + "address": "0xeA569a4Ae4Bd3C71De9839DE21744177E979D86B", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "3600" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xfD44183B0d3a124F7c17aa34148B870d3aBBD219", + "xt": "0x8D4310d7857D06B96239ab2c66d16bCeA639c487", + "gt": "0x62cDC480FFbfE711888116c87DFD56778Da797E6" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-cbBTC@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-cbBTC@30MAY2025.json new file mode 100644 index 0000000..8a85133 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-cbBTC@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x17AcE2764c593c3A29139686B7e70Abe46964Cbf", + "collateral": { + "address": "0x0Ab56705cBEcb370077C9061ce0c1001F18d7D65", + "symbol": "cbBTC", + "priceFeed": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x62E9bDC0B04bb449A1482627d4CcE53BEB1D12e9", + "xt": "0x5871FeDc05Db81d957CC8c8AFfdEB10A796F489a", + "gt": "0xBbEf58570483147FFF5b098a53AC194213a47390" + }, + "config": { + "marketSymbol": "USDC/cbBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-eUSDe@29MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-eUSDe@29MAY2025.json new file mode 100644 index 0000000..e2938d4 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-eUSDe@29MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xA01ebcc30F5A04d05ef08509bEba37369c7Ad5c4", + "collateral": { + "address": "0x8d1674d9Faa6D000C5Fccb96C6E3Ea243fE7dAb9", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x541F31deB35c3A30Db9803bFC5f62931bd90eAe0", + "xt": "0xa39432D9D68bf009c3DeF643255837D43fFFb6D9", + "gt": "0x01356e9680b64FA4B06597ddd4802F7638D3BFE9" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "29MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-sUSDe@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-sUSDe@30MAY2025.json new file mode 100644 index 0000000..d477aee --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-sUSDe@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x635430374F936e1371caa5f423253aE6A60c6094", + "collateral": { + "address": "0x668756092EF35B95e5972Daf4646B0904D77B8A2", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x6bE96A6Fb035b68C8d32B1F3F45B8a83A2C1eDE6", + "xt": "0x2506129881eB3363b9Fc72640162c195F9093cF8", + "gt": "0xEA861a9b80D6Bf302A180A1d71a761558cf7F588" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-wstETH@11APR2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-wstETH@11APR2025.json new file mode 100644 index 0000000..36538cc --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-wstETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8094955", + "timestamp": "1744344168" + }, + "market": "0x4B36FAB576513175f16aE91640385bB0d8E769fA", + "collateral": { + "address": "0x5f5b868451Bef658C72B553783A1E514aB581e8a", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x2D136A7807B464fb6a46B69C15cef14824039BD9", + "xt": "0x0BDb214ebA6CB1D025137B92Da1b90409F12362E", + "gt": "0x6ea3Ba9CB69969Dcdadf1B258e78F2858ed0c794" + }, + "config": { + "marketSymbol": "USDC/wstETH@11APR2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-wstETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-wstETH@30MAY2025.json new file mode 100644 index 0000000..623b24c --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-USDC-wstETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x68B0CDe0E2a22A02324EdAD07499d10De6552cEb", + "collateral": { + "address": "0x5f5b868451Bef658C72B553783A1E514aB581e8a", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0x9EfB1F973a4B9215028094B71392961266177736", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xDa25e32D8Eae7dC967d75d77b54D323C31Fa6d22", + "xt": "0xdC1599eDb36b05461955Ac5e0be79246c6085Fd7", + "gt": "0xc41EA3022711d2ddea27F90e44cc2E863DF853F5" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-MCwETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-MCwETH@30MAY2025.json new file mode 100644 index 0000000..ee91fb3 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-MCwETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xDD73Fd1D293Db5E10DfD2a51753BeF401060eddB", + "collateral": { + "address": "0xE30bD12bC98d29F0ACd2ee1113e96463b493b057", + "symbol": "MCwETH", + "priceFeed": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x63E867cb03b6C5b8014f4a15721AC0Cd35Ef2522", + "xt": "0x8135c8e310767a10f9aF093A733f734880279eb4", + "gt": "0x118d44E474f8E50FBeF1Fc5481E73cBcDf3a6E32" + }, + "config": { + "marketSymbol": "WETH/MCwETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-gtWETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-gtWETH@30MAY2025.json new file mode 100644 index 0000000..be07db5 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-gtWETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0xf9523f3B29b85e83d15e7f57476c4cF21259d6B9", + "collateral": { + "address": "0xcad5E8d21fFF8E3aba0399016d16473CFd3F52Fc", + "symbol": "gtWETH", + "priceFeed": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "heartBeat": "3600" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x7e20bC2453e278625f62f8e4C276D62A1E58129a", + "xt": "0x2ABd5C144AB31FBd46B059f0E70131f998Be76bc", + "gt": "0x60aa3ab271CA709dC93Affe3186229D2Ca9AB746" + }, + "config": { + "marketSymbol": "WETH/gtWETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-pufETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-pufETH@30MAY2025.json new file mode 100644 index 0000000..9dfab83 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-pufETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x3e85d91F08fd4a951C00B5745b4e4D545257235f", + "collateral": { + "address": "0xf06D04d0532643613dD5E2BCfF337f41EcC63017", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x6Da4110366bC29F7813FbcD3670897a4909B8258", + "xt": "0xc1F4C031657B86923e6Edf3Fd9DD00bCc1c365E4", + "gt": "0x200488e8CcB1807Dd16F0879491Feb20d5f2e4cD" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-weETH@11APR2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-weETH@11APR2025.json new file mode 100644 index 0000000..ab75e81 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-weETH@11APR2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8094955", + "timestamp": "1744344168" + }, + "market": "0x06a89a2aC9861b3792105fC94B2B9b3Be292A9B8", + "collateral": { + "address": "0xaE232da97AC082aa0FB91637285041afcc330D02", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x71Dd465a7f0b74BE2a74E8aEe08B1d9965551C9A", + "xt": "0x6f1BE4F650e894376B597643B189869Bf6149CC6", + "gt": "0x73348d53f4dAF4C0991C100C0e2608f7610a6859" + }, + "config": { + "marketSymbol": "WETH/weETH@11APR2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "11APR2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-weETH@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-weETH@30MAY2025.json new file mode 100644 index 0000000..9284cde --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-WETH-weETH@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x16fcC0C341325Ab3142E9475ecE5A04ca5DEFffe", + "collateral": { + "address": "0xaE232da97AC082aa0FB91637285041afcc330D02", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "21600" + }, + "underlying": { + "address": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "3600" + }, + "tokens": { + "ft": "0x971202ae0d7f96193B9360D5e7b382E4afdac01B", + "xt": "0xA23ACAABB8F004ac045056bBb6899B6DDbA78927", + "gt": "0x94cF59fe7aA5C743FA87beaB9dc00471c0a41940" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json new file mode 100644 index 0000000..1956bfa --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-market-pufETH-PT-pufETH-26JUN2025@30MAY2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8076440", + "timestamp": "1744105800" + }, + "market": "0x4bd6A608FA84dd23731923F56f3a70d71A89Acfd", + "collateral": { + "address": "0x8253a8Ab8fc41925a86C31b9A862C463332Fea7d", + "symbol": "PT-pufETH-26JUN2025", + "priceFeed": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xf06D04d0532643613dD5E2BCfF337f41EcC63017", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x291EA27b47AB3Cc90DF30799388Da8b0102DaC41", + "xt": "0xB65586D75742D06617453f5eabB9B6628a983A4a", + "gt": "0x7dbc6ce9447902710514d90C1FB1CcCc2f6144e3" + }, + "config": { + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "30MAY2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMT-USDC.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMT-USDC.json new file mode 100644 index 0000000..e3468f9 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMT-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0xeca33b7ad0696b64ee9d768b832b5cf252689f41" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8115159", + "timestamp": "1744609716" + }, + "vaultInfo": { + "name": "TermMatt USDC Vault", + "symbol": "TMT-USDC", + "address": "0x4b1272314F984F95Dadf8FD6C289fE39b633c291", + "asset": "0x9EfB1F973a4B9215028094B71392961266177736", + "performanceFeeRate": 0, + "maxCapacity": "100000000000", + "timelock": 1, + "admin": "0xcAe062fCe470C1A8567Fd812905C18EC08431644", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMX-USDC.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMX-USDC.json new file mode 100644 index 0000000..2f70585 --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMX-USDC.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8076543", + "timestamp": "1744107120" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC", + "address": "0x2f324e829C3A54AB1e9A8aa5825E2b43707fc650", + "asset": "0x9EfB1F973a4B9215028094B71392961266177736", + "performanceFeeRate": 10000000, + "maxCapacity": "1000000000000", + "timelock": 1, + "admin": "0xcAe062fCe470C1A8567Fd812905C18EC08431644", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMX-WETH.json b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMX-WETH.json new file mode 100644 index 0000000..09db6da --- /dev/null +++ b/deployments/eth-sepolia-v1.0.8-testnet-20250414/eth-sepolia-vault-TMX-WETH.json @@ -0,0 +1,24 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.8", + "commit": "0x0x141ada4a7f722cd4faab7818834dada2688bdc69" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8076554", + "timestamp": "1744107252" + }, + "vaultInfo": { + "name": "TermMax WETH Vault", + "symbol": "TMX-WETH", + "address": "0xd722217C99Aa2619E1AaD961B05F7f71B3363E2A", + "asset": "0xFE719357C5eb7cfE29E169b0B5fB2BD0a7a27958", + "performanceFeeRate": 10000000, + "maxCapacity": "5000000000000000000000", + "timelock": 1, + "admin": "0xcAe062fCe470C1A8567Fd812905C18EC08431644", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-access-manager.json b/deployments/eth-sepolia/eth-sepolia-access-manager.json new file mode 100644 index 0000000..b1de91c --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-access-manager.json @@ -0,0 +1,15 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1748950020", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x0489591746b16bb969ea123423e618e76b7e2dcb", + "blockInfo": { + "number": "8467586", + "timestamp": "1748950020" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "accessManager": "0x7662FcF152a9E18280A77f4A8108229E86D398Ab" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-adapters-20250627.json b/deployments/eth-sepolia/eth-sepolia-adapters-20250627.json new file mode 100644 index 0000000..1e3c5de --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-adapters-20250627.json @@ -0,0 +1,18 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1751008776", + "gitBranch": "v1_special_adapter", + "gitCommitHash": "0x23b76ca54b9c28b2b4fc0b4d07d64b3f17c4ee36", + "blockInfo": { + "number": "8638653", + "timestamp": "1751008776" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "swapAdapter": { + "uniswapV3Adapter": "0x92659D8b9354576d5BA0556158dA0244aCa4032e", + "odosV2Adapter": "0x5902A019c5534F11EaF1676F708Ae2bE0B1371ef", + "pendleSwapV3Adapter": "0xb51C2Bf67ff00172450d7F3d4CbaacC8821779dd", + "ERC4626VaultAdapter": "0xBff9f6C01c056127957fb9F0436bb07368ddBE2E" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-core.json b/deployments/eth-sepolia/eth-sepolia-core.json new file mode 100644 index 0000000..add433c --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-core.json @@ -0,0 +1,21 @@ +{ + "network": "eth-sepolia", + "deployedAt": "1748952156", + "gitBranch": "deploy/v1.0.9", + "gitCommitHash": "0x0x0489591746b16bb969ea123423e618e76b7e2dcb", + "blockInfo": { + "number": "8467764", + "timestamp": "1748952156" + }, + "deployer": "0xE355d5D8aa52EF0FbbD037C4a3C5E6Fd659cf46B", + "admin": "0x81f314f70702Bbe89FEd0F2cFe6841950275E0b7", + "contracts": { + "factory": "0xC0339131b13cB78FC13Eee1F2f20aE2aE98F1d03", + "vaultFactory": "0xE98B34359852A5bbC48C59AF5319Ae83961e74eD", + "oracleAggregator": "0x614eAFf71890b3C2677aDb111252EE1BE5A53EF7", + "router": "0x2F68071baC2bE3332c8107Dd15a76f7230F34013", + "swapAdapter": "0xDafd984bBfD06c5D394a18E00727448cf8de6D8e", + "faucet": "0x34230231A3E309fa68d81ED6a0183282DD629859", + "marketViewer": "0x235f12Ac9B6947cAF234D78712a68941c30c0cdb" + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-market-USDC-PT-sUSDE-31JUL2025@26SEP2025.json b/deployments/eth-sepolia/eth-sepolia-market-USDC-PT-sUSDE-31JUL2025@26SEP2025.json new file mode 100644 index 0000000..d9df8ec --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-market-USDC-PT-sUSDE-31JUL2025@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8497338", + "timestamp": "1749307824" + }, + "market": "0x06534a55012cb93d867e92408018062da3BB4692", + "collateral": { + "address": "0xE89C59a60A484464995B3CA3F53CF821fE99845c", + "symbol": "PT-sUSDE-31JUL2025", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xCc121AB1098625728950b200490D28F8B2c324FD", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0xa160956dcb868C6202751CFECA0a1D5Cee4ee102", + "xt": "0x4e62F22C33A12a095Fd3597d3A2729A1944b091d", + "gt": "0xb57e463144F673d155204faDBF2099B492dDDE0A" + }, + "config": { + "marketSymbol": "USDC/PT-sUSDE-31JUL2025@01AUG2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-market-USDC-WBTC@26DEC2025.json b/deployments/eth-sepolia/eth-sepolia-market-USDC-WBTC@26DEC2025.json new file mode 100644 index 0000000..5962aab --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-market-USDC-WBTC@26DEC2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8467887", + "timestamp": "1748953632" + }, + "market": "0x4e753aEdf1320C825c20D1270a5f4e7D5f59c12f", + "collateral": { + "address": "0x8967690496480374C22278812336F98616D91a48", + "symbol": "WBTC", + "priceFeed": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xCc121AB1098625728950b200490D28F8B2c324FD", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x741fa1aF78cEd7153eAe195F48507227418ceB10", + "xt": "0x21551Ab2DB4BC4eC2d343f5d17f7e0D982421789", + "gt": "0xf6BDDa0eFE133Ed1878D23D11F879655a2820Ebd" + }, + "config": { + "marketSymbol": "USDC/WBTC@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26DEC2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-market-USDC-eUSDe@26DEC2025.json b/deployments/eth-sepolia/eth-sepolia-market-USDC-eUSDe@26DEC2025.json new file mode 100644 index 0000000..f2c9178 --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-market-USDC-eUSDe@26DEC2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8467887", + "timestamp": "1748953632" + }, + "market": "0xD0Fe4057E8555Da533222971AF3fa4Ded2E39f2c", + "collateral": { + "address": "0x7e3a0eD86874640176044D44A0128E911ECC9D30", + "symbol": "eUSDe", + "priceFeed": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xCc121AB1098625728950b200490D28F8B2c324FD", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x8306287c883eE781B93299c38F66a6F6B3c3E308", + "xt": "0x6Ab1B7952c6a5c9d278dDA3240c3EC77179624c0", + "gt": "0xeA45053214B522727D1a2DCBe2dC7ca134b20CD3" + }, + "config": { + "marketSymbol": "USDC/eUSDe@29MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26DEC2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-market-USDC-sUSDe@26SEP2025.json b/deployments/eth-sepolia/eth-sepolia-market-USDC-sUSDe@26SEP2025.json new file mode 100644 index 0000000..8823f60 --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-market-USDC-sUSDe@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8467887", + "timestamp": "1748953632" + }, + "market": "0xfc55aD47c92caCC3874180197669B91a6CA27Bea", + "collateral": { + "address": "0xD1DFA67b26737E91B663c76258b65670C7aE01ca", + "symbol": "sUSDe", + "priceFeed": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xCc121AB1098625728950b200490D28F8B2c324FD", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x94937bD71e2Afce027c5279Ee09F60d682503990", + "xt": "0xbDA62c38a99b6e465b3cFb534A43F1C844EcF89d", + "gt": "0x302A988F91a65670efba6E832f1eeC2C51ffFB2E" + }, + "config": { + "marketSymbol": "USDC/sUSDe@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-market-USDC-wstETH@26SEP2025.json b/deployments/eth-sepolia/eth-sepolia-market-USDC-wstETH@26SEP2025.json new file mode 100644 index 0000000..36d9e4d --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-market-USDC-wstETH@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8467887", + "timestamp": "1748953632" + }, + "market": "0xA0b965aF0385A84b30EFe0f5A3e94677C48E1D0E", + "collateral": { + "address": "0xb32aaEB3fD3A788EC311C829DE0427C3e256E036", + "symbol": "wstETH", + "priceFeed": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xCc121AB1098625728950b200490D28F8B2c324FD", + "symbol": "USDC", + "priceFeed": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x485aBc5Bf9dDf083bc81Da2014606a7999e236dE", + "xt": "0x8BF190aa9ABe2aBaB741F02b4bE0E5E80F33cE93", + "gt": "0x1B7b97594D61b0D6A5068FD36bD9418338f49f1b" + }, + "config": { + "marketSymbol": "USDC/wstETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-market-WETH-pufETH@26DEC2025.json b/deployments/eth-sepolia/eth-sepolia-market-WETH-pufETH@26DEC2025.json new file mode 100644 index 0000000..b170fd7 --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-market-WETH-pufETH@26DEC2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8467887", + "timestamp": "1748953632" + }, + "market": "0x52f3a8734D84266BA00eC850C9537553a516c309", + "collateral": { + "address": "0xd8De65C56f7b2A2C002b01385B3f01EACB2bdb69", + "symbol": "pufETH", + "priceFeed": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xe0792EC56340710EC24e49e32270E6bFa34C3da2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x37493da3bD9ef27d2E37D4762b7aBCD0d9271a4f", + "xt": "0x1e78900F44944870574Df58106B479E53E74B0A8", + "gt": "0x6436Ee623438d5E3aF4486c5A6151dbD103Cd4f8" + }, + "config": { + "marketSymbol": "WETH/pufETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26DEC2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-market-WETH-weETH@26SEP2025.json b/deployments/eth-sepolia/eth-sepolia-market-WETH-weETH@26SEP2025.json new file mode 100644 index 0000000..585c420 --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-market-WETH-weETH@26SEP2025.json @@ -0,0 +1,38 @@ +{ + "blockInfo": { + "number": "8467887", + "timestamp": "1748953632" + }, + "market": "0x456aDC2896580Bb333195Fbb30576bd434aCE707", + "collateral": { + "address": "0x08aa967A9f4740B2208e7D10dF9AEBDaAB86FA7b", + "symbol": "weETH", + "priceFeed": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "heartBeat": "86400" + }, + "underlying": { + "address": "0xe0792EC56340710EC24e49e32270E6bFa34C3da2", + "symbol": "WETH", + "priceFeed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "heartBeat": "86400" + }, + "tokens": { + "ft": "0x74e53627035B6FaA239Cd46d8d58474958Ab4329", + "xt": "0x755303e677F4c5d3f2E948E956d4Dd11B2f46492", + "gt": "0xa30f4958ecc8a76957E221e0BC6C72a9fc9C34D9" + }, + "config": { + "marketSymbol": "WETH/weETH@30MAY2025", + "treasurer": "0x9ec927F61542DCD12DEF83797D8d1022064dcfA4", + "maturity": "26SEP2025", + "salt": "0", + "fees": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + } + } +} \ No newline at end of file diff --git a/deployments/eth-sepolia/eth-sepolia-vault-TMX-USDC-Vault-07JUN2025.json b/deployments/eth-sepolia/eth-sepolia-vault-TMX-USDC-Vault-07JUN2025.json new file mode 100644 index 0000000..742e34d --- /dev/null +++ b/deployments/eth-sepolia/eth-sepolia-vault-TMX-USDC-Vault-07JUN2025.json @@ -0,0 +1,25 @@ +{ + "gitInfo": { + "branch": "deploy/v1.0.9", + "commit": "0x0x650ec7429f5866925dc06ddae8e04e8d020c0b5e" + }, + "blockInfo": { + "network": "eth-sepolia", + "blockNumber": "8497277", + "timestamp": "1749307092", + "dateString": "07JUN2025" + }, + "vaultInfo": { + "name": "TermMax USDC Vault", + "symbol": "TMX-USDC-Vault", + "address": "0x9Be4f07a33c0454B13a5b0bd8D69835e1500f7d0", + "asset": "0xCc121AB1098625728950b200490D28F8B2c324FD", + "performanceFeeRate": 0, + "maxCapacity": "10000000000000000", + "timelock": 86400, + "admin": "0x7662FcF152a9E18280A77f4A8108229E86D398Ab", + "curator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "guardian": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE", + "allocator": "0x2A58A3D405c527491Daae4C62561B949e7F87EFE" + } +} \ No newline at end of file diff --git a/script.sh b/script.sh index fd6686d..e4f59b5 100755 --- a/script.sh +++ b/script.sh @@ -12,6 +12,8 @@ if [ "$#" -lt 2 ]; then echo " - deploy:market - Deploy Market contracts" echo " - deploy:order - Deploy Order contracts" echo " - deploy:vault - Deploy Vault contracts" + echo " - deploy:pretmx - Deploy PreTMX token contract" + echo " - deploy:adapters - Deploy Adapters contracts" echo "" echo " 2. Script Commands:" echo " - script: - Run a custom script (e.g., script:GrantRoles, script:SubmitOracles)" @@ -74,7 +76,7 @@ done # Validate network case $NETWORK in - "eth-sepolia"|"arb-sepolia"|"eth-mainnet"|"arb-mainnet") + "eth-sepolia"|"arb-sepolia"|"eth-mainnet"|"arb-mainnet"|"bnb-mainnet"|"bnb-testnet") echo "Running on $NETWORK..." ;; *) @@ -87,12 +89,12 @@ esac # If deploying, validate deployment type if [ "$OPERATION" = "deploy" ]; then case $TYPE in - "access-manager"|"core"|"market"|"order"|"vault") + "access-manager"|"core"|"market"|"order"|"vault"|"pretmx"|"adapters") echo "Deployment type: $TYPE" ;; *) echo "Unsupported deployment type: $TYPE" - echo "Supported deployment types: access-manager, core, market, order, vault" + echo "Supported deployment types: access-manager, core, market, order, vault, pretmx, adapters" exit 1 ;; esac diff --git a/script/AcceptOracles.s.sol b/script/AcceptOracles.s.sol deleted file mode 100644 index 4a71af1..0000000 --- a/script/AcceptOracles.s.sol +++ /dev/null @@ -1,271 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; -import {OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; -import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {JsonLoader} from "./utils/JsonLoader.sol"; -import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {StringHelper} from "./utils/StringHelper.sol"; -import {AccessManager} from "contracts/access/AccessManager.sol"; - -contract AcceptOracles is Script { - // Network-specific config loaded from environment variables - string network; - uint256 deployerPrivateKey; - address oracleAggregatorAddr; - address accessManagerAddr; - JsonLoader.Config[] configs; - mapping(address => bool) tokenChecked; - - // Track status of each oracle - struct PendingOracleStatus { - address tokenAddr; - string tokenSymbol; - address priceFeedAddr; - uint32 heartbeat; - uint64 validAt; - bool existsInConfig; - bool pendingOracleExists; - bool readyToAccept; - string statusMessage; - } - - PendingOracleStatus[] public acceptedOracles; - PendingOracleStatus[] public notReadyOracles; - - function setUp() public { - // Load network from environment variable - network = vm.envString("NETWORK"); - string memory networkUpper = StringHelper.toUpper(network); - // Load network-specific configuration - string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); - deployerPrivateKey = vm.envUint(privateKeyVar); - - string memory accessManagerPath = - string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-access-manager.json"); - string memory json = vm.readFile(accessManagerPath); - accessManagerAddr = vm.parseJsonAddress(json, ".contracts.accessManager"); - - string memory corePath = string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-core.json"); - json = vm.readFile(corePath); - - oracleAggregatorAddr = vm.parseJsonAddress(json, ".contracts.oracleAggregator"); - } - - function run() public { - string memory deployDataPath = string.concat(vm.projectRoot(), "/script/deploy/deploydata/", network, ".json"); - - string memory deployData = vm.readFile(deployDataPath); - - configs = JsonLoader.getConfigsFromJson(deployData); - - AccessManager accessManager = AccessManager(accessManagerAddr); - OracleAggregator oracle = OracleAggregator(oracleAggregatorAddr); - - console.log("=== Checking Pending Oracles ==="); - console.log("Oracle Aggregator Address:", oracleAggregatorAddr); - console.log("Network:", network); - console.log("Current Block Timestamp:", block.timestamp); - console.log(""); - - // First, check all oracles for their status - checkAllOracleStatus(oracle); - - // Only broadcast if there are oracles to accept - if (acceptedOracles.length > 0) { - vm.startBroadcast(deployerPrivateKey); - - // Process acceptances - for (uint256 i = 0; i < acceptedOracles.length; i++) { - PendingOracleStatus memory status = acceptedOracles[i]; - - // Get current oracle config before accepting - (AggregatorV3Interface currentAggregator,,,,) = oracle.oracles(status.tokenAddr); - - // Accept the oracle - accessManager.acceptPendingOracle(oracle, status.tokenAddr); - - console.log("Accepted oracle for token:"); - console.log(" Token Symbol:", status.tokenSymbol); - console.log(" Token Address:", status.tokenAddr); - console.log(" Previous Oracle:", address(currentAggregator)); - console.log(" New Oracle:", status.priceFeedAddr); - console.log(" Heartbeat:", status.heartbeat); - console.log("--------------------------------"); - } - - vm.stopBroadcast(); - } - - // Print summary - console.log(""); - console.log("=== Oracle Acceptance Summary ==="); - console.log("Total tokens checked:", acceptedOracles.length + notReadyOracles.length); - console.log("Oracles accepted:", acceptedOracles.length); - console.log("Oracles not ready:", notReadyOracles.length); - - if (notReadyOracles.length > 0) { - console.log(""); - console.log("=== Oracles Not Ready for Acceptance ==="); - for (uint256 i = 0; i < notReadyOracles.length; i++) { - PendingOracleStatus memory status = notReadyOracles[i]; - console.log("%d. %s (%s)", i + 1, status.tokenSymbol, status.tokenAddr); - console.log(" Price Feed:", status.priceFeedAddr); - console.log(" Status:", status.statusMessage); - - if (status.pendingOracleExists && status.validAt > 0) { - uint256 timeRemaining = status.validAt > block.timestamp ? status.validAt - block.timestamp : 0; - console.log(" Valid At:", status.validAt); - console.log(" Time Remaining:", formatTimeDifference(timeRemaining)); - console.log(" Will be ready at:", formatTimestamp(status.validAt)); - } - console.log(" ---"); - } - } - } - - function formatTimestamp(uint256 timestamp) internal pure returns (string memory) { - return vm.toString(timestamp); - } - - function formatTimeDifference(uint256 timeDiff) internal pure returns (string memory) { - if (timeDiff < 60) { - return string(abi.encodePacked(vm.toString(timeDiff), " seconds")); - } else if (timeDiff < 3600) { - return string(abi.encodePacked(vm.toString(timeDiff / 60), " minutes")); - } else if (timeDiff < 86400) { - return string(abi.encodePacked(vm.toString(timeDiff / 3600), " hours")); - } else { - return string(abi.encodePacked(vm.toString(timeDiff / 86400), " days")); - } - } - - function checkAllOracleStatus(OracleAggregator oracle) internal { - // Process all tokens from the config - for (uint256 i; i < configs.length; i++) { - JsonLoader.Config memory config = configs[i]; - - // Check underlying token - if (!tokenChecked[config.underlyingConfig.tokenAddr]) { - checkAndReportOracleStatus( - oracle, - config.underlyingConfig.tokenAddr, - config.underlyingConfig.priceFeedAddr, - uint32(config.underlyingConfig.heartBeat), - "underlying" - ); - tokenChecked[config.underlyingConfig.tokenAddr] = true; - } - - // Check collateral token - if (!tokenChecked[config.collateralConfig.tokenAddr]) { - checkAndReportOracleStatus( - oracle, - config.collateralConfig.tokenAddr, - config.collateralConfig.priceFeedAddr, - uint32(config.collateralConfig.heartBeat), - "collateral" - ); - tokenChecked[config.collateralConfig.tokenAddr] = true; - } - } - } - - function checkAndReportOracleStatus( - OracleAggregator oracle, - address tokenAddr, - address expectedPriceFeedAddr, - uint32 expectedHeartbeat, - string memory tokenType - ) internal { - // Create a new status entry - PendingOracleStatus memory status; - status.tokenAddr = tokenAddr; - status.priceFeedAddr = expectedPriceFeedAddr; - status.heartbeat = expectedHeartbeat; - status.existsInConfig = true; - - // Get token symbol - try IERC20Metadata(tokenAddr).symbol() returns (string memory symbol) { - status.tokenSymbol = symbol; - } catch { - status.tokenSymbol = string(abi.encodePacked("Unknown ", tokenType)); - } - - // Check if there's a pending oracle - (IOracle.Oracle memory pendingOracle, uint64 validAt) = oracle.pendingOracles(tokenAddr); - - // Get current oracle for comparison - (AggregatorV3Interface currentAggregator,,,,) = oracle.oracles(tokenAddr); - - if (address(pendingOracle.aggregator) == address(0)) { - // No pending oracle exists - status.pendingOracleExists = false; - status.readyToAccept = false; - status.statusMessage = "No pending oracle exists"; - notReadyOracles.push(status); - } else { - // A pending oracle exists - status.pendingOracleExists = true; - status.validAt = validAt; - - // Check if it matches our expected price feed and is valid - if (address(pendingOracle.aggregator) != expectedPriceFeedAddr) { - status.readyToAccept = false; - status.statusMessage = string( - abi.encodePacked( - "Pending oracle doesn't match expected price feed. Found: ", - vm.toString(address(pendingOracle.aggregator)) - ) - ); - notReadyOracles.push(status); - } else if (validAt > block.timestamp) { - // Timelock not yet elapsed - status.readyToAccept = false; - status.statusMessage = "Timelock period not yet elapsed"; - notReadyOracles.push(status); - } else if ( - address(currentAggregator) == expectedPriceFeedAddr && pendingOracle.heartbeat == expectedHeartbeat - ) { - // Get current heartbeat value - (,,, uint32 currentHeartbeat,) = oracle.oracles(tokenAddr); - - // Oracle is already set correctly (both address and heartbeat) - if (currentHeartbeat == expectedHeartbeat) { - status.readyToAccept = false; - status.statusMessage = "Oracle is already configured with the correct values"; - notReadyOracles.push(status); - } else { - // Only heartbeat needs updating - status.readyToAccept = true; - status.statusMessage = string( - abi.encodePacked( - "Heartbeat will be updated from ", - vm.toString(currentHeartbeat), - " to ", - vm.toString(expectedHeartbeat) - ) - ); - acceptedOracles.push(status); - } - } else { - // Oracle is ready to accept - this handles the case where the price feed address is different - status.readyToAccept = true; - - // Add more detail to acceptance information - if (address(currentAggregator) != expectedPriceFeedAddr) { - status.statusMessage = "Price feed address will be updated"; - } else { - // This branch should only be reached if there's some other condition - status.statusMessage = "Oracle will be updated (other changes)"; - } - acceptedOracles.push(status); - // Return here to avoid double-processing the same token - return; - } - } - } -} diff --git a/script/CheckOracles.s.sol b/script/CheckOracles.s.sol deleted file mode 100644 index cbf6159..0000000 --- a/script/CheckOracles.s.sol +++ /dev/null @@ -1,343 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; -import {OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; -import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {JsonLoader} from "./utils/JsonLoader.sol"; -import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {StringHelper} from "./utils/StringHelper.sol"; - -contract CheckOracles is Script { - // Network-specific config - string network; - address oracleAggregatorAddr; - JsonLoader.Config[] configs; - mapping(address => bool) tokenChecked; - - // Struct to store detailed diagnostics about tokens with issues - struct TokenDiagnostics { - address tokenAddr; - address priceFeedAddr; - string symbol; - string errorType; // "NO_ORACLE", "PRICE_FEED_ERROR", "ORACLE_ERROR", "STALE_DATA" - string errorMessage; - bool aggregatorWorks; // Whether the direct price feed works - bool oracleWorks; // Whether the Oracle.getPrice works - uint256 lastUpdateTime; - int256 rawAnswer; // Raw answer from price feed - uint8 priceFeedDecimals; // Decimals of the price feed - uint8 tokenDecimals; // Decimals of the token - } - - TokenDiagnostics[] public diagnostics; - - function setUp() public { - // Default to eth-mainnet or use environment variable if available - network = vm.envOr("NETWORK", string("eth-mainnet")); - - string memory deploymentPath = - string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-core.json"); - string memory json = vm.readFile(deploymentPath); - - oracleAggregatorAddr = vm.parseJsonAddress(json, ".contracts.oracleAggregator"); - } - - function run() public { - string memory deployDataPath = string.concat(vm.projectRoot(), "/script/deploy/deploydata/", network, ".json"); - string memory deployData = vm.readFile(deployDataPath); - configs = JsonLoader.getConfigsFromJson(deployData); - - console.log("=== Checking Oracle Prices for %s ===", network); - console.log("Oracle Aggregator: %s", oracleAggregatorAddr); - console.log("Number of configs: %d", configs.length); - console.log(""); - - IOracle oracle = IOracle(oracleAggregatorAddr); - OracleAggregator oracleAggregator = OracleAggregator(oracleAggregatorAddr); - - // Track tokens with price issues - uint256 successCount = 0; - address[] memory tokensWithIssues = new address[](configs.length * 2); // Max possible issues - uint256 issueCount = 0; - - for (uint256 i; i < configs.length; i++) { - JsonLoader.Config memory config = configs[i]; - - // Check underlying token - if (!tokenChecked[config.underlyingConfig.tokenAddr]) { - bool success = checkTokenOracle( - oracle, - oracleAggregator, - config.underlyingConfig.tokenAddr, - config.underlyingConfig.priceFeedAddr, - config.underlyingConfig.maxPrice, - uint32(config.underlyingConfig.heartBeat), - uint32(config.underlyingConfig.backupHeartBeat), - "Underlying" - ); - - if (success) { - successCount++; - } else { - tokensWithIssues[issueCount] = config.underlyingConfig.tokenAddr; - issueCount++; - } - - tokenChecked[config.underlyingConfig.tokenAddr] = true; - } - - // Check collateral token - if (!tokenChecked[config.collateralConfig.tokenAddr]) { - bool success = checkTokenOracle( - oracle, - oracleAggregator, - config.collateralConfig.tokenAddr, - config.collateralConfig.priceFeedAddr, - config.collateralConfig.maxPrice, - uint32(config.collateralConfig.heartBeat), - uint32(config.collateralConfig.backupHeartBeat), - "Collateral" - ); - - if (success) { - successCount++; - } else { - tokensWithIssues[issueCount] = config.collateralConfig.tokenAddr; - issueCount++; - } - - tokenChecked[config.collateralConfig.tokenAddr] = true; - } - } - - // Summary report - console.log(""); - console.log("=== SUMMARY REPORT ==="); - console.log("Total tokens checked: %d", successCount + issueCount); - console.log("Successful: %d", successCount); - console.log("Issues: %d", issueCount); - - // Detailed diagnostics for tokens with issues - if (diagnostics.length > 0) { - console.log(""); - console.log("=== DETAILED DIAGNOSTICS ==="); - for (uint256 i = 0; i < diagnostics.length; i++) { - TokenDiagnostics memory diag = diagnostics[i]; - console.log("%d. %s (%s)", i + 1, diag.symbol, diag.tokenAddr); - console.log(" Price Feed Address: %s", diag.priceFeedAddr); - console.log(" Error Type: %s", diag.errorType); - console.log(" Error Message: %s", diag.errorMessage); - console.log(" Direct Price Feed Working: %s", diag.aggregatorWorks ? "YES" : "NO"); - console.log(" Oracle.getPrice Working: %s", diag.oracleWorks ? "YES" : "NO"); - - if (diag.aggregatorWorks) { - console.log(" Raw Answer: %d", diag.rawAnswer); - console.log(" Price Feed Decimals: %d", diag.priceFeedDecimals); - console.log( - " Last Update Time: %d (%s ago)", - diag.lastUpdateTime, - formatTimeDifference(block.timestamp - diag.lastUpdateTime) - ); - } - - console.log(" Token Decimals: %d", diag.tokenDecimals); - console.log(" ---"); - } - - // Output recommendations based on the diagnostics - console.log(""); - console.log("=== RECOMMENDATIONS ==="); - for (uint256 i = 0; i < diagnostics.length; i++) { - TokenDiagnostics memory diag = diagnostics[i]; - console.log("%d. %s (%s):", i + 1, diag.symbol, diag.tokenAddr); - - if (keccak256(bytes(diag.errorType)) == keccak256(bytes("NO_ORACLE"))) { - console.log(" Run SubmitOracles script to configure the oracle for this token"); - } else if (keccak256(bytes(diag.errorType)) == keccak256(bytes("PRICE_FEED_ERROR"))) { - if (!diag.aggregatorWorks) { - console.log(" Price feed is not accessible. Verify the price feed address is correct"); - console.log(" and that the price feed is correctly deployed on %s", network); - } else { - console.log(" Price feed is accessible but there may be an issue with its integration."); - console.log(" Check that the price feed has the correct interface and decimals"); - } - } else if (keccak256(bytes(diag.errorType)) == keccak256(bytes("ORACLE_ERROR"))) { - console.log(" The OracleAggregator can't retrieve the price. Check if there's a mismatch"); - console.log( - " between the price feed decimals (%d) and what OracleAggregator expects", - diag.priceFeedDecimals - ); - } else if (keccak256(bytes(diag.errorType)) == keccak256(bytes("STALE_DATA"))) { - console.log( - " Price feed data is stale. Last update was %s ago", - formatTimeDifference(block.timestamp - diag.lastUpdateTime) - ); - console.log(" Consider updating the heartbeat setting or using a different price feed"); - } - console.log(" ---"); - } - } - } - - function formatTimeDifference(uint256 timeDiff) internal pure returns (string memory) { - if (timeDiff < 60) { - return string(abi.encodePacked(vm.toString(timeDiff), " seconds")); - } else if (timeDiff < 3600) { - return string(abi.encodePacked(vm.toString(timeDiff / 60), " minutes")); - } else if (timeDiff < 86400) { - return string(abi.encodePacked(vm.toString(timeDiff / 3600), " hours")); - } else { - return string(abi.encodePacked(vm.toString(timeDiff / 86400), " days")); - } - } - - function checkTokenOracle( - IOracle oracle, - OracleAggregator oracleAggregator, - address tokenAddr, - address expectedPriceFeedAddr, - int256 expectedMaxPrice, - uint32 expectedHeartbeat, - uint32 expectedBackupHeartbeat, - string memory tokenType - ) internal returns (bool success) { - // Create a diagnostic entry in case of error - TokenDiagnostics memory diag; - diag.tokenAddr = tokenAddr; - diag.priceFeedAddr = expectedPriceFeedAddr; - - // Get token symbol and decimals - try IERC20Metadata(tokenAddr).symbol() returns (string memory symbol) { - diag.symbol = symbol; - } catch { - diag.symbol = "Unknown"; - } - - try IERC20Metadata(tokenAddr).decimals() returns (uint8 decimals) { - diag.tokenDecimals = decimals; - } catch { - diag.tokenDecimals = 0; - } - - console.log("--- Checking %s: %s (%s) ---", tokenType, diag.symbol, tokenAddr); - - // Check if the oracle is configured - ( - AggregatorV3Interface aggregator, - AggregatorV3Interface backupAggregator, - int256 maxPrice, - uint32 heartbeat, - uint32 backupHeartbeat - ) = oracleAggregator.oracles(tokenAddr); - - if (address(aggregator) == address(0)) { - console.log("ERROR: No oracle configured for token"); - diag.errorType = "NO_ORACLE"; - diag.errorMessage = "No oracle configured for this token"; - diagnostics.push(diag); - return false; - } - - // Check if the configured aggregator matches expected - console.log("Price Feed: %s", address(aggregator)); - console.log("Expected: %s", expectedPriceFeedAddr); - if (address(aggregator) != expectedPriceFeedAddr) { - console.log("WARNING: Configured price feed doesn't match expected"); - } - - console.log("Max Price: %d", maxPrice); - console.log("Expected: %d", expectedMaxPrice); - if (maxPrice != expectedMaxPrice) { - console.log("WARNING: Configured max price doesn't match expected"); - } - - // Check heartbeat - console.log("Heartbeat: %s", heartbeat); - console.log("Expected: %s", expectedHeartbeat); - if (heartbeat != expectedHeartbeat) { - console.log("WARNING: Configured heartbeat doesn't match expected"); - } - - // First check direct access to the price feed - bool directPriceFeedWorks = false; - int256 rawAnswer = 0; - uint256 updatedAt = 0; - - try AggregatorV3Interface(aggregator).latestRoundData() returns ( - uint80 roundId, int256 answer, uint256 startedAt, uint256 updateTime, uint80 answeredInRound - ) { - console.log("Direct price feed access successful"); - console.log("Round ID: %d", roundId); - console.log("Raw Answer: %d", answer); - - // Get price feed decimals - try AggregatorV3Interface(aggregator).decimals() returns (uint8 priceFeedDecimals) { - console.log("Price Feed Decimals: %d", priceFeedDecimals); - diag.priceFeedDecimals = priceFeedDecimals; - } catch { - console.log("WARNING: Failed to get price feed decimals"); - diag.priceFeedDecimals = 0; - } - - // Calculate time since last update - uint256 timeSinceUpdate = block.timestamp - updateTime; - console.log("Last updated: %d (%s ago)", updateTime, formatTimeDifference(timeSinceUpdate)); - - // Update diagnostics - directPriceFeedWorks = true; - diag.aggregatorWorks = true; - diag.rawAnswer = answer; - diag.lastUpdateTime = updateTime; - - // Check if update is stale (beyond heartbeat) - if (timeSinceUpdate > heartbeat) { - console.log( - "WARNING: Price feed is stale (last updated %s ago, heartbeat is %d seconds)", - formatTimeDifference(timeSinceUpdate), - heartbeat - ); - if (success) { - diag.errorType = "STALE_DATA"; - diag.errorMessage = string( - abi.encodePacked( - "Price feed data is stale (last updated ", formatTimeDifference(timeSinceUpdate), " ago)" - ) - ); - } - } - - rawAnswer = answer; - updatedAt = updateTime; - } catch { - console.log("ERROR: Failed to get latest round data directly from price feed"); - diag.errorType = "PRICE_FEED_ERROR"; - diag.errorMessage = "Failed to access price feed directly"; - diag.aggregatorWorks = false; - diagnostics.push(diag); - success = false; - } - - // Now try to get price through the oracle - if (directPriceFeedWorks) { - try oracle.getPrice(tokenAddr) returns (uint256 price, uint8 decimals) { - console.log("Oracle.getPrice successful"); - console.log("Price: %d (decimals: %d)", price, decimals); - diag.oracleWorks = true; - success = true; - } catch { - console.log("ERROR: Failed to get price from oracle (even though price feed works directly)"); - diag.errorType = "ORACLE_ERROR"; - diag.errorMessage = "Price feed works directly but Oracle.getPrice fails"; - diag.oracleWorks = false; - diagnostics.push(diag); - success = false; - } - } - - console.log("--------------------------------"); - return success; - } -} diff --git a/script/E2ETest.s.sol b/script/E2ETest.s.sol deleted file mode 100644 index e54d528..0000000 --- a/script/E2ETest.s.sol +++ /dev/null @@ -1,368 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {TermMaxFactory} from "../contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "../contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "../contracts/router/TermMaxRouter.sol"; -import {ITermMaxRouter} from "../contracts/router/ITermMaxRouter.sol"; -import {TermMaxOrder} from "../contracts/TermMaxOrder.sol"; -import {ITermMaxOrder} from "../contracts/TermMaxOrder.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {TermMaxMarket, Constants} from "../contracts/TermMaxMarket.sol"; -import {ITermMaxMarket} from "../contracts/TermMaxMarket.sol"; -import {MockERC20} from "../contracts/test/MockERC20.sol"; -import {MarketConfig} from "../contracts/storage/TermMaxStorage.sol"; -import {IMintableERC20} from "../contracts/tokens/IMintableERC20.sol"; -import {IGearingToken} from "../contracts/tokens/IGearingToken.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/oracle/OracleAggregator.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {MockSwapAdapter} from "../contracts/test/MockSwapAdapter.sol"; -import {Faucet} from "../contracts/test/testnet/Faucet.sol"; -import {FaucetERC20} from "../contracts/test/testnet/FaucetERC20.sol"; -import {MockPriceFeed} from "../contracts/test/MockPriceFeed.sol"; -import {SwapUnit} from "../contracts/router/ISwapAdapter.sol"; -import {MarketConfig} from "../contracts/storage/TermMaxStorage.sol"; -import {StringHelper} from "./utils/StringHelper.sol"; - -contract E2ETest is Script { - // Network-specific config loaded from environment variables - string network; - uint256 deployerPrivateKey; - address deployerAddr; - address userAddr; - uint256 userPrivateKey; - - // address config - address faucetAddr = address(0xb927B74d5D9c3985D4DCdd62CbffEc66CF527fAa); - address routerAddr = address(0x04bab94F939654E3711778c25683bBB34bC1a514); - address swapAdapter = address(0xC622E39c594570c731baCcDc2b6cD062EF941b06); - address marketAddr = address(0x10d9baa4A6475ee2b913755728342c7d40ce0A21); - address orderAddr = address(0x550a95c76A929635E7836cBef401C378485f4422); - - Faucet faucet = Faucet(faucetAddr); - TermMaxRouter router = TermMaxRouter(routerAddr); - TermMaxMarket market = TermMaxMarket(marketAddr); - TermMaxOrder order = TermMaxOrder(orderAddr); - IMintableERC20 ft; - IMintableERC20 xt; - IGearingToken gt; - address collateralAddr; - IERC20 underlyingERC20; - FaucetERC20 collateral; - FaucetERC20 underlying; - address collateralPriceFeedAddr; - address underlyingPriceFeedAddr; - - function setUp() public { - // Load network from environment variable - network = vm.envString("NETWORK"); - string memory networkUpper = StringHelper.toUpper(network); - - // Load network-specific configuration - string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); - - deployerPrivateKey = vm.envUint(privateKeyVar); - deployerAddr = vm.addr(deployerPrivateKey); - userAddr = deployerAddr; - userPrivateKey = deployerPrivateKey; - } - - function run() public { - address tokenAddr = address(0xE407D6b58f1BaB00DB15a6b164F6e882aB3bb939); - IOracle oracle = IOracle(address(0xFBc0A46463645de435012363354f24791789b4D7)); - OracleAggregator oracleAggregator = OracleAggregator(address(0xFBc0A46463645de435012363354f24791789b4D7)); - (AggregatorV3Interface aggregator, AggregatorV3Interface backupAggregator,, uint32 heartbeat,) = - oracleAggregator.oracles(tokenAddr); - console.log(IERC20Metadata(tokenAddr).symbol()); - console.log(address(aggregator)); - console.log(heartbeat); - AggregatorV3Interface priceFeed = AggregatorV3Interface(address(aggregator)); - (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound) = - priceFeed.latestRoundData(); - console.log(roundId); - console.log(answer); - console.log(startedAt); - console.log(updatedAt); - console.log(answeredInRound); - (uint256 price, uint8 decimals) = oracle.getPrice(tokenAddr); - console.log(price); - console.log(decimals); - - // (userAddr, userPrivateKey) = makeAddrAndKey("New User1"); - // vm.startBroadcast(deployerPrivateKey); - // payable(userAddr).transfer(0.1 ether); - // vm.stopBroadcast(); - // (ft, xt, gt, collateralAddr, underlyingERC20) = market.tokens(); - // collateral = FaucetERC20(collateralAddr); - // underlying = FaucetERC20(address(underlyingERC20)); - // underlyingPriceFeedAddr = faucet.getTokenConfig(faucet.getTokenId(address(underlying))).priceFeedAddr; - // collateralPriceFeedAddr = faucet.getTokenConfig(faucet.getTokenId(address(collateral))).priceFeedAddr; - // printMarketConfig(); - // mintDebtToken(deployerAddr, 100000); - // depositIntoOrder(100000); - // printUserPosition(); - - // console.log('> Mint 21504 debt token'); - // mintDebtToken(userAddr, 21504); - // printUserPosition(); - - // console.log('> Mint 12100 collateral token'); - // mintCollateralToken(userAddr, 12100); - // printUserPosition(); - // console.log('> Buy FT with 1000 debt token'); - // lendToOrder(1000); - // printUserPosition(); - - // console.log('> Borrow 8000 debt token with 12000 coll collateral token'); - // uint256 gtId = borrowFromOrder(12000, 8000, 8500); - // printUserPosition(); - - // console.log('> Add 100 collateral'); - // addCollateral(gtId, 100); - // printUserPosition(); - - // console.log('> Remove 50 collateral'); - // removeCollateral(gtId, 50); - // printUserPosition(); - - // console.log('> Repay 500 debt token'); - // repay(gtId, 500, true); - // printUserPosition(); - - // address to = vm.randomAddress(); - // console.log('> Transfer GT to', to); - // transferGT(gtId, to); - // printUserPosition(); - - // console.log('> Buy XT with 4 debt token and do leverage with 20000 debt token'); - // leverageFromOrder(4, 0, 20000, 0.8e8); - // printUserPosition(); - } - - function mintDebtToken(address to, uint256 amount) public { - uint256 mintAmt = amount * 10 ** underlying.decimals(); - vm.startBroadcast(deployerPrivateKey); - faucet.devMint(to, address(underlying), mintAmt); - vm.stopBroadcast(); - } - - function mintCollateralToken(address to, uint256 amount) public { - uint256 mintAmt = amount * 10 ** collateral.decimals(); - vm.startBroadcast(deployerPrivateKey); - faucet.devMint(to, address(collateral), mintAmt); - vm.stopBroadcast(); - } - - function depositIntoOrder(uint256 depositAmt) public { - vm.startBroadcast(deployerPrivateKey); - depositAmt = depositAmt * 10 ** underlying.decimals(); - (uint256 oriFtReserve, uint256 oriXtReserve) = order.tokenReserves(); - - underlying.approve(address(market), depositAmt); - market.mint(address(order), depositAmt); - (uint256 newFtReserve, uint256 newXtReserve) = order.tokenReserves(); - (uint256 newLendApr, uint256 newBorrowApr) = order.apr(); - console.log(""); - vm.stopBroadcast(); - // console.log("--- Deposit into order ---"); - // console.log("ori ftReserve:", oriFtReserve); - // console.log("ori xtReserve:", oriXtReserve); - // console.log("new ftReserve:", newFtReserve); - // console.log("new xtReserve:", newXtReserve); - // console.log("new lendApr:", newLendApr); - // console.log("new borrowApr:", newBorrowApr); - } - - function lendToOrder(uint256 lendAmt) public { - (uint256 oriFtReserve, uint256 oriXtReserve) = order.tokenReserves(); - (uint256 oriLendApr, uint256 oriBorrowApr) = order.apr(); - uint256 oriFtBalance = ft.balanceOf(userAddr); - - vm.startBroadcast(userPrivateKey); - lendAmt = lendAmt * 10 ** underlying.decimals(); - uint256 oriUnderlyingBalance = underlying.balanceOf(userAddr); - underlying.approve(address(order), lendAmt); - order.swapExactTokenToToken(underlying, ft, userAddr, uint128(lendAmt), 0, uint128(0)); - vm.stopBroadcast(); - - (uint256 newFtReserve, uint256 newXtReserve) = order.tokenReserves(); - (uint256 newLendApr, uint256 newBorrowApr) = order.apr(); - uint256 newUnderlyingBalance = underlying.balanceOf(userAddr); - uint256 newFtBalance = ft.balanceOf(userAddr); - - // console.log("--- Lend to order ---"); - // console.log("ori ftReserve:", oriFtReserve); - // console.log("ori xtReserve:", oriXtReserve); - // console.log("ori lendApr:", oriLendApr); - // console.log("ori borrowApr:", oriBorrowApr); - // console.log("ori underlyingBalance:", oriUnderlyingBalance); - // console.log("ori ftBalance:", oriFtBalance); - // console.log("new ftReserve:", newFtReserve); - // console.log("new xtReserve:", newXtReserve); - // console.log("new lendApr:", newLendApr); - // console.log("new borrowApr:", newBorrowApr); - // console.log("new underlyingBalance:", newUnderlyingBalance); - // console.log("new ftBalance:", newFtBalance); - } - - function borrowFromOrder(uint256 collateralAmt, uint256 borrowAmt, uint256 maxDebtAmt) - public - returns (uint256 gtId) - { - collateralAmt = collateralAmt * 10 ** collateral.decimals(); - borrowAmt = borrowAmt * 10 ** underlying.decimals(); - maxDebtAmt = maxDebtAmt * 10 ** underlying.decimals(); - (uint256 oriFtReserve, uint256 oriXtReserve) = order.tokenReserves(); - (uint256 oriLendApr, uint256 oriBorrowApr) = order.apr(); - uint256 oriUnderlyingBalance = underlying.balanceOf(userAddr); - - vm.startBroadcast(userPrivateKey); - uint256 oriCollateralBalance = collateral.balanceOf(userAddr); - // uint256 fee = (market.issueGtFeeRatio() * maxDebtAmt) / Constants.DECIMAL_BASE; - // uint256 ftAmt = maxDebtAmt - fee; - collateral.approve(address(router), collateralAmt); - ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); - orders[0] = order; - uint128[] memory ftAmtsToSell = new uint128[](1); - ftAmtsToSell[0] = uint128(borrowAmt); - SwapUnit[] memory units = new SwapUnit[](0); - (gtId,) = router.leverageFromToken( - userAddr, - market, - orders, - ftAmtsToSell, - uint128(0), // minXtOut - uint128(borrowAmt), // tokenToSwap - uint128(maxDebtAmt), // maxLtv - units, - block.timestamp - ); - vm.stopBroadcast(); - - (uint256 newFtReserve, uint256 newXtReserve) = order.tokenReserves(); - (uint256 newLendApr, uint256 newBorrowApr) = order.apr(); - uint256 newUnderlyingBalance = underlying.balanceOf(userAddr); - uint256 newCollateralBalance = collateral.balanceOf(userAddr); - - // console.log("--- Borrow from order ---"); - // console.log("ori ftReserve:", oriFtReserve); - // console.log("ori xtReserve:", oriXtReserve); - // console.log("ori lendApr:", oriLendApr); - // console.log("ori borrowApr:", oriBorrowApr); - // console.log("ori underlyingBalance:", oriUnderlyingBalance); - // console.log("ori collateralBalance:", oriCollateralBalance); - // console.log("new ftReserve:", newFtReserve); - // console.log("new xtReserve:", newXtReserve); - // console.log("new lendApr:", newLendApr); - // console.log("new borrowApr:", newBorrowApr); - // console.log("new underlyingBalance:", newUnderlyingBalance); - // console.log("new collateralBalance:", newCollateralBalance); - } - - function leverageFromOrder(uint128 amtToBuyXt, uint128 minXtOut, uint128 tokenToSwap, uint128 maxLtv) public { - amtToBuyXt = uint128(amtToBuyXt * 10 ** underlying.decimals()); - tokenToSwap = uint128(tokenToSwap * 10 ** underlying.decimals()); - ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); - orders[0] = order; - uint128[] memory amtsToBuyXt = new uint128[](1); - amtsToBuyXt[0] = amtToBuyXt; - SwapUnit[] memory units = new SwapUnit[](1); - units[0] = SwapUnit( - address(swapAdapter), - address(underlying), - address(collateral), - abi.encode(underlyingPriceFeedAddr, collateralPriceFeedAddr) - ); - - (uint256 oriFtReserve, uint256 oriXtReserve) = order.tokenReserves(); - (uint256 oriLendApr, uint256 oriBorrowApr) = order.apr(); - uint256 oriUnderlyingBalance = underlying.balanceOf(userAddr); - - vm.startBroadcast(userPrivateKey); - underlying.approve(address(router), amtToBuyXt + tokenToSwap); - (uint256 gtId,) = router.leverageFromToken( - userAddr, market, orders, amtsToBuyXt, minXtOut, tokenToSwap, maxLtv, units, block.timestamp + 1 hours - ); - vm.stopBroadcast(); - - (uint256 newFtReserve, uint256 newXtReserve) = order.tokenReserves(); - (uint256 newLendApr, uint256 newBorrowApr) = order.apr(); - uint256 newUnderlyingBalance = underlying.balanceOf(userAddr); - // uint256 newCollateralBalance = collateral.balanceOf(userAddr); - - // console.log("--- Leverage from order ---"); - // console.log("ori ftReserve:", oriFtReserve); - // console.log("ori xtReserve:", oriXtReserve); - // console.log("ori lendApr:", oriLendApr); - // console.log("ori borrowApr:", oriBorrowApr); - // console.log("ori underlyingBalance:", oriUnderlyingBalance); - // console.log("new ftReserve:", newFtReserve); - // console.log("new xtReserve:", newXtReserve); - // console.log("new lendApr:", newLendApr); - // console.log("new borrowApr:", newBorrowApr); - // console.log("new underlyingBalance:", newUnderlyingBalance); - } - - function addCollateral(uint256 gtId, uint256 addCollateralAmt) public { - addCollateralAmt = addCollateralAmt * 10 ** collateral.decimals(); - vm.startBroadcast(userPrivateKey); - collateral.approve(address(gt), addCollateralAmt); - gt.addCollateral(gtId, abi.encode(addCollateralAmt)); - vm.stopBroadcast(); - } - - function removeCollateral(uint256 gtId, uint256 removeCollateralAmt) public { - removeCollateralAmt = removeCollateralAmt * 10 ** collateral.decimals(); - vm.startBroadcast(userPrivateKey); - gt.removeCollateral(gtId, abi.encode(removeCollateralAmt)); - vm.stopBroadcast(); - } - - function repay(uint256 gtId, uint128 repayAmt, bool byDebtToken) public { - repayAmt = uint128(repayAmt * 10 ** underlying.decimals()); - vm.startBroadcast(userPrivateKey); - underlying.approve(address(gt), repayAmt); - gt.repay(gtId, repayAmt, byDebtToken); - vm.stopBroadcast(); - } - - function transferGT(uint256 gtId, address toAddr) public { - vm.startBroadcast(userPrivateKey); - gt.transferFrom(userAddr, toAddr, gtId); - vm.stopBroadcast(); - // console.log("Transfer GT No. %d from %s to %s", gtId, userAddr, toAddr); - } - - function printMarketConfig() public view { - MarketConfig memory config = market.config(); - console.log("--- Market Config ---"); - console.log("Treasurer:", config.treasurer); - console.log("Maturity:", config.maturity); - console.log("lendTakerFeeRatio:", config.feeConfig.lendTakerFeeRatio); - console.log("lendMakerFeeRatio:", config.feeConfig.lendMakerFeeRatio); - console.log("borrowTakerFeeRatio:", config.feeConfig.borrowTakerFeeRatio); - console.log("borrowMakerFeeRatio:", config.feeConfig.borrowMakerFeeRatio); - console.log("mintGtFeeRatio:", config.feeConfig.mintGtFeeRatio); - console.log("mintGtFeeRef:", config.feeConfig.mintGtFeeRef); - console.log(""); - } - - function printUserPosition() public view { - console.log("--- User Position ---"); - console.log("User Addr:", userAddr); - console.log("Market Addr:", address(market)); - (IERC20[4] memory tokens, uint256[4] memory balances, address gtAddr, uint256[] memory gtIds) = - router.assetsWithERC20Collateral(market, address(0x2A58A3D405c527491Daae4C62561B949e7F87EFE)); - for (uint256 i = 0; i < tokens.length; i++) { - console.log(IERC20Metadata(address(tokens[i])).symbol(), ":", balances[i]); - } - console.log("gtAddr:", gtAddr); - console.log("gtIds:"); - for (uint256 i = 0; i < gtIds.length; i++) { - console.log(gtIds[i]); - } - } -} diff --git a/script/GenerateWallets.s.sol b/script/GenerateWallets.s.sol deleted file mode 100644 index 6bd2d2f..0000000 --- a/script/GenerateWallets.s.sol +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; - -contract GenerateWallets is Script { - function run() public { - string memory mnemonic = vm.envString("MAINNET_FORK_MNEMONIC"); - - uint256 accountNum = 5; - - for (uint32 i = 0; i < accountNum; i++) { - (address deployer, uint256 privateKey) = deriveRememberKey(mnemonic, i); - console.log("Addr", i, ":", deployer); - console.log("PrivateKey", i, ":", privateKey); - } - - // bytes32 hash = keccak256("Signed by deployer"); - // (uint8 v, bytes32 r, bytes32 s) = vm.sign(privateKey, hash); - - // vm.startBroadcast(deployer); - - // vm.stopBroadcast(); - } -} diff --git a/script/GrantRoles.s.sol b/script/GrantRoles.s.sol deleted file mode 100644 index df2e4a5..0000000 --- a/script/GrantRoles.s.sol +++ /dev/null @@ -1,94 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {AccessManager} from "contracts/access/AccessManager.sol"; -import {StringHelper} from "./utils/StringHelper.sol"; - -/** - * @title GrantRoles - * @notice Script to grant essential roles to the deployer address - * @dev Uses admin private key to grant MARKET_ROLE, ORACLE_ROLE, and VAULT_ROLE - * to the deployer address for deploying and managing contracts - */ -contract GrantRoles is Script { - // Network-specific config loaded from environment variables - string network; - uint256 adminPrivateKey; - address adminAddr; - address deployerAddr; - address accessManagerAddr; - - function setUp() public { - // Load network from environment variable - network = vm.envString("NETWORK"); - string memory networkUpper = StringHelper.toUpper(network); - - // Load network-specific configuration - string memory adminPrivateKeyVar = string.concat(networkUpper, "_ADMIN_PRIVATE_KEY"); - string memory deployerVar = string.concat(networkUpper, "_DEPLOYER_ADDRESS"); - - adminPrivateKey = vm.envUint(adminPrivateKeyVar); - adminAddr = vm.addr(adminPrivateKey); - deployerAddr = vm.envAddress(deployerVar); - - // Load AccessManager address from deployment file - string memory deploymentPath = - string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-access-manager.json"); - string memory json = vm.readFile(deploymentPath); - accessManagerAddr = vm.parseJsonAddress(json, ".contracts.accessManager"); - } - - function run() public { - console.log("=== Configuration ==="); - console.log("Network:", network); - console.log("Admin:", adminAddr); - console.log("Deployer:", deployerAddr); - console.log("AccessManager:", accessManagerAddr); - console.log(""); - - console.log("=== Granting Roles to Deployer ==="); - - vm.startBroadcast(adminPrivateKey); - AccessManager accessManager = AccessManager(accessManagerAddr); - - // Grant MARKET_ROLE to deployer - if (!accessManager.hasRole(accessManager.MARKET_ROLE(), deployerAddr)) { - accessManager.grantRole(accessManager.MARKET_ROLE(), deployerAddr); - console.log("[SUCCESS] MARKET_ROLE granted to deployer"); - } else { - console.log("[INFO] Deployer already has MARKET_ROLE"); - } - - // Grant ORACLE_ROLE to deployer - if (!accessManager.hasRole(accessManager.ORACLE_ROLE(), deployerAddr)) { - accessManager.grantRole(accessManager.ORACLE_ROLE(), deployerAddr); - console.log("[SUCCESS] ORACLE_ROLE granted to deployer"); - } else { - console.log("[INFO] Deployer already has ORACLE_ROLE"); - } - - // Grant VAULT_ROLE to deployer - if (!accessManager.hasRole(accessManager.VAULT_ROLE(), deployerAddr)) { - accessManager.grantRole(accessManager.VAULT_ROLE(), deployerAddr); - console.log("[SUCCESS] VAULT_ROLE granted to deployer"); - } else { - console.log("[INFO] Deployer already has VAULT_ROLE"); - } - - // Grant CONFIGURATOR_ROLE to deployer (might be useful for additional config) - if (!accessManager.hasRole(accessManager.CONFIGURATOR_ROLE(), deployerAddr)) { - accessManager.grantRole(accessManager.CONFIGURATOR_ROLE(), deployerAddr); - console.log("[SUCCESS] CONFIGURATOR_ROLE granted to deployer"); - } else { - console.log("[INFO] Deployer already has CONFIGURATOR_ROLE"); - } - - vm.stopBroadcast(); - - console.log(""); - console.log("=== Role Assignment Complete ==="); - console.log("The deployer address now has all necessary roles to deploy and manage contracts"); - } -} diff --git a/script/SubmitOracles.s.sol b/script/SubmitOracles.s.sol deleted file mode 100644 index 1cdff8c..0000000 --- a/script/SubmitOracles.s.sol +++ /dev/null @@ -1,117 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; -import {OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; -import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {JsonLoader} from "./utils/JsonLoader.sol"; -import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {StringHelper} from "./utils/StringHelper.sol"; -import {AccessManager} from "contracts/access/AccessManager.sol"; - -contract SubmitOracles is Script { - // Network-specific config loaded from environment variables - string network; - uint256 deployerPrivateKey; - address oracleAggregatorAddr; - address accessManagerAddr; - JsonLoader.Config[] configs; - mapping(address => bool) tokenSubmitted; - - function setUp() public { - // Load network from environment variable - network = vm.envString("NETWORK"); - string memory networkUpper = StringHelper.toUpper(network); - // Load network-specific configuration - string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); - deployerPrivateKey = vm.envUint(privateKeyVar); - - string memory accessManagerPath = - string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-access-manager.json"); - string memory json = vm.readFile(accessManagerPath); - accessManagerAddr = vm.parseJsonAddress(json, ".contracts.accessManager"); - - string memory corePath = string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-core.json"); - json = vm.readFile(corePath); - - oracleAggregatorAddr = vm.parseJsonAddress(json, ".contracts.oracleAggregator"); - } - - function run() public { - string memory deployDataPath = string.concat(vm.projectRoot(), "/script/deploy/deploydata/", network, ".json"); - - vm.startBroadcast(deployerPrivateKey); - - string memory deployData = vm.readFile(deployDataPath); - - configs = JsonLoader.getConfigsFromJson(deployData); - - AccessManager accessManager = AccessManager(accessManagerAddr); - OracleAggregator oracle = OracleAggregator(oracleAggregatorAddr); - for (uint256 i; i < configs.length; i++) { - JsonLoader.Config memory config = configs[i]; - (AggregatorV3Interface aggregator,,,,) = oracle.oracles(address(config.underlyingConfig.tokenAddr)); - if ( - !tokenSubmitted[address(config.underlyingConfig.tokenAddr)] - && ( - address(aggregator) == address(0) - || address(aggregator) != address(config.underlyingConfig.priceFeedAddr) - ) - ) { - accessManager.submitPendingOracle( - oracle, - address(config.underlyingConfig.tokenAddr), - IOracle.Oracle( - AggregatorV3Interface(config.underlyingConfig.priceFeedAddr), - AggregatorV3Interface(config.underlyingConfig.priceFeedAddr), - config.underlyingConfig.maxPrice, - uint32(config.underlyingConfig.heartBeat), - uint32(config.underlyingConfig.backupHeartBeat) - ) - ); - tokenSubmitted[address(config.underlyingConfig.tokenAddr)] = true; - console.log( - "Submitted oracle for underlying: ", - IERC20Metadata(address(config.underlyingConfig.tokenAddr)).symbol() - ); - console.log("Price feed: ", config.underlyingConfig.priceFeedAddr); - console.log("Heartbeat: ", config.underlyingConfig.heartBeat); - console.log("Max price: ", config.underlyingConfig.maxPrice); - console.log("--------------------------------"); - } - (aggregator,,,,) = oracle.oracles(address(config.collateralConfig.tokenAddr)); - if ( - !tokenSubmitted[address(config.collateralConfig.tokenAddr)] - && ( - address(aggregator) == address(0) - || address(aggregator) != address(config.collateralConfig.priceFeedAddr) - ) - ) { - accessManager.submitPendingOracle( - oracle, - address(config.collateralConfig.tokenAddr), - IOracle.Oracle( - AggregatorV3Interface(config.collateralConfig.priceFeedAddr), - AggregatorV3Interface(config.collateralConfig.priceFeedAddr), - config.collateralConfig.maxPrice, - uint32(config.collateralConfig.heartBeat), - uint32(config.collateralConfig.backupHeartBeat) - ) - ); - tokenSubmitted[address(config.collateralConfig.tokenAddr)] = true; - console.log( - "Submitted oracle for collateral: ", - IERC20Metadata(address(config.collateralConfig.tokenAddr)).symbol() - ); - console.log("Price feed: ", config.collateralConfig.priceFeedAddr); - console.log("Heartbeat: ", config.collateralConfig.heartBeat); - console.log("Max price: ", config.collateralConfig.maxPrice); - console.log("--------------------------------"); - } - } - - vm.stopBroadcast(); - } -} diff --git a/script/convertMarketConfigs.ts b/script/convertMarketConfigs.ts deleted file mode 100644 index b4b223d..0000000 --- a/script/convertMarketConfigs.ts +++ /dev/null @@ -1,208 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { parse } from 'csv-parse/sync'; -import { DeployConfig, MarketData } from './utils/types'; - -// Parse command line arguments -const args = process.argv.slice(2); - -// Check if required arguments are provided -if (args.length < 2) { - console.error('Usage: ts-node script/convertMarketConfigs.ts '); - console.error('Example: ts-node script/convertMarketConfigs.ts script/deploy/deploydata/eth-mainnet.csv script/deploy/deploydata/eth-mainnet.json'); - process.exit(1); -} - -const inputCsvPath = args[0]; -const outputJsonPath = args[1]; - -// Read the CSV file -console.log(`Reading CSV from: ${inputCsvPath}`); -const csvContent = fs.readFileSync(inputCsvPath, 'utf-8'); - -// Parse CSV -const records = parse(csvContent, { - columns: (headers: string[]) => { - // Skip the first row (which contains section headers) - return headers.map((header, index) => { - // Map the columns based on their position - switch (index) { - case 0: return 'marketType'; - case 1: return 'salt'; - case 2: return 'collateralCapForGt'; - case 3: return 'maturity'; - case 4: return 'lendTakerFeeRatio'; - case 5: return 'lendMakerFeeRatio'; - case 6: return 'borrowTakerFeeRatio'; - case 7: return 'borrowMakerFeeRatio'; - case 8: return 'mintGtFeeRatio'; - case 9: return 'mintGtFeeRef'; - case 10: return 'liquidationLtv'; - case 11: return 'maxLtv'; - case 12: return 'liquidatable'; - case 13: return 'underlyingTokenAddr'; - case 14: return 'underlyingPriceFeedAddr'; - case 15: return 'underlyingHeartBeat'; - case 16: return 'underlyingName'; - case 17: return 'underlyingSymbol'; - case 18: return 'underlyingDecimals'; - case 19: return 'underlyingInitialPrice'; - case 20: return 'collateralTokenAddr'; - case 21: return 'collateralPriceFeedAddr'; - case 22: return 'collateralHeartBeat'; - case 23: return 'collateralName'; - case 24: return 'collateralSymbol'; - case 25: return 'collateralDecimals'; - case 26: return 'collateralInitialPrice'; - case 27: return 'gtKeyIdentifier'; - // Skip the note column (28) by not mapping it - default: return `column${index}`; - } - }); - }, - skip_empty_lines: true, - trim: true, - from: 2 // Skip the first row (section headers) -}); - -// Convert to required format -const deployConfig: DeployConfig = { - configNum: records.length.toString(), - configs: {} -}; - -// Parse number with commas to a clean string -function parseNumberWithCommas(value: string): string { - if (!value) return ""; // Return empty string instead of default value - // Remove all commas and non-numeric characters except decimal point - return value.replace(/,/g, '').trim(); -} - -records.forEach((record: any, index: number) => { - try { - // console.log(`Processing record ${index + 1}...`); - - // Debug log column names for the first record - if (index === 0) { - console.log('CSV Column Headers:', Object.keys(record)); - } - - // Parse collateralCapForGt (remove commas) - const collateralCapForGt = parseNumberWithCommas(record['collateralCapForGt']); - - // Use the gtKeyIdentifier directly from CSV - // Default to "GearingTokenWithERC20" if not provided - const gtKeyIdentifier = record['gtKeyIdentifier'] || "GearingTokenWithERC20"; - - const marketData: MarketData = { - salt: parseInt(record['salt'] || '0'), - collateralCapForGt: collateralCapForGt, - marketConfig: { - maturity: record['maturity'] || '', - lendTakerFeeRatio: record['lendTakerFeeRatio'] || '', - lendMakerFeeRatio: record['lendMakerFeeRatio'] || '', - borrowTakerFeeRatio: record['borrowTakerFeeRatio'] || '', - borrowMakerFeeRatio: record['borrowMakerFeeRatio'] || '', - mintGtFeeRatio: record['mintGtFeeRatio'] || '', - mintGtFeeRef: record['mintGtFeeRef'] || '' - }, - loanConfig: { - liquidationLtv: record['liquidationLtv'] || '', - maxLtv: record['maxLtv'] || '', - liquidatable: (record['liquidatable'] || '').toUpperCase() === 'TRUE' - }, - underlyingConfig: { - tokenAddr: record['underlyingTokenAddr'] || '', - priceFeedAddr: record['underlyingPriceFeedAddr'] || '', - heartBeat: record['underlyingHeartBeat'] || '86400', - name: record['underlyingName'] || '', - symbol: record['underlyingSymbol'] || '', - decimals: record['underlyingDecimals'] || '', - initialPrice: convertToBaseUnit(record['underlyingInitialPrice'] || '0') - }, - collateralConfig: { - tokenAddr: record['collateralTokenAddr'] || '', - priceFeedAddr: record['collateralPriceFeedAddr'] || '', - heartBeat: record['collateralHeartBeat'] || '3600', - name: record['collateralName'] || '', - symbol: record['collateralSymbol'] || '', - decimals: record['collateralDecimals'] || '', - initialPrice: convertToBaseUnit(record['collateralInitialPrice'] || '0'), - gtKeyIdentifier: gtKeyIdentifier - } - }; - - // Add market name and symbol (derived from tokens) - const collateralSymbol = record['collateralSymbol'] || ''; - const underlyingSymbol = record['underlyingSymbol'] || ''; - const maturity = record['maturity'] || ''; - - // Convert timestamp to human readable date format (DDMMMYYYY) - const maturityDate = new Date(parseInt(maturity) * 1000); - const day = maturityDate.getUTCDate().toString().padStart(2, '0'); - const month = maturityDate.toLocaleString('en-US', { month: 'short' }).toUpperCase(); - const year = maturityDate.getUTCFullYear(); - const formattedDate = `${day}${month}${year}`; - - marketData.marketName = `${underlyingSymbol}/${collateralSymbol}@${formattedDate}`; - marketData.marketSymbol = `${underlyingSymbol}/${collateralSymbol}@${formattedDate}`; - - // Debug log for the first record - if (index === 0) { - console.log('First record data:', record); - console.log('Processed market data:', marketData); - console.log('Price Feed Addresses:'); - console.log(`Underlying Price Feed: ${record['underlyingPriceFeedAddr']}`); - console.log(`Collateral Price Feed: ${record['collateralPriceFeedAddr']}`); - console.log('Heartbeat Values:'); - console.log(`Underlying Heartbeat: ${record['underlyingHeartBeat'] || '86400'} (default: 86400 if not specified)`); - console.log(`Collateral Heartbeat: ${record['collateralHeartBeat'] || '3600'} (default: 3600 if not specified)`); - } - const collateralCapAmt = BigInt(collateralCapForGt || '0') / (BigInt(10) ** BigInt(parseInt(record['collateralDecimals'] || '18'))); - const collateralCapVault = BigInt(collateralCapForGt || '0') * BigInt(parseInt(convertToBaseUnit(record['collateralInitialPrice'] || '0'))) / (BigInt(10) ** BigInt(parseInt(record['collateralDecimals'] || '18'))) / BigInt(10 ** 8); - console.log(`Collateral Symbol:`, record['collateralSymbol']); - console.log(`Collateral Initial Price:`, record['collateralInitialPrice']); - console.log(`Collateral Cap Amt:`, collateralCapAmt); - console.log(`Collateral Cap Vault: ${collateralCapVault}`); - - deployConfig.configs[`configs_${index}`] = marketData; - } catch (error) { - console.error(`Error processing record ${index + 1}:`, error); - console.error('Record data:', record); - throw error; - } -}); - -// Helper function to convert price to base units with 8 decimals -function convertToBaseUnit(price: string): string { - try { - const priceNum = parseFloat(price); - if (isNaN(priceNum)) { - console.warn(`Warning: Invalid price (${price}), using 0`); - return '0'; - } - const PRICE_DECIMALS = 8; // Always use 8 decimals for prices - const multiplier = Math.pow(10, PRICE_DECIMALS); - const result = Math.floor(priceNum * multiplier); - // Convert to string and ensure it's in full decimal notation - return result.toLocaleString('fullwide', { useGrouping: false }); - } catch (error) { - console.error('Error converting price to base units:', error); - return '0'; - } -} - -// Create directory if it doesn't exist -const outputDir = path.dirname(outputJsonPath); -if (!fs.existsSync(outputDir)) { - fs.mkdirSync(outputDir, { recursive: true }); -} - -// Write to JSON file -fs.writeFileSync( - outputJsonPath, - JSON.stringify(deployConfig, null, 2), - 'utf-8' -); - -console.log(`Conversion complete. Output written to ${outputJsonPath}`); \ No newline at end of file diff --git a/script/deploy/DeployAccessManager.s.sol b/script/deploy/DeployAccessManager.s.sol index d56bc74..85c8364 100644 --- a/script/deploy/DeployAccessManager.s.sol +++ b/script/deploy/DeployAccessManager.s.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.27; import {Script} from "forge-std/Script.sol"; import {console} from "forge-std/console.sol"; -import {AccessManager} from "contracts/access/AccessManager.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {DeployBase} from "./DeployBase.s.sol"; diff --git a/script/deploy/DeployAdapters.s.sol b/script/deploy/DeployAdapters.s.sol new file mode 100644 index 0000000..e11d68d --- /dev/null +++ b/script/deploy/DeployAdapters.s.sol @@ -0,0 +1,185 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Script} from "forge-std/Script.sol"; +import {VmSafe} from "forge-std/Vm.sol"; +import "forge-std/console.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {MarketViewer} from "contracts/v1/router/MarketViewer.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MarketConfig} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; +import {DeployBase} from "./DeployBase.s.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; +import {UniswapV3AdapterV2} from "contracts/v1/router/specAdapters/UniswapV3AdapterV2.sol"; +import {OdosV2AdapterV2} from "contracts/v1/router/specAdapters/OdosV2AdapterV2.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v1/router/specAdapters/PendleSwapV3AdapterV2.sol"; +import {ERC4626VaultAdapterV2} from "contracts/v1/router/specAdapters/ERC4626VaultAdapterV2.sol"; +import {StringHelper} from "../utils/StringHelper.sol"; + +contract DeployAdapters is DeployBase { + // Network-specific config loaded from environment variables + string network; + uint256 deployerPrivateKey; + address deployerAddr; + address adminAddr; + address accessManagerAddr; + address uniswapV3RouterAddr; + address odosV2RouterAddr; + address pendleSwapV3RouterAddr; + address routerAddr; + + AccessManager accessManager; + ITermMaxRouter router; + UniswapV3AdapterV2 uniswapV3Adapter; + OdosV2AdapterV2 odosV2Adapter; + PendleSwapV3AdapterV2 pendleSwapV3Adapter; + ERC4626VaultAdapterV2 vaultAdapter; + + function setUp() public { + // Load network from environment variable + network = vm.envString("NETWORK"); + string memory networkUpper = toUpper(network); + + // Load network-specific configuration + string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); + string memory adminVar = string.concat(networkUpper, "_ADMIN_ADDRESS"); + + deployerPrivateKey = vm.envUint(privateKeyVar); + deployerAddr = vm.addr(deployerPrivateKey); + adminAddr = vm.envAddress(adminVar); + + if ( + keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("eth-mainnet")) + || keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("arb-mainnet")) + || keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("bnb-mainnet")) + ) { + string memory uniswapV3RouterVar = string.concat(networkUpper, "_UNISWAP_V3_ROUTER_ADDRESS"); + string memory odosV2RouterVar = string.concat(networkUpper, "_ODOS_V2_ROUTER_ADDRESS"); + string memory pendleSwapV3RouterVar = string.concat(networkUpper, "_PENDLE_SWAP_V3_ROUTER_ADDRESS"); + uniswapV3RouterAddr = vm.envAddress(uniswapV3RouterVar); + odosV2RouterAddr = vm.envAddress(odosV2RouterVar); + pendleSwapV3RouterAddr = vm.envAddress(pendleSwapV3RouterVar); + } + + string memory deploymentPath = + string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-access-manager.json"); + string memory json = vm.readFile(deploymentPath); + accessManagerAddr = vm.parseJsonAddress(json, ".contracts.accessManager"); + + deploymentPath = string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-core.json"); + json = vm.readFile(deploymentPath); + routerAddr = vm.parseJsonAddress(json, ".contracts.router"); + } + + function run() public { + console.log("Network:", network); + console.log("Deployer balance:", deployerAddr.balance); + console.log("Git commit hash:"); + console.logBytes(getGitCommitHash()); + + uint256 currentBlock = block.number; + uint256 currentTimestamp = block.timestamp; + + vm.startBroadcast(deployerPrivateKey); + // if ( + // keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("eth-mainnet")) + // || keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("arb-mainnet")) + // || keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("bnb-mainnet")) + // ) { + (uniswapV3Adapter, odosV2Adapter, pendleSwapV3Adapter, vaultAdapter) = + deployAdapters(accessManagerAddr, routerAddr, uniswapV3RouterAddr, odosV2RouterAddr, pendleSwapV3RouterAddr); + // } else { + // revert("This script is only for mainnet deployments"); + // } + vm.stopBroadcast(); + + console.log("===== Git Info ====="); + console.log("Git branch:", getGitBranch()); + console.log(); + + console.log("===== Block Info ====="); + console.log("Block number:", currentBlock); + console.log("Block timestamp:", currentTimestamp); + console.log(); + + console.log("===== Core Info ====="); + console.log("Use access manager:", accessManagerAddr); + console.log("Use router:", routerAddr); + + // Write deployment results to a JSON file with timestamp + string memory deploymentJson = string( + abi.encodePacked( + "{\n", + ' "network": "', + network, + '",\n', + ' "deployedAt": "', + vm.toString(block.timestamp), + '",\n', + ' "gitBranch": "', + getGitBranch(), + '",\n', + ' "gitCommitHash": "', + vm.toString(getGitCommitHash()), + '",\n', + ' "blockInfo": {\n', + ' "number": "', + vm.toString(currentBlock), + '",\n', + ' "timestamp": "', + vm.toString(currentTimestamp), + '"\n', + " },\n", + ' "deployer": "', + vm.toString(deployerAddr), + '",\n', + ' "admin": "', + vm.toString(adminAddr), + '",\n', + ' "swapAdapter": ', + string.concat( + "{\n", + ' "uniswapV3Adapter": "', + vm.toString(address(uniswapV3Adapter)), + '",\n', + ' "odosV2Adapter": "', + vm.toString(address(odosV2Adapter)), + '",\n', + ' "pendleSwapV3Adapter": "', + vm.toString(address(pendleSwapV3Adapter)), + '",\n', + ' "ERC4626VaultAdapter": "', + vm.toString(address(vaultAdapter)), + '"\n', + " }\n" + ), + "}" + ) + ); + + // Create deployments directory if it doesn't exist + string memory deploymentsDir = string.concat(vm.projectRoot(), "/deployments/", network); + if (!vm.exists(deploymentsDir)) { + // Directory doesn't exist, create it + vm.createDir(deploymentsDir, true); + } + + // Create filename with date string using StringHelper + string memory dateString = getDateSuffix(); + string memory deploymentPath = string.concat(deploymentsDir, "/", network, "-adapters-", dateString, ".json"); + vm.writeFile(deploymentPath, deploymentJson); + console.log("Deployment info written to:", deploymentPath); + } +} diff --git a/script/deploy/DeployBase.s.sol b/script/deploy/DeployBase.s.sol index ce490ae..3caa654 100644 --- a/script/deploy/DeployBase.s.sol +++ b/script/deploy/DeployBase.s.sol @@ -6,39 +6,43 @@ import {console} from "forge-std/console.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import {MarketViewer} from "contracts/router/MarketViewer.sol"; -import {ITermMaxRouter} from "contracts/router/ITermMaxRouter.sol"; -import {TermMaxMarket} from "contracts/TermMaxMarket.sol"; -import {TermMaxOrder} from "contracts/TermMaxOrder.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {IMintableERC20, MintableERC20} from "contracts/tokens/MintableERC20.sol"; -import {SwapAdapter} from "contracts/test/testnet/SwapAdapter.sol"; -import {Faucet} from "contracts/test/testnet/Faucet.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import {MarketViewer} from "contracts/v1/router/MarketViewer.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {TermMaxOrder} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IMintableERC20, MintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; import {JsonLoader} from "../utils/JsonLoader.sol"; -import {FaucetERC20} from "contracts/test/testnet/FaucetERC20.sol"; -import {IOracle, OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; -import {IOrderManager, OrderManager} from "contracts/vault/OrderManager.sol"; -import {ITermMaxVault, TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultFactory, IVaultFactory} from "contracts/factory/VaultFactory.sol"; +import {FaucetERC20} from "contracts/v1/test/testnet/FaucetERC20.sol"; +import {IOracle, OracleAggregator} from "contracts/v1/oracle/OracleAggregator.sol"; +import {IOrderManager, OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {ITermMaxVault, TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; import { MarketConfig, FeeConfig, MarketInitialParams, LoanConfig, VaultInitialParams -} from "contracts/storage/TermMaxStorage.sol"; -import {KyberswapV2Adapter} from "contracts/router/swapAdapters/KyberswapV2Adapter.sol"; -import {OdosV2Adapter} from "contracts/router/swapAdapters/OdosV2Adapter.sol"; -import {PendleSwapV3Adapter} from "contracts/router/swapAdapters/PendleSwapV3Adapter.sol"; -import {UniswapV3Adapter} from "contracts/router/swapAdapters/UniswapV3Adapter.sol"; -import {ERC4626VaultAdapter} from "contracts/router/swapAdapters/ERC4626VaultAdapter.sol"; +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {ERC4626VaultAdapterV2} from "contracts/v1/router/specAdapters/ERC4626VaultAdapterV2.sol"; +import {OdosV2AdapterV2} from "contracts/v1/router/specAdapters/OdosV2AdapterV2.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v1/router/specAdapters/PendleSwapV3AdapterV2.sol"; +import {UniswapV3AdapterV2} from "contracts/v1/router/specAdapters/UniswapV3AdapterV2.sol"; +import {ERC4626VaultAdapter} from "contracts/v1/router/swapAdapters/ERC4626VaultAdapter.sol"; +import {OdosV2Adapter} from "contracts/v1/router/swapAdapters/OdosV2Adapter.sol"; +import {PendleSwapV3Adapter} from "contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol"; +import {UniswapV3Adapter} from "contracts/v1/router/swapAdapters/UniswapV3Adapter.sol"; import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {AccessManager} from "contracts/access/AccessManager.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; +import {StringHelper} from "../utils/StringHelper.sol"; contract DeployBase is Script { bytes32 constant GT_ERC20 = keccak256("GearingTokenWithERC20"); @@ -163,6 +167,39 @@ contract DeployBase is Script { accessManager.setAdapterWhitelist(router, address(vaultAdapter), true); } + function deployAdapters( + address accessManagerAddr, + address routerAddr, + address uniswapV3Router, + address odosV2Router, + address pendleSwapV3Router + ) + public + returns ( + UniswapV3AdapterV2 uniswapV3Adapter, + OdosV2AdapterV2 odosV2Adapter, + PendleSwapV3AdapterV2 pendleSwapV3Adapter, + ERC4626VaultAdapterV2 vaultAdapter + ) + { + // deploy access manager + AccessManager accessManager = AccessManager(accessManagerAddr); + + // deploy router + TermMaxRouter router = TermMaxRouter(routerAddr); + + // deploy and whitelist swap adapter + uniswapV3Adapter = new UniswapV3AdapterV2(address(uniswapV3Router)); + odosV2Adapter = new OdosV2AdapterV2(odosV2Router); + pendleSwapV3Adapter = new PendleSwapV3AdapterV2(address(pendleSwapV3Router)); + vaultAdapter = new ERC4626VaultAdapterV2(); + + accessManager.setAdapterWhitelist(router, address(uniswapV3Adapter), true); + accessManager.setAdapterWhitelist(router, address(odosV2Adapter), true); + accessManager.setAdapterWhitelist(router, address(pendleSwapV3Adapter), true); + accessManager.setAdapterWhitelist(router, address(vaultAdapter), true); + } + function deployMarkets( address accessManagerAddr, address factoryAddr, @@ -214,7 +251,7 @@ contract DeployBase is Script { accessManager.submitPendingOracle( oracle, address(collateral), - IOracle.Oracle(collateralPriceFeed, collateralPriceFeed, 0, uint32(365 days), uint32(365 days)) + IOracle.Oracle(collateralPriceFeed, collateralPriceFeed, uint32(365 days)) ); accessManager.acceptPendingOracle(oracle, address(collateral)); } else { @@ -244,7 +281,7 @@ contract DeployBase is Script { accessManager.submitPendingOracle( oracle, address(underlying), - IOracle.Oracle(underlyingPriceFeed, underlyingPriceFeed, 0, uint32(365 days), uint32(365 days)) + IOracle.Oracle(underlyingPriceFeed, underlyingPriceFeed, uint32(365 days)) ); accessManager.acceptPendingOracle(oracle, address(underlying)); } else { @@ -412,4 +449,20 @@ contract DeployBase is Script { } return string(bUpper); } + + // Helper function to generate date suffix for JSON files + function getDateSuffix() internal view returns (string memory) { + return StringHelper.convertTimestampToDateString(block.timestamp, "YYYYMMDD"); + } + + // Helper function to create deployment file path with date suffix + function getDeploymentFilePath(string memory network, string memory contractType) + internal + view + returns (string memory) + { + string memory dateSuffix = getDateSuffix(); + string memory deploymentsDir = string.concat(vm.projectRoot(), "/deployments/", network); + return string.concat(deploymentsDir, "/", network, "-", contractType, "-", dateSuffix, ".json"); + } } diff --git a/script/deploy/DeployCore.s.sol b/script/deploy/DeployCore.s.sol index 27afc9f..bde99d9 100644 --- a/script/deploy/DeployCore.s.sol +++ b/script/deploy/DeployCore.s.sol @@ -4,29 +4,29 @@ pragma solidity ^0.8.27; import {Script} from "forge-std/Script.sol"; import {VmSafe} from "forge-std/Vm.sol"; import "forge-std/console.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {ITermMaxRouter} from "contracts/router/ITermMaxRouter.sol"; -import {MarketViewer} from "contracts/router/MarketViewer.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {MarketViewer} from "contracts/v1/router/MarketViewer.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {TermMaxMarket} from "contracts/TermMaxMarket.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MarketConfig} from "contracts/storage/TermMaxStorage.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MarketConfig} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {SwapAdapter} from "contracts/test/testnet/SwapAdapter.sol"; -import {Faucet} from "contracts/test/testnet/Faucet.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; import {DeployBase} from "./DeployBase.s.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; -import {VaultFactory, IVaultFactory} from "contracts/factory/VaultFactory.sol"; -import {KyberswapV2Adapter} from "contracts/router/swapAdapters/KyberswapV2Adapter.sol"; -import {OdosV2Adapter} from "contracts/router/swapAdapters/OdosV2Adapter.sol"; -import {PendleSwapV3Adapter} from "contracts/router/swapAdapters/PendleSwapV3Adapter.sol"; -import {UniswapV3Adapter} from "contracts/router/swapAdapters/UniswapV3Adapter.sol"; -import {ERC4626VaultAdapter} from "contracts/router/swapAdapters/ERC4626VaultAdapter.sol"; -import {AccessManager} from "contracts/access/AccessManager.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import {KyberswapV2Adapter} from "contracts/v1/router/swapAdapters/KyberswapV2Adapter.sol"; +import {OdosV2Adapter} from "contracts/v1/router/swapAdapters/OdosV2Adapter.sol"; +import {PendleSwapV3Adapter} from "contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol"; +import {UniswapV3Adapter} from "contracts/v1/router/swapAdapters/UniswapV3Adapter.sol"; +import {ERC4626VaultAdapter} from "contracts/v1/router/swapAdapters/ERC4626VaultAdapter.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; contract DeployCore is DeployBase { // Network-specific config loaded from environment variables diff --git a/script/deploy/DeployMarket.s.sol b/script/deploy/DeployMarket.s.sol index a76fc01..b91f3cb 100644 --- a/script/deploy/DeployMarket.s.sol +++ b/script/deploy/DeployMarket.s.sol @@ -3,25 +3,25 @@ pragma solidity ^0.8.27; import {Script} from "forge-std/Script.sol"; import {console} from "forge-std/console.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {TermMaxMarket} from "contracts/TermMaxMarket.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MarketConfig} from "contracts/storage/TermMaxStorage.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; -import {OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MarketConfig} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {OracleAggregator} from "contracts/v1/oracle/OracleAggregator.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {MockSwapAdapter} from "contracts/test/MockSwapAdapter.sol"; +import {MockSwapAdapter} from "contracts/v1/test/MockSwapAdapter.sol"; import {JsonLoader} from "../utils/JsonLoader.sol"; -import {Faucet} from "contracts/test/testnet/Faucet.sol"; -import {FaucetERC20} from "contracts/test/testnet/FaucetERC20.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; +import {FaucetERC20} from "contracts/v1/test/testnet/FaucetERC20.sol"; import {DeployBase} from "./DeployBase.s.sol"; import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; import {StringHelper} from "../utils/StringHelper.sol"; @@ -168,7 +168,7 @@ contract DeloyMarket is DeployBase { console.log(); console.log("Treasurer:", treasurerAddr); - console.log("Maturity:", StringHelper.convertTimestampToDateString(marketConfig.maturity)); + console.log("Maturity:", StringHelper.convertTimestampToDateString(marketConfig.maturity, "YYYY-MM-DD")); console.log("Salt:", config.salt); console.log("Lend Taker Fee Ratio:", marketConfig.feeConfig.lendTakerFeeRatio); console.log("Lend Maker Fee Ratio:", marketConfig.feeConfig.lendMakerFeeRatio); @@ -218,7 +218,7 @@ contract DeloyMarket is DeployBase { "-", IERC20Metadata(collateralAddr).symbol(), "@", - StringHelper.convertTimestampToDateString(maturity), + StringHelper.convertTimestampToDateString(maturity, "YYYY-MM-DD"), ".json" ); } @@ -338,7 +338,7 @@ contract DeloyMarket is DeployBase { vm.toString(marketConfig.treasurer), '",\n', ' "maturity": "', - StringHelper.convertTimestampToDateString(marketConfig.maturity), + StringHelper.convertTimestampToDateString(marketConfig.maturity, "YYYY-MM-DD"), '",\n', ' "salt": "', vm.toString(salt), diff --git a/script/deploy/DeployMarketViewer.s.sol b/script/deploy/DeployMarketViewer.s.sol index c862d87..094860e 100644 --- a/script/deploy/DeployMarketViewer.s.sol +++ b/script/deploy/DeployMarketViewer.s.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.27; import {Script} from "forge-std/Script.sol"; import {console} from "forge-std/console.sol"; -import {MarketViewer} from "../../contracts/router/MarketViewer.sol"; +import {MarketViewer} from "contracts/v1/router/MarketViewer.sol"; import {StringHelper} from "../utils/StringHelper.sol"; contract DeployMarketViewer is Script { diff --git a/script/deploy/DeployOracleAggregator.s.sol b/script/deploy/DeployOracleAggregator.s.sol new file mode 100644 index 0000000..001b96b --- /dev/null +++ b/script/deploy/DeployOracleAggregator.s.sol @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Script} from "forge-std/Script.sol"; +import {VmSafe} from "forge-std/Vm.sol"; +import "forge-std/console.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {MarketViewer} from "contracts/v1/router/MarketViewer.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MarketConfig} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; +import {DeployBase} from "./DeployBase.s.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import {KyberswapV2Adapter} from "contracts/v1/router/swapAdapters/KyberswapV2Adapter.sol"; +import {OdosV2Adapter} from "contracts/v1/router/swapAdapters/OdosV2Adapter.sol"; +import {PendleSwapV3Adapter} from "contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol"; +import {UniswapV3Adapter} from "contracts/v1/router/swapAdapters/UniswapV3Adapter.sol"; +import {ERC4626VaultAdapter} from "contracts/v1/router/swapAdapters/ERC4626VaultAdapter.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; + +contract DeployCore is DeployBase { + // Network-specific config loaded from environment variables + string network; + uint256 deployerPrivateKey; + address deployerAddr; + address adminAddr; + address accessManagerAddr; + address uniswapV3RouterAddr; + address odosV2RouterAddr; + address pendleSwapV3RouterAddr; + uint256 oracleTimelock; + + AccessManager accessManager; + ITermMaxFactory factory; + IVaultFactory vaultFactory; + IOracle oracleAggregator; + ITermMaxRouter router; + MarketViewer marketViewer; + UniswapV3Adapter uniswapV3Adapter; + OdosV2Adapter odosV2Adapter; + PendleSwapV3Adapter pendleSwapV3Adapter; + ERC4626VaultAdapter vaultAdapter; + SwapAdapter swapAdapter; + Faucet faucet; + + function setUp() public { + // Load network from environment variable + network = vm.envString("NETWORK"); + string memory networkUpper = toUpper(network); + + // Load network-specific configuration + string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); + string memory adminVar = string.concat(networkUpper, "_ADMIN_ADDRESS"); + string memory oracleTimelockVar = string.concat(networkUpper, "_ORACLE_TIMELOCK"); + + oracleTimelock = vm.envUint(oracleTimelockVar); + deployerPrivateKey = vm.envUint(privateKeyVar); + deployerAddr = vm.addr(deployerPrivateKey); + adminAddr = vm.envAddress(adminVar); + + string memory deploymentPath = + string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-access-manager.json"); + string memory json = vm.readFile(deploymentPath); + accessManagerAddr = vm.parseJsonAddress(json, ".contracts.accessManager"); + } + + function run() public { + console.log("Network:", network); + console.log("Deployer balance:", deployerAddr.balance); + + uint256 currentBlock = block.number; + uint256 currentTimestamp = block.timestamp; + + vm.startBroadcast(deployerPrivateKey); + // deploy oracle aggregator + oracleAggregator = deployOracleAggregator(accessManagerAddr, oracleTimelock); + vm.stopBroadcast(); + + console.log("===== Git Info ====="); + console.log("Git branch:", getGitBranch()); + console.log("Git commit hash:"); + console.logBytes(getGitCommitHash()); + console.log(); + + console.log("===== Block Info ====="); + console.log("Block number:", currentBlock); + console.log("Block timestamp:", currentTimestamp); + console.log(); + + console.log("===== Oracle Aggregator Info ====="); + console.log("Deployer:", deployerAddr); + console.log("Admin:", adminAddr); + console.log("Oracle Aggregator deployed at:", address(oracleAggregator)); + console.log("Oracle Timelock:", oracleTimelock); + } +} diff --git a/script/deploy/DeployOrder.s.sol b/script/deploy/DeployOrder.s.sol index e35c4bc..d46a16a 100644 --- a/script/deploy/DeployOrder.s.sol +++ b/script/deploy/DeployOrder.s.sol @@ -3,26 +3,26 @@ pragma solidity ^0.8.27; import {Script} from "forge-std/Script.sol"; import {console} from "forge-std/console.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {TermMaxMarket} from "contracts/TermMaxMarket.sol"; -import {TermMaxOrder, ISwapCallback} from "contracts/TermMaxOrder.sol"; -import {ITermMaxOrder} from "contracts/TermMaxOrder.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MarketConfig, OrderConfig, CurveCuts, CurveCut} from "contracts/storage/TermMaxStorage.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {TermMaxOrder, ISwapCallback} from "contracts/v1/TermMaxOrder.sol"; +import {ITermMaxOrder} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MarketConfig, OrderConfig, CurveCuts, CurveCut} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {MockSwapAdapter} from "contracts/test/MockSwapAdapter.sol"; +import {MockSwapAdapter} from "contracts/v1/test/MockSwapAdapter.sol"; import {JsonLoader} from "../utils/JsonLoader.sol"; -import {Faucet} from "contracts/test/testnet/Faucet.sol"; -import {FaucetERC20} from "contracts/test/testnet/FaucetERC20.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; +import {FaucetERC20} from "contracts/v1/test/testnet/FaucetERC20.sol"; import {DeployBase} from "./DeployBase.s.sol"; import {StringHelper} from "../utils/StringHelper.sol"; diff --git a/script/deploy/DeployOrderArbSepolia.s.sol b/script/deploy/DeployOrderArbSepolia.s.sol deleted file mode 100644 index be04775..0000000 --- a/script/deploy/DeployOrderArbSepolia.s.sol +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {TermMaxMarket} from "contracts/TermMaxMarket.sol"; -import {TermMaxOrder, ISwapCallback} from "contracts/TermMaxOrder.sol"; -import {ITermMaxOrder} from "contracts/TermMaxOrder.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MarketConfig, OrderConfig, CurveCuts, CurveCut} from "contracts/storage/TermMaxStorage.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {MockSwapAdapter} from "contracts/test/MockSwapAdapter.sol"; -import {JsonLoader} from "../utils/JsonLoader.sol"; -import {Faucet} from "contracts/test/testnet/Faucet.sol"; -import {FaucetERC20} from "contracts/test/testnet/FaucetERC20.sol"; -import {DeployBase} from "./DeployBase.s.sol"; -import {StringHelper} from "../utils/StringHelper.sol"; - -contract DeloyOrderArbSepolia is DeployBase { - // Network-specific config loaded from environment variables - string network; - uint256 deployerPrivateKey; - address deployerAddr; - address adminAddr; - address priceFeedOperatorAddr; - - // address config - address marketAddr = address(0xD0586B5a5F97347C769983C404348346FE26f38e); - - function setUp() public { - // Load network from environment variable - network = vm.envString("NETWORK"); - string memory networkUpper = StringHelper.toUpper(network); - - // Load network-specific configuration - string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); - string memory adminVar = string.concat(networkUpper, "_ADMIN_ADDRESS"); - string memory priceFeedOperatorVar = string.concat(networkUpper, "_PRICE_FEED_OPERATOR_ADDRESS"); - - deployerPrivateKey = vm.envUint(privateKeyVar); - deployerAddr = vm.addr(deployerPrivateKey); - adminAddr = vm.envAddress(adminVar); - priceFeedOperatorAddr = vm.envAddress(priceFeedOperatorVar); - } - - function run() public { - uint256 currentBlockNum = block.number; - TermMaxMarket market = TermMaxMarket(marketAddr); - vm.startBroadcast(deployerPrivateKey); - uint256 maxXtReserve = 200000000000; - CurveCut memory lendCurveCut0 = CurveCut({xtReserve: 0, liqSquare: 461683991532123062272, offset: 33973665961}); - CurveCut memory lendCurveCut1 = - CurveCut({xtReserve: 9000000000, liqSquare: 425141100695200464896, offset: 32237899859}); - CurveCut memory lendCurveCut2 = - CurveCut({xtReserve: 21000000000, liqSquare: 1072059478286836826112, offset: 63540304430}); - CurveCut[] memory _lendCurveCuts = new CurveCut[](3); - _lendCurveCuts[0] = lendCurveCut0; - _lendCurveCuts[1] = lendCurveCut1; - _lendCurveCuts[2] = lendCurveCut2; - - CurveCut memory borrowCurveCut0 = - CurveCut({xtReserve: 0, liqSquare: 330638754635872993280, offset: 29116862443}); - CurveCut memory borrowCurveCut1 = - CurveCut({xtReserve: 8000000000, liqSquare: 361237873939795017728, offset: 30796362980}); - CurveCut memory borrowCurveCut2 = - CurveCut({xtReserve: 20000000000, liqSquare: 826934466947518169088, offset: 56854893632}); - CurveCut[] memory _borrowCurveCuts = new CurveCut[](3); - _borrowCurveCuts[0] = borrowCurveCut0; - _borrowCurveCuts[1] = borrowCurveCut1; - _borrowCurveCuts[2] = borrowCurveCut2; - - CurveCuts memory curveCuts = CurveCuts({lendCurveCuts: _lendCurveCuts, borrowCurveCuts: _borrowCurveCuts}); - ITermMaxOrder order = market.createOrder(deployerAddr, maxXtReserve, ISwapCallback(address(0)), curveCuts); - - vm.stopBroadcast(); - - console.log("===== Git Info ====="); - console.log("Git branch:", getGitBranch()); - console.log("Git commit hash:"); - console.logBytes(getGitCommitHash()); - console.log(); - - console.log("===== Order Info ====="); - console.log("Order Maker:", deployerAddr); - console.log("Order Address:", address(order)); - console.log("Deployed at block number:", currentBlockNum); - console.log(""); - } -} diff --git a/script/deploy/DeployPreTMX.s.sol b/script/deploy/DeployPreTMX.s.sol new file mode 100644 index 0000000..9619edd --- /dev/null +++ b/script/deploy/DeployPreTMX.s.sol @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; +import {PreTMX} from "contracts/v2/tokenomics/PreTMX.sol"; +import {DeployBase} from "./DeployBase.s.sol"; + +contract DeployPreTMX is DeployBase { + // Network-specific config loaded from environment variables + string network; + uint256 deployerPrivateKey; + address deployerAddr; + address adminAddr; + + function setUp() public { + // Load network from environment variable + network = vm.envString("NETWORK"); + string memory networkUpper = toUpper(network); + + // Load network-specific configuration + string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); + string memory adminVar = string.concat(networkUpper, "_ADMIN_ADDRESS"); + + deployerPrivateKey = vm.envUint(privateKeyVar); + deployerAddr = vm.addr(deployerPrivateKey); + adminAddr = vm.envAddress(adminVar); + } + + function run() public { + console.log("Network:", network); + console.log("Deployer:", deployerAddr); + console.log("Deployer balance:", deployerAddr.balance); + console.log("Admin:", adminAddr); + + uint256 currentBlock = block.number; + uint256 currentTimestamp = block.timestamp; + + vm.startBroadcast(deployerPrivateKey); + PreTMX preTMX = deployPreTMX(adminAddr); + vm.stopBroadcast(); + + console.log("===== Git Info ====="); + console.log("Git branch:", getGitBranch()); + console.log("Git commit hash:"); + console.logBytes(getGitCommitHash()); + console.log(); + + console.log("===== Block Info ====="); + console.log("Block number:", currentBlock); + console.log("Block timestamp:", currentTimestamp); + console.log(); + + console.log("===== PreTMX Token Info ====="); + console.log("PreTMX deployed at:", address(preTMX)); + console.log("Token name:", preTMX.name()); + console.log("Token symbol:", preTMX.symbol()); + console.log("Total supply:", preTMX.totalSupply()); + console.log("Owner:", preTMX.owner()); + console.log("Transfer restricted:", preTMX.transferRestricted()); + console.log(); + + // Write deployment results to a JSON file + string memory deploymentJson = string( + abi.encodePacked( + "{\n", + ' "network": "', + network, + '",\n', + ' "deployedAt": "', + vm.toString(block.timestamp), + '",\n', + ' "gitBranch": "', + getGitBranch(), + '",\n', + ' "gitCommitHash": "0x', + vm.toString(getGitCommitHash()), + '",\n', + ' "blockInfo": {\n', + ' "number": "', + vm.toString(currentBlock), + '",\n', + ' "timestamp": "', + vm.toString(currentTimestamp), + '"\n', + " },\n", + ' "deployer": "', + vm.toString(deployerAddr), + '",\n', + ' "admin": "', + vm.toString(adminAddr), + '",\n', + ' "contracts": {\n', + ' "preTMX": {\n', + ' "address": "', + vm.toString(address(preTMX)), + '",\n', + ' "name": "', + preTMX.name(), + '",\n', + ' "symbol": "', + preTMX.symbol(), + '",\n', + ' "totalSupply": "', + vm.toString(preTMX.totalSupply()), + '",\n', + ' "owner": "', + vm.toString(preTMX.owner()), + '",\n', + ' "transferRestricted": ', + preTMX.transferRestricted() ? "true" : "false", + "\n", + " }\n", + " }\n", + "}" + ) + ); + + // Create deployment directory if it doesn't exist + string memory deploymentsDir = string.concat(vm.projectRoot(), "/deployments/", network); + if (!vm.exists(deploymentsDir)) { + vm.createDir(deploymentsDir, true); + } + + // Write the JSON file with date suffix + string memory filePath = getDeploymentFilePath(network, "pretmx"); + vm.writeFile(filePath, deploymentJson); + console.log("Deployment information written to:", filePath); + } + + function deployPreTMX(address admin) public returns (PreTMX preTMX) { + console.log("Deploying PreTMX with admin:", admin); + preTMX = new PreTMX(admin); + console.log("PreTMX deployed successfully at:", address(preTMX)); + return preTMX; + } +} diff --git a/script/deploy/DeployPriceFeeds.sol b/script/deploy/DeployPriceFeeds.sol index 9c9709c..d996751 100644 --- a/script/deploy/DeployPriceFeeds.sol +++ b/script/deploy/DeployPriceFeeds.sol @@ -4,31 +4,30 @@ pragma solidity ^0.8.27; import {Script} from "forge-std/Script.sol"; import {console} from "forge-std/console.sol"; import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {TermMaxPriceFeedFactory} from "contracts/factory/TermMaxPriceFeedFactory.sol"; +import {TermMaxPriceFeedFactoryV2} from "contracts/v2/factory/TermMaxPriceFeedFactoryV2.sol"; contract DeployPriceFeeds is Script { function run() public { uint256 deployerPrivateKey = vm.envUint("ETH_MAINNET_DEPLOYER_PRIVATE_KEY"); vm.startBroadcast(deployerPrivateKey); - TermMaxPriceFeedFactory priceFeedFactory = new TermMaxPriceFeedFactory(); + TermMaxPriceFeedFactoryV2 priceFeedFactory = new TermMaxPriceFeedFactoryV2(); - console.log("PriceFeedFactory deployed at", address(priceFeedFactory)); + console.log("TermMaxPriceFeedFactory deployed at", address(priceFeedFactory)); // pendle deployments: https://github.com/pendle-finance/pendle-core-v2-public/blob/main/deployments/1-core.json address pendlePYLpOracle = 0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2; address pufferEthOracle; { + address pufETH = 0xD9A442856C234a39a81a089C06451EBAa4306a72; // chainlink(pufETH/ETH): https://data.chain.link/feeds/ethereum/mainnet/pufeth-eth // heartBeat: 86400 (24hr) address pufferEthToEth = 0xDe3f7Dd92C4701BCf59F47235bCb61e727c45f80; // chainlink(ETH/USD): https://data.chain.link/feeds/ethereum/mainnet/eth-usd // heartBeat: 3600 (1hr) address ethToUsd = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419; - address pufETH = 0xD9A442856C234a39a81a089C06451EBAa4306a72; // new price feed heartBeat = max(3600, 86400) = 86400 (24hr) AggregatorV3Interface pufferEthFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedConverter(pufferEthToEth, ethToUsd, pufETH)); (, int256 answer,,,) = pufferEthFeed.latestRoundData(); - console.log("pufferEth price feed description", pufferEthFeed.description()); console.log("pufferEth price feed address", address(pufferEthFeed)); console.log("pufferEth last answer", answer); pufferEthOracle = address(pufferEthFeed); @@ -45,7 +44,6 @@ contract DeployPriceFeeds is Script { priceFeedFactory.createPTWithPriceFeed(pendlePYLpOracle, pt_market, 900, susdeToUsd) ); (, int256 answer,,,) = ptFeed.latestRoundData(); - console.log("pt_sUsde_29MAY2025 price feed description", ptFeed.description()); console.log("pt_sUsde_29MAY2025 price feed address", address(ptFeed)); console.log("pt_sUsde_29MAY2025 last answer", answer); } @@ -60,7 +58,6 @@ contract DeployPriceFeeds is Script { AggregatorV3Interface usdcPlusFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdcToUsd, USUALUSDCPlusVault)); (, int256 answer,,,) = usdcPlusFeed.latestRoundData(); - console.log("USUALUSDC+ price feed description", usdcPlusFeed.description()); console.log("USUALUSDC+ price feed address", address(usdcPlusFeed)); console.log("USUALUSDC+ last answer", answer); } @@ -75,7 +72,6 @@ contract DeployPriceFeeds is Script { AggregatorV3Interface wethFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(wethToUsd, MCwETHVault)); (, int256 answer,,,) = wethFeed.latestRoundData(); - console.log("MCwETH price feed description", wethFeed.description()); console.log("MCwETH price feed address", address(wethFeed)); console.log("MCwETH last answer", answer); } @@ -90,7 +86,6 @@ contract DeployPriceFeeds is Script { AggregatorV3Interface gtWETHFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(wethToUsd, gtWETHVault)); (, int256 answer,,,) = gtWETHFeed.latestRoundData(); - console.log("gtWETH price feed description", gtWETHFeed.description()); console.log("gtWETH price feed address", address(gtWETHFeed)); console.log("gtWETH last answer", answer); } @@ -106,7 +101,6 @@ contract DeployPriceFeeds is Script { ) ); (, int256 answer,,,) = ptFeed.latestRoundData(); - console.log("pt_pufETH_26JUN2025 price feed description", ptFeed.description()); console.log("pt_pufETH_26JUN2025 price feed address", address(ptFeed)); console.log("pt_pufETH_26JUN2025 last answer", answer); } @@ -121,7 +115,6 @@ contract DeployPriceFeeds is Script { AggregatorV3Interface usdeFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdeToUsd, eUSDeVault)); (, int256 answer,,,) = usdeFeed.latestRoundData(); - console.log("eUSDe price feed description", usdeFeed.description()); console.log("eUSDe price feed address", address(usdeFeed)); console.log("eUSDe last answer", answer); } @@ -139,7 +132,6 @@ contract DeployPriceFeeds is Script { ) ); (, int256 answer,,,) = usd0PlusPlusFeed.latestRoundData(); - console.log("PT_USD0PlusPlus_26JUN2025 price feed description", usd0PlusPlusFeed.description()); console.log("PT_USD0PlusPlus_26JUN2025_market price feed address", address(usd0PlusPlusFeed)); console.log("PT_USD0PlusPlus_26JUN2025_market last answer", answer); } @@ -154,7 +146,6 @@ contract DeployPriceFeeds is Script { AggregatorV3Interface usdcFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdcToUsd, upUSDCVault)); (, int256 answer,,,) = usdcFeed.latestRoundData(); - console.log("upUSDC price feed description", usdcFeed.description()); console.log("upUSDC price feed address", address(usdcFeed)); console.log("upUSDC last answer", answer); } @@ -169,7 +160,6 @@ contract DeployPriceFeeds is Script { AggregatorV3Interface usualFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usualToUsd, usualxVault)); (, int256 answer,,,) = usualFeed.latestRoundData(); - console.log("usualx price feed description", usualFeed.description()); console.log("usualx price feed address", address(usualFeed)); console.log("usualx last answer", answer); } diff --git a/script/deploy/DeployPriceFeedsArb.s.sol b/script/deploy/DeployPriceFeedsArb.s.sol deleted file mode 100644 index a764853..0000000 --- a/script/deploy/DeployPriceFeedsArb.s.sol +++ /dev/null @@ -1,70 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {TermMaxPriceFeedFactory} from "contracts/factory/TermMaxPriceFeedFactory.sol"; - -contract DeployPriceFeedsArb is Script { - function run() public { - uint256 deployerPrivateKey = vm.envUint("DEPLOYER_PRIVATE_KEY"); - vm.startBroadcast(deployerPrivateKey); - TermMaxPriceFeedFactory priceFeedFactory = new TermMaxPriceFeedFactory(); - - console.log("PriceFeedFactory deployed at", address(priceFeedFactory)); - // pendle deployment: https://github.com/pendle-finance/pendle-core-v2-public/blob/main/deployments/42161-core.json - address pendlePYLpOracle = 0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2; - address weEthOracle; - { - // chainlink(wstETH/ETH): https://data.chain.link/feeds/arbitrum/mainnet/wsteth-eth - // heartBeat: 86400 (24hr) - address wstEthToEth = 0xb523AE262D20A936BC152e6023996e46FDC2A95D; - // chainlink(ETH/USD): https://data.chain.link/feeds/arbitrum/mainnet/eth-usd - // heartBeat: 86400 (24hr) - address ethToUsd = 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612; - address wstEth = 0x5979D7b546E38E414F7E9822514be443A4800529; - // new price feed heartBeat = max(86400, 86400) = 86400 (24hr) - AggregatorV3Interface wstEthFeed = - AggregatorV3Interface(priceFeedFactory.createPriceFeedConverter(wstEthToEth, ethToUsd, wstEth)); - (, int256 answer,,,) = wstEthFeed.latestRoundData(); - console.log("wstEth price feed description", wstEthFeed.description()); - console.log("wstEth price feed address", address(wstEthFeed)); - console.log("wstEth last answer", answer); - } - - { - // chainlink(weETH/ETH): https://data.chain.link/feeds/arbitrum/mainnet/weeth-eth - // heartBeat: 86400 (24hr) - address weEthToEth = 0xE141425bc1594b8039De6390db1cDaf4397EA22b; - // chainlink(ETH/USD): https://data.chain.link/feeds/arbitrum/mainnet/eth-usd - // heartBeat: 86400 (24hr) - address ethToUsd = 0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612; - // new price feed heartBeat = max(86400, 86400) = 86400 (24hr) - address weEth = 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe; - AggregatorV3Interface weEthFeed = - AggregatorV3Interface(priceFeedFactory.createPriceFeedConverter(weEthToEth, ethToUsd, weEth)); - (, int256 answer,,,) = weEthFeed.latestRoundData(); - console.log("weEth price feed description", weEthFeed.description()); - console.log("weEth price feed address", address(weEthFeed)); - console.log("weEth last answer", answer); - weEthOracle = address(weEthFeed); - } - - { - // pendle(PT-weETH 26JUN2025): https://app.pendle.finance/trade/markets/0xbf5e60ddf654085f80dae9dd33ec0e345773e1f8/swap?view=pt&chain=arbitrum&tab=info - address PT_weETH_26JUN2025_market = 0xBf5E60ddf654085F80DAe9DD33Ec0E345773E1F8; - // weETH/USD heartBeat: 86400 (24hr) - // new price feed heartBeat = max(86400) = 86400 (24hr) - AggregatorV3Interface ptFeed = AggregatorV3Interface( - priceFeedFactory.createPTWithPriceFeed(pendlePYLpOracle, PT_weETH_26JUN2025_market, 900, weEthOracle) - ); - (, int256 answer,,,) = ptFeed.latestRoundData(); - console.log("pt_weETH_26JUN2025 price feed description", ptFeed.description()); - console.log("pt_weETH_26JUN2025 price feed address", address(ptFeed)); - console.log("pt_weETH_26JUN2025 last answer", answer); - } - - vm.stopBroadcast(); - } -} diff --git a/script/deploy/DeployPriceFeedsMorpho.s.sol b/script/deploy/DeployPriceFeedsMorpho.s.sol deleted file mode 100644 index 62e154d..0000000 --- a/script/deploy/DeployPriceFeedsMorpho.s.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {Script} from "forge-std/Script.sol"; -import {console} from "forge-std/console.sol"; -import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {PriceFeedFactory} from "contracts/extensions/PriceFeedFactory.sol"; - -contract DeployPriceFeeds is Script { - function run() public { - uint256 deployerPrivateKey = vm.envUint("ETH_MAINNET_DEPLOYER_PRIVATE_KEY"); - vm.startBroadcast(deployerPrivateKey); - PriceFeedFactory priceFeedFactory = new PriceFeedFactory(); - - { - // morpho(gtusdcf): https://app.morpho.org/ethereum/vault/0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e/gauntlet-usdc-frontier - address gtusdcfVault = 0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e; - // chainlink(USDC/USD): https://data.chain.link/feeds/ethereum/mainnet/usdc-usd-svr - // heartBeat: 86400 (24hr) - address usdcToUsd = 0xfB6471ACD42c91FF265344Ff73E88353521d099F; - // new price feed heartBeat = max(86400) = 86400 (24hr) - AggregatorV3Interface gtusdcfFeed = - AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdcToUsd, gtusdcfVault)); - (, int256 answer,,,) = gtusdcfFeed.latestRoundData(); - console.log("gtusdcf price feed address", address(gtusdcfFeed)); - console.log("gtusdcf last answer", answer); - } - - { - // morpho(MC-wETH): https://app.morpho.org/ethereum/vault/0x701907283a57FF77E255C3f1aAD790466B8CE4ef/index-coop-hyeth - address mhyETHVault = 0x701907283a57FF77E255C3f1aAD790466B8CE4ef; - // chainlink(ETH/USD): https://data.chain.link/feeds/ethereum/mainnet/eth-usd - // heartBeat: 3600 (1hr) - address wethToUsd = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419; - // new price feed heartBeat = max(3600) = 3600 (1hr) - AggregatorV3Interface mhyETHFeed = - AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(wethToUsd, mhyETHVault)); - (, int256 answer,,,) = mhyETHFeed.latestRoundData(); - console.log("mhyETH price feed address", address(mhyETHFeed)); - console.log("mhyETH last answer", answer); - } - - { - // morpho(MC-wETH): https://app.morpho.org/ethereum/vault/0x701907283a57FF77E255C3f1aAD790466B8CE4ef/index-coop-hyeth - address mhyETHVault = 0x701907283a57FF77E255C3f1aAD790466B8CE4ef; - // redstone(ETH/USD): https://app.redstone.finance/app/feeds/?search=ETH%2FUSD&page=1&sortBy=popularity&sortDesc=false&perPage=32 - // heartBeat: 86400 (24hr) - address wethToUsd = 0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4; - // new price feed heartBeat = max(86400) = 86400 (24hr) - AggregatorV3Interface mhyETHBackupFeed = - AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(wethToUsd, mhyETHVault)); - (, int256 answer,,,) = mhyETHBackupFeed.latestRoundData(); - console.log("mhyETHBackup price feed address", address(mhyETHBackupFeed)); - console.log("mhyETHBackup last answer", answer); - } - - { - // morpho(MC_USDCP): https://app.morpho.org/ethereum/vault/0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D/mev-capital-usdc-prime - address mevUsdcPrimeVault = 0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D; - // chainlink(USDC/USD): https://data.chain.link/feeds/ethereum/mainnet/usdc-usd-svr - // heartBeat: 86400 (24hr) - address usdcToUsd = 0xfB6471ACD42c91FF265344Ff73E88353521d099F; - // new price feed heartBeat = max(86400) = 86400 (24hr) - AggregatorV3Interface mevUsdcPrimeFeed = - AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdcToUsd, mevUsdcPrimeVault)); - (, int256 answer,,,) = mevUsdcPrimeFeed.latestRoundData(); - console.log("mevUsdcPrime price feed address", address(mevUsdcPrimeFeed)); - console.log("mevUsdcPrime last answer", answer); - } - - vm.stopBroadcast(); - } -} diff --git a/script/deploy/DeployVault.s.sol b/script/deploy/DeployVault.s.sol index af35ee8..f0311c7 100644 --- a/script/deploy/DeployVault.s.sol +++ b/script/deploy/DeployVault.s.sol @@ -3,30 +3,30 @@ pragma solidity ^0.8.27; import {Script} from "forge-std/Script.sol"; import {console} from "forge-std/console.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {TermMaxMarket} from "contracts/TermMaxMarket.sol"; -import {TermMaxOrder, ISwapCallback} from "contracts/TermMaxOrder.sol"; -import {ITermMaxOrder} from "contracts/TermMaxOrder.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MarketConfig, OrderConfig, CurveCuts, CurveCut} from "contracts/storage/TermMaxStorage.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {TermMaxOrder, ISwapCallback} from "contracts/v1/TermMaxOrder.sol"; +import {ITermMaxOrder} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MarketConfig, OrderConfig, CurveCuts, CurveCut} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {MockSwapAdapter} from "contracts/test/MockSwapAdapter.sol"; +import {MockSwapAdapter} from "contracts/v1/test/MockSwapAdapter.sol"; import {JsonLoader} from "../utils/JsonLoader.sol"; -import {Faucet} from "contracts/test/testnet/Faucet.sol"; -import {FaucetERC20} from "contracts/test/testnet/FaucetERC20.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; +import {FaucetERC20} from "contracts/v1/test/testnet/FaucetERC20.sol"; import {DeployBase} from "./DeployBase.s.sol"; -import {ITermMaxVault, TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultFactory, IVaultFactory} from "contracts/factory/VaultFactory.sol"; -import {AccessManager} from "contracts/access/AccessManager.sol"; +import {ITermMaxVault, TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; contract DeloyVault is DeployBase { // Initialize vault configurations with a single USDC vault diff --git a/script/deploy/DeployVaultFactory.s.sol b/script/deploy/DeployVaultFactory.s.sol new file mode 100644 index 0000000..2ed680b --- /dev/null +++ b/script/deploy/DeployVaultFactory.s.sol @@ -0,0 +1,142 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Script} from "forge-std/Script.sol"; +import {VmSafe} from "forge-std/Vm.sol"; +import "forge-std/console.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {MarketViewer} from "contracts/v1/router/MarketViewer.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MarketConfig} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; +import {DeployBase} from "./DeployBase.s.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import {KyberswapV2Adapter} from "contracts/v1/router/swapAdapters/KyberswapV2Adapter.sol"; +import {OdosV2Adapter} from "contracts/v1/router/swapAdapters/OdosV2Adapter.sol"; +import {PendleSwapV3Adapter} from "contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol"; +import {UniswapV3Adapter} from "contracts/v1/router/swapAdapters/UniswapV3Adapter.sol"; +import {ERC4626VaultAdapter} from "contracts/v1/router/swapAdapters/ERC4626VaultAdapter.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; + +contract DeployVaultFactory is DeployBase { + // Network-specific config loaded from environment variables + string network; + uint256 deployerPrivateKey; + address deployerAddr; + address adminAddr; + address accessManagerAddr; + address uniswapV3RouterAddr; + address odosV2RouterAddr; + address pendleSwapV3RouterAddr; + uint256 oracleTimelock; + + AccessManager accessManager; + ITermMaxFactory factory; + IVaultFactory vaultFactory; + IOracle oracleAggregator; + ITermMaxRouter router; + MarketViewer marketViewer; + UniswapV3Adapter uniswapV3Adapter; + OdosV2Adapter odosV2Adapter; + PendleSwapV3Adapter pendleSwapV3Adapter; + ERC4626VaultAdapter vaultAdapter; + SwapAdapter swapAdapter; + Faucet faucet; + + function setUp() public { + // Load network from environment variable + network = vm.envString("NETWORK"); + string memory networkUpper = toUpper(network); + + // Load network-specific configuration + string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); + deployerPrivateKey = vm.envUint(privateKeyVar); + deployerAddr = vm.addr(deployerPrivateKey); + } + + function run() public { + console.log("Network:", network); + console.log("Deployer balance:", deployerAddr.balance); + + uint256 currentBlock = block.number; + uint256 currentTimestamp = block.timestamp; + + vm.startBroadcast(deployerPrivateKey); + // deploy vault factory + vaultFactory = deployVaultFactory(); + vm.stopBroadcast(); + + console.log("===== Git Info ====="); + console.log("Git branch:", getGitBranch()); + console.log("Git commit hash:"); + console.logBytes(getGitCommitHash()); + console.log(); + + console.log("===== Block Info ====="); + console.log("Block number:", currentBlock); + console.log("Block timestamp:", currentTimestamp); + console.log(); + + console.log("===== Vault Factory Info ====="); + console.log("Deployer:", deployerAddr); + console.log("Vault Factory deployed at:", address(vaultFactory)); + console.log(); + + // Write deployment results to a JSON file + string memory deploymentJson = string( + abi.encodePacked( + "{\n", + ' "network": "', + network, + '",\n', + ' "deployedAt": "', + vm.toString(block.timestamp), + '",\n', + ' "gitBranch": "', + getGitBranch(), + '",\n', + ' "gitCommitHash": "0x', + vm.toString(getGitCommitHash()), + '",\n', + ' "blockInfo": {\n', + ' "number": "', + vm.toString(currentBlock), + '",\n', + ' "timestamp": "', + vm.toString(currentTimestamp), + '"\n', + " },\n", + ' "deployer": "', + vm.toString(deployerAddr), + '",\n', + ' "contracts": {\n', + ' "vaultFactory": "', + vm.toString(address(vaultFactory)), + '"\n', + " }\n", + "}" + ) + ); + + // Create deployment directory if it doesn't exist + string memory deploymentsDir = string.concat(vm.projectRoot(), "/deployments/", network); + if (!vm.exists(deploymentsDir)) { + vm.createDir(deploymentsDir, true); + } + + // Write the JSON file + string memory filePath = string.concat(deploymentsDir, "/", network, "-vault-factory.json"); + vm.writeFile(filePath, deploymentJson); + console.log("Deployment information written to:", filePath); + } +} diff --git a/script/deploy/UpgradeRouterForRepayingGt.s.sol b/script/deploy/UpgradeRouterForRepayingGt.s.sol new file mode 100644 index 0000000..35972b1 --- /dev/null +++ b/script/deploy/UpgradeRouterForRepayingGt.s.sol @@ -0,0 +1,106 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Script} from "forge-std/Script.sol"; +import {VmSafe} from "forge-std/Vm.sol"; +import "forge-std/console.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {MarketViewer} from "contracts/v1/router/MarketViewer.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MarketConfig} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; +import {DeployBase} from "./DeployBase.s.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; +import {UniswapV3AdapterV2} from "contracts/v1/router/specAdapters/UniswapV3AdapterV2.sol"; +import {OdosV2AdapterV2} from "contracts/v1/router/specAdapters/OdosV2AdapterV2.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v1/router/specAdapters/PendleSwapV3AdapterV2.sol"; +import {ERC4626VaultAdapterV2} from "contracts/v1/router/specAdapters/ERC4626VaultAdapterV2.sol"; +import {TermMaxRouter_Repay_Gt, UUPSUpgradeable} from "contracts/v1/router/TermMaxRouter_Repay_Gt.sol"; + +contract UpgradeRouterForRepayingGt is DeployBase { + // Network-specific config loaded from environment variables + string network; + uint256 deployerPrivateKey; + address deployerAddr; + address adminAddr; + address accessManagerAddr; + address uniswapV3RouterAddr; + address odosV2RouterAddr; + address pendleSwapV3RouterAddr; + address routerAddr; + + AccessManager accessManager; + ITermMaxRouter router; + + function setUp() public { + // Load network from environment variable + network = vm.envString("NETWORK"); + string memory networkUpper = toUpper(network); + + // Load network-specific configuration + string memory privateKeyVar = string.concat(networkUpper, "_DEPLOYER_PRIVATE_KEY"); + string memory adminVar = string.concat(networkUpper, "_ADMIN_ADDRESS"); + + deployerPrivateKey = vm.envUint(privateKeyVar); + deployerAddr = vm.addr(deployerPrivateKey); + adminAddr = vm.envAddress(adminVar); + + string memory deploymentPath = + string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-access-manager.json"); + string memory json = vm.readFile(deploymentPath); + accessManagerAddr = vm.parseJsonAddress(json, ".contracts.accessManager"); + + deploymentPath = string.concat(vm.projectRoot(), "/deployments/", network, "/", network, "-core.json"); + json = vm.readFile(deploymentPath); + routerAddr = vm.parseJsonAddress(json, ".contracts.router"); + } + + function run() public { + console.log("Network:", network); + console.log("Deployer balance:", deployerAddr.balance); + console.log("Git commit hash:"); + console.logBytes(getGitCommitHash()); + + uint256 currentBlock = block.number; + uint256 currentTimestamp = block.timestamp; + + vm.startBroadcast(deployerPrivateKey); + if ( + keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("eth-mainnet")) + || keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("arb-mainnet")) + || keccak256(abi.encodePacked(network)) == keccak256(abi.encodePacked("bnb-mainnet")) + ) { + accessManager = AccessManager(accessManagerAddr); + TermMaxRouter_Repay_Gt newRouter = new TermMaxRouter_Repay_Gt(); + console.log("Deploying new router at:", address(newRouter)); + accessManager.upgradeSubContract(UUPSUpgradeable(routerAddr), address(newRouter), bytes("")); + } else { + revert("This script is only for mainnet deployments"); + } + vm.stopBroadcast(); + + console.log("===== Git Info ====="); + console.log("Git branch:", getGitBranch()); + console.log(); + + console.log("===== Block Info ====="); + console.log("Block number:", currentBlock); + console.log("Block timestamp:", currentTimestamp); + console.log(); + + console.log("===== Core Info ====="); + console.log("Use access manager:", accessManagerAddr); + console.log("Use router:", routerAddr); + } +} diff --git a/script/deploy/deploydata/arb-mainnet-official.json b/script/deploy/deploydata/arb-mainnet-official.json new file mode 100644 index 0000000..33bda00 --- /dev/null +++ b/script/deploy/deploydata/arb-mainnet-official.json @@ -0,0 +1,278 @@ +{ + "configNum": "7", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "445479897741487000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "187575000000" + }, + "collateralConfig": { + "tokenAddr": "0x5979D7b546E38E414F7E9822514be443A4800529", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "224477000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/wstETH@30MAY2025", + "marketSymbol": "WETH/wstETH@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "445479897741487000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x5979D7b546E38E414F7E9822514be443A4800529", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "224477000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/wstETH@30MAY2025", + "marketSymbol": "USDC/wstETH@30MAY2025" + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "1163881498", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "86000000", + "maxLtv": "82000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "priceFeedAddr": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "heartBeat": "86400", + "name": "Wrapped BTC", + "symbol": "WBTC", + "decimals": "8", + "initialPrice": "8591939999999", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WBTC@30MAY2025", + "marketSymbol": "USDC/WBTC@30MAY2025" + }, + "configs_3": { + "salt": 0, + "collateralCapForGt": "501777122226150000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "93000000", + "maxLtv": "89000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "187575000000" + }, + "collateralConfig": { + "tokenAddr": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "heartBeat": "86400", + "name": "Wrapped eETH", + "symbol": "weETH", + "decimals": "18", + "initialPrice": "199292000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/weETH@30MAY2025", + "marketSymbol": "WETH/weETH@30MAY2025" + }, + "configs_4": { + "salt": 0, + "collateralCapForGt": "533120687875231000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "86000000", + "maxLtv": "82000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "187575000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WETH@30MAY2025", + "marketSymbol": "USDC/WETH@30MAY2025" + }, + "configs_5": { + "salt": 0, + "collateralCapForGt": "2760143527463430000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "70000000", + "maxLtv": "60000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "priceFeedAddr": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400", + "name": "Arbitrum", + "symbol": "ARB", + "decimals": "18", + "initialPrice": "36000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/ARB@30MAY2025", + "marketSymbol": "USDC/ARB@30MAY2025" + }, + "configs_6": { + "salt": 0, + "collateralCapForGt": "537885856860641000000", + "marketConfig": { + "maturity": "1750982400", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "187575000000" + }, + "collateralConfig": { + "tokenAddr": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "priceFeedAddr": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400", + "name": "PT weETH 26JUN2025", + "symbol": "PT-weETH-26JUN2025", + "decimals": "18", + "initialPrice": "185913000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/PT-weETH-26JUN2025@27JUN2025", + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025" + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/arb-mainnet-oracles.json b/script/deploy/deploydata/arb-mainnet-oracles.json new file mode 100644 index 0000000..9027d9e --- /dev/null +++ b/script/deploy/deploydata/arb-mainnet-oracles.json @@ -0,0 +1,22 @@ +{ + "oracles": [ + { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "backupPriceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "heartBeat": 3600 + }, + { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "heartBeat": 86400 + }, + { + "tokenAddr": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9", + "priceFeedAddr": "0x3f3f5dF88dC9F13eac63DF89EC16ef6e7E25DdE7", + "backupPriceFeedAddr": "0x3f3f5dF88dC9F13eac63DF89EC16ef6e7E25DdE7", + "heartBeat": 86400 + } + ] +} \ No newline at end of file diff --git a/script/deploy/deploydata/arb-mainnet.csv b/script/deploy/deploydata/arb-mainnet.csv index ec082c9..3bd0d22 100644 --- a/script/deploy/deploydata/arb-mainnet.csv +++ b/script/deploy/deploydata/arb-mainnet.csv @@ -1,9 +1,15 @@ -,,,,,,,,,,loanConfig,,,underlyingConfig,,,,,,,collateralConfig,,,,,,,,,, -Market Type,salt,collateralCapForGt,maturity,lendTakerFeeRatio,lendMakerFeeRatio,borrowTakerFeeRatio,borrowMakerFeeRatio,mintGtFeeRatio,mintGtFeeRef,liquidationLtv,maxLtv,liquidatable,tokenAddr,priceFeedAddr,heartBeat,name,symbol,decimals,initialPrice,tokenAddr,priceFeedAddr,heartBeat,name,symbol,decimals,initialPrice,gtKeyIdentifier,note,, -Borrow,0,"444,327,502,741,153,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,400000,94000000,90000000,TRUE,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,Wrapped ETH,WETH,18,1880.61,0x5979D7b546E38E414F7E9822514be443A4800529,note,,Wrapped liquid staked Ether 2.0,wstETH,18,2250.59,GearingTokenWithERC20,USD/wstETH = ETH/wstETH * USD/ETH,0xb523AE262D20A936BC152e6023996e46FDC2A95D,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 -Borrow,0,"444,327,502,741,153,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,85000000,81000000,TRUE,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,USD Coin,USDC,6,1,0x5979D7b546E38E414F7E9822514be443A4800529,note,,Wrapped liquid staked Ether 2.0,wstETH,18,2250.59,GearingTokenWithERC20,USD/wstETH = ETH/wstETH * USD/ETH,0xb523AE262D20A936BC152e6023996e46FDC2A95D,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 -Borrow,0,"1,192,960,104",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,86000000,82000000,TRUE,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,USD Coin,USDC,6,1,0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f,0xd0C7101eACbB49F3deCcCc166d238410D6D46d57,86400,Wrapped BTC,WBTC,8,83825.10,GearingTokenWithERC20,,, -Borrow,0,"500,479,094,077,479,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,400000,93000000,89000000,TRUE,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,Wrapped ETH,WETH,18,1880.61,0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe,note,,Wrapped eETH,weETH,18,1998.09,GearingTokenWithERC20,USD/weETH = ETH/weETH * USD/ETH,0xE141425bc1594b8039De6390db1cDaf4397EA22b,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 -Borrow,0,"531,741,578,248,968,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,86000000,82000000,TRUE,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,USD Coin,USDC,6,1,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,Wrapped ETH,WETH,18,1880.61,GearingTokenWithERC20,,, -Borrow,0,"2,760,143,527,463,430,000,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,70000000,60000000,TRUE,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,USD Coin,USDC,6,1,0x912CE59144191C1204E64559FE8253a0e49E6548,0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6,86400,Arbitrum,ARB,18,0.36,GearingTokenWithERC20,,, -Leverage,0,"536,494,420,400,008,000,000",1750982400,2000000,2000000,3000000,3000000,1000000,400000,94000000,90000000,TRUE,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,Wrapped ETH,WETH,18,1880.61,0xb33808ea0e883138680BA29311a220A7377cdb92,,,PT weETH 26JUN2025,PT-weETH-26JUN2025,18,1863.95,GearingTokenWithERC20,,, \ No newline at end of file +,,,marketConfig,,,,,,,loanConfig,,,underlyingConfig,,,,,,,,collateralConfig,,,,,,,,,,, +Market Type,salt,collateralCapForGt,maturity,lendTakerFeeRatio,lendMakerFeeRatio,borrowTakerFeeRatio,borrowMakerFeeRatio,mintGtFeeRatio,mintGtFeeRef,liquidationLtv,maxLtv,liquidatable,tokenAddr,priceFeedAddr,heartBeat,backupPriceFeedAddr,name,symbol,decimals,initialPrice,tokenAddr,priceFeedAddr,heartBeat,backupPriceFeedAddr,name,symbol,decimals,initialPrice,gtKeyIdentifier,note,, +Borrow,0,"437,808,584,627,820,000,000",1748563200,2000000,2000000,3000000,3000000,10000000,4000000,94000000,90000000,true,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6,Wrapped ETH,WETH,18,1908.6149,0x5979D7b546E38E414F7E9822514be443A4800529,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,86400,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,Wrapped liquid staked Ether 2.0,wstETH,18,2284.10,GearingTokenWithERC20,USD/wstETH = ETH/wstETH * USD/ETH,0xb523AE262D20A936BC152e6023996e46FDC2A95D,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 +Borrow,0,"437,808,584,627,820,000,000",1748563200,2000000,2000000,3000000,3000000,10000000,10000000,85000000,81000000,true,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,0x399A965083E512011c82AAEB6A86036463010C95,USD Coin,USDC,6,1.0000,0x5979D7b546E38E414F7E9822514be443A4800529,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,86400,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,Wrapped liquid staked Ether 2.0,wstETH,18,2284.10,GearingTokenWithERC20,USD/wstETH = ETH/wstETH * USD/ETH,0xb523AE262D20A936BC152e6023996e46FDC2A95D,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 +Borrow,0,"1,007,693,132",1748563200,2000000,2000000,3000000,3000000,10000000,10000000,86000000,82000000,true,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,0x399A965083E512011c82AAEB6A86036463010C95,USD Coin,USDC,6,1.0000,0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f,0xd0C7101eACbB49F3deCcCc166d238410D6D46d57,86400,0x31FEeac9552a6215BD23Bd8c590B34BF04d865AE,Wrapped BTC,WBTC,8,99236.56,GearingTokenWithERC20,,, +Borrow,0,"493,136,352,042,384,000,000",1748563200,2000000,2000000,3000000,3000000,10000000,4000000,93000000,89000000,true,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6,Wrapped ETH,WETH,18,1908.6149,0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe,0x8f29Df42c617C222Bc2B416AC8a022E85e853276,86400,0xc2052500D0Cb8E1E8838717502A6B113C64Ed258,Wrapped eETH,weETH,18,2027.84,GearingTokenWithERC20,USD/weETH = ETH/weETH * USD/ETH,0xE141425bc1594b8039De6390db1cDaf4397EA22b,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 +Borrow,0,"523,940,170,988,164,000,000",1748563200,2000000,2000000,3000000,3000000,10000000,10000000,86000000,82000000,true,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,0x399A965083E512011c82AAEB6A86036463010C95,USD Coin,USDC,6,1.0000,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6,Wrapped ETH,WETH,18,1908.61,GearingTokenWithERC20,,, +Borrow,0,"2,760,143,527,463,430,000,000,000",1748563200,2000000,2000000,3000000,3000000,10000000,10000000,70000000,60000000,true,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,0x399A965083E512011c82AAEB6A86036463010C95,USD Coin,USDC,6,1.0000,0x912CE59144191C1204E64559FE8253a0e49E6548,0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6,86400,0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6,Arbitrum,ARB,18,0.36,GearingTokenWithERC20,,, +Leverage,0,"528,623,282,166,898,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,4000000,94000000,90000000,true,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6,Wrapped ETH,WETH,18,1908.6149,0xb33808ea0e883138680BA29311a220A7377cdb92,0x2a2a0e32c54670045256EBcA681887E32e689E97,86400,0x745716b8c00CAE49c422D706f630A1084B906759,PT weETH 26JUN2025,PT-weETH-26JUN2025,18,1891.71,GearingTokenWithERC20,,, +Borrow,0,"455,279,691,624,029,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,4000000,94000000,90000000,true,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6,Wrapped ETH,WETH,18,1908.6149,0x5979D7b546E38E414F7E9822514be443A4800529,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,86400,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,Wrapped liquid staked Ether 2.0,wstETH,18,2284.10,GearingTokenWithERC20,,, +Borrow,0,"455,279,691,624,029,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,10000000,85000000,81000000,true,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,0x399A965083E512011c82AAEB6A86036463010C95,USD Coin,USDC,6,1.0000,0x5979D7b546E38E414F7E9822514be443A4800529,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,86400,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,Wrapped liquid staked Ether 2.0,wstETH,18,2284.10,GearingTokenWithERC20,,, +Borrow,0,"1,033,143,128",1750982400,2000000,2000000,3000000,3000000,10000000,10000000,85000000,81000000,true,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,0x399A965083E512011c82AAEB6A86036463010C95,USD Coin,USDC,6,1.0000,0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f,0xd0C7101eACbB49F3deCcCc166d238410D6D46d57,86400,0x31FEeac9552a6215BD23Bd8c590B34BF04d865AE,Wrapped BTC,WBTC,8,99236.56,GearingTokenWithERC20,,, +Borrow,0,"512,815,358,514,074,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,4000000,94000000,90000000,true,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6,Wrapped ETH,WETH,18,1908.6149,0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe,0x8f29Df42c617C222Bc2B416AC8a022E85e853276,86400,0xc2052500D0Cb8E1E8838717502A6B113C64Ed258,Wrapped eETH,weETH,18,2027.84,GearingTokenWithERC20,,, +Borrow,0,"544,848,428,862,385,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,10000000,85000000,81000000,true,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,0x399A965083E512011c82AAEB6A86036463010C95,USD Coin,USDC,6,1.0000,0x82aF49447D8a07e3bd95BD0d56f35241523fBab1,0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612,86400,0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6,Wrapped ETH,WETH,18,1908.61,GearingTokenWithERC20,,, +Borrow,0,"2,760,143,527,463,430,000,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,10000000,70000000,60000000,true,0xaf88d065e77c8cC2239327C5EDb3A432268e5831,0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3,86400,0x399A965083E512011c82AAEB6A86036463010C95,USD Coin,USDC,6,1.0000,0x912CE59144191C1204E64559FE8253a0e49E6548,0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6,86400,0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6,Arbitrum,ARB,18,0.36,GearingTokenWithERC20,,, \ No newline at end of file diff --git a/script/deploy/deploydata/arb-mainnet.json b/script/deploy/deploydata/arb-mainnet.json index 45c1f93..be0e82d 100644 --- a/script/deploy/deploydata/arb-mainnet.json +++ b/script/deploy/deploydata/arb-mainnet.json @@ -1,17 +1,17 @@ { - "configNum": "7", + "configNum": "6", "configs": { "configs_0": { "salt": 0, - "collateralCapForGt": "444327502741153000000", + "collateralCapForGt": "455279691624029000000", "marketConfig": { - "maturity": "1748563200", + "maturity": "1750982400", "lendTakerFeeRatio": "2000000", "lendMakerFeeRatio": "2000000", "borrowTakerFeeRatio": "3000000", "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "400000" + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" }, "loanConfig": { "liquidationLtv": "94000000", @@ -21,36 +21,38 @@ "underlyingConfig": { "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "backupPriceFeedAddr": "0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6", "heartBeat": "86400", "name": "Wrapped ETH", "symbol": "WETH", "decimals": "18", - "initialPrice": "188061000000" + "initialPrice": "190861490000" }, "collateralConfig": { "tokenAddr": "0x5979D7b546E38E414F7E9822514be443A4800529", - "priceFeedAddr": "note", - "heartBeat": "3600", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400", "name": "Wrapped liquid staked Ether 2.0", "symbol": "wstETH", "decimals": "18", - "initialPrice": "225059000000", + "initialPrice": "228410000000", "gtKeyIdentifier": "GearingTokenWithERC20" }, - "marketName": "WETH/wstETH-30MAY2025", - "marketSymbol": "WETH/wstETH-30MAY2025" + "marketName": "WETH/wstETH@27JUN2025", + "marketSymbol": "WETH/wstETH@27JUN2025" }, "configs_1": { "salt": 0, - "collateralCapForGt": "444327502741153000000", + "collateralCapForGt": "455279691624029000000", "marketConfig": { - "maturity": "1748563200", + "maturity": "1750982400", "lendTakerFeeRatio": "2000000", "lendMakerFeeRatio": "2000000", "borrowTakerFeeRatio": "3000000", "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" }, "loanConfig": { "liquidationLtv": "85000000", @@ -60,6 +62,7 @@ "underlyingConfig": { "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x399A965083E512011c82AAEB6A86036463010C95", "heartBeat": "86400", "name": "USD Coin", "symbol": "USDC", @@ -68,37 +71,39 @@ }, "collateralConfig": { "tokenAddr": "0x5979D7b546E38E414F7E9822514be443A4800529", - "priceFeedAddr": "note", - "heartBeat": "3600", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400", "name": "Wrapped liquid staked Ether 2.0", "symbol": "wstETH", "decimals": "18", - "initialPrice": "225059000000", + "initialPrice": "228410000000", "gtKeyIdentifier": "GearingTokenWithERC20" }, - "marketName": "USDC/wstETH-30MAY2025", - "marketSymbol": "USDC/wstETH-30MAY2025" + "marketName": "USDC/wstETH@27JUN2025", + "marketSymbol": "USDC/wstETH@27JUN2025" }, "configs_2": { "salt": 0, - "collateralCapForGt": "1192960104", + "collateralCapForGt": "1033143128", "marketConfig": { - "maturity": "1748563200", + "maturity": "1750982400", "lendTakerFeeRatio": "2000000", "lendMakerFeeRatio": "2000000", "borrowTakerFeeRatio": "3000000", "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" }, "loanConfig": { - "liquidationLtv": "86000000", - "maxLtv": "82000000", + "liquidationLtv": "85000000", + "maxLtv": "81000000", "liquidatable": true }, "underlyingConfig": { "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x399A965083E512011c82AAEB6A86036463010C95", "heartBeat": "86400", "name": "USD Coin", "symbol": "USDC", @@ -108,75 +113,79 @@ "collateralConfig": { "tokenAddr": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", "priceFeedAddr": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "backupPriceFeedAddr": "0x31FEeac9552a6215BD23Bd8c590B34BF04d865AE", "heartBeat": "86400", "name": "Wrapped BTC", "symbol": "WBTC", "decimals": "8", - "initialPrice": "8382510000000", + "initialPrice": "9923656000000", "gtKeyIdentifier": "GearingTokenWithERC20" }, - "marketName": "USDC/WBTC-30MAY2025", - "marketSymbol": "USDC/WBTC-30MAY2025" + "marketName": "USDC/WBTC@27JUN2025", + "marketSymbol": "USDC/WBTC@27JUN2025" }, "configs_3": { "salt": 0, - "collateralCapForGt": "500479094077479000000", + "collateralCapForGt": "512815358514074000000", "marketConfig": { - "maturity": "1748563200", + "maturity": "1750982400", "lendTakerFeeRatio": "2000000", "lendMakerFeeRatio": "2000000", "borrowTakerFeeRatio": "3000000", "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "400000" + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "4000000" }, "loanConfig": { - "liquidationLtv": "93000000", - "maxLtv": "89000000", + "liquidationLtv": "94000000", + "maxLtv": "90000000", "liquidatable": true }, "underlyingConfig": { "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "backupPriceFeedAddr": "0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6", "heartBeat": "86400", "name": "Wrapped ETH", "symbol": "WETH", "decimals": "18", - "initialPrice": "188061000000" + "initialPrice": "190861490000" }, "collateralConfig": { "tokenAddr": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", - "priceFeedAddr": "note", - "heartBeat": "3600", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0xc2052500D0Cb8E1E8838717502A6B113C64Ed258", + "heartBeat": "86400", "name": "Wrapped eETH", "symbol": "weETH", "decimals": "18", - "initialPrice": "199809000000", + "initialPrice": "202784000000", "gtKeyIdentifier": "GearingTokenWithERC20" }, - "marketName": "WETH/weETH-30MAY2025", - "marketSymbol": "WETH/weETH-30MAY2025" + "marketName": "WETH/weETH@27JUN2025", + "marketSymbol": "WETH/weETH@27JUN2025" }, "configs_4": { "salt": 0, - "collateralCapForGt": "531741578248968000000", + "collateralCapForGt": "544848428862385000000", "marketConfig": { - "maturity": "1748563200", + "maturity": "1750982400", "lendTakerFeeRatio": "2000000", "lendMakerFeeRatio": "2000000", "borrowTakerFeeRatio": "3000000", "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" }, "loanConfig": { - "liquidationLtv": "86000000", - "maxLtv": "82000000", + "liquidationLtv": "85000000", + "maxLtv": "81000000", "liquidatable": true }, "underlyingConfig": { "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x399A965083E512011c82AAEB6A86036463010C95", "heartBeat": "86400", "name": "USD Coin", "symbol": "USDC", @@ -186,27 +195,28 @@ "collateralConfig": { "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "backupPriceFeedAddr": "0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6", "heartBeat": "86400", "name": "Wrapped ETH", "symbol": "WETH", "decimals": "18", - "initialPrice": "188061000000", + "initialPrice": "190861000000", "gtKeyIdentifier": "GearingTokenWithERC20" }, - "marketName": "USDC/WETH-30MAY2025", - "marketSymbol": "USDC/WETH-30MAY2025" + "marketName": "USDC/WETH@27JUN2025", + "marketSymbol": "USDC/WETH@27JUN2025" }, "configs_5": { "salt": 0, "collateralCapForGt": "2760143527463430000000000", "marketConfig": { - "maturity": "1748563200", + "maturity": "1750982400", "lendTakerFeeRatio": "2000000", "lendMakerFeeRatio": "2000000", "borrowTakerFeeRatio": "3000000", "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "10000000" }, "loanConfig": { "liquidationLtv": "70000000", @@ -216,6 +226,7 @@ "underlyingConfig": { "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x399A965083E512011c82AAEB6A86036463010C95", "heartBeat": "86400", "name": "USD Coin", "symbol": "USDC", @@ -225,6 +236,7 @@ "collateralConfig": { "tokenAddr": "0x912CE59144191C1204E64559FE8253a0e49E6548", "priceFeedAddr": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "backupPriceFeedAddr": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", "heartBeat": "86400", "name": "Arbitrum", "symbol": "ARB", @@ -232,47 +244,8 @@ "initialPrice": "36000000", "gtKeyIdentifier": "GearingTokenWithERC20" }, - "marketName": "USDC/ARB-30MAY2025", - "marketSymbol": "USDC/ARB-30MAY2025" - }, - "configs_6": { - "salt": 0, - "collateralCapForGt": "536494420400008000000", - "marketConfig": { - "maturity": "1750982400", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "400000" - }, - "loanConfig": { - "liquidationLtv": "94000000", - "maxLtv": "90000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", - "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", - "heartBeat": "86400", - "name": "Wrapped ETH", - "symbol": "WETH", - "decimals": "18", - "initialPrice": "188061000000" - }, - "collateralConfig": { - "tokenAddr": "0xb33808ea0e883138680BA29311a220A7377cdb92", - "priceFeedAddr": "", - "heartBeat": "3600", - "name": "PT weETH 26JUN2025", - "symbol": "PT-weETH-26JUN2025", - "decimals": "18", - "initialPrice": "186395000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "WETH/PT-weETH-26JUN2025-27JUN2025", - "marketSymbol": "WETH/PT-weETH-26JUN2025-27JUN2025" + "marketName": "USDC/ARB@27JUN2025", + "marketSymbol": "USDC/ARB@27JUN2025" } } } \ No newline at end of file diff --git a/script/deploy/deploydata/arb-sepolia.json b/script/deploy/deploydata/arb-sepolia.json new file mode 100644 index 0000000..a9129af --- /dev/null +++ b/script/deploy/deploydata/arb-sepolia.json @@ -0,0 +1,292 @@ +{ + "configNum": "7", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "511789884423953000000", + "marketConfig": { + "maturity": "1758844800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "backupPriceFeedAddr": "0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "163272000000" + }, + "collateralConfig": { + "tokenAddr": "0x5979D7b546E38E414F7E9822514be443A4800529", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "195393000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/wstETH@30MAY2025", + "marketSymbol": "WETH/wstETH@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "511789884423953000000", + "marketConfig": { + "maturity": "1758844800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x399A965083E512011c82AAEB6A86036463010C95", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x5979D7b546E38E414F7E9822514be443A4800529", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "195393000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/wstETH@30MAY2025", + "marketSymbol": "USDC/wstETH@30MAY2025" + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "1215801480", + "marketConfig": { + "maturity": "1758844800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "86000000", + "maxLtv": "82000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x399A965083E512011c82AAEB6A86036463010C95", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "priceFeedAddr": "0xd0C7101eACbB49F3deCcCc166d238410D6D46d57", + "backupPriceFeedAddr": "0x31FEeac9552a6215BD23Bd8c590B34BF04d865AE", + "heartBeat": "86400", + "name": "Wrapped BTC", + "symbol": "WBTC", + "decimals": "8", + "initialPrice": "8225027000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WBTC@30MAY2025", + "marketSymbol": "USDC/WBTC@30MAY2025" + }, + "configs_3": { + "salt": 0, + "collateralCapForGt": "576466989178777000000", + "marketConfig": { + "maturity": "1758844800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "93000000", + "maxLtv": "89000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "backupPriceFeedAddr": "0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "163272000000" + }, + "collateralConfig": { + "tokenAddr": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0xc2052500D0Cb8E1E8838717502A6B113C64Ed258", + "heartBeat": "86400", + "name": "Wrapped eETH", + "symbol": "weETH", + "decimals": "18", + "initialPrice": "173470000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/weETH@30MAY2025", + "marketSymbol": "WETH/weETH@30MAY2025" + }, + "configs_4": { + "salt": 0, + "collateralCapForGt": "612476065957113000000", + "marketConfig": { + "maturity": "1766707200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "86000000", + "maxLtv": "82000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x399A965083E512011c82AAEB6A86036463010C95", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "backupPriceFeedAddr": "0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "163272000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WETH@30MAY2025", + "marketSymbol": "USDC/WETH@30MAY2025" + }, + "configs_5": { + "salt": 0, + "collateralCapForGt": "2760143527463430000000000", + "marketConfig": { + "maturity": "1766707200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "70000000", + "maxLtv": "60000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "priceFeedAddr": "0x50834F3163758fcC1Df9973b6e91f0F0F0434aD3", + "backupPriceFeedAddr": "0x399A965083E512011c82AAEB6A86036463010C95", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "priceFeedAddr": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "backupPriceFeedAddr": "0xb2A824043730FE05F3DA2efaFa1CBbe83fa548D6", + "heartBeat": "86400", + "name": "Arbitrum", + "symbol": "ARB", + "decimals": "18", + "initialPrice": "36000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/ARB@30MAY2025", + "marketSymbol": "USDC/ARB@30MAY2025" + }, + "configs_6": { + "salt": 0, + "collateralCapForGt": "617950533596769000000", + "marketConfig": { + "maturity": "1766707200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "priceFeedAddr": "0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612", + "backupPriceFeedAddr": "0xd68AeF8Ab6D86CeC502e08Faa376297d836FdfA6", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "163272000000" + }, + "collateralConfig": { + "tokenAddr": "0xb33808ea0e883138680BA29311a220A7377cdb92", + "priceFeedAddr": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "backupPriceFeedAddr": "0x745716b8c00CAE49c422D706f630A1084B906759", + "heartBeat": "86400", + "name": "PT weETH 26JUN2025", + "symbol": "PT-weETH-26JUN2025", + "decimals": "18", + "initialPrice": "161825000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/PT-weETH-26JUN2025@27JUN2025", + "marketSymbol": "WETH/PT-weETH-26JUN2025@27JUN2025" + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/bnb-mainnet-oracles.json b/script/deploy/deploydata/bnb-mainnet-oracles.json new file mode 100644 index 0000000..2d51ae3 --- /dev/null +++ b/script/deploy/deploydata/bnb-mainnet-oracles.json @@ -0,0 +1,22 @@ +{ + "oracles": [ + { + "tokenAddr": "0x211Cc4DD073734dA055fbF44a2b4667d5E5fE5d2", + "priceFeedAddr": "0x7CD1174235476Ec8844A88de0d3E56A21E72ADa2", + "backupPriceFeedAddr": "0x59538B3BdF046f15F7bDD231aACfA314071b1DF1", + "heartBeat": 86400 + }, + { + "tokenAddr": "0xdd809435ba6c9d6903730f923038801781ca66ce", + "priceFeedAddr": "0xe532CD9609BADBF6c02778116034a1EbD1526d3C", + "backupPriceFeedAddr": "0x652cD426ffe87cb6f435317cC19BC81EC940Fd46", + "heartBeat": 86400 + }, + { + "tokenAddr": "0x32C830f5c34122C6afB8aE87ABA541B7900a2C5F", + "priceFeedAddr": "0x5F5376913E011AeDe8d93027B335832180411322", + "backupPriceFeedAddr": "0x0000000000000000000000000000000000000000", + "heartBeat": 3600 + } + ] +} \ No newline at end of file diff --git a/script/deploy/deploydata/bnb-mainnet.json b/script/deploy/deploydata/bnb-mainnet.json new file mode 100644 index 0000000..0912e17 --- /dev/null +++ b/script/deploy/deploydata/bnb-mainnet.json @@ -0,0 +1,333 @@ +{ + "configNum": "8", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "15000000000000000000000", + "marketName": "WBNB/ynBNBx@25JUL2025", + "marketSymbol": "WBNB/ynBNBx@25JUL2025", + "marketConfig": { + "maturity": "1753401600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + }, + "loanConfig": { + "liquidationLtv": "86500000", + "maxLtv": "84500000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "priceFeedAddr": "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE", + "backupPriceFeedAddr": "0x8dd2D85C7c28F43F965AE4d9545189C7D022ED0e", + "heartBeat": "86400", + "name": "Wrapped BNB", + "symbol": "WBNB", + "decimals": "18", + "initialPrice": "66380000000" + }, + "collateralConfig": { + "tokenAddr": "0x32C830f5c34122C6afB8aE87ABA541B7900a2C5F", + "priceFeedAddr": "0x5F5376913E011AeDe8d93027B335832180411322", + "backupPriceFeedAddr": "0x0000000000000000000000000000000000000000", + "heartBeat": "86400", + "name": "ynBNB MAX", + "symbol": "ynBNBx", + "decimals": "18", + "initialPrice": "67700740261", + "gtKeyIdentifier": "GearingTokenWithERC20" + } + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "15000000000000000000000", + "marketName": "USDT/WBNB@25JUL2025", + "marketSymbol": "USDT/WBNB@25JUL2025", + "marketConfig": { + "maturity": "1753401600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + }, + "loanConfig": { + "liquidationLtv": "80000000", + "maxLtv": "75000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x55d398326f99059fF775485246999027B3197955", + "priceFeedAddr": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "backupPriceFeedAddr": "0xf57bA29437C130e155Ca4b65128630777638F05D", + "heartBeat": "86400", + "name": "Tether USD", + "symbol": "USDT", + "decimals": "18", + "initialPrice": "99909118" + }, + "collateralConfig": { + "tokenAddr": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "priceFeedAddr": "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE", + "backupPriceFeedAddr": "0x8dd2D85C7c28F43F965AE4d9545189C7D022ED0e", + "heartBeat": "86400", + "name": "Wrapped BNB", + "symbol": "WBNB", + "decimals": "18", + "initialPrice": "66388000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + } + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "8550000000000000000000000", + "marketName": "USDT/sUSDe@25JUL2025", + "marketSymbol": "USDT/sUSDe@25JUL2025", + "marketConfig": { + "maturity": "1753401600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + }, + "loanConfig": { + "liquidationLtv": "91500000", + "maxLtv": "89500000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x55d398326f99059fF775485246999027B3197955", + "priceFeedAddr": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "backupPriceFeedAddr": "0xf57bA29437C130e155Ca4b65128630777638F05D", + "heartBeat": "86400", + "name": "Tether USD", + "symbol": "USDT", + "decimals": "18", + "initialPrice": "99909118" + }, + "collateralConfig": { + "tokenAddr": "0x211Cc4DD073734dA055fbF44a2b4667d5E5fE5d2", + "priceFeedAddr": "0x7CD1174235476Ec8844A88de0d3E56A21E72ADa2", + "backupPriceFeedAddr": "0x59538B3BdF046f15F7bDD231aACfA314071b1DF1", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "117868657", + "gtKeyIdentifier": "GearingTokenWithERC20" + } + }, + "configs_3": { + "salt": 0, + "collateralCapForGt": "10000000000000000000000000", + "marketName": "BTCB/USD1@25JUL2025", + "marketSymbol": "BTCB/USD1@25JUL2025", + "marketConfig": { + "maturity": "1753401600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + }, + "loanConfig": { + "liquidationLtv": "80000000", + "maxLtv": "75000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c", + "priceFeedAddr": "0x264990fbd0A4796A3E3d8E37C4d5F87a3aCa5Ebf", + "backupPriceFeedAddr": "0x0000000000000000000000000000000000000000", + "heartBeat": "86400", + "name": "BTCB Token", + "symbol": "BTCB", + "decimals": "18", + "initialPrice": "10722977910429" + }, + "collateralConfig": { + "tokenAddr": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "priceFeedAddr": "0xaD8b4e59A7f25B68945fAf0f3a3EAF027832FFB0", + "backupPriceFeedAddr": "0x6A1c87d11dDe3D1d52c24f8EC59B91019f14170D", + "heartBeat": "86400", + "name": "World Liberty Financial USD", + "symbol": "USD1", + "decimals": "18", + "initialPrice": "99974118", + "gtKeyIdentifier": "GearingTokenWithERC20" + } + }, + "configs_4": { + "salt": 0, + "collateralCapForGt": "93000000000000000000", + "marketName": "USDT/BTCB@25JUL2025", + "marketSymbol": "USDT/BTCB@25JUL2025", + "marketConfig": { + "maturity": "1753401600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + }, + "loanConfig": { + "liquidationLtv": "80000000", + "maxLtv": "75000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x55d398326f99059fF775485246999027B3197955", + "priceFeedAddr": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "backupPriceFeedAddr": "0xf57bA29437C130e155Ca4b65128630777638F05D", + "heartBeat": "86400", + "name": "Tether USD", + "symbol": "USDT", + "decimals": "18", + "initialPrice": "99947066" + }, + "collateralConfig": { + "tokenAddr": "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c", + "priceFeedAddr": "0x264990fbd0A4796A3E3d8E37C4d5F87a3aCa5Ebf", + "backupPriceFeedAddr": "0x0000000000000000000000000000000000000000", + "heartBeat": "86400", + "name": "BTCB Token", + "symbol": "BTCB", + "decimals": "18", + "initialPrice": "10724217325584", + "gtKeyIdentifier": "GearingTokenWithERC20" + } + }, + "configs_5": { + "salt": 0, + "collateralCapForGt": "10000000000000000000000000", + "marketName": "USDT/USD1@25JUL2025", + "marketSymbol": "USDT/USD1@25JUL2025", + "marketConfig": { + "maturity": "1753401600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" + }, + "loanConfig": { + "liquidationLtv": "92500000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x55d398326f99059fF775485246999027B3197955", + "priceFeedAddr": "0xB97Ad0E74fa7d920791E90258A6E2085088b4320", + "backupPriceFeedAddr": "0xf57bA29437C130e155Ca4b65128630777638F05D", + "heartBeat": "86400", + "name": "Tether USD", + "symbol": "USDT", + "decimals": "18", + "initialPrice": "100021431" + }, + "collateralConfig": { + "tokenAddr": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "priceFeedAddr": "0xaD8b4e59A7f25B68945fAf0f3a3EAF027832FFB0", + "backupPriceFeedAddr": "0x6A1c87d11dDe3D1d52c24f8EC59B91019f14170D", + "heartBeat": "86400", + "name": "World Liberty Financial USD", + "symbol": "USD1", + "decimals": "18", + "initialPrice": "99942432", + "gtKeyIdentifier": "GearingTokenWithERC20" + } + }, + "configs_6": { + "salt": 0, + "collateralCapForGt": "10000000000000000000000000", + "marketName": "WBNB/USD1@25JUL2025", + "marketSymbol": "WBNB/USD1@25JUL2025", + "marketConfig": { + "maturity": "1753401600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + }, + "loanConfig": { + "liquidationLtv": "80000000", + "maxLtv": "75000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "priceFeedAddr": "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE", + "backupPriceFeedAddr": "0x8dd2D85C7c28F43F965AE4d9545189C7D022ED0e", + "heartBeat": "86400", + "name": "Wrapped BNB", + "symbol": "WBNB", + "decimals": "18", + "initialPrice": "66423000000" + }, + "collateralConfig": { + "tokenAddr": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "priceFeedAddr": "0xaD8b4e59A7f25B68945fAf0f3a3EAF027832FFB0", + "backupPriceFeedAddr": "0x6A1c87d11dDe3D1d52c24f8EC59B91019f14170D", + "heartBeat": "86400", + "name": "World Liberty Financial USD", + "symbol": "USD1", + "decimals": "18", + "initialPrice": "99942432", + "gtKeyIdentifier": "GearingTokenWithERC20" + } + }, + "configs_7": { + "salt": 0, + "collateralCapForGt": "93000000000000000000", + "marketName": "WBNB/BTCB@25JUL2025", + "marketSymbol": "WBNB/BTCB@25JUL2025", + "marketConfig": { + "maturity": "1753401600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "3000000" + }, + "loanConfig": { + "liquidationLtv": "80000000", + "maxLtv": "75000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "priceFeedAddr": "0x0567F2323251f0Aab15c8dFb1967E4e8A7D42aeE", + "backupPriceFeedAddr": "0x8dd2D85C7c28F43F965AE4d9545189C7D022ED0e", + "heartBeat": "86400", + "name": "Wrapped BNB", + "symbol": "WBNB", + "decimals": "18", + "initialPrice": "66424000000" + }, + "collateralConfig": { + "tokenAddr": "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c", + "priceFeedAddr": "0x264990fbd0A4796A3E3d8E37C4d5F87a3aCa5Ebf", + "backupPriceFeedAddr": "0x0000000000000000000000000000000000000000", + "heartBeat": "86400", + "name": "BTCB Token", + "symbol": "BTCB", + "decimals": "18", + "initialPrice": "10725187649683", + "gtKeyIdentifier": "GearingTokenWithERC20" + } + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/bnb-testnet.json b/script/deploy/deploydata/bnb-testnet.json new file mode 100644 index 0000000..2664d17 --- /dev/null +++ b/script/deploy/deploydata/bnb-testnet.json @@ -0,0 +1,87 @@ +{ + "configNum": "2", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "638791170088097000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "backupPriceFeedAddr": "0x24CFEf73A30b2CEEC23d3659fA98B491D996F152", + "heartBeat": "86400", + "name": "Wrapped BNB", + "symbol": "WBNB", + "decimals": "18", + "initialPrice": "59000000000" + }, + "collateralConfig": { + "tokenAddr": "0xb0b84d294e0c75a6abe60171b70edeb2efd14a1b", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Staked Lista BNB", + "symbol": "slisBNB", + "decimals": "18", + "initialPrice": "60000000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WBNB/slisBNB@30MAY2025", + "marketSymbol": "WBNB/slisBNB@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "638791170088097000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x5A110fC00474038f6c02E89C707D638602EA44B5", + "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "backupPriceFeedAddr": "0x24CFEf73A30b2CEEC23d3659fA98B491D996F152", + "heartBeat": "86400", + "name": "Astherus USDF", + "symbol": "USDF", + "decimals": "18", + "initialPrice": "99900000" + }, + "collateralConfig": { + "tokenAddr": "0x1627abfd41cdaaff4fc595444519410160fe9df1", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "PT Astherus USDF 24JUL2025", + "symbol": "PT-USDF-24JUL2025", + "decimals": "18", + "initialPrice": "97000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDF/PT-USDF-24JUL2025@24JUL2025", + "marketSymbol": "USDF/PT-USDF-24JUL2025@24JUL2025" + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/eth-mainnet-20250414-all.json b/script/deploy/deploydata/eth-mainnet-20250414-all.json new file mode 100644 index 0000000..3042313 --- /dev/null +++ b/script/deploy/deploydata/eth-mainnet-20250414-all.json @@ -0,0 +1,620 @@ +{ + "configNum": "15", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "576442517305048000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "163278620000" + }, + "collateralConfig": { + "tokenAddr": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "backupPriceFeedAddr": "0x24CFEf73A30b2CEEC23d3659fA98B491D996F152", + "heartBeat": "86400", + "name": "Wrapped eETH", + "symbol": "weETH", + "decimals": "18", + "initialPrice": "173477840000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/weETH@30MAY2025", + "marketSymbol": "WETH/weETH@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "511768158188691000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "priceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "195400980000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/wstETH@30MAY2025", + "marketSymbol": "USDC/wstETH@30MAY2025" + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "862068965517241000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "backupPriceFeedAddr": "0xb99D174ED06c83588Af997c8859F93E83dD4733f", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "115999999", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/sUSDe@30MAY2025", + "marketSymbol": "USDC/sUSDe@30MAY2025" + }, + "configs_3": { + "salt": 0, + "collateralCapForGt": "1025010250102500000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0x333651c5710Fc8C4fe65E5D15E5639348F267D7c", + "heartBeat": "86400", + "name": "PT Ethena sUSDE 29MAY2025", + "symbol": "PT-sUSDE-29MAY2025", + "decimals": "18", + "initialPrice": "97560000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025" + }, + "configs_4": { + "salt": 0, + "collateralCapForGt": "952380952380952000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "priceFeedAddr": "0xF8f79b5b527e2cb3900956eB0D17A4D4aA6ae220", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USUAL Boosted USDC", + "symbol": "USUALUSDC+", + "decimals": "18", + "initialPrice": "105000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/USUALUSDC+@30MAY2025", + "marketSymbol": "USDC/USUALUSDC+@30MAY2025" + }, + "configs_5": { + "salt": 0, + "collateralCapForGt": "594611714024248000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "163278620000" + }, + "collateralConfig": { + "tokenAddr": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "priceFeedAddr": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "backupPriceFeedAddr": "0x3b82860EC8815Fc2A1dcC53580bd647b0042C93e", + "heartBeat": "86400", + "name": "MEV Capital wETH", + "symbol": "MCwETH", + "decimals": "18", + "initialPrice": "168176980000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/MCwETH@30MAY2025", + "marketSymbol": "WETH/MCwETH@30MAY2025" + }, + "configs_6": { + "salt": 0, + "collateralCapForGt": "658406864593610000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "183668000000" + }, + "collateralConfig": { + "tokenAddr": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "priceFeedAddr": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "backupPriceFeedAddr": "0x5D18F4cB3c95568F315cb1C1eF48261a5A4D6053", + "heartBeat": "86400", + "name": "PT Puffer ETH 26JUN2025", + "symbol": "PT-pufETH-26JUN2025", + "decimals": "18", + "initialPrice": "151881770000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025" + }, + "configs_7": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748476800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "priceFeedAddr": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "backupPriceFeedAddr": "0x6B09d473dB784D840E307Cb3Da63CbA79D300CAc", + "heartBeat": "86400", + "name": "Ethereal Pre-deposit Vault", + "symbol": "eUSDe", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/eUSDe@29MAY2025", + "marketSymbol": "USDC/eUSDe@29MAY2025" + }, + "configs_8": { + "salt": 0, + "collateralCapForGt": "586664274728950000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "163278620000" + }, + "collateralConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "170455240000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/pufETH@30MAY2025", + "marketSymbol": "WETH/pufETH@30MAY2025" + }, + "configs_9": { + "salt": 0, + "collateralCapForGt": "1181929434", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "priceFeedAddr": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "backupPriceFeedAddr": "0xAB7f623fb2F6fea6601D4350FA0E2290663C28Fc", + "heartBeat": "86400", + "name": "Wrapped BTC", + "symbol": "WBTC", + "decimals": "8", + "initialPrice": "8460742000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WBTC@30MAY2025", + "marketSymbol": "USDC/WBTC@30MAY2025" + }, + "configs_10": { + "salt": 0, + "collateralCapForGt": "1181929434", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "priceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC", + "decimals": "8", + "initialPrice": "8460742000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/cbBTC@30MAY2025", + "marketSymbol": "USDC/cbBTC@30MAY2025" + }, + "configs_11": { + "salt": 0, + "collateralCapForGt": "598973169139341000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "163278620000" + }, + "collateralConfig": { + "tokenAddr": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "priceFeedAddr": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "backupPriceFeedAddr": "0x3A44454F173b082F1dbbA9587b046Dc90B2F0AE7", + "heartBeat": "86400", + "name": "Gauntlet WETH Prime", + "symbol": "gtWETH", + "decimals": "18", + "initialPrice": "166952390000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/gtWETH@30MAY2025", + "marketSymbol": "WETH/gtWETH@30MAY2025" + }, + "configs_12": { + "salt": 0, + "collateralCapForGt": "1025010250102500000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "96000000", + "maxLtv": "94000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "backupPriceFeedAddr": "0xb99D174ED06c83588Af997c8859F93E83dD4733f", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "115999999" + }, + "collateralConfig": { + "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0x333651c5710Fc8C4fe65E5D15E5639348F267D7c", + "heartBeat": "86400", + "name": "PT Ethena sUSDE 29MAY2025", + "symbol": "PT-sUSDE-29MAY2025", + "decimals": "18", + "initialPrice": "97560000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025", + "marketSymbol": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025" + }, + "configs_13": { + "salt": 0, + "collateralCapForGt": "941442289587648000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0x7C1156E515aA1A2E851674120074968C905aAF37", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "Level USD", + "symbol": "lvlUSD", + "decimals": "18", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x4737d9b4592b40d51e110b94c9c043c6654067ae", + "priceFeedAddr": "0x3Bc7dD457901A41509fc0Bd47Dc3Da42D45Ce030", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "Staked lvlUSD", + "symbol": "slvlUSD", + "decimals": "18", + "initialPrice": "106220000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "lvlUSD/slvlUSD@30MAY2025", + "marketSymbol": "lvlUSD/slvlUSD@30MAY2025" + }, + "configs_14": { + "salt": 0, + "collateralCapForGt": "1014919313914540000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x9BcA74F805AB0a22DDD0886dB0942199a0feBa71", + "priceFeedAddr": "0x57eAfDF2c9B47425042Be735ff47dea7Ef965726", + "backupPriceFeedAddr": "", + "heartBeat": "86400", + "name": "PT lvlUSD 29MAY2025", + "symbol": "PT-lvlUSD-29MAY2025", + "decimals": "18", + "initialPrice": "98530000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-lvlUSD-29MAY2025@30MAY2025", + "marketSymbol": "USDC/PT-lvlUSD-29MAY2025@30MAY2025" + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/eth-mainnet-backup-20250422.json b/script/deploy/deploydata/eth-mainnet-backup-20250422.json new file mode 100644 index 0000000..2d12d3b --- /dev/null +++ b/script/deploy/deploydata/eth-mainnet-backup-20250422.json @@ -0,0 +1,128 @@ +{ + "configNum": "3", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xf1fd8AC6346eC7BC4116Ba7aDc81102B2BC4C52D", + "priceFeedAddr": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "backupPriceFeedAddr": "0x4cF5F12c6c0D48F0d335DdB25e11cd526EAfD322", + "heartBeat": "86400", + "name": "MEV Capital USDC Prime", + "symbol": "MC_USDCP", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/MC_USDCP@30MAY2025", + "marketSymbol": "USDC/MC_USDCP@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xc582F04d8a82795aa2Ff9c8bb4c1c889fe7b754e", + "priceFeedAddr": "0x81195F8A79f6553A4078f89eF87b21a7d3C2855A", + "backupPriceFeedAddr": "0x81195F8A79f6553A4078f89eF87b21a7d3C2855A", + "heartBeat": "86400", + "name": "Gauntlet USDC Frontier", + "symbol": "gtusdcf", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/gtusdcf@30MAY2025", + "marketSymbol": "USDC/gtusdcf@30MAY2025" + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "624356074116256000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "158359710000" + }, + "collateralConfig": { + "tokenAddr": "0x701907283a57FF77E255C3f1aAD790466B8CE4ef", + "priceFeedAddr": "0x0221cd3fA8B1Bea16293fb0cD6B60977d531c931", + "backupPriceFeedAddr": "0x00B96F0eBf39158cb4E3F801073966bD6Db7959C", + "heartBeat": "86400", + "name": "IndexCoop hyETH", + "symbol": "mhyETH", + "decimals": "18", + "initialPrice": "160165020000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/mhyETH@30MAY2025", + "marketSymbol": "WETH/mhyETH@30MAY2025" + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/eth-mainnet-backup-before-submit-oracles.json b/script/deploy/deploydata/eth-mainnet-backup-before-submit-oracles.json new file mode 100644 index 0000000..eaa43ff --- /dev/null +++ b/script/deploy/deploydata/eth-mainnet-backup-before-submit-oracles.json @@ -0,0 +1,497 @@ +{ + "configNum": "12", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "638791170088097000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "147342000000" + }, + "collateralConfig": { + "tokenAddr": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "backupPriceFeedAddr": "0x24CFEf73A30b2CEEC23d3659fA98B491D996F152", + "heartBeat": "86400", + "name": "Wrapped eETH", + "symbol": "weETH", + "decimals": "18", + "initialPrice": "156546000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/weETH@30MAY2025", + "marketSymbol": "WETH/weETH@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "567121561593946000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "priceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "backupPriceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "176329000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/wstETH@30MAY2025", + "marketSymbol": "USDC/wstETH@30MAY2025" + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "862068965517241000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "backupPriceFeedAddr": "0xb99D174ED06c83588Af997c8859F93E83dD4733f", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "115999999", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/sUSDe@30MAY2025", + "marketSymbol": "USDC/sUSDe@30MAY2025" + }, + "configs_3": { + "salt": 0, + "collateralCapForGt": "1025010250102500000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0x333651c5710Fc8C4fe65E5D15E5639348F267D7c", + "heartBeat": "86400", + "name": "PT Ethena sUSDE 29MAY2025", + "symbol": "PT-sUSDE-29MAY2025", + "decimals": "18", + "initialPrice": "98000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025" + }, + "configs_4": { + "salt": 0, + "collateralCapForGt": "952380952380952000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "priceFeedAddr": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "backupPriceFeedAddr": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400", + "name": "USUAL Boosted USDC", + "symbol": "USUALUSDC+", + "decimals": "18", + "initialPrice": "105000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/USUALUSDC+@30MAY2025", + "marketSymbol": "USDC/USUALUSDC+@30MAY2025" + }, + "configs_5": { + "salt": 0, + "collateralCapForGt": "658925566985259000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "147342000000" + }, + "collateralConfig": { + "tokenAddr": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "priceFeedAddr": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "backupPriceFeedAddr": "0x3b82860EC8815Fc2A1dcC53580bd647b0042C93e", + "heartBeat": "86400", + "name": "MEV Capital wETH", + "symbol": "MCwETH", + "decimals": "18", + "initialPrice": "151762000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/MCwETH@30MAY2025", + "marketSymbol": "WETH/MCwETH@30MAY2025" + }, + "configs_6": { + "salt": 0, + "collateralCapForGt": "729620870774905000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "183668000000" + }, + "collateralConfig": { + "tokenAddr": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "priceFeedAddr": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "backupPriceFeedAddr": "0x5D18F4cB3c95568F315cb1C1eF48261a5A4D6053", + "heartBeat": "86400", + "name": "PT Puffer ETH 26JUN2025", + "symbol": "PT-pufETH-26JUN2025", + "decimals": "18", + "initialPrice": "137057000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025" + }, + "configs_7": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748476800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "priceFeedAddr": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "backupPriceFeedAddr": "0x6B09d473dB784D840E307Cb3Da63CbA79D300CAc", + "heartBeat": "86400", + "name": "Ethereal Pre-deposit Vault", + "symbol": "eUSDe", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/eUSDe@29MAY2025", + "marketSymbol": "USDC/eUSDe@29MAY2025" + }, + "configs_8": { + "salt": 0, + "collateralCapForGt": "650118523968408000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "147342000000" + }, + "collateralConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "153818000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/pufETH@30MAY2025", + "marketSymbol": "WETH/pufETH@30MAY2025" + }, + "configs_9": { + "salt": 0, + "collateralCapForGt": "1294383437", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "priceFeedAddr": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "backupPriceFeedAddr": "0xAB7f623fb2F6fea6601D4350FA0E2290663C28Fc", + "heartBeat": "86400", + "name": "Wrapped BTC", + "symbol": "WBTC", + "decimals": "8", + "initialPrice": "7725686000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WBTC@30MAY2025", + "marketSymbol": "USDC/WBTC@30MAY2025" + }, + "configs_10": { + "salt": 0, + "collateralCapForGt": "1294383437", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "priceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "backupPriceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400", + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC", + "decimals": "8", + "initialPrice": "7725686000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/cbBTC@30MAY2025", + "marketSymbol": "USDC/cbBTC@30MAY2025" + }, + "configs_11": { + "salt": 0, + "collateralCapForGt": "663758761853122000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "147342000000" + }, + "collateralConfig": { + "tokenAddr": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "priceFeedAddr": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "backupPriceFeedAddr": "0x3A44454F173b082F1dbbA9587b046Dc90B2F0AE7", + "heartBeat": "86400", + "name": "Gauntlet WETH Prime", + "symbol": "gtWETH", + "decimals": "18", + "initialPrice": "150657000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/gtWETH@30MAY2025", + "marketSymbol": "WETH/gtWETH@30MAY2025" + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/eth-mainnet-oracles.json b/script/deploy/deploydata/eth-mainnet-oracles.json new file mode 100644 index 0000000..f13b645 --- /dev/null +++ b/script/deploy/deploydata/eth-mainnet-oracles.json @@ -0,0 +1,10 @@ +{ + "oracles": [ + { + "tokenAddr": "0xE2Fc85BfB48C4cF147921fBE110cf92Ef9f26F94", + "priceFeedAddr": "0x91F37A3058A7fD3f4f66ED87d715CF05bB4fbfBd", + "backupPriceFeedAddr": "0x0000000000000000000000000000000000000000", + "heartBeat": 86400 + } + ] +} \ No newline at end of file diff --git a/script/deploy/deploydata/eth-mainnet.csv b/script/deploy/deploydata/eth-mainnet.csv index 1d33b38..dcf12b0 100644 --- a/script/deploy/deploydata/eth-mainnet.csv +++ b/script/deploy/deploydata/eth-mainnet.csv @@ -1,14 +1,10 @@ -,,,,,,,,,,loanConfig,,,underlyingConfig,,,,,,,collateralConfig,,,,,,,,,, -Market Type,salt,collateralCapForGt,maturity,lendTakerFeeRatio,lendMakerFeeRatio,borrowTakerFeeRatio,borrowMakerFeeRatio,mintGtFeeRatio,mintGtFeeRef,liquidationLtv,maxLtv,liquidatable,tokenAddr,priceFeedAddr,heartBeat,name,symbol,decimals,initialPrice,tokenAddr,priceFeedAddr,heartBeat,name,symbol,decimals,initialPrice,gtKeyIdentifier,note,, -Borrow,0,"500,479,094,077,479,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,400000,94000000,90000000,true,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419,3600,Wrapped ETH,WETH,18,1880.61,0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee,0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136,21600,Wrapped eETH,weETH,18,1998.09,GearingTokenWithERC20,USD/weETH = ETH/weETH * USD/ETH,0x5c9C449BbC9a6075A2c061dF312a35fd1E05fF22,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 -Borrow,0,"444,327,502,741,153,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,85000000,81000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,USD Coin,USDC,6,1.00,0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0,0x164b276057258d81941e97B0a900D4C7B358bCe0,86400,Wrapped liquid staked Ether 2.0,wstETH,18,2250.59,GearingTokenWithERC20,USD/wstETH = ETH/wstETH * USD/ETH,,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 -Borrow,0,"862,068,965,517,241,000,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,90000000,86000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,USD Coin,USDC,6,1.00,0x9D39A5DE30e57443BfF2A8307A4256c8797A3497,0xFF3BC18cCBd5999CE63E788A1c250a88626aD099,86400,Staked USDe,sUSDe,18,1.16,GearingTokenWithERC20,,, -Leverage,0,"1,025,010,250,102,500,000,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,90000000,86000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,USD Coin,USDC,6,1.00,0xb7de5dFCb74d25c2f21841fbd6230355C50d9308,0x8f29Df42c617C222Bc2B416AC8a022E85e853276,86400,PT Ethena sUSDE 29MAY2025,PT-sUSDE-29MAY2025,18,0.98,GearingTokenWithERC20,,, -Borrow,0,"952,380,952,380,952,000,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,94000000,90000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,USD Coin,USDC,6,1.00,0xd63070114470f685b75B74D60EEc7c1113d33a3D,0x2a2a0e32c54670045256EBcA681887E32e689E97,86400,USUAL Boosted USDC,USUALUSDC+,18,1.05,GearingTokenWithERC20,,, -Borrow,0,"516,253,959,465,018,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,400000,94000000,90000000,true,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419,3600,Wrapped ETH,WETH,18,1880.61,0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8,0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006,3600,MEV Capital wETH,MCwETH,18,1937.03,GearingTokenWithERC20,,, -Leverage,0,"571,642,204,094,784,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,400000,94000000,92000000,true,0xD9A442856C234a39a81a089C06451EBAa4306a72,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,86400,pufETH,pufETH,18,1836.68,0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D,0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1,86400,PT Puffer ETH 26JUN2025,PT-pufETH-26JUN2025,18,1749.35,GearingTokenWithERC20,,, -Borrow,0,"1,000,000,000,000,000,000,000,000",1748476800,2000000,2000000,3000000,3000000,1000000,2000000,94000000,92000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,USD Coin,USDC,6,1.00,0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F,0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3,86400,Ethereal Pre-deposit Vault,eUSDe,18,1.00,GearingTokenWithERC20,,, -Borrow,0,"509,353,831,352,779,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,400000,94000000,90000000,true,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419,3600,Wrapped ETH,WETH,18,1880.61,0xD9A442856C234a39a81a089C06451EBAa4306a72,0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761,86400,pufETH,pufETH,18,1963.27,GearingTokenWithERC20,USD/pufETH = ETH/pufETH * USD/ETH,0xDe3f7Dd92C4701BCf59F47235bCb61e727c45f80,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 -Borrow,0,"1,192,960,104",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,85000000,81000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,USD Coin,USDC,6,1.00,0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599,0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c,3600,Wrapped BTC,WBTC,8,83825.10,GearingTokenWithERC20,,, -Borrow,0,"1,192,960,104",1748563200,2000000,2000000,3000000,3000000,1000000,2000000,85000000,81000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,USD Coin,USDC,6,1.00,0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf,0x2665701293fCbEB223D11A08D826563EDcCE423A,86400,Coinbase Wrapped BTC,cbBTC,8,83825.10,GearingTokenWithERC20,,, -Borrow,0,"520,040,663,324,174,000,000",1748563200,2000000,2000000,3000000,3000000,1000000,400000,94000000,90000000,true,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419,3600,Wrapped ETH,WETH,18,1880.61,0x2371e134e3455e0593363cBF89d3b6cf53740618,0xdc0115fe09600FeDa15D317cCa3D2f21F389036d,3600,Gauntlet WETH Prime,gtWETH,18,1922.93,GearingTokenWithERC20,,, \ No newline at end of file +,,,marketConfig,,,,,,,loanConfig,,,underlyingConfig,,,,,,,,collateralConfig,,,,,,,,, +Market Type,salt,collateralCapForGt,maturity,lendTakerFeeRatio,lendMakerFeeRatio,borrowTakerFeeRatio,borrowMakerFeeRatio,mintGtFeeRatio,mintGtFeeRef,liquidationLtv,maxLtv,liquidatable,tokenAddr,priceFeedAddr,heartBeat,backupPriceFeedAddr,name,symbol,decimals,initialPrice,tokenAddr,priceFeedAddr,heartBeat,backupPriceFeedAddr,name,symbol,decimals,initialPrice,gtKeyIdentifier,note +Yield Leverage,0,"1,022,494,887,525,560,000,000,000",1758844800,2000000,2000000,3000000,3000000,10000000,6000000,91500000,87500000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,USD Coin,USDC,6,1.0000,0x2CA5f2C4300450D53214B00546795c1c07B89acB,0x5042768E83E2b5F9A7251A41C4E66855DD65fe31,86400,0x5042768E83E2b5F9A7251A41C4E66855DD65fe31,PT Staked lvlUSD 25SEP2025,PT-slvlUSD-25SEP2025,18,0.9615,GearingTokenWithERC20, +Borrow,0,"1,022,494,887,526",1754006400,2000000,2000000,3000000,3000000,10000000,6000000,91500000,87500000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,USD Coin,USDC,6,1.0000,0x1132065009850C72E27B7950C0f9285d1D103589,0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1,86400,0x6BE2Bb4FFBb9FE1975A419D144750E604e1D37a1,PT Midas MEV 31JUL2025,PT-mMEV-31JUL2025,6,0.9732,GearingTokenWithERC20, +Borrow,0,"1,022,494,887,525,560,000,000,000",1754006400,2000000,2000000,3000000,3000000,10000000,6000000,85000000,81000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,USD Coin,USDC,6,1.0000,0x030b69280892c888670EDCDCD8B69Fd8026A0BF3,0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61,86400,0x5f09Aff8B9b1f488B7d1bbaD4D89648579e55d61,Midas MEV,mMEV,18,1.0203,GearingTokenWithERC20, +Price Leverage,0,"1,022,494,887,525,560,000,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,6000000,77000000,70000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,USD Coin,USDC,6,1.0000,0x2103E845C5E135493Bb6c2A4f0B8651956eA8682,0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6,86400,0x214eD9Da11D2fbe465a6fc601a91E62EbEc1a0D6,Matrixdock Gold ,XAUm,18,3200.0000,GearingTokenWithERC20, +Price Leverage,0,"102,249,488,752,557",1750982400,2000000,2000000,3000000,3000000,10000000,6000000,85000000,81000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,USD Coin,USDC,6,1.0000,0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599,0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c,86400,0xAB7f623fb2F6fea6601D4350FA0E2290663C28Fc,Wrapped BTC,WBTC,8,103255.7000,GearingTokenWithERC20, +Price Leverage,0,"1,022,494,887,525,560,000,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,6000000,85000000,81000000,true,0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,86400,0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6,USD Coin,USDC,6,1.0000,0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0,0x164b276057258d81941e97B0a900D4C7B358bCe0,86400,0x164b276057258d81941e97B0a900D4C7B358bCe0,Wrapped liquid staked Ether 2.0,wstETH,18,3091.1776,GearingTokenWithERC20, +Price Leverage,0,"1,022,494,887,525,560,000,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,3000000,75000000,71000000,true,0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599,0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c,86400,0xAB7f623fb2F6fea6601D4350FA0E2290663C28Fc,Wrapped BTC,WBTC,8,1.0000,0x9D39A5DE30e57443BfF2A8307A4256c8797A3497,0xFF3BC18cCBd5999CE63E788A1c250a88626aD099,86400,0xb99D174ED06c83588Af997c8859F93E83dD4733f,Staked USDe,sUSDe,18,1.1600,GearingTokenWithERC20, +Price Leverage,0,"1,022,494,887,525,560,000,000,000",1750982400,2000000,2000000,3000000,3000000,10000000,3000000,75000000,71000000,true,0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2,0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419,86400,0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4,Wrapped ETH,WETH,18,1.0000,0x9D39A5DE30e57443BfF2A8307A4256c8797A3497,0xFF3BC18cCBd5999CE63E788A1c250a88626aD099,86400,0xb99D174ED06c83588Af997c8859F93E83dD4733f,Staked USDe,sUSDe,18,1.1600,GearingTokenWithERC20, \ No newline at end of file diff --git a/script/deploy/deploydata/eth-mainnet.json b/script/deploy/deploydata/eth-mainnet.json index 3becd81..4049bc5 100644 --- a/script/deploy/deploydata/eth-mainnet.json +++ b/script/deploy/deploydata/eth-mainnet.json @@ -1,299 +1,29 @@ { - "configNum": "12", + "configNum": "1", "configs": { "configs_0": { "salt": 0, - "collateralCapForGt": "500479094077479000000", + "collateralCapForGt": "50000000000000000000000000", + "marketName": "USDC/SPK@05JUL2025", + "marketSymbol": "USDC/SPK@05JUL2025", "marketConfig": { - "maturity": "1748563200", + "maturity": "1751673600", "lendTakerFeeRatio": "2000000", "lendMakerFeeRatio": "2000000", "borrowTakerFeeRatio": "3000000", "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "400000" + "mintGtFeeRatio": "10000000", + "mintGtFeeRef": "6000000" }, "loanConfig": { - "liquidationLtv": "94000000", - "maxLtv": "90000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", - "heartBeat": "3600", - "name": "Wrapped ETH", - "symbol": "WETH", - "decimals": "18", - "initialPrice": "188061000000" - }, - "collateralConfig": { - "tokenAddr": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", - "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", - "heartBeat": "21600", - "name": "Wrapped eETH", - "symbol": "weETH", - "decimals": "18", - "initialPrice": "199809000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "WETH/weETH-30MAY2025", - "marketSymbol": "WETH/weETH-30MAY2025" - }, - "configs_1": { - "salt": 0, - "collateralCapForGt": "444327502741153000000", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" - }, - "loanConfig": { - "liquidationLtv": "85000000", - "maxLtv": "81000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", - "heartBeat": "86400", - "name": "USD Coin", - "symbol": "USDC", - "decimals": "6", - "initialPrice": "100000000" - }, - "collateralConfig": { - "tokenAddr": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", - "priceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", - "heartBeat": "86400", - "name": "Wrapped liquid staked Ether 2.0", - "symbol": "wstETH", - "decimals": "18", - "initialPrice": "225059000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "USDC/wstETH-30MAY2025", - "marketSymbol": "USDC/wstETH-30MAY2025" - }, - "configs_2": { - "salt": 0, - "collateralCapForGt": "862068965517241000000000", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" - }, - "loanConfig": { - "liquidationLtv": "90000000", - "maxLtv": "86000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", - "heartBeat": "86400", - "name": "USD Coin", - "symbol": "USDC", - "decimals": "6", - "initialPrice": "100000000" - }, - "collateralConfig": { - "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", - "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", - "heartBeat": "86400", - "name": "Staked USDe", - "symbol": "sUSDe", - "decimals": "18", - "initialPrice": "115999999", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "USDC/sUSDe-30MAY2025", - "marketSymbol": "USDC/sUSDe-30MAY2025" - }, - "configs_3": { - "salt": 0, - "collateralCapForGt": "1025010250102500000000000", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" - }, - "loanConfig": { - "liquidationLtv": "90000000", - "maxLtv": "86000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", - "heartBeat": "86400", - "name": "USD Coin", - "symbol": "USDC", - "decimals": "6", - "initialPrice": "100000000" - }, - "collateralConfig": { - "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", - "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", - "heartBeat": "86400", - "name": "PT Ethena sUSDE 29MAY2025", - "symbol": "PT-sUSDE-29MAY2025", - "decimals": "18", - "initialPrice": "98000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "USDC/PT-sUSDE-29MAY2025-30MAY2025", - "marketSymbol": "USDC/PT-sUSDE-29MAY2025-30MAY2025" - }, - "configs_4": { - "salt": 0, - "collateralCapForGt": "952380952380952000000000", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" - }, - "loanConfig": { - "liquidationLtv": "94000000", - "maxLtv": "90000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", - "heartBeat": "86400", - "name": "USD Coin", - "symbol": "USDC", - "decimals": "6", - "initialPrice": "100000000" - }, - "collateralConfig": { - "tokenAddr": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", - "priceFeedAddr": "0x2a2a0e32c54670045256EBcA681887E32e689E97", - "heartBeat": "86400", - "name": "USUAL Boosted USDC", - "symbol": "USUALUSDC+", - "decimals": "18", - "initialPrice": "105000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "USDC/USUALUSDC+-30MAY2025", - "marketSymbol": "USDC/USUALUSDC+-30MAY2025" - }, - "configs_5": { - "salt": 0, - "collateralCapForGt": "516253959465018000000", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "400000" - }, - "loanConfig": { - "liquidationLtv": "94000000", - "maxLtv": "90000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", - "heartBeat": "3600", - "name": "Wrapped ETH", - "symbol": "WETH", - "decimals": "18", - "initialPrice": "188061000000" - }, - "collateralConfig": { - "tokenAddr": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", - "priceFeedAddr": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", - "heartBeat": "3600", - "name": "MEV Capital wETH", - "symbol": "MCwETH", - "decimals": "18", - "initialPrice": "193703000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "WETH/MCwETH-30MAY2025", - "marketSymbol": "WETH/MCwETH-30MAY2025" - }, - "configs_6": { - "salt": 0, - "collateralCapForGt": "571642204094784000000", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "400000" - }, - "loanConfig": { - "liquidationLtv": "94000000", - "maxLtv": "92000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", - "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", - "heartBeat": "86400", - "name": "pufETH", - "symbol": "pufETH", - "decimals": "18", - "initialPrice": "183668000000" - }, - "collateralConfig": { - "tokenAddr": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", - "priceFeedAddr": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", - "heartBeat": "86400", - "name": "PT Puffer ETH 26JUN2025", - "symbol": "PT-pufETH-26JUN2025", - "decimals": "18", - "initialPrice": "174935000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "pufETH/PT-pufETH-26JUN2025-30MAY2025", - "marketSymbol": "pufETH/PT-pufETH-26JUN2025-30MAY2025" - }, - "configs_7": { - "salt": 0, - "collateralCapForGt": "1000000000000000000000000", - "marketConfig": { - "maturity": "1748476800", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" - }, - "loanConfig": { - "liquidationLtv": "94000000", - "maxLtv": "92000000", + "liquidationLtv": "70000000", + "maxLtv": "60000000", "liquidatable": true }, "underlyingConfig": { "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", "heartBeat": "86400", "name": "USD Coin", "symbol": "USDC", @@ -301,173 +31,16 @@ "initialPrice": "100000000" }, "collateralConfig": { - "tokenAddr": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", - "priceFeedAddr": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "tokenAddr": "0xc20059e0317DE91738d13af027DfC4a50781b066", + "priceFeedAddr": "0x552116E747a5b386B2E7EEd4371002359cf2A574", + "backupPriceFeedAddr": "0x0000000000000000000000000000000000000000", "heartBeat": "86400", - "name": "Ethereal Pre-deposit Vault", - "symbol": "eUSDe", + "name": "Spark", + "symbol": "SPK", "decimals": "18", - "initialPrice": "100000000", + "initialPrice": "4000000", "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "USDC/eUSDe-29MAY2025", - "marketSymbol": "USDC/eUSDe-29MAY2025" - }, - "configs_8": { - "salt": 0, - "collateralCapForGt": "509353831352779000000", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "400000" - }, - "loanConfig": { - "liquidationLtv": "94000000", - "maxLtv": "90000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", - "heartBeat": "3600", - "name": "Wrapped ETH", - "symbol": "WETH", - "decimals": "18", - "initialPrice": "188061000000" - }, - "collateralConfig": { - "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", - "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", - "heartBeat": "86400", - "name": "pufETH", - "symbol": "pufETH", - "decimals": "18", - "initialPrice": "196327000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "WETH/pufETH-30MAY2025", - "marketSymbol": "WETH/pufETH-30MAY2025" - }, - "configs_9": { - "salt": 0, - "collateralCapForGt": "1192960104", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" - }, - "loanConfig": { - "liquidationLtv": "85000000", - "maxLtv": "81000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", - "heartBeat": "86400", - "name": "USD Coin", - "symbol": "USDC", - "decimals": "6", - "initialPrice": "100000000" - }, - "collateralConfig": { - "tokenAddr": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", - "priceFeedAddr": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", - "heartBeat": "3600", - "name": "Wrapped BTC", - "symbol": "WBTC", - "decimals": "8", - "initialPrice": "8382510000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "USDC/WBTC-30MAY2025", - "marketSymbol": "USDC/WBTC-30MAY2025" - }, - "configs_10": { - "salt": 0, - "collateralCapForGt": "1192960104", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "2000000" - }, - "loanConfig": { - "liquidationLtv": "85000000", - "maxLtv": "81000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", - "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", - "heartBeat": "86400", - "name": "USD Coin", - "symbol": "USDC", - "decimals": "6", - "initialPrice": "100000000" - }, - "collateralConfig": { - "tokenAddr": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", - "priceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", - "heartBeat": "86400", - "name": "Coinbase Wrapped BTC", - "symbol": "cbBTC", - "decimals": "8", - "initialPrice": "8382510000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "USDC/cbBTC-30MAY2025", - "marketSymbol": "USDC/cbBTC-30MAY2025" - }, - "configs_11": { - "salt": 0, - "collateralCapForGt": "520040663324174000000", - "marketConfig": { - "maturity": "1748563200", - "lendTakerFeeRatio": "2000000", - "lendMakerFeeRatio": "2000000", - "borrowTakerFeeRatio": "3000000", - "borrowMakerFeeRatio": "3000000", - "mintGtFeeRatio": "1000000", - "mintGtFeeRef": "400000" - }, - "loanConfig": { - "liquidationLtv": "94000000", - "maxLtv": "90000000", - "liquidatable": true - }, - "underlyingConfig": { - "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", - "heartBeat": "3600", - "name": "Wrapped ETH", - "symbol": "WETH", - "decimals": "18", - "initialPrice": "188061000000" - }, - "collateralConfig": { - "tokenAddr": "0x2371e134e3455e0593363cBF89d3b6cf53740618", - "priceFeedAddr": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", - "heartBeat": "3600", - "name": "Gauntlet WETH Prime", - "symbol": "gtWETH", - "decimals": "18", - "initialPrice": "192293000000", - "gtKeyIdentifier": "GearingTokenWithERC20" - }, - "marketName": "WETH/gtWETH-30MAY2025", - "marketSymbol": "WETH/gtWETH-30MAY2025" + } } } -} \ No newline at end of file +} diff --git a/script/deploy/deploydata/eth-sepolia copy.json b/script/deploy/deploydata/eth-sepolia copy.json new file mode 100644 index 0000000..2930b4d --- /dev/null +++ b/script/deploy/deploydata/eth-sepolia copy.json @@ -0,0 +1,497 @@ +{ + "configNum": "12", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "638791170088097000000", + "marketConfig": { + "maturity": "1748325600", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "147342000000" + }, + "collateralConfig": { + "tokenAddr": "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee", + "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "backupPriceFeedAddr": "0x24CFEf73A30b2CEEC23d3659fA98B491D996F152", + "heartBeat": "86400", + "name": "Wrapped eETH", + "symbol": "weETH", + "decimals": "18", + "initialPrice": "156546000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/weETH@30MAY2025", + "marketSymbol": "WETH/weETH@30MAY2025" + }, + "configs_1": { + "salt": 0, + "collateralCapForGt": "567121561593946000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "priceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "backupPriceFeedAddr": "0x164b276057258d81941e97B0a900D4C7B358bCe0", + "heartBeat": "86400", + "name": "Wrapped liquid staked Ether 2.0", + "symbol": "wstETH", + "decimals": "18", + "initialPrice": "176329000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/wstETH@30MAY2025", + "marketSymbol": "USDC/wstETH@30MAY2025" + }, + "configs_2": { + "salt": 0, + "collateralCapForGt": "862068965517241000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497", + "priceFeedAddr": "0xFF3BC18cCBd5999CE63E788A1c250a88626aD099", + "backupPriceFeedAddr": "0xb99D174ED06c83588Af997c8859F93E83dD4733f", + "heartBeat": "86400", + "name": "Staked USDe", + "symbol": "sUSDe", + "decimals": "18", + "initialPrice": "115999999", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/sUSDe@30MAY2025", + "marketSymbol": "USDC/sUSDe@30MAY2025" + }, + "configs_3": { + "salt": 0, + "collateralCapForGt": "1025010250102500000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "90000000", + "maxLtv": "86000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xb7de5dFCb74d25c2f21841fbd6230355C50d9308", + "priceFeedAddr": "0x8f29Df42c617C222Bc2B416AC8a022E85e853276", + "backupPriceFeedAddr": "0x333651c5710Fc8C4fe65E5D15E5639348F267D7c", + "heartBeat": "86400", + "name": "PT Ethena sUSDE 29MAY2025", + "symbol": "PT-sUSDE-29MAY2025", + "decimals": "18", + "initialPrice": "98000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "marketSymbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025" + }, + "configs_4": { + "salt": 0, + "collateralCapForGt": "952380952380952000000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xd63070114470f685b75B74D60EEc7c1113d33a3D", + "priceFeedAddr": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "backupPriceFeedAddr": "0x2a2a0e32c54670045256EBcA681887E32e689E97", + "heartBeat": "86400", + "name": "USUAL Boosted USDC", + "symbol": "USUALUSDC+", + "decimals": "18", + "initialPrice": "105000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/USUALUSDC+@30MAY2025", + "marketSymbol": "USDC/USUALUSDC+@30MAY2025" + }, + "configs_5": { + "salt": 0, + "collateralCapForGt": "658925566985259000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "147342000000" + }, + "collateralConfig": { + "tokenAddr": "0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8", + "priceFeedAddr": "0xF1D1c1e387820c2eFDB9B863960FaA5d035C2006", + "backupPriceFeedAddr": "0x3b82860EC8815Fc2A1dcC53580bd647b0042C93e", + "heartBeat": "86400", + "name": "MEV Capital wETH", + "symbol": "MCwETH", + "decimals": "18", + "initialPrice": "151762000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/MCwETH@30MAY2025", + "marketSymbol": "WETH/MCwETH@30MAY2025" + }, + "configs_6": { + "salt": 0, + "collateralCapForGt": "729620870774905000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "183668000000" + }, + "collateralConfig": { + "tokenAddr": "0x9cFc9917C171A384c7168D3529Fc7e851a2E0d6D", + "priceFeedAddr": "0x5a27314e6D35B6fFCBaE6B3eb030e7Faf7EF34F1", + "backupPriceFeedAddr": "0x5D18F4cB3c95568F315cb1C1eF48261a5A4D6053", + "heartBeat": "86400", + "name": "PT Puffer ETH 26JUN2025", + "symbol": "PT-pufETH-26JUN2025", + "decimals": "18", + "initialPrice": "137057000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "marketSymbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025" + }, + "configs_7": { + "salt": 0, + "collateralCapForGt": "1000000000000000000000000", + "marketConfig": { + "maturity": "1748476800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "92000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F", + "priceFeedAddr": "0xB6549635409Ae9c0eeBB71B3F904cB004F2D97D3", + "backupPriceFeedAddr": "0x6B09d473dB784D840E307Cb3Da63CbA79D300CAc", + "heartBeat": "86400", + "name": "Ethereal Pre-deposit Vault", + "symbol": "eUSDe", + "decimals": "18", + "initialPrice": "100000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/eUSDe@29MAY2025", + "marketSymbol": "USDC/eUSDe@29MAY2025" + }, + "configs_8": { + "salt": 0, + "collateralCapForGt": "650118523968408000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "147342000000" + }, + "collateralConfig": { + "tokenAddr": "0xD9A442856C234a39a81a089C06451EBAa4306a72", + "priceFeedAddr": "0xB3ae8A16CF827d193Ae51a92fd2630e6839F5761", + "backupPriceFeedAddr": "0x5F08C227deAe74D8e5Ec0d743FB0744AB1B6c984", + "heartBeat": "86400", + "name": "pufETH", + "symbol": "pufETH", + "decimals": "18", + "initialPrice": "153818000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/pufETH@30MAY2025", + "marketSymbol": "WETH/pufETH@30MAY2025" + }, + "configs_9": { + "salt": 0, + "collateralCapForGt": "1294383437", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599", + "priceFeedAddr": "0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c", + "backupPriceFeedAddr": "0xAB7f623fb2F6fea6601D4350FA0E2290663C28Fc", + "heartBeat": "86400", + "name": "Wrapped BTC", + "symbol": "WBTC", + "decimals": "8", + "initialPrice": "7725686000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/WBTC@30MAY2025", + "marketSymbol": "USDC/WBTC@30MAY2025" + }, + "configs_10": { + "salt": 0, + "collateralCapForGt": "1294383437", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000" + }, + "loanConfig": { + "liquidationLtv": "85000000", + "maxLtv": "81000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf", + "priceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "backupPriceFeedAddr": "0x2665701293fCbEB223D11A08D826563EDcCE423A", + "heartBeat": "86400", + "name": "Coinbase Wrapped BTC", + "symbol": "cbBTC", + "decimals": "8", + "initialPrice": "7725686000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/cbBTC@30MAY2025", + "marketSymbol": "USDC/cbBTC@30MAY2025" + }, + "configs_11": { + "salt": 0, + "collateralCapForGt": "663758761853122000000", + "marketConfig": { + "maturity": "1748563200", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "priceFeedAddr": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419", + "backupPriceFeedAddr": "0x67F6838e58859d612E4ddF04dA396d6DABB66Dc4", + "heartBeat": "86400", + "name": "Wrapped ETH", + "symbol": "WETH", + "decimals": "18", + "initialPrice": "147342000000" + }, + "collateralConfig": { + "tokenAddr": "0x2371e134e3455e0593363cBF89d3b6cf53740618", + "priceFeedAddr": "0xdc0115fe09600FeDa15D317cCa3D2f21F389036d", + "backupPriceFeedAddr": "0x3A44454F173b082F1dbbA9587b046Dc90B2F0AE7", + "heartBeat": "86400", + "name": "Gauntlet WETH Prime", + "symbol": "gtWETH", + "decimals": "18", + "initialPrice": "150657000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "WETH/gtWETH@30MAY2025", + "marketSymbol": "WETH/gtWETH@30MAY2025" + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/eth-sepolia.json b/script/deploy/deploydata/eth-sepolia.json new file mode 100644 index 0000000..38c3322 --- /dev/null +++ b/script/deploy/deploydata/eth-sepolia.json @@ -0,0 +1,46 @@ +{ + "configNum": "1", + "configs": { + "configs_0": { + "salt": 0, + "collateralCapForGt": "638791170088097000000", + "marketConfig": { + "maturity": "1758844800", + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "400000" + }, + "loanConfig": { + "liquidationLtv": "94000000", + "maxLtv": "90000000", + "liquidatable": true + }, + "underlyingConfig": { + "tokenAddr": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", + "priceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "backupPriceFeedAddr": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6", + "heartBeat": "86400", + "name": "USD Coin", + "symbol": "USDC", + "decimals": "6", + "initialPrice": "100000000" + }, + "collateralConfig": { + "tokenAddr": "0x3b3fb9c57858ef816833dc91565efcd85d96f634", + "priceFeedAddr": "0xdDb6F90fFb4d3257dd666b69178e5B3c5Bf41136", + "backupPriceFeedAddr": "0x24CFEf73A30b2CEEC23d3659fA98B491D996F152", + "heartBeat": "86400", + "name": "PT-sUSDE-31JUL2025", + "symbol": "PT-sUSDE-31JUL2025", + "decimals": "18", + "initialPrice": "98000000", + "gtKeyIdentifier": "GearingTokenWithERC20" + }, + "marketName": "USDC/PT-sUSDE-31JUL2025@01AUG2025", + "marketSymbol": "USDC/PT-sUSDE-31JUL2025@01AUG2025" + } + } +} \ No newline at end of file diff --git a/script/deploy/deploydata/gt_capacity_updates.json b/script/deploy/deploydata/gt_capacity_updates.json new file mode 100644 index 0000000..6a22c27 --- /dev/null +++ b/script/deploy/deploydata/gt_capacity_updates.json @@ -0,0 +1,17 @@ +{ + "marketCount": 3, + "markets": [ + { + "symbol": "WETH/gtWETH@30MAY2025", + "newCapacity": "750000000000000000000" + }, + { + "symbol": "USDC/gtusdcf@30MAY2025", + "newCapacity": "1500000000000000000000000" + }, + { + "symbol": "WBTC/gtWBTC@30MAY2025", + "newCapacity": "50000000000000000000" + } + ] +} \ No newline at end of file diff --git a/script/deploy/deploydata/market_list.json b/script/deploy/deploydata/market_list.json new file mode 100644 index 0000000..6ab2110 --- /dev/null +++ b/script/deploy/deploydata/market_list.json @@ -0,0 +1,1084 @@ +{ + "data": [ + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x03f2af12ae4eb5533c3f7773be826e8da56f6e1a", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf", + "ftAddr": "0x970d02242b8339fc3148643a00e0a1e52c1eb5eb", + "xtAddr": "0xf1f31f2668ada8400d91bfc00f9a3c316c538cb3", + "gtAddr": "0x49d06206055e0cbdcbe94257782284b69b4b15fd" + }, + "symbol": "USDC/cbBTC@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:53:59.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "81000000", + "liquidationLtv": "85000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x08d6e7d4f49f6e34878a6f35db96f3130c43245f", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x1132065009850c72e27b7950c0f9285d1d103589", + "ftAddr": "0x8445c7a468bc74d9a6af8006f36fe5703ccae230", + "xtAddr": "0x38636a20a312094ac71d73481a2fc51e691c5680", + "gtAddr": "0x94257d83ba7b89a53f6bb4dfa282d1c992118986" + }, + "symbol": "USDC/PT-mMEV-31JUL2025@20250801", + "isFixed": false, + "openTime": "2025-05-14T16:12:11.000Z", + "maturity": "2025-08-01T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "87500000", + "liquidationLtv": "91500000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x0b7efe5de3c3b5d75de33e25965b193d6ba79f52", + "underlyingAddr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "collateralAddr": "0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee", + "ftAddr": "0x409e45a47629f45b91607bb87bcd8d043f32bc9a", + "xtAddr": "0x21ad8e3b575b65f2c937b201749a738ec53786e8", + "gtAddr": "0x02da4fda501396e036dcb591827e938e25fe3dd4" + }, + "symbol": "WETH/weETH@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:51:23.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x1a69127188b72a155165255270017b4c78f31b88", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0xcbb7c0000ab88b473b1f5afd9ef808440eed33bf", + "ftAddr": "0x0f8a293c6f7e578d46b1da2a44a5a65ce874da2d", + "xtAddr": "0x5ba653575ea036d734d703eaf9de2fe8936a6979", + "gtAddr": "0xe81e8f37ac256253c78f5d880ad3d1cfcd00a5b2" + }, + "symbol": "USDC/cbBTC@27JUN2025", + "isFixed": false, + "openTime": "2025-05-07T08:19:11.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "81000000", + "liquidationLtv": "85000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x22cd4c59ed4bb2ad852892518073056441c55bfe", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0", + "ftAddr": "0x285a4618d3349e2fff63f750fcac94fb002f932e", + "xtAddr": "0x874adbd54f7ba2cf46f97bb569ab7ba4cb8f89c9", + "gtAddr": "0xec4aa75e5c4b09eb65761f8328252d3509f232c0" + }, + "symbol": "USDC/wstETH@27JUN2025", + "isFixed": false, + "openTime": "2025-05-07T08:18:23.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "81000000", + "liquidationLtv": "85000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x2524d9a55c2d18a3f257a7f67afd552b285de34e", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x9bca74f805ab0a22ddd0886db0942199a0feba71", + "ftAddr": "0x3448d6883c7762ed95f59b4a9780b07981b6afee", + "xtAddr": "0xffd2743ca5fcdd97b690c33434ef456be9885d20", + "gtAddr": "0x581577e0b27fc695b21089a08be962ae3f60aa2f" + }, + "symbol": "USDC/PT-lvlUSD-29MAY2025@30MAY2025", + "isFixed": false, + "openTime": "2025-04-14T08:49:59.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "86000000", + "liquidationLtv": "90000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x2eaaffbcde68337341c0ec65a862e648a413dc14", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0xc582f04d8a82795aa2ff9c8bb4c1c889fe7b754e", + "ftAddr": "0x09ec4be9869bfabf9ff6652fe7703276d6f5e5d8", + "xtAddr": "0x9c7fbdd0055604bbf7736b153407e9513c818c22", + "gtAddr": "0x8ee590224c6cdde0d27fb60b37b05784dd794e59" + }, + "symbol": "USDC/gtusdcf@30MAY2025", + "isFixed": false, + "openTime": "2025-04-17T04:34:59.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "10000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x37877773b1289c27bb6159b86613efd0d15cadae", + "underlyingAddr": "0x9d39a5de30e57443bff2a8307a4256c8797a3497", + "collateralAddr": "0xb7de5dfcb74d25c2f21841fbd6230355c50d9308", + "ftAddr": "0x6fbe672e148db5374a17dcfe78c22a31751b0f5f", + "xtAddr": "0x9b23666f665aa6b280d1f5c3a580eead7414dcac", + "gtAddr": "0x4f1b12bfe07534c68ecd6a971d3f6295b423cd09" + }, + "symbol": "sUSDe/PT-sUSDE-29MAY2025@30MAY2025", + "isFixed": false, + "openTime": "2025-04-14T08:49:23.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "94000000", + "liquidationLtv": "96000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x403863917316bf8aa1966f9d90b393cec98f991b", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x90d2af7d622ca3141efa4d8f1f24d86e5974cc8f", + "ftAddr": "0x7e5da817e4cd2f2a897c997fb6eb3506d9861432", + "xtAddr": "0x9c4ef4476130f92cef4b661f99130157d35129cd", + "gtAddr": "0xe09ad59438a1ea4041217cd1ee018589db508268" + }, + "symbol": "USDC/eUSDe@29MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:52:59.000Z", + "maturity": "2025-05-29T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "92000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x484cdece3fc951a7d009b9dbac66ec287ec1f58e", + "underlyingAddr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "collateralAddr": "0xd9a442856c234a39a81a089c06451ebaa4306a72", + "ftAddr": "0xc74af187d844dc35998271b5696053cf57816413", + "xtAddr": "0x1f2f2af9fbba146cb03b4eafd8c8ae9ed5b91f60", + "gtAddr": "0x89bce5e162cdb10ea0d0b84b5e7aff8f51036e89" + }, + "symbol": "WETH/pufETH@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:53:11.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x6c7b36f0a2136cb0da7b38293925d9af06895c20", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x030b69280892c888670edcdcd8b69fd8026a0bf3", + "ftAddr": "0xfc97e7b4728d81b275dad8701f2a53b72e5a0898", + "xtAddr": "0x56c7334191d0cc03043f5e6203c56245de3d9bca", + "gtAddr": "0x4bdf64b59a1cadab0ff34e18cdee225435d0479e" + }, + "symbol": "USDC/mMEV@20250801", + "isFixed": false, + "openTime": "2025-05-14T16:12:23.000Z", + "maturity": "2025-08-01T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "81000000", + "liquidationLtv": "85000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x6f5c8838e618448e43385e4c401006822aa15142", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x9d39a5de30e57443bff2a8307a4256c8797a3497", + "ftAddr": "0x1be1a3b4a052f669f521f5966a37b49171aef57c", + "xtAddr": "0x7705d2b0990192c3b3d1ea6c3a7908250605120a", + "gtAddr": "0x1bb662b38ec6ff531def9caa37a3489c7f5e2f98" + }, + "symbol": "USDC/sUSDe@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:51:47.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "86000000", + "liquidationLtv": "90000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x7526d036cddbd3bdfdd8370d75304b822740b291", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x207f7205fd6c4b602fa792c8b2b60e6006d4a0b8", + "ftAddr": "0x51ae9ef7395a46e2861fe6b93f97728f9595e6e5", + "xtAddr": "0xa95cdaac1bf0af025ced0f259ac74cdec7503450", + "gtAddr": "0x6fa797c9675880654f098b554ae5b9cfdd6b2310" + }, + "symbol": "USDC/PT-lvlUSD-25SEP2025@26SEP2025", + "isFixed": false, + "openTime": "2025-05-10T06:05:47.000Z", + "maturity": "2025-09-26T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "87500000", + "liquidationLtv": "91500000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x7d042a2800c2bf66a2af99014c96513bc4cefeda", + "underlyingAddr": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "collateralAddr": "0x9d39a5de30e57443bff2a8307a4256c8797a3497", + "ftAddr": "0x775157a35b1efb4d86c5bc732f047758085d2127", + "xtAddr": "0x91bc1c8dde63ec666397a7e1500acbd9b028fea3", + "gtAddr": "0xe173c8d8192d20d820061d04323c3e89aa836a4c" + }, + "symbol": "WBTC/sUSDe@20250627", + "isFixed": false, + "openTime": "2025-05-14T16:12:47.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "71000000", + "liquidationLtv": "75000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x8d501c7640595ec9d2a39fbd30ded7672e9631bd", + "underlyingAddr": "0x7c1156e515aa1a2e851674120074968c905aaf37", + "collateralAddr": "0x4737d9b4592b40d51e110b94c9c043c6654067ae", + "ftAddr": "0x53b52637923839676f6441c7e824d91478f882d3", + "xtAddr": "0xc5421aad009f200b60a8cc67b60cf6f774a1e693", + "gtAddr": "0xc03746e7441a523686d93c5282557e3970065d6a" + }, + "symbol": "lvlUSD/slvlUSD@27JUN2025", + "isFixed": false, + "openTime": "2025-05-07T08:19:23.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "86000000", + "liquidationLtv": "90000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x918d8ecba4c683ef3004b1c313cfef5e3b9e1146", + "underlyingAddr": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0", + "collateralAddr": "0x8e0789d39db454dbe9f4a77acef6dc7c69f6d552", + "ftAddr": "0xc4ce5aa3cabab5525d838f3095105e68764a4863", + "xtAddr": "0xd54417d73fedbbfa242e296a9199d401c377a23f", + "gtAddr": "0x79614885f2b286a20a18315a9963e9e7a5ef0824" + }, + "symbol": "wstETH/inwstETHs@30MAY2025", + "isFixed": false, + "openTime": "2025-04-22T15:56:23.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x975cba8bad13ef86bc4d2bbb3eb7497327c640d1", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x2103e845c5e135493bb6c2a4f0b8651956ea8682", + "ftAddr": "0xf8c1cda465071665d3ecaf906732899186fd4856", + "xtAddr": "0xf7e8f91286e3d4685a4d8e4f2a7413fe273db503", + "gtAddr": "0x6216d113cbbc1c4a1017699e691e949d1dee8812" + }, + "symbol": "USDC/XAUM@20250627", + "isFixed": false, + "openTime": "2025-05-14T16:12:35.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "70000000", + "liquidationLtv": "77000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x988a287c4340b18665cc5e128dc76906a5c839e6", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x9d39a5de30e57443bff2a8307a4256c8797a3497", + "ftAddr": "0xce7decb042927ec42db8ecc75a8e526824376a3e", + "xtAddr": "0x13b29958f0f6eb39a587704034e531e4090e9d59", + "gtAddr": "0xdba3379f0406f5c90eb74d27e511e4fb4d10b6b3" + }, + "symbol": "USDC/sUSDe@27JUN2025", + "isFixed": false, + "openTime": "2025-05-07T08:18:35.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "86000000", + "liquidationLtv": "90000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x9904f3b879385033faa31b50d1d63cb80b3495a3", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "ftAddr": "0x75b8ea5178baa489c9ab208ec80af10780927890", + "xtAddr": "0x6182feffc89a170154a991fe09c31765ba5441c8", + "gtAddr": "0x42c57cde40b26c5e68c28e687eaca7b83dc48377" + }, + "symbol": "USDC/WBTC@27JUN2025", + "isFixed": false, + "openTime": "2025-05-07T08:18:59.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "81000000", + "liquidationLtv": "85000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0x9d7386f68d9001a809860b4d88ec8e2cc3dd81b0", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x2ca5f2c4300450d53214b00546795c1c07b89acb", + "ftAddr": "0x831a11a25a98715e632a51d46a6296da47883743", + "xtAddr": "0x733f08c07fe2d37c86516abe830fc2756e56ac1c", + "gtAddr": "0x68dce038af76f907617a0e648e23011143774e8a" + }, + "symbol": "USDC/PT-slvlUSD-25SEP2025@20250926", + "isFixed": false, + "openTime": "2025-05-14T16:11:59.000Z", + "maturity": "2025-09-26T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "87500000", + "liquidationLtv": "91500000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xa1ed39c786eea298925dd6fcc33199c3ff06765e", + "underlyingAddr": "0x7c1156e515aa1a2e851674120074968c905aaf37", + "collateralAddr": "0x4737d9b4592b40d51e110b94c9c043c6654067ae", + "ftAddr": "0x5623695881db8cfc84ee1f40a1f4a0999d1552f6", + "xtAddr": "0x453dfd4db1a92bf8d84b4e4fa6381019370d0c5d", + "gtAddr": "0xe1e045a8a238994703ec0dd7e4e2ad6f97c5f186" + }, + "symbol": "lvlUSD/slvlUSD@30MAY2025", + "isFixed": false, + "openTime": "2025-04-14T08:49:47.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "86000000", + "liquidationLtv": "90000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xabe8ab2223c846466eb30f5137a7f05106c9d0c4", + "underlyingAddr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "collateralAddr": "0xd9a442856c234a39a81a089c06451ebaa4306a72", + "ftAddr": "0x23ed558080ceb4755a24d841e24558e85b1ddb18", + "xtAddr": "0xa97ba034797386d9987c88beff430b40c4fdc6c5", + "gtAddr": "0xb4a859d44470f0168464a5db99f058cf9a7b4df1" + }, + "symbol": "WETH/pufETH@27JUN2025", + "isFixed": false, + "openTime": "2025-05-07T08:18:47.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xb9919ee2169a7da664ad024c6ddcf0ccd4121c26", + "underlyingAddr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "collateralAddr": "0x701907283a57ff77e255c3f1aad790466b8ce4ef", + "ftAddr": "0xbc9c191613c6e77c03a3f792579520d455e852a6", + "xtAddr": "0x1aa1ff0d8c47066c72902040716f91df18090adc", + "gtAddr": "0x489f04a08d6ee13789cd59c5ce241494b063b3db" + }, + "symbol": "WETH/mhyETH@30MAY2025", + "isFixed": false, + "openTime": "2025-04-17T04:35:11.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xbebb5cee893110cf477901af7fa94e4840606421", + "underlyingAddr": "0xd9a442856c234a39a81a089c06451ebaa4306a72", + "collateralAddr": "0x9cfc9917c171a384c7168d3529fc7e851a2e0d6d", + "ftAddr": "0x5db7a477dede7d12fea665312282e052e0207fc1", + "xtAddr": "0xe8a7a6dd9218202996d9cf825426ab283b3396ed", + "gtAddr": "0x69cf2acd3499df9b322d3b3fb579e1af420f601d" + }, + "symbol": "pufETH/PT-pufETH-26JUN2025@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:52:47.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "92000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xc68a2fbd7cb560c71ccafbdee971824ed9bf4556", + "underlyingAddr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "collateralAddr": "0x2371e134e3455e0593363cbf89d3b6cf53740618", + "ftAddr": "0xd31d16770d10feee37fec90777697546f5388f85", + "xtAddr": "0xa7dbc90d2959e40eb093abe75c7405ff26ac3fe3", + "gtAddr": "0x9bdd5071f150d02af43a65e56a0622d03e846ddb" + }, + "symbol": "WETH/gtWETH@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:54:11.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xc7559e952666fac90206758e664f86d09e7f1f72", + "underlyingAddr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "collateralAddr": "0x9d39a5de30e57443bff2a8307a4256c8797a3497", + "ftAddr": "0x7337261cf19cc2d2146f6a30dd4fb186e31728cc", + "xtAddr": "0x0fe1a8e392f4c03eedb805260c12716b4b4ed68f", + "gtAddr": "0xdf7e3c6ba0239e1933e431ad68be7861ea51387e" + }, + "symbol": "WETH/sUSDe@20250627", + "isFixed": false, + "openTime": "2025-05-14T16:12:59.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "71000000", + "liquidationLtv": "75000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xc898fa3a26ceacae25ccfff6003b087948dede2a", + "underlyingAddr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "collateralAddr": "0x9cfc9917c171a384c7168d3529fc7e851a2e0d6d", + "ftAddr": "0x0ad67bb21be025f9c47ceb0db3ac490e473afd9a", + "xtAddr": "0x0e960cfde8730da71e72b52bb1bc8ef4f4f5a9bb", + "gtAddr": "0xab490460b78c481fdf4d10ed85378cfa1dd342f1" + }, + "symbol": "WETH/PT-pufETH-26JUN2025@27JUN2025", + "isFixed": false, + "openTime": "2025-05-08T15:19:23.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "87500000", + "liquidationLtv": "91500000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xce511791715d1a84cd2f7bfa279f92c187bb9d93", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x933b9ffee0ad3ef8e4dbb52688ea905826d73755", + "ftAddr": "0x89d6cd335090d67e6a18a63f97b55d7d177d2a1b", + "xtAddr": "0xc1a89e8c63f5162e78f339f138f3585f4372ece0", + "gtAddr": "0xd08c49be9063512c49dc113f1f7c00cd2519c654" + }, + "symbol": "USDC/PT-cUSDO-19JUN2025@20JUN2025", + "isFixed": false, + "openTime": "2025-05-10T06:05:23.000Z", + "maturity": "2025-06-20T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "87500000", + "liquidationLtv": "91500000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xd017e469d22ab7ffb097b9aa329391874954523b", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x207f7205fd6c4b602fa792c8b2b60e6006d4a0b8", + "ftAddr": "0xc53c94aaeecc2f58ac64f97ef26f6947b8a1fa49", + "xtAddr": "0x13dd004a37cd8e35ecea7379ab45bd03c1f4e249", + "gtAddr": "0x022e7d8585f9214bbe29077501ce938e552f8d5e" + }, + "symbol": "USDC/PT-lvlUSD-25SEP2025@25JUL2025", + "isFixed": false, + "openTime": "2025-05-10T06:05:35.000Z", + "maturity": "2025-07-25T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "87500000", + "liquidationLtv": "91500000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xd316d4494c840f8a758fb6184e9b60281e35cc02", + "underlyingAddr": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0", + "collateralAddr": "0x8e0789d39db454dbe9f4a77acef6dc7c69f6d552", + "ftAddr": "0x6b3aaab883d2b5a42276206b18c62dbd2f075b73", + "xtAddr": "0x1ad25fc3fad6b5fb2744ec684c74bc301a3a26dc", + "gtAddr": "0xce6df2c8a6b5d7f70f73a71f78c64f54bda4dbed" + }, + "symbol": "wstETH/inwstETHs@27JUN2025", + "isFixed": false, + "openTime": "2025-05-07T08:19:35.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xd699efc4162d76bfd3cb553d65f850c882c29f5f", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x2260fac5e5542a773aa44fbcfedf7c193bc2c599", + "ftAddr": "0x0297807b6f251431bc60d96e74daddaaacd8533e", + "xtAddr": "0x68f2e8b2b09122475c5208456a39caf87a097fe4", + "gtAddr": "0xbe53610fd2870ba0f221c40ed734f173685e3666" + }, + "symbol": "USDC/WBTC@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:53:23.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "81000000", + "liquidationLtv": "85000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xdbb2d44c238c459ccb820de886abf721ef6e6941", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x3b3fb9c57858ef816833dc91565efcd85d96f634", + "ftAddr": "0x39815280f3804a860a09b0ffbccaf8a0679ff5ba", + "xtAddr": "0x6cfa4b8506736dd838dcbec5187d777801160684", + "gtAddr": "0xa7793d67dcbcc16ef92ed455bc17594311d58d55" + }, + "symbol": "USDC/PT-sUSDE-31JUL2025@01AUG2025", + "isFixed": false, + "openTime": "2025-05-08T15:18:59.000Z", + "maturity": "2025-08-01T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "87500000", + "liquidationLtv": "91500000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xe867255dc0c3a27c90f756ecc566a5292ce19492", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0xb7de5dfcb74d25c2f21841fbd6230355c50d9308", + "ftAddr": "0x07ef01ba0947eb64df31a826c8a084ca005e545d", + "xtAddr": "0xb58036be9723ba7766161ddb8d4050b3c44dc273", + "gtAddr": "0x3a888cb50b4b1bfcb61507d4a453ef67ba1e4055" + }, + "symbol": "USDC/PT-sUSDE-29MAY2025@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:51:59.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "86000000", + "liquidationLtv": "90000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xed7cd45e5e6ef68261929b58539805ba3c061f14", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0", + "ftAddr": "0x94b0b2679bdee922039d8b0bb952f5048ff8b87f", + "xtAddr": "0xbd99501360ffe943c60546c422f4885ea022fcbc", + "gtAddr": "0xef15c2c9d5213fe471d9d28a8908cd3b007c4539" + }, + "symbol": "USDC/wstETH@30MAY2025", + "isFixed": false, + "openTime": "2025-04-09T16:51:35.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "81000000", + "liquidationLtv": "85000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xf0de37189366f0f3aae2795160763f3f34797b11", + "underlyingAddr": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", + "collateralAddr": "0xcd5fe23c85820f7b72d0926fc9b05b43e359b7ee", + "ftAddr": "0xe8503ffecc5d4065ba0eb11dcbdcd47a4f752572", + "xtAddr": "0xf98042dd2ca30440d27373eca2727e9540897ebf", + "gtAddr": "0x272f222de90adf7b1cca859d685bec738993ba6c" + }, + "symbol": "WETH/weETH@27JUN2025", + "isFixed": false, + "openTime": "2025-05-07T08:18:11.000Z", + "maturity": "2025-06-27T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "3000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + }, + { + "contracts": { + "routerAddr": "0xc47591f5c023e44931c78d5a993834875b79fb11", + "marketAddr": "0xf4924d6189552ae5a7818088da6f23bd33281c1b", + "underlyingAddr": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", + "collateralAddr": "0xf1fd8ac6346ec7bc4116ba7adc81102b2bc4c52d", + "ftAddr": "0xe7b3c858ff8031dc6c84d899aeec343c89a246e0", + "xtAddr": "0x2568d2b892b5c761e1155f4f1c05e5b61961f126", + "gtAddr": "0x5c4db8db0ca1d040e7fd6fb2afaa81032df0a4f7" + }, + "symbol": "USDC/MC_USDCP@30MAY2025", + "isFixed": false, + "openTime": "2025-04-17T04:34:47.000Z", + "maturity": "2025-05-30T00:00:00.000Z", + "treasurer": "0x719e77027952929ed3060dbffc5d43ec50c1cf79", + "defaultFeeConfig": { + "lendTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "2000000", + "borrowTakerFeeRatio": "3000000", + "borrowMakerFeeRatio": "3000000", + "issueFtFeeRatio": "10000000", + "issueFtFeeRef": "6000000", + "redeemFeeRatio": "0" + }, + "liquidationWindowSeconds": 7200, + "maxLtv": "90000000", + "liquidationLtv": "94000000", + "liquidatable": true, + "isEnabled": true + } + ] +} \ No newline at end of file diff --git a/script/deploy/deploydata/merkl-pTMX-campaign-20250610.json b/script/deploy/deploydata/merkl-pTMX-campaign-20250610.json new file mode 100644 index 0000000..cadf35c --- /dev/null +++ b/script/deploy/deploydata/merkl-pTMX-campaign-20250610.json @@ -0,0 +1,108 @@ +{ + "version": "1.0", + "chainId": "1", + "createdAt": 1749635828, + "meta": { + "name": "Create Merkl Campaign", + "txBuilderVersion": "1.16.3" + }, + "transactions": [ + { + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": "0", + "data": null, + "contractMethod": { + "inputs": [], + "name": "acceptConditions", + "payable": false + }, + "contractInputsValues": null + }, + { + "to": "0xf30700f382bCcA697A23F8295D6eCE7B378254D6", + "value": "0", + "data": null, + "contractMethod": { + "inputs": [ + { + "name": "spender", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "name": "approve", + "payable": false + }, + "contractInputsValues": { + "amount": "70000000000000000000000", + "spender": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd" + } + }, + { + "to": "0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd", + "value": "0", + "data": null, + "contractMethod": { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "campaignId", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "creator", + "type": "address" + }, + { + "internalType": "address", + "name": "rewardToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint32", + "name": "campaignType", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "startTimestamp", + "type": "uint32" + }, + { + "internalType": "uint32", + "name": "duration", + "type": "uint32" + }, + { + "internalType": "bytes", + "name": "campaignData", + "type": "bytes" + } + ], + "internalType": "struct CampaignParameters", + "name": "newCampaign", + "type": "tuple" + } + ], + "name": "createCampaign", + "payable": false + }, + "contractInputsValues": { + "newCampaign": "[\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"0x0000000000000000000000000000000000000000\",\"0xf30700f382bCcA697A23F8295D6eCE7B378254D6\",\"70000000000000000000000\",18,1749729600,518400,\"0x000000000000000000000000984408c88a9b042bf3e2ddf921cd1fafb4b735d100000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005868747470733a2f2f6170702e7465726d6d61782e74732e66696e616e63652f6561726e2f3078393834343038633838613962303432626633653264646639323163643166616662346237333564313f636861696e3d6574680000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000a6d61784465706f7369740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a31303030303030303030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\"]" + } + } + ] +} \ No newline at end of file diff --git a/script/transformAbi.ts b/script/transformAbi.ts deleted file mode 100644 index a71c64a..0000000 --- a/script/transformAbi.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { readFileSync, writeFileSync } from 'fs'; -import { join } from 'path'; - -// List of JSON files to transform -const contractFiles = [ - './out/Faucet.sol/Faucet.json', - './out/TermMaxRouter.sol/TermMaxRouter.json', - './out/MintableERC20.sol/MintableERC20.json', - './out/GearingTokenWithERC20.sol/GearingTokenWithERC20.json', - './out/TermMaxMarket.sol/TermMaxMarket.json', - './out/TermMaxOrder.sol/TermMaxOrder.json', - './out/TermMaxVault.sol/TermMaxVault.json', -]; - -const transformAbi = (filePath: string) => { - try { - // Read and parse the JSON file - const contractJson = JSON.parse(readFileSync(filePath, 'utf-8')); - - // Format the ABI - const formattedAbi = JSON.stringify(contractJson.abi, null, 2) - .replace(/"(\w+)":/g, '$1:') // Remove quotes from keys - .replace(/"/g, "'") // Replace double quotes with single quotes - .replace(/([^,{[])(\n\s*[}\]])/g, '$1,$2') // Add trailing commas - .replace(/(})(\n\s*])/g, '$1,$2'); // Ensure {} inside arrays get trailing commas - - // Extract contract name from path (e.g., Faucet.json -> Faucet) - const contractName = filePath.split('/').pop()?.replace('.json', '') || 'Contract'; - - // Define TypeScript content - const tsContent = `// This file is auto-generated. Do not edit manually.\n\nexport const abi${contractName} = ${formattedAbi} as const;\n`; - - // Define output filename - const outputFileName = join('./abi_typescript', `abi${contractName}.ts`); - - // Write the transformed TypeScript file - writeFileSync(outputFileName, tsContent); - console.log(`ABI transformed successfully: ${outputFileName}`); - } catch (error) { - console.error(`Error processing ${filePath}:`, error); - } -}; - -// Process all contract files -contractFiles.forEach(transformAbi); diff --git a/script/utils/JsonLoader.sol b/script/utils/JsonLoader.sol index aa78706..6a9413e 100644 --- a/script/utils/JsonLoader.sol +++ b/script/utils/JsonLoader.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.27; import "forge-std/Test.sol"; import {stdJson} from "forge-std/StdJson.sol"; -import {MarketConfig, FeeConfig, LoanConfig} from "../../contracts/storage/TermMaxStorage.sol"; +import {MarketConfig, FeeConfig, LoanConfig} from "contracts/v1/storage/TermMaxStorage.sol"; library JsonLoader { using stdJson for string; @@ -11,28 +11,24 @@ library JsonLoader { struct UnderlyingConfig { address tokenAddr; address priceFeedAddr; + address backupPriceFeedAddr; + uint256 heartBeat; string name; string symbol; uint8 decimals; - uint256 mintAmt; int256 initialPrice; - int256 maxPrice; - uint256 heartBeat; - uint256 backupHeartBeat; } struct CollateralConfig { address tokenAddr; address priceFeedAddr; + address backupPriceFeedAddr; + uint256 heartBeat; string name; string symbol; uint8 decimals; - uint256 mintAmt; int256 initialPrice; string gtKeyIdentifier; - int256 maxPrice; - uint256 heartBeat; - uint256 backupHeartBeat; } struct Config { @@ -105,14 +101,14 @@ library JsonLoader { string memory underlyingConfigPrefix = string.concat(configPrefix, ".underlyingConfig"); underlyingConfig.tokenAddr = jsonData.readAddress(string.concat(underlyingConfigPrefix, ".tokenAddr")); underlyingConfig.priceFeedAddr = jsonData.readAddress(string.concat(underlyingConfigPrefix, ".priceFeedAddr")); + underlyingConfig.backupPriceFeedAddr = + jsonData.readAddress(string.concat(underlyingConfigPrefix, ".backupPriceFeedAddr")); underlyingConfig.name = jsonData.readString(string.concat(underlyingConfigPrefix, ".name")); underlyingConfig.symbol = jsonData.readString(string.concat(underlyingConfigPrefix, ".symbol")); underlyingConfig.decimals = uint8(vm.parseUint(jsonData.readString(string.concat(underlyingConfigPrefix, ".decimals")))); underlyingConfig.initialPrice = vm.parseInt(jsonData.readString(string.concat(underlyingConfigPrefix, ".initialPrice"))); - underlyingConfig.maxPrice = vm.parseInt(jsonData.readString(string.concat(underlyingConfigPrefix, ".maxPrice"))); - underlyingConfig.heartBeat = uint256(vm.parseUint(jsonData.readString(string.concat(underlyingConfigPrefix, ".heartBeat")))); @@ -120,6 +116,8 @@ library JsonLoader { string memory collateralConfigPrefix = string.concat(configPrefix, ".collateralConfig"); collateralConfig.tokenAddr = jsonData.readAddress(string.concat(collateralConfigPrefix, ".tokenAddr")); collateralConfig.priceFeedAddr = jsonData.readAddress(string.concat(collateralConfigPrefix, ".priceFeedAddr")); + collateralConfig.backupPriceFeedAddr = + jsonData.readAddress(string.concat(collateralConfigPrefix, ".backupPriceFeedAddr")); collateralConfig.name = jsonData.readString(string.concat(collateralConfigPrefix, ".name")); collateralConfig.symbol = jsonData.readString(string.concat(collateralConfigPrefix, ".symbol")); collateralConfig.decimals = @@ -128,11 +126,8 @@ library JsonLoader { vm.parseInt(jsonData.readString(string.concat(collateralConfigPrefix, ".initialPrice"))); collateralConfig.gtKeyIdentifier = jsonData.readString(string.concat(collateralConfigPrefix, ".gtKeyIdentifier")); - collateralConfig.maxPrice = vm.parseInt(jsonData.readString(string.concat(collateralConfigPrefix, ".maxPrice"))); collateralConfig.heartBeat = uint256(vm.parseUint(jsonData.readString(string.concat(collateralConfigPrefix, ".heartBeat")))); - collateralConfig.backupHeartBeat = - uint256(vm.parseUint(jsonData.readString(string.concat(collateralConfigPrefix, ".backupHeartBeat")))); config.salt = salt; config.collateralCapForGt = collateralCapForGt; diff --git a/script/utils/ScriptBase.sol b/script/utils/ScriptBase.sol new file mode 100644 index 0000000..636f102 --- /dev/null +++ b/script/utils/ScriptBase.sol @@ -0,0 +1,107 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Script} from "forge-std/Script.sol"; +import {console} from "forge-std/console.sol"; +import {StringHelper} from "../utils/StringHelper.sol"; + +/** + * @title ScriptBase + * @notice Base contract for contract call scripts with JSON output functionality + */ +contract ScriptBase is Script { + // Helper function to generate date suffix for JSON files + function getDateSuffix() internal view returns (string memory) { + return StringHelper.convertTimestampToDateString(block.timestamp, "YYYY-MM-DD"); + } + + // Helper function to create script execution file path with date suffix + function getScriptExecutionFilePath(string memory network, string memory scriptName) + internal + view + returns (string memory) + { + string memory dateSuffix = getDateSuffix(); + string memory executionsDir = string.concat(vm.projectRoot(), "/executions/", network); + return string.concat(executionsDir, "/", network, "-", scriptName, "-", dateSuffix, ".json"); + } + + // Helper function to write script execution results to JSON + function writeScriptExecutionResults(string memory network, string memory scriptName, string memory executionData) + internal + { + // Create executions directory if it doesn't exist + string memory executionsDir = string.concat(vm.projectRoot(), "/executions/", network); + if (!vm.exists(executionsDir)) { + vm.createDir(executionsDir, true); + } + + // Write the JSON file with date suffix + string memory filePath = getScriptExecutionFilePath(network, scriptName); + vm.writeFile(filePath, executionData); + console.log("Script execution information written to:", filePath); + } + + // Helper function to get git commit hash + function getGitCommitHash() internal returns (bytes memory) { + string[] memory inputs = new string[](3); + inputs[0] = "git"; + inputs[1] = "rev-parse"; + inputs[2] = "HEAD"; + bytes memory result = vm.ffi(inputs); + return result; + } + + // Helper function to get git branch + function getGitBranch() internal returns (string memory) { + string[] memory inputs = new string[](4); + inputs[0] = "git"; + inputs[1] = "rev-parse"; + inputs[2] = "--abbrev-ref"; + inputs[3] = "HEAD"; + bytes memory result = vm.ffi(inputs); + return string(result); + } + + // Helper function to convert string to uppercase + function toUpper(string memory str) internal pure returns (string memory) { + return StringHelper.toUpper(str); + } + + // Helper function to create base execution JSON structure + function createBaseExecutionJson( + string memory network, + string memory scriptName, + uint256 executionBlock, + uint256 executionTimestamp + ) internal returns (string memory) { + return string( + abi.encodePacked( + "{\n", + ' "network": "', + network, + '",\n', + ' "scriptName": "', + scriptName, + '",\n', + ' "executedAt": "', + vm.toString(executionTimestamp), + '",\n', + ' "gitBranch": "', + getGitBranch(), + '",\n', + ' "gitCommitHash": "0x', + vm.toString(getGitCommitHash()), + '",\n', + ' "blockInfo": {\n', + ' "number": "', + vm.toString(executionBlock), + '",\n', + ' "timestamp": "', + vm.toString(executionTimestamp), + '"\n', + " }" + ) + ); + } +} diff --git a/script/utils/StringHelper.sol b/script/utils/StringHelper.sol index abe2d0f..4723c5c 100644 --- a/script/utils/StringHelper.sol +++ b/script/utils/StringHelper.sol @@ -23,7 +23,14 @@ library StringHelper { return string(bUpper); } - function convertTimestampToDateString(uint256 timestamp) internal pure returns (string memory) { + // Format options: + // 'YYYYMMDD' = YYYYMMDD (e.g., 20250626) + // 'DDMMMYYYY' = DDMMMYYYY (e.g., 26JUN2025) + function convertTimestampToDateString(uint256 timestamp, string memory format) + internal + pure + returns (string memory) + { // Define arrays for date conversion string[12] memory months = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]; uint8[12] memory daysPerMonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; @@ -69,15 +76,33 @@ library StringHelper { VmSafe vm = VmSafe(address(uint160(uint256(keccak256("hevm cheat code"))))); - // Format day with leading zero if needed - string memory dayStr; - if (day < 10) { - dayStr = string.concat("0", vm.toString(day)); + if (keccak256(abi.encodePacked(format)) == keccak256(abi.encodePacked("YYYYMMDD"))) { + // Format YYYYMMDD: (e.g., 20250626) + string memory monthStr; + if (month + 1 < 10) { + monthStr = string.concat("0", vm.toString(month + 1)); + } else { + monthStr = vm.toString(month + 1); + } + + string memory dayStr; + if (day < 10) { + dayStr = string.concat("0", vm.toString(day)); + } else { + dayStr = vm.toString(day); + } + + return string.concat(vm.toString(year), monthStr, dayStr); } else { - dayStr = vm.toString(day); - } + // Format DDMMMYYYY: (e.g., 26JUN2025) + string memory dayStr; + if (day < 10) { + dayStr = string.concat("0", vm.toString(day)); + } else { + dayStr = vm.toString(day); + } - // Combine day, month, year - return string.concat(dayStr, months[month], vm.toString(year)); + return string.concat(dayStr, months[month], vm.toString(year)); + } } } diff --git a/script/utils/types.ts b/script/utils/types.ts index 4ed5747..330885f 100644 --- a/script/utils/types.ts +++ b/script/utils/types.ts @@ -17,6 +17,7 @@ export interface LoanConfig { export interface TokenConfig { tokenAddr: string; priceFeedAddr: string; + backupPriceFeedAddr: string; heartBeat: string; name: string; symbol: string; diff --git a/test/integration/ArbSepolia.t.sol.bak b/test/integration/ArbSepolia.t.sol.bak deleted file mode 100644 index f82c52b..0000000 --- a/test/integration/ArbSepolia.t.sol.bak +++ /dev/null @@ -1,191 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import "forge-std/Test.sol"; -import {console} from "forge-std/console.sol"; -import {TermMaxFactory} from "../../contracts/core/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "../../contracts/core/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "../../contracts/router/TermMaxRouter.sol"; -import {ITermMaxRouter} from "../../contracts/router/ITermMaxRouter.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {TermMaxMarket} from "../../contracts/core/TermMaxMarket.sol"; -import {ITermMaxMarket} from "../../contracts/core/TermMaxMarket.sol"; -import {MockERC20} from "../../contracts/test/MockERC20.sol"; -import {MarketConfig} from "../../contracts/core/storage/TermMaxStorage.sol"; -import {IMintableERC20} from "../../contracts/core/tokens/IMintableERC20.sol"; -import {IGearingToken} from "../../contracts/core/tokens/IGearingToken.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/core/oracle/OracleAggregator.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {MockSwapAdapter} from "../../contracts/test/MockSwapAdapter.sol"; -import {Faucet} from "../../contracts/test/testnet/Faucet.sol"; -import {FaucetERC20} from "../../contracts/test/testnet/FaucetERC20.sol"; -import {SwapUnit} from "../../contracts/router/ISwapAdapter.sol"; -import {MockPriceFeed} from "../../contracts/test/MockPriceFeed.sol"; - -contract E2ETest is Test { - // deployer config - uint256 userPrivateKey = vm.envUint("ARB_SEPOLIA_DEPLOYER_PRIVATE_KEY"); - address userAddr = vm.addr(userPrivateKey); - - // address config - // address faucetAddr = address(0xdB94B6E81E0b9F0874ABa5F4F8258c31A9b97Ce8); - // address factoryAddr = address(0x4f29f479D3e6c41aD3fC8C7c8D6f423Cb2784b8e); - address routerAddr = address(0xA53500974648F3d00336a0533955e3404503dB90); - address swapAdapter = address(0x98838B33E85A56b2C9c8F7D7D6a1A7d2484b8e67); - address marketAddr = address(0x78494Cbb1AB24900f045b673e6640eb0595aD2D7); - address collateralPriceFeedAddr = - address(0x1Aee5396e5B010Eb6462396c4D8753B66B0ae089); - address underlyingPriceFeedAddr = - address(0x6f2c71259f2935c106769bEBc3A6a6ED86533616); - - TermMaxMarket market = TermMaxMarket(marketAddr); - TermMaxRouter router = TermMaxRouter(routerAddr); - IMintableERC20 ft; - IMintableERC20 xt; - IMintableERC20 lpFt; - IMintableERC20 lpXt; - IGearingToken gt; - address collateralAddr; - FaucetERC20 collateral; - FaucetERC20 underlying; - IERC20 underlyingERC20; - MockPriceFeed collateralPriceFeed = MockPriceFeed(collateralPriceFeedAddr); - MockPriceFeed underlyingPriceFeed = - MockPriceFeed(address(underlyingPriceFeedAddr)); - - function setUp() public { - string memory ARB_SEPOLIA_RPC_URL = vm.envString("ARB_SEPOLIA_RPC_URL"); - // string memory ARB_SEPOLIA_RPC_URL = "http://127.0.0.1:8545"; - - uint256 arbSepoliaFork = vm.createFork(ARB_SEPOLIA_RPC_URL); - vm.selectFork(arbSepoliaFork); - vm.rollFork(101029414); - // vm.warp(1732648114); - vm.warp(vm.getBlockTimestamp() + 100); - - (ft, xt, lpFt, lpXt, gt, collateralAddr, underlyingERC20) = market - .tokens(); - collateral = FaucetERC20(collateralAddr); - underlying = FaucetERC20(address(underlyingERC20)); - } - - function testIntegration() public { - // provide liquidity - vm.startBroadcast(userPrivateKey); - uint256 amount = 1000000e6; - underlying.mint(userAddr, amount); - underlying.approve(routerAddr, amount); - router.provideLiquidity(userAddr, market, amount); - vm.stopBroadcast(); - - // leverage from token - vm.startBroadcast(userPrivateKey); - uint256 underlyingAmtBase = 10 ** underlying.decimals(); - uint256 collateralAmtBase = 10 ** collateral.decimals(); - uint256 priceBase = 1e8; - uint256 aprBase = 1e8; - uint64 daysInYear = 365; - uint64 secondsInDay = 86400; - uint64 ltvBase = 1e8; - - MarketConfig memory config = market.config(); - uint64 maturity = config.maturity; - uint64 dayToMaturity = uint64( - (maturity - vm.getBlockTimestamp() + secondsInDay - 1) / - secondsInDay - ); - uint64 apr = config.apr > 0 ? uint64(config.apr) : uint64(-config.apr); - uint64 initialLtv = config.initialLtv; - uint256 ftPrice = (daysInYear * aprBase * priceBase) / - (aprBase * daysInYear + apr * dayToMaturity); - uint256 xtPrice = priceBase - (ftPrice * initialLtv) / ltvBase; - (, int256 collateralAnswer, , , ) = collateralPriceFeed - .latestRoundData(); - (, int256 underlyingAnswer, , , ) = underlyingPriceFeed - .latestRoundData(); - - uint256 collateralPrice = uint256(collateralAnswer); - console.log("FT APR:", apr); - console.log("FT price:", ftPrice); - console.log("XT price:", xtPrice); - console.log("collateral price:", collateralPrice); - console.log("underlying price:", underlyingAnswer); - console.log("day to maturity:", dayToMaturity); - uint256 tokenToBuyCollateralAmt = 0; - uint256 tokenToBuyXtAmt = 1000e6; - uint256 maxLtv = 89000000; - uint256 mintXtAmt = 0; - - uint256 n = priceBase * - collateralAmtBase * - (tokenToBuyCollateralAmt * - underlyingAmtBase * - xtPrice + - underlyingAmtBase * - tokenToBuyXtAmt * - priceBase); - uint256 d = underlyingAmtBase * - underlyingAmtBase * - xtPrice * - collateralPrice; - uint256 tokenOutAmt = n / d; - uint256 xtAmtZeroSlippage = (tokenToBuyXtAmt * priceBase) / xtPrice; - SwapUnit[] memory swapUnits = new SwapUnit[](1); - swapUnits[0] = SwapUnit({ - adapter: swapAdapter, - tokenIn: address(underlying), - tokenOut: address(collateral), - swapData: abi.encode( - underlyingPriceFeedAddr, - collateralPriceFeedAddr - ) - }); - console.log( - "Token to buy XT amount:", - tokenToBuyXtAmt / 10 ** underlying.decimals() - ); - console.log("Token to buy collateral amount:", tokenToBuyCollateralAmt); - console.log("xt amount with zero slippage:", xtAmtZeroSlippage); - console.log( - "Token out amount:", - tokenOutAmt / 10 ** collateral.decimals() - ); - underlying.mint(userAddr, tokenToBuyCollateralAmt + tokenToBuyXtAmt); - underlying.approve( - routerAddr, - tokenToBuyCollateralAmt + tokenToBuyXtAmt - ); - (uint256 gtId, uint256 netXtOut) = router.leverageFromToken( - userAddr, - market, - tokenToBuyCollateralAmt, - tokenToBuyXtAmt, - maxLtv, - mintXtAmt, - swapUnits, - config.lsf, - block.timestamp + 1 hours - ); - console.log("xt amount with slippage:", netXtOut); - ( - address owner, - uint128 debtAmt, - uint128 ltv, - bytes memory collateralDta - ) = gt.loanInfo(gtId); - uint128 collateralAmt = abi.decode(collateralDta, (uint128)); - console.log("Gearing token ID:", gtId); - console.log("Gearing token owner:", owner); - console.log( - "Gearing token debt amount:", - debtAmt / 10 ** underlying.decimals() - ); - console.log( - "Gearing token collateral amount:", - collateralAmt / 10 ** collateral.decimals() - ); - console.log("Gearing token ltv:", ltv); - vm.stopBroadcast(); - } -} diff --git a/test/integration/ForkDebugger.t.sol b/test/integration/ForkDebugger.t.sol deleted file mode 100644 index 82ea6f8..0000000 --- a/test/integration/ForkDebugger.t.sol +++ /dev/null @@ -1,148 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import "forge-std/Test.sol"; -import {console} from "forge-std/console.sol"; -import {TermMaxFactory} from "../../contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "../../contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "../../contracts/router/TermMaxRouter.sol"; -import {ITermMaxRouter} from "../../contracts/router/ITermMaxRouter.sol"; -import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; -import {TermMaxMarket} from "../../contracts/TermMaxMarket.sol"; -import {ITermMaxMarket} from "../../contracts/TermMaxMarket.sol"; -import {MockERC20} from "../../contracts/test/MockERC20.sol"; -import {MarketConfig} from "../../contracts/storage/TermMaxStorage.sol"; -import {IMintableERC20} from "../../contracts/tokens/IMintableERC20.sol"; -import {IGearingToken} from "../../contracts/tokens/IGearingToken.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/oracle/OracleAggregator.sol"; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {MockSwapAdapter} from "../../contracts/test/MockSwapAdapter.sol"; -import {Faucet} from "../../contracts/test/testnet/Faucet.sol"; -import {FaucetERC20} from "../../contracts/test/testnet/FaucetERC20.sol"; -import {SwapUnit} from "../../contracts/router/ISwapAdapter.sol"; -import {MockPriceFeed} from "../../contracts/test/MockPriceFeed.sol"; -import {TermMaxOrder, ISwapCallback} from "../../contracts/TermMaxOrder.sol"; -import {ITermMaxOrder} from "../../contracts/ITermMaxOrder.sol"; -import {OrderConfig} from "../../contracts/storage/TermMaxStorage.sol"; -import {DeployUtils} from "../utils/DeployUtils.sol"; -import {JSONLoader} from "../utils/JSONLoader.sol"; -import "contracts/storage/TermMaxStorage.sol"; - -contract ForkDebugger is Test { - // EOA config - uint256 deployerPrivateKey = vm.envUint("HOLESKY_DEPLOYER_PRIVATE_KEY"); - address deployerAddr = vm.addr(deployerPrivateKey); - uint256 userPrivateKey = vm.envUint("HOLESKY_DEPLOYER_PRIVATE_KEY"); - address userAddr = vm.addr(userPrivateKey); - - // address config - address faucetAddr = address(0x979963a328dd54b684A522cccb0bA49458dD74ba); - address routerAddr = address(0x2fA0C6B02F329bc400eB638a764f6CAEa1C11047); - address swapAdapter = address(0x8be4b9f85C9534C2Fb445E7426858A8AAB1D210a); - address marketAddr = address(0xAACB14efD381c1659F0bD28c3Ac7cFe8Ad0F342f); - address orderAddr = address(0x3Cf9Ba89761DFb1C5c370A5f64b692Cd05abcDf6); - address oracleAggregatorAddr = address(0xd3623A77E2C38E1D528E0a4b1Cd7E5267323a5EC); - - TermMaxRouter router = TermMaxRouter(routerAddr); - OracleAggregator oracleAggregator = OracleAggregator(oracleAggregator); - ITermMaxMarket market = ITermMaxMarket(marketAddr); - TermMaxOrder order = TermMaxOrder(orderAddr); - IMintableERC20 ft; - IMintableERC20 xt; - IGearingToken gt; - address collateralAddr; - FaucetERC20 collateral; - FaucetERC20 underlying; - IERC20 underlyingERC20; - - ITermMaxMarket testMarket; - ITermMaxOrder testOrder; - IMintableERC20 testFt; - IMintableERC20 testXt; - IGearingToken testGt; - address testCollateralAddr; - FaucetERC20 testCollateral; - FaucetERC20 testUnderlying; - IERC20 testUnderlyingERC20; - OrderConfig orderConfig; - MarketConfig marketConfig; - DeployUtils.Res res; - bytes32 constant GT_ERC20 = keccak256("GearingTokenWithERC20"); - - // function setUp() public { - // string memory FORK_RPC_URL = vm.envString("HOLESKY_RPC_URL"); - - // uint256 fork = vm.createFork(FORK_RPC_URL); - // vm.selectFork(fork); - - // deployTestContracts(); - // } - - // function deployTestContracts() public { - // (ft, xt, gt, collateralAddr, underlyingERC20) = market.tokens(); - // collateral = FaucetERC20(collateralAddr); - // underlying = FaucetERC20(address(underlyingERC20)); - // marketConfig = market.config(); - // GtConfig memory gtConfig = gt.getGtConfig(); - - // MarketInitialParams memory initialParams = MarketInitialParams({ - // collateral: address(collateral), - // debtToken: underlying, - // admin: deployerAddr, - // gtImplementation: address(0), - // marketConfig: marketConfig, - // loanConfig: LoanConfig({ - // oracle: oracleAggregator, - // liquidationLtv: gtConfig.loanConfig.liquidationLtv, - // maxLtv: gtConfig.loanConfig.maxLtv, - // liquidatable: true - // }), - // gtInitalParams: abi.encode(type(uint256).max), - // tokenName: "Test Market", - // tokenSymbol: "Test Market" - // }); - - // vm.startPrank(deployerAddr); - // TermMaxFactory testFactory = DeployUtils.deployFactory(deployerAddr); - // testMarket = ITermMaxMarket(testFactory.createMarket(GT_ERC20, initialParams, 0)); - // vm.stopPrank(); - - // vm.startPrank(router.owner()); - // router.setMarketWhitelist(address(testMarket), true); - // vm.stopPrank(); - - // (testFt, testXt, testGt, testCollateralAddr, testUnderlyingERC20) = testMarket.tokens(); - // } - - // function testIntegration() public { - // (uint256 oriFtReserve, uint256 oriXtReserve) = order.tokenReserves(); - // OrderConfig memory testOrderConfig = order.orderConfig(); - // console.log("ft reserve: %d", oriFtReserve); - // console.log("xt reserve: %d", oriXtReserve); - // for (uint256 i = 0; i < testOrderConfig.curveCuts.lendCurveCuts.length; i++) { - // console.log("lend curve cut - %d", i); - // console.log(" - xt reserve: %d", testOrderConfig.curveCuts.lendCurveCuts[i].xtReserve); - // console.log(" - liqSquare: %d", testOrderConfig.curveCuts.lendCurveCuts[i].liqSquare); - // console.log(" - offset: %d", testOrderConfig.curveCuts.lendCurveCuts[i].offset); - // } - // for (uint256 i = 0; i < testOrderConfig.curveCuts.borrowCurveCuts.length; i++) { - // console.log("borrow curve cut - %d", i); - // console.log(" - xt reserve: %d", testOrderConfig.curveCuts.borrowCurveCuts[i].xtReserve); - // console.log(" - liqSquare: %d", testOrderConfig.curveCuts.borrowCurveCuts[i].liqSquare); - // console.log(" - offset: %d", testOrderConfig.curveCuts.borrowCurveCuts[i].offset); - // } - // vm.startPrank(userAddr); - // testOrder = testMarket.createOrder( - // userAddr, testOrderConfig.maxXtReserve, ISwapCallback(address(0)), testOrderConfig.curveCuts - // ); - // uint256 mintAmt = oriFtReserve + oriXtReserve; - // underlying.mint(userAddr, mintAmt); - // underlying.approve(address(testMarket), mintAmt); - // testMarket.mint(userAddr, mintAmt); - // testFt.transfer(address(testOrder), oriFtReserve); - // testXt.transfer(address(testOrder), oriXtReserve); - // vm.stopPrank(); - // (uint256 oriLendApr, uint256 oriBorrowApr) = testOrder.apr(); - // } -} diff --git a/test/integration/ForkFlashRepay.t.sol b/test/integration/ForkFlashRepay.t.sol deleted file mode 100644 index 1d9e8ff..0000000 --- a/test/integration/ForkFlashRepay.t.sol +++ /dev/null @@ -1,138 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.27; - -import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {PriceFeedFactory} from "contracts/extensions/PriceFeedFactory.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {SwapUnit, ITermMaxRouter, TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import {IGearingToken, GearingTokenEvents, AbstractGearingToken} from "contracts/tokens/AbstractGearingToken.sol"; -import {PendleSwapV3Adapter} from "contracts/router/swapAdapters/PendleSwapV3Adapter.sol"; -import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import "contracts/storage/TermMaxStorage.sol"; -import "test/mainnet-fork/ForkBaseTest.sol"; - -interface TestOracle is IOracle { - function acceptPendingOracle(address asset) external; - function oracles(address asset) external returns (address aggregator, address backupAggregator, uint32 heartbeat); -} - -contract ForkFlashRepay is ForkBaseTest { - string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); - string DATA_PATH = string.concat(vm.projectRoot(), "/test/testdata/fork/mainnet.json"); - - function _getForkRpcUrl() internal view override returns (string memory) { - return MAINNET_RPC_URL; - } - - function _getDataPath() internal view override returns (string memory) { - return DATA_PATH; - } - - function _finishSetup() internal override {} - - function testFlashRepayPt() public { - vm.roll(22494579); // 2025-05-15 - uint64 may_30 = 1748534400; // 2025-05-30 00:00:00 - address pt_susde_may_29 = 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308; - address usdc = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; - address usde = 0x4c9EDD5852cd905f086C759E8383e09bff1E68B3; - address susde = 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497; - TestOracle oracle = TestOracle(0xE3a31690392E8E18DC3d862651C079339E2c1ADE); - address accessManager = Ownable(address(oracle)).owner(); - vm.startPrank(accessManager); - address[] memory tokens = new address[](3); - tokens[0] = usdc; - tokens[1] = susde; - tokens[2] = pt_susde_may_29; - - for (uint256 i = 0; i < tokens.length; i++) { - address token = tokens[i]; - (address aggregator, address backupAggregator, uint32 heartbeat) = oracle.oracles(token); - IOracle.Oracle memory oracleData = IOracle.Oracle({ - aggregator: AggregatorV3Interface(aggregator), - backupAggregator: AggregatorV3Interface(backupAggregator), - heartbeat: 365 days - }); - oracle.submitPendingOracle(token, oracleData); - } - vm.warp(block.timestamp + 1 days); - for (uint256 i = 0; i < tokens.length; i++) { - address token = tokens[i]; - oracle.acceptPendingOracle(token); - } - - vm.stopPrank(); - - ITermMaxMarket mmay_30 = ITermMaxMarket(0xe867255dC0c3a27c90f756ECC566a5292ce19492); - ITermMaxOrder o_may_30 = ITermMaxOrder(0xe99ee5b18cB57276EbEADf0E773E4f8Ab49Db9B7); - - { - address yt = 0x1de6Ff19FDA7496DdC12f2161f6ad6427c52aBBe; - deal(yt, pt_susde_may_29, 1000 ether); - } - - // address pendleAdapter = 0x0B30251FA697A39Fd41813b267b50F03414E82da; - PendleSwapV3Adapter adapter = new PendleSwapV3Adapter(0x888888888889758F76e7103c6CbF23ABbF58F946); - address pendleAdapter = address(adapter); - - vm.label(pt_susde_may_29, "pt_susde_may_29"); - vm.label(susde, "susde"); - vm.label(address(oracle), "oracle"); - vm.label(address(mmay_30), "mmay_30"); - vm.label(address(o_may_30), "o_may_30"); - vm.label(address(pendleAdapter), "pendleAdapter"); - - address borrower; - address admin = vm.randomAddress(); - - vm.startPrank(admin); - TermMaxRouter router = deployRouter(admin); - router.setAdapterWhitelist(pendleAdapter, true); - router.setAdapterWhitelist(0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779, true); - vm.stopPrank(); - - uint128 debt; - uint256 collateralAmount; - // deal(pt_susde_may_29, borrower, collateralAmount); - uint256 gt1 = 5; - - { - (IERC20 ft,, IGearingToken gt, address collateral,) = mmay_30.tokens(); - (address owner, uint128 debtAmt, bytes memory collateralData) = gt.loanInfo(gt1); - borrower = owner; - debt = debtAmt; - collateralAmount = abi.decode(collateralData, (uint256)); - console.log("collateralAmount:", collateralAmount); - console.log("debt:", debt); - - vm.startPrank(borrower); - vm.warp(may_30 - 0.5 days); - - ITermMaxOrder[] memory orders = new ITermMaxOrder[](0); - uint128[] memory amounts = new uint128[](0); - SwapUnit[] memory swapUnits = new SwapUnit[](2); - address pm1 = 0xB162B764044697cf03617C2EFbcB1f42e31E4766; - swapUnits[0] = SwapUnit({ - adapter: pendleAdapter, - tokenIn: pt_susde_may_29, - tokenOut: susde, - swapData: abi.encode(pm1, collateralAmount, 0) - }); - swapUnits[1] = SwapUnit({ - adapter: 0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779, - tokenIn: susde, - tokenOut: usdc, - swapData: hex"0000000000000000000000009d39a5de30e57443bff2a8307a4256c8797a349700000000000000000000000000000000000000000000048103daed12389fbcc800000000000000000000000076edf8c155a1e0d9b2ad11b04d9671cbc25fee99000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000005d443b21d00000000000000000000000000000000000000000000000000000005b66b4d45000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000000000000000000000000000000000000000014000000000000000000000000076edf8c155a1e0d9b2ad11b04d9671cbc25fee9900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084010206000d0100010201022700000304000d0101050400ff00000000000000007eb59373d63627be64b42406b108b602174b4ccc9d39a5de30e57443bff2a8307a4256c8797a3497dac17f958d2ee523a2206206994597c13d831ec7c02aaa39b223fe8d0a0e5c4f27ead9083c756cc288e6a0c2ddd26feeb64f039a2c41296fcb3f564000000000000000000000000000000000000000000000000000000000" - }); - - console.log("usdc balance before:", IERC20(usdc).balanceOf(borrower)); - gt.approve(address(router), gt1); - vm.expectEmit(); - emit GearingTokenEvents.Repay(gt1, debt, true); - router.flashRepayFromColl(borrower, mmay_30, gt1, orders, amounts, true, swapUnits, may_30); - console.log("usdc balance after:", IERC20(usdc).balanceOf(borrower)); - vm.stopPrank(); - } - } -} diff --git a/test/testdata/fork/bsc.json b/test/testdata/fork/bsc.json new file mode 100644 index 0000000..653eff5 --- /dev/null +++ b/test/testdata/fork/bsc.json @@ -0,0 +1,927 @@ + +{ + "routers": { + "pendleRouter": "0x888888888889758F76e7103c6CbF23ABbF58F946", + "uniswapRouter": "0xE592427A0AEce92De3Edee1F18E0157C05861564", + "odosRouter": "0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559" + }, + "tokenPairs": [ + "WBNB-USDT" + ], + "ynBNBx-WBNB": { + "blockNumber": "51933960", + "orderInitialAmount": "20000000000000000000000", + "duration": "30", + "collateral": "0x32C830f5c34122C6afB8aE87ABA541B7900a2C5F", + "debtToken": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "loanConfig": { + "maxLtv": "89000000", + "liquidationLtv": "90000000", + "liquidatable": true + }, + "feeConfig": { + "redeemFeeRatio": "0", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000", + "lendTakerFeeRatio": "1000000", + "borrowTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "1000000", + "borrowMakerFeeRatio": "2000000" + }, + "orderConfig": { + "maxXtReserve": "2000000000000000000000000000000000000000000000000000000000000000000", + "gtId": "0", + "lendCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "17148936676412860051488768", + "offset": "6547697434292" + }, + "1": { + "xtReserve": "8200000000", + "liqSquare": "3601276702046700610", + "offset": "-5161974583" + }, + "2": { + "xtReserve": "9000000000", + "liqSquare": "51800738781260893117687869", + "offset": "14547185370727" + }, + "3": { + "xtReserve": "38200000000", + "liqSquare": "1554022163437826793", + "offset": "-35426169851" + }, + "4": { + "xtReserve": "39000000000", + "liqSquare": "433646276003678296168", + "offset": "20699832775" + }, + "5": { + "xtReserve": "39200000000", + "liqSquare": "1588671805064995511", + "offset": "-35574439899" + }, + "length": 6 + }, + "borrowCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "12253114043286217560162304", + "offset": "5605197689344" + }, + "1": { + "xtReserve": "7200000000", + "liqSquare": "3308340791687278741", + "offset": "-4270879534" + }, + "2": { + "xtReserve": "8000000000", + "liqSquare": "6832763607918441056808585", + "offset": "5351194154482" + }, + "3": { + "xtReserve": "19200000000", + "liqSquare": "1571535629821241443", + "offset": "-16590539411" + }, + "4": { + "xtReserve": "20000000000", + "liqSquare": "3473307729328620213070793", + "offset": "5048683691704" + }, + "5": { + "xtReserve": "38200000000", + "liqSquare": "1424056169024734287", + "offset": "-34904520632" + }, + "length": 6 + } + }, + "swapData": { + "debtAmt": "1000000000000000000", + "swapAmtIn": "1000000000000000000", + "tokenType": "0", + "length": "1", + "leverageUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", + "tokenOut": "0x32c830f5c34122c6afb8ae87aba541b7900a2c5f", + "swapData": "0x000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000032c830f5c34122c6afb8ae87aba541b7900a2c5f0000000000000000000000000000000000000000000000000d84774e6074ee000000000000000000000000000000000000000000000000000d7329e8dd6a1b00000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010200ff000000000000000000000000000000000000000000cdedb4bad9978e1d0a82ad2061d0345f48014bc4bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000000000000000000000000000" + } + }, + "flashRepayUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x32c830f5c34122c6afb8ae87aba541b7900a2c5f", + "tokenOut": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", + "swapData": "0x00000000000000000000000032c830f5c34122c6afb8ae87aba541b7900a2c5f0000000000000000000000000000000000000000000000000d84774e6074ee00000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c740251000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000dcccbcb4d1985800000000000000000000000000000000000000000000000000dbb21d0af463200000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010201ff000000000000000000000000000000000000000000410cef6a0514af4c4eeda54ba243493f9f5efc5632c830f5c34122c6afb8ae87aba541b7900a2c5f000000000000000000000000000000000000000000000000" + } + } + } + }, + "WBNB-USDT": { + "blockNumber": "51933960", + "orderInitialAmount": "20000000000000000000000", + "duration": "30", + "collateral": "0xBB4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "debtToken": "0x55d398326f99059fF775485246999027B3197955", + "loanConfig": { + "maxLtv": "89000000", + "liquidationLtv": "90000000", + "liquidatable": true + }, + "feeConfig": { + "redeemFeeRatio": "0", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000", + "lendTakerFeeRatio": "1000000", + "borrowTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "1000000", + "borrowMakerFeeRatio": "2000000" + }, + "orderConfig": { + "maxXtReserve": "2000000000000000000000000000000000000000000000000000000000000000000", + "gtId": "0", + "lendCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "17148936676412860051488768", + "offset": "6547697434292" + }, + "1": { + "xtReserve": "8200000000", + "liqSquare": "3601276702046700610", + "offset": "-5161974583" + }, + "2": { + "xtReserve": "9000000000", + "liqSquare": "51800738781260893117687869", + "offset": "14547185370727" + }, + "3": { + "xtReserve": "38200000000", + "liqSquare": "1554022163437826793", + "offset": "-35426169851" + }, + "4": { + "xtReserve": "39000000000", + "liqSquare": "433646276003678296168", + "offset": "20699832775" + }, + "5": { + "xtReserve": "39200000000", + "liqSquare": "1588671805064995511", + "offset": "-35574439899" + }, + "length": 6 + }, + "borrowCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "12253114043286217560162304", + "offset": "5605197689344" + }, + "1": { + "xtReserve": "7200000000", + "liqSquare": "3308340791687278741", + "offset": "-4270879534" + }, + "2": { + "xtReserve": "8000000000", + "liqSquare": "6832763607918441056808585", + "offset": "5351194154482" + }, + "3": { + "xtReserve": "19200000000", + "liqSquare": "1571535629821241443", + "offset": "-16590539411" + }, + "4": { + "xtReserve": "20000000000", + "liqSquare": "3473307729328620213070793", + "offset": "5048683691704" + }, + "5": { + "xtReserve": "38200000000", + "liqSquare": "1424056169024734287", + "offset": "-34904520632" + }, + "length": 6 + } + }, + "swapData": { + "debtAmt": "10000000000000000", + "swapAmtIn": "30000000000000000000", + "tokenType": "0", + "length": "1", + "leverageUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x55d398326f99059ff775485246999027b3197955", + "tokenOut": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", + "swapData": "0x00000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000000000000000000000000002086ac351052600000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c740251000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000d6cdbfed38b66000000000000000000000000000000000000000000000000000d5bacd0c0911a00000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010201ff000000000000000000000000000000000000000000172fcd41e0913e95784454622d1c3724f546f84955d398326f99059ff775485246999027b3197955000000000000000000000000000000000000000000000000" + } + }, + "flashRepayUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", + "tokenOut": "0x55d398326f99059ff775485246999027b3197955", + "swapData": "0x000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000d6cdbfed38b6600000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000055d398326f99059ff775485246999027b3197955000000000000000000000000000000000000000000000020801f82d5879000000000000000000000000000000000000000000000000000205685c0e661c40000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010200ff00000000000000000000000000000000000000000047a90a2d92a8367a91efa1906bfc8c1e05bf10c4bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000000000000000000000000000" + } + } + } + }, + "sUSDe-USDT": { + "blockNumber": "51933960", + "orderInitialAmount": "20000000000000000000000", + "duration": "30", + "collateral": "0x211Cc4DD073734dA055fbF44a2b4667d5E5fE5d2", + "debtToken": "0x55d398326f99059fF775485246999027B3197955", + "loanConfig": { + "maxLtv": "89000000", + "liquidationLtv": "90000000", + "liquidatable": true + }, + "feeConfig": { + "redeemFeeRatio": "0", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000", + "lendTakerFeeRatio": "1000000", + "borrowTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "1000000", + "borrowMakerFeeRatio": "2000000" + }, + "orderConfig": { + "maxXtReserve": "2000000000000000000000000000000000000000000000000000000000000000000", + "gtId": "0", + "lendCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "17148936676412860051488768", + "offset": "6547697434292" + }, + "1": { + "xtReserve": "8200000000", + "liqSquare": "3601276702046700610", + "offset": "-5161974583" + }, + "2": { + "xtReserve": "9000000000", + "liqSquare": "51800738781260893117687869", + "offset": "14547185370727" + }, + "3": { + "xtReserve": "38200000000", + "liqSquare": "1554022163437826793", + "offset": "-35426169851" + }, + "4": { + "xtReserve": "39000000000", + "liqSquare": "433646276003678296168", + "offset": "20699832775" + }, + "5": { + "xtReserve": "39200000000", + "liqSquare": "1588671805064995511", + "offset": "-35574439899" + }, + "length": 6 + }, + "borrowCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "12253114043286217560162304", + "offset": "5605197689344" + }, + "1": { + "xtReserve": "7200000000", + "liqSquare": "3308340791687278741", + "offset": "-4270879534" + }, + "2": { + "xtReserve": "8000000000", + "liqSquare": "6832763607918441056808585", + "offset": "5351194154482" + }, + "3": { + "xtReserve": "19200000000", + "liqSquare": "1571535629821241443", + "offset": "-16590539411" + }, + "4": { + "xtReserve": "20000000000", + "liqSquare": "3473307729328620213070793", + "offset": "5048683691704" + }, + "5": { + "xtReserve": "38200000000", + "liqSquare": "1424056169024734287", + "offset": "-34904520632" + }, + "length": 6 + } + }, + "swapData": { + "debtAmt": "30000000000000000000", + "swapAmtIn": "30000000000000000000", + "tokenType": "2", + "length": "2", + "leverageUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x55d398326f99059ff775485246999027b3197955", + "tokenOut": "0x5d3a1ff2b6bab83b63cd9ad0787074081a52ef34", + "swapData": "0x00000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000000000000000000000000002086ac351052600000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c7402510000000000000000000000005d3a1ff2b6bab83b63cd9ad0787074081a52ef340000000000000000000000000000000000000000000000208169437163be00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010201ff000000000000000000000000000000000000000000dc35157217a3aeff3dcaf2e86327254fbf9f460155d398326f99059ff775485246999027b3197955000000000000000000000000000000000000000000000000" + }, + "1": { + "adapter": "0x37ba9934aaba7a49cc29d0952c6a91d7c7043dbc", + "tokenIn": "0x5d3a1ff2b6bab83b63cd9ad0787074081a52ef34", + "tokenOut": "0x211cc4dd073734da055fbf44a2b4667d5e5fe5d2", + "swapData": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000208169437163be000000000000000000000000000000000000000000000000001b966e26c9d587878e" + } + }, + "flashRepayUnits": { + "0": { + "adapter": "0x37ba9934aaba7a49cc29d0952c6a91d7c7043dbc", + "tokenIn": "0x211cc4dd073734da055fbf44a2b4667d5e5fe5d2", + "tokenOut": "0x5d3a1ff2b6bab83b63cd9ad0787074081a52ef34", + "swapData": "0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000001b966e26c9d587878e0000000000000000000000000000000000000000000000000000000000000000" + }, + "1": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x5d3a1ff2b6bab83b63cd9ad0787074081a52ef34", + "tokenOut": "0x55d398326f99059ff775485246999027b3197955", + "swapData": "0x0000000000000000000000005d3a1ff2b6bab83b63cd9ad0787074081a52ef3400000000000000000000000000000000000000000000002057caf33bdfe510c4000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000000000000000000000000000205666382f202800000000000000000000000000000000000000000000000000202d01de4d9c280000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010200ff000000000000000000000000000000000000000000dc35157217a3aeff3dcaf2e86327254fbf9f46015d3a1ff2b6bab83b63cd9ad0787074081a52ef34000000000000000000000000000000000000000000000000" + } + } + } + }, + "BTCB-USD1": { + "blockNumber": "51933960", + "orderInitialAmount": "20000000000000000000000", + "duration": "30", + "collateral": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "debtToken": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "loanConfig": { + "maxLtv": "89000000", + "liquidationLtv": "90000000", + "liquidatable": true + }, + "feeConfig": { + "redeemFeeRatio": "0", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000", + "lendTakerFeeRatio": "1000000", + "borrowTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "1000000", + "borrowMakerFeeRatio": "2000000" + }, + "orderConfig": { + "maxXtReserve": "2000000000000000000000000000000000000000000000000000000000000000000", + "gtId": "0", + "lendCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "17148936676412860051488768", + "offset": "6547697434292" + }, + "1": { + "xtReserve": "8200000000", + "liqSquare": "3601276702046700610", + "offset": "-5161974583" + }, + "2": { + "xtReserve": "9000000000", + "liqSquare": "51800738781260893117687869", + "offset": "14547185370727" + }, + "3": { + "xtReserve": "38200000000", + "liqSquare": "1554022163437826793", + "offset": "-35426169851" + }, + "4": { + "xtReserve": "39000000000", + "liqSquare": "433646276003678296168", + "offset": "20699832775" + }, + "5": { + "xtReserve": "39200000000", + "liqSquare": "1588671805064995511", + "offset": "-35574439899" + }, + "length": 6 + }, + "borrowCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "12253114043286217560162304", + "offset": "5605197689344" + }, + "1": { + "xtReserve": "7200000000", + "liqSquare": "3308340791687278741", + "offset": "-4270879534" + }, + "2": { + "xtReserve": "8000000000", + "liqSquare": "6832763607918441056808585", + "offset": "5351194154482" + }, + "3": { + "xtReserve": "19200000000", + "liqSquare": "1571535629821241443", + "offset": "-16590539411" + }, + "4": { + "xtReserve": "20000000000", + "liqSquare": "3473307729328620213070793", + "offset": "5048683691704" + }, + "5": { + "xtReserve": "38200000000", + "liqSquare": "1424056169024734287", + "offset": "-34904520632" + }, + "length": 6 + } + }, + "swapData": { + "debtAmt": "1000000000000000000", + "swapAmtIn": "1000000000000000000", + "tokenType": "0", + "length": "1", + "leverageUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "tokenOut": "0x8d0d000ee44948fc98c9b98a4fa4921476f08b0d", + "swapData": "0x0000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c00000000000000000000000000000000000000000000002086ac351052600000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c7402510000000000000000000000008d0d000ee44948fc98c9b98a4fa4921476f08b0d00000000000000000000000000000000000000000010cadda52b9beb0000000000000000000000000000000000000000000000000010b55f18d3122d00000000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c740251000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002ac07051801451deb1403010001010201190136d1e50d0e0100030201011e1228ec0e0100040201013367bf16030200010502001901866bc7e20e0200060200014056b0e30e0200070200000e0300080200074ebbf79b000007c29f89e603040001090a0119060e04000b0a010524df0eb2030400010c0d0119051c6cf6700e04000e0d0105868e7ead0e04000f0d0105a93f27700e0400100d01040e0000110d01033b12ca230e000012130003e32633d80e0000141300020e0000151300000e0101160a01080e0101171300ff000000000000000000000000000000000000000061eb789d75a95caa3ff50ed7e47b96c132fec0827130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c6bbc40579ad1bbd243895ca0acb086bb6300d636fc75f4e78bf71ed5066db9ca771d4ccb7c1264e0d171b26e4484402de70e3ea256be5a2630d7e88dd4dca84e1808da3354924cd243c66828cf7754704bba1018b967e59220b22ca03f68821a3276c9a646cf1cf8c69595804ba91dfdd8d6b960c9b0a7c416b9a82891338f9ba80e2d6970fdda79d1eb0dae55d398326f99059ff775485246999027b31979556fe9e9de56356f7edbfcbb29fab7cd69471a486974e4716e431f45807dcf19f284c7aa99f18a4fbc2170ed0880ac9a755fd29b2688956bd959f933f858f04aada1051885a3c4e296aab0a454ea1233a3d0e226f674bbf064f54ab47f42473ff80db98cba0f338ec12d3f7c3d77a4b9fcc1f95f3fb6ad0ea6be141893e4c6ad9272e8c04bab7e6a10604501a5172fcd41e0913e95784454622d1c3724f546f849bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c36696169c63e42cd08ce11f5deebbcebae65205047a90a2d92a8367a91efa1906bfc8c1e05bf10c49c4ee895e4f6ce07ada631c508d1306db7502cce4a3218606af9b4728a9f187e1c1a8c07fbc172a90000000000000000000000000000000000000000" + } + }, + "flashRepayUnits": { + "0":{ + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x8d0d000ee44948fc98c9b98a4fa4921476f08b0d", + "tokenOut": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "swapData": "0x0000000000000000000000008d0d000ee44948fc98c9b98a4fa4921476f08b0d00000000000000000000000000000000000000000010cadda52b9beb00000000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c7402510000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c000000000000000000000000000000000000000000000003c5e83c85bdb64000000000000000000000000000000000000000000000000003c113e00f4ff68000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b50210f5d0114673cfb0301000101020019010026b1df0e0100030200015db7eca20e01000402000105037cf80e0100050200010161e4140f010002060000002d000001000103c6312c0f010002060000000c0000010001003f92a9030200010702001901091f29b00e02000802000100c380e90e0200090200010343f1940e02000a020001004309d10f0200020b0000004d000002000100431b64030300010c0200190100432d000e03000d02000100433ea5030400010e0201190100435053030500010f020019010043620b030611011102011901009c30a70e07001202000197124d210e080013020101018515d40e0901140200000f0a000215000dbba000465000150062d3e20000140f0b00151601000bb800003c0011db8895b0000a1103e57d8d030c0001171800191106adf2a80e0c00191800114dc092ed0e0c001a180011064df57b0e0c001b1800110a01d9990e0c001c180011a3eb88860e0c001d180011689a9e750e0c001e18001112cc247d030b00011f18001911393ad6ac0e0b0020180011a4ed5e7e0e0b0021180011374050491b0b0022180011aee8f8540e0d00231800100e0e0024180003dc362582000e030116e8ba030a00012506011903693228320e0a0026060103597ef6d00e0a0027060103084c769a0e0a002806010384c513b70c0a000618030a417ac10e0800290601032fb09f480e0c002a060003f1f665f10e0c002b0600020e0c002c0600078beec3970001060e0c002d2e010f9ee93a1e000c0e0f00002f1500000bb800003c000c030c00001030001e05049e50f10a0e310b060100052b89a87b0e0e00320b00050fc947f20e0e00330b000510415f610e0e00340b0005c401c7d90f0e000b06000000060000010005752138f10f0e000b060000000700000100054e617704220e0001350b01058553ec55220e0001360b000558b188f60f00000b15000001f400000a00040f00000b150000006400000100080e0e003738000a1f0400393a01150041fede030901013b1800141500386bb3030901013c18001415003d6858030901013d1800141503a8a345030901013e18001915073b3cf80e09013f18001509a09d140e090140180015f182929c0e090141180015045b9e8a0e09014218001594df18b50e0901431800152d47b8190e0901441800140e0901451800190218035d03090101462f01141908628cc903090101472f011919014d31180e0901482f011905dec07b0e0901492f011955b4d9c80e09014a2f01196b7d70eb0e09014b2f01192c4c12da0e09014c2f01180e09014d2f011d00302384030901014e0601191d006568e20e09014f06011dd66d79540e09015006011d70a638070e09015106011d056140770e09015206011c0e0901530601100e09015455001a0e0901565701020e0901582e01160e0901591600000f0901155a010001f400000a00081f09015b5c00ff00109977931268a6f7cbcf61dc9218323345ce8d0e8d0d000ee44948fc98c9b98a4fa4921476f08b0d4c6cebdefba2612986a42df2ff287949cda9c7899c4ee895e4f6ce07ada631c508d1306db7502ccef150d29d92e7460a1531cbc9d1abeab33d6998e455d398326f99059ff775485246999027b3197955cd92481850f0498b2b8f850c5081d6aa5bc4f82eb3f27fe82bd1e5d7458e02b543cf0c6610ffad83e27cb00d8ceefa9457945d176efd7a4fbd2f2e35fdfc89d953e044f84faa2ed4953190a066328ee08ac76a51cc950d9822d68b83fe1ad97b32cd580de320dda751dd20116be92d4c0b6d24d344f4e05bbc278c8beef275a301700323f214f46b6c8f499b3860f457d627e5acf5631b48571b4ae3a254b9f5b621eaf65fc1214a0eb4491c12164d8ce1174e302da39e15f8b505da62a79eeb107166544543365257e8f67d01d04b5045da5f7357faa5a9afa42b6e370fbd4cc0c5c99ffc8586aaff24a5134601386b4a3218606af9b4728a9f187e1c1a8c07fbc172a914b0c3d61516261d6309aafdb19292552e69bf0f0000000000000000000000000000000000000000ba2ae424d960c26247dd6c32edc70b295c744c4374e4716e431f45807dcf19f284c7aa99f18a4fbcbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c1123e75b71019962cd4d21b0f3018a6412edb63c58f04aada1051885a3c4e296aab0a454ea1233a37d05c84581f0c41ad80ddf677a510360bae09a5a62fcb3c1794fb95bd8b1a97f6ad5d8a7e4943a1ed0e226f674bbf064f54ab47f42473ff80db98cba0f338ec12d3f7c3d77a4b9fcc1f95f3fb6ad0ea6ac109c8025f272414fd9e2faa805a583708a017f06c97634423750e04a189aacc138ecc0a00b5df7ce6160bb594fc055c943f59de92cee30b8c6b32cb80666f4f4d82f92e40d6f2be1d1800e5ca9410461cd03597e34ba58efec89d1af9615e3af817f9836696169c63e42cd08ce11f5deebbcebae65205016b9a82891338f9ba80e2d6970fdda79d1eb0dae172fcd41e0913e95784454622d1c3724f546f84947a90a2d92a8367a91efa1906bfc8c1e05bf10c46fe9e9de56356f7edbfcbb29fab7cd69471a486998a0004b8e9fe161369528a2e07de56c15a27d768829abfa1a7b017078195c10a966d7411a0c9515be141893e4c6ad9272e8c04bab7e6a10604501a5f9878a5dd55edc120fde01893ea713a4f032229c517f28453b947ba01fe6a6b193294d45765288260e09fabb73bd3ade0a17ecc321fd13a19e81ce822170ed0880ac9a755fd29b2688956bd959f933f8c9882def23bc42d53895b8361d0b1edc7570bc6a3efebc418efb585248a0d2140cfb87afcc2c63dd7491c04dc4575e086a8ee31f7ce1c6d56fb7dcc192b7807bf19b7dddf89b706143896d05228f31212c3c320d49019d4f9a92352e947c7e5acfe47d683ce759d5f0cbd6269400aa675947dd738cf620d547423dbe87f337a4a5c17cc57d09b971d501dd14bf72b6485e4b31601afe7b0a1210be2004d2b1d6c5f0f7b66764f6ec8c8dff7ba683102295e1640979397885e32d5ee198cb997092dad5b04784bcc12859e4544c4bb03966803b044a93563bd2d0dd4d1e1afe9d9c5f290d8f6996ddb190bd111908a43dc7e9d76ba11099af3f330ff829c5f442d571e0577561eee90e24f3b348e1087a005f78b4c845352461eb789d75a95caa3ff50ed7e47b96c132fec0826b67112aa7b45e8cdc0a93b8d66a6a36e68ae8e5ebe40e120bac0d8f9793c080b4ce1653961930c86bbc40579ad1bbd243895ca0acb086bb6300d63662edaf2a56c9fb55be5f9b1399ac067f6a37013bfc75f4e78bf71ed5066db9ca771d4ccb7c1264e0fd6e5b7c30538dff2752058e425ad01a56b831cc28df0835942396b7a1b7ae1cd068728e6ddbbafd6216e04cd40db2c6fbed64f1b5830a98d3a91740d171b26e4484402de70e3ea256be5a2630d7e88d1f9b1a3ddedbf47b96c65f29c0586b678de2623b7d1d3649232f28bf7467e9cdb27e6d902c16a165d4dca84e1808da3354924cd243c66828cf7754704bba1018b967e59220b22ca03f68821a3276c9a6cec31052610aaf0693d6b4d34e055687af3aeee63fb2623567e21f8c50f0ae86f54ef4849b4eb47b3f803ec2b816ea7f06ec76aa2b6f2532f9892d626ee3ee9c3395bbd136b6076a70cb6cff241c0e2446cf1cf8c69595804ba91dfdd8d6b960c9b0a7c4247f51881d1e3ae0f759afb801413a6c948ef44206396509195eb9e07c38a016694dc9ff535b128a813c0decbb1097fff46d0ed6a39fb5f6a83043f4246505db95e5a60d8524d52b9ed3dbaf6ee2584ff4c8e32eadec4bfe97e0f595add0f4450a863a11575a951ad021d4297ac125be88ee4620652d5c124aae823a6a0b376de6a78e74ecc5b079d38cbcf7380a466ae6896d7d4fcd571e1e24cd5061a836b3353d328efbef48b79a570cbc2fde20f40e9f20637130d2a12b9bcbfae4f2634d864a1ee1ce3ead9cc5dc2b1b41e21772a620101910a08aee55e83872fdc66a08b0d0dc44c17bbd471b88f49f50cdd20f00000000000000000000000000000000" + } + } + } + }, + "BTCB-USDT": { + "blockNumber": "51933960", + "orderInitialAmount": "20000000000000000000000", + "duration": "30", + "collateral": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "debtToken": "0x55d398326f99059ff775485246999027b3197955", + "loanConfig": { + "maxLtv": "89000000", + "liquidationLtv": "90000000", + "liquidatable": true + }, + "feeConfig": { + "redeemFeeRatio": "0", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000", + "lendTakerFeeRatio": "1000000", + "borrowTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "1000000", + "borrowMakerFeeRatio": "2000000" + }, + "orderConfig": { + "maxXtReserve": "2000000000000000000000000000000000000000000000000000000000000000000", + "gtId": "0", + "lendCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "17148936676412860051488768", + "offset": "6547697434292" + }, + "1": { + "xtReserve": "8200000000", + "liqSquare": "3601276702046700610", + "offset": "-5161974583" + }, + "2": { + "xtReserve": "9000000000", + "liqSquare": "51800738781260893117687869", + "offset": "14547185370727" + }, + "3": { + "xtReserve": "38200000000", + "liqSquare": "1554022163437826793", + "offset": "-35426169851" + }, + "4": { + "xtReserve": "39000000000", + "liqSquare": "433646276003678296168", + "offset": "20699832775" + }, + "5": { + "xtReserve": "39200000000", + "liqSquare": "1588671805064995511", + "offset": "-35574439899" + }, + "length": 6 + }, + "borrowCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "12253114043286217560162304", + "offset": "5605197689344" + }, + "1": { + "xtReserve": "7200000000", + "liqSquare": "3308340791687278741", + "offset": "-4270879534" + }, + "2": { + "xtReserve": "8000000000", + "liqSquare": "6832763607918441056808585", + "offset": "5351194154482" + }, + "3": { + "xtReserve": "19200000000", + "liqSquare": "1571535629821241443", + "offset": "-16590539411" + }, + "4": { + "xtReserve": "20000000000", + "liqSquare": "3473307729328620213070793", + "offset": "5048683691704" + }, + "5": { + "xtReserve": "38200000000", + "liqSquare": "1424056169024734287", + "offset": "-34904520632" + }, + "length": 6 + } + }, + "swapData": { + "debtAmt": "300000000000000000000", + "swapAmtIn": "300000000000000000000", + "tokenType": "0", + "length": "1", + "leverageUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x55d398326f99059ff775485246999027b3197955", + "tokenOut": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "swapData": "0x00000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000000000000000000000000002086ac351052600000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c7402510000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c000000000000000000000000000000000000000000000000001513fbfc3511990000000000000000000000000000000000000000000000000014f9012010f6a1000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070010205000e0100010201020e0001030400ff0000000000000000000000000000172fcd41e0913e95784454622d1c3724f546f84955d398326f99059ff775485246999027b3197955ebe40e120bac0d8f9793c080b4ce1653961930c8bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c00000000000000000000000000000000" + } + }, + "flashRepayUnits": { + "0":{ + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "tokenOut": "0x55d398326f99059ff775485246999027b3197955", + "swapData": "0x0000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c000000000000000000000000000000000000000000000000001513fbfc351199000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000000000000000000000000002080c66d0ecddc0000000000000000000000000000000000000000000000000020572bd578f85a0000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010200ff00000000000000000000000000000000000000000046cf1cf8c69595804ba91dfdd8d6b960c9b0a7c47130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c000000000000000000000000000000000000000000000000" + } + } + } + }, + "USD1-USDT": { + "blockNumber": "51933960", + "orderInitialAmount": "20000000000000000000000", + "duration": "30", + "collateral": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "debtToken": "0x55d398326f99059ff775485246999027b3197955", + "loanConfig": { + "maxLtv": "89000000", + "liquidationLtv": "90000000", + "liquidatable": true + }, + "feeConfig": { + "redeemFeeRatio": "0", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000", + "lendTakerFeeRatio": "1000000", + "borrowTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "1000000", + "borrowMakerFeeRatio": "2000000" + }, + "orderConfig": { + "maxXtReserve": "2000000000000000000000000000000000000000000000000000000000000000000", + "gtId": "0", + "lendCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "17148936676412860051488768", + "offset": "6547697434292" + }, + "1": { + "xtReserve": "8200000000", + "liqSquare": "3601276702046700610", + "offset": "-5161974583" + }, + "2": { + "xtReserve": "9000000000", + "liqSquare": "51800738781260893117687869", + "offset": "14547185370727" + }, + "3": { + "xtReserve": "38200000000", + "liqSquare": "1554022163437826793", + "offset": "-35426169851" + }, + "4": { + "xtReserve": "39000000000", + "liqSquare": "433646276003678296168", + "offset": "20699832775" + }, + "5": { + "xtReserve": "39200000000", + "liqSquare": "1588671805064995511", + "offset": "-35574439899" + }, + "length": 6 + }, + "borrowCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "12253114043286217560162304", + "offset": "5605197689344" + }, + "1": { + "xtReserve": "7200000000", + "liqSquare": "3308340791687278741", + "offset": "-4270879534" + }, + "2": { + "xtReserve": "8000000000", + "liqSquare": "6832763607918441056808585", + "offset": "5351194154482" + }, + "3": { + "xtReserve": "19200000000", + "liqSquare": "1571535629821241443", + "offset": "-16590539411" + }, + "4": { + "xtReserve": "20000000000", + "liqSquare": "3473307729328620213070793", + "offset": "5048683691704" + }, + "5": { + "xtReserve": "38200000000", + "liqSquare": "1424056169024734287", + "offset": "-34904520632" + }, + "length": 6 + } + }, + "swapData": { + "debtAmt": "300000000000000000000", + "swapAmtIn": "300000000000000000000", + "tokenType": "0", + "length": "1", + "leverageUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x55d398326f99059ff775485246999027b3197955", + "tokenOut": "0x8d0d000ee44948fc98c9b98a4fa4921476f08b0d", + "swapData": "0x00000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000000000000000000000000002086ac351052600000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c7402510000000000000000000000008d0d000ee44948fc98c9b98a4fa4921476f08b0d00000000000000000000000000000000000000000000002086ae864e523200000000000000000000000000000000000000000000000000205d0c5f3c026c0000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000f010101020100000c00000100ff000000000000000000000000000055d398326f99059ff775485246999027b31979558d0d000ee44948fc98c9b98a4fa4921476f08b0d000000000000000000000000000000000000000000000000" + } + }, + "flashRepayUnits": { + "0":{ + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x8d0d000ee44948fc98c9b98a4fa4921476f08b0d", + "tokenOut": "0x55d398326f99059ff775485246999027b3197955", + "swapData": "0x0000000000000000000000008d0d000ee44948fc98c9b98a4fa4921476f08b0d00000000000000000000000000000000000000000000002086ae864e52320000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000000000000000000000000002081733f27ab76000000000000000000000000000000000000000000000000002057d7ca5bf3900000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000f010101020000000c00000100ff00000000000000000000000000008d0d000ee44948fc98c9b98a4fa4921476f08b0d55d398326f99059ff775485246999027b3197955000000000000000000000000000000000000000000000000" + } + } + } + }, + "WBNB-USD1": { + "blockNumber": "51933960", + "orderInitialAmount": "20000000000000000000000", + "duration": "30", + "collateral": "0x8d0D000Ee44948FC98c9B98A4FA4921476f08B0d", + "debtToken": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "loanConfig": { + "maxLtv": "89000000", + "liquidationLtv": "90000000", + "liquidatable": true + }, + "feeConfig": { + "redeemFeeRatio": "0", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000", + "lendTakerFeeRatio": "1000000", + "borrowTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "1000000", + "borrowMakerFeeRatio": "2000000" + }, + "orderConfig": { + "maxXtReserve": "2000000000000000000000000000000000000000000000000000000000000000000", + "gtId": "0", + "lendCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "17148936676412860051488768", + "offset": "6547697434292" + }, + "1": { + "xtReserve": "8200000000", + "liqSquare": "3601276702046700610", + "offset": "-5161974583" + }, + "2": { + "xtReserve": "9000000000", + "liqSquare": "51800738781260893117687869", + "offset": "14547185370727" + }, + "3": { + "xtReserve": "38200000000", + "liqSquare": "1554022163437826793", + "offset": "-35426169851" + }, + "4": { + "xtReserve": "39000000000", + "liqSquare": "433646276003678296168", + "offset": "20699832775" + }, + "5": { + "xtReserve": "39200000000", + "liqSquare": "1588671805064995511", + "offset": "-35574439899" + }, + "length": 6 + }, + "borrowCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "12253114043286217560162304", + "offset": "5605197689344" + }, + "1": { + "xtReserve": "7200000000", + "liqSquare": "3308340791687278741", + "offset": "-4270879534" + }, + "2": { + "xtReserve": "8000000000", + "liqSquare": "6832763607918441056808585", + "offset": "5351194154482" + }, + "3": { + "xtReserve": "19200000000", + "liqSquare": "1571535629821241443", + "offset": "-16590539411" + }, + "4": { + "xtReserve": "20000000000", + "liqSquare": "3473307729328620213070793", + "offset": "5048683691704" + }, + "5": { + "xtReserve": "38200000000", + "liqSquare": "1424056169024734287", + "offset": "-34904520632" + }, + "length": 6 + } + }, + "swapData": { + "debtAmt": "30000000000000000000", + "swapAmtIn": "30000000000000000000", + "tokenType": "0", + "length": "1", + "leverageUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", + "tokenOut": "0x8d0d000ee44948fc98c9b98a4fa4921476f08b0d", + "swapData": "0x000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c7402510000000000000000000000008d0d000ee44948fc98c9b98a4fa4921476f08b0d0000000000000000000000000000000000000000000000219caef4eb1fe8000000000000000000000000000000000000000000000000002171a8f640fd300000000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070010205000e0100010200020f000103040100000c00000100ff0000000000000047a90a2d92a8367a91efa1906bfc8c1e05bf10c4bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c55d398326f99059ff775485246999027b31979558d0d000ee44948fc98c9b98a4fa4921476f08b0d00000000000000000000000000000000" + } + }, + "flashRepayUnits": { + "0":{ + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x8d0d000ee44948fc98c9b98a4fa4921476f08b0d", + "tokenOut": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", + "swapData": "0x0000000000000000000000008d0d000ee44948fc98c9b98a4fa4921476f08b0d0000000000000000000000000000000000000000000000219caef4eb1fe80000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c740251000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000dde7e9725507c800000000000000000000000000000000000000000000000000dccbdf51c2af700000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c7402510000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005c010204000f010001020000002d00000100020e0001030201ff000000000000008d0d000ee44948fc98c9b98a4fa4921476f08b0d55d398326f99059ff775485246999027b319795547a90a2d92a8367a91efa1906bfc8c1e05bf10c400000000" + } + } + } + }, + "BTCB-WBNB": { + "blockNumber": "51933960", + "orderInitialAmount": "20000000000000000000000", + "duration": "30", + "collateral": "0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c", + "debtToken": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", + "loanConfig": { + "maxLtv": "89000000", + "liquidationLtv": "90000000", + "liquidatable": true + }, + "feeConfig": { + "redeemFeeRatio": "0", + "mintGtFeeRatio": "1000000", + "mintGtFeeRef": "2000000", + "lendTakerFeeRatio": "1000000", + "borrowTakerFeeRatio": "2000000", + "lendMakerFeeRatio": "1000000", + "borrowMakerFeeRatio": "2000000" + }, + "orderConfig": { + "maxXtReserve": "2000000000000000000000000000000000000000000000000000000000000000000", + "gtId": "0", + "lendCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "17148936676412860051488768", + "offset": "6547697434292" + }, + "1": { + "xtReserve": "8200000000", + "liqSquare": "3601276702046700610", + "offset": "-5161974583" + }, + "2": { + "xtReserve": "9000000000", + "liqSquare": "51800738781260893117687869", + "offset": "14547185370727" + }, + "3": { + "xtReserve": "38200000000", + "liqSquare": "1554022163437826793", + "offset": "-35426169851" + }, + "4": { + "xtReserve": "39000000000", + "liqSquare": "433646276003678296168", + "offset": "20699832775" + }, + "5": { + "xtReserve": "39200000000", + "liqSquare": "1588671805064995511", + "offset": "-35574439899" + }, + "length": 6 + }, + "borrowCurveCuts": { + "0": { + "xtReserve": "0", + "liqSquare": "12253114043286217560162304", + "offset": "5605197689344" + }, + "1": { + "xtReserve": "7200000000", + "liqSquare": "3308340791687278741", + "offset": "-4270879534" + }, + "2": { + "xtReserve": "8000000000", + "liqSquare": "6832763607918441056808585", + "offset": "5351194154482" + }, + "3": { + "xtReserve": "19200000000", + "liqSquare": "1571535629821241443", + "offset": "-16590539411" + }, + "4": { + "xtReserve": "20000000000", + "liqSquare": "3473307729328620213070793", + "offset": "5048683691704" + }, + "5": { + "xtReserve": "38200000000", + "liqSquare": "1424056169024734287", + "offset": "-34904520632" + }, + "length": 6 + } + }, + "swapData": { + "debtAmt": "10000000000000000", + "swapAmtIn": "30000000000000000000", + "tokenType": "0", + "length": "1", + "leverageUnits": { + "0": { + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", + "tokenOut": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "swapData": "0x000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000de0b6b3a7640000000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c7402510000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c0000000000000000000000000000000000000000000000000015c68b900a7d390000000000000000000000000000000000000000000000000015aaac2514ad3c000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010200ff000000000000000000000000000000000000000000ebe40e120bac0d8f9793c080b4ce1653961930c8bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000000000000000000000000000" + } + }, + "flashRepayUnits": { + "0":{ + "adapter": "0x954529f8f103bde464fc6d02a94cd40c5bd322d1", + "tokenIn": "0x7130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c", + "tokenOut": "0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c", + "swapData": "0x0000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c0000000000000000000000000000000000000000000000000015c68b900a7d39000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c740251000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000000000000000000000000000000ddcc2b2a4f4d9800000000000000000000000000000000000000000000000000dcb0448ca881b00000000000000000000000000b7634db4f4710bb992118bc37d1f63e00e2704a40000000000000000000000000000000000000000000000000000000000000140000000000000000000000000c3f3a07ae7d2a125ef81a5950c4d0dd54c74025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000048010203000e0101010201ff0000000000000000000000000000000000000000006bbc40579ad1bbd243895ca0acb086bb6300d6367130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c000000000000000000000000000000000000000000000000" + } + } + } + } +} diff --git a/test/AccessManager.t.sol b/test/v1/AccessManager.t.sol similarity index 88% rename from test/AccessManager.t.sol rename to test/v1/AccessManager.t.sol index d40d52f..ec13c8c 100644 --- a/test/AccessManager.t.sol +++ b/test/v1/AccessManager.t.sol @@ -12,18 +12,18 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/U import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; -import {GearingTokenWithERC20} from "contracts/tokens/GearingTokenWithERC20.sol"; -import {ITermMaxMarket} from "contracts/ITermMaxMarket.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {MarketConfig, FeeConfig, MarketInitialParams} from "contracts/storage/TermMaxStorage.sol"; -import {IOwnable, IPausable, AccessManager} from "contracts/access/AccessManager.sol"; -import {ITermMaxRouter, TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import {IOracle} from "contracts/oracle/IOracle.sol"; -import {ITermMaxVault, TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {Constants} from "contracts/lib/Constants.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {GearingTokenWithERC20} from "contracts/v1/tokens/GearingTokenWithERC20.sol"; +import {ITermMaxMarket} from "contracts/v1/ITermMaxMarket.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {MarketConfig, FeeConfig, MarketInitialParams} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IOwnable, IPausable, AccessManager} from "contracts/v1/access/AccessManager.sol"; +import {ITermMaxRouter, TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {ITermMaxVault, TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; contract AccessManagerTest is Test { using JSONLoader for *; @@ -462,9 +462,7 @@ contract AccessManagerTest is Test { IOracle.Oracle memory oracle = IOracle.Oracle({ aggregator: AggregatorV3Interface(address(new MockPriceFeed(sender))), backupAggregator: AggregatorV3Interface(address(new MockPriceFeed(sender))), - heartbeat: 3600, - backupHeartbeat: 7200, - maxPrice: 1e8 + heartbeat: 3600 }); // Test that non-oracle role cannot submit pending oracle @@ -498,53 +496,6 @@ contract AccessManagerTest is Test { vm.stopPrank(); } - function testRevokePendingOracle() public { - address asset = address(res.collateral); - IOracle.Oracle memory oracle = IOracle.Oracle({ - aggregator: AggregatorV3Interface(address(new MockPriceFeed(sender))), - backupAggregator: AggregatorV3Interface(address(new MockPriceFeed(sender))), - heartbeat: 3600, - backupHeartbeat: 7200, - maxPrice: 1e8 - }); - - // Submit a pending oracle - vm.startPrank(deployer); - manager.submitPendingOracle(IOracle(address(res.oracle)), asset, oracle); - vm.stopPrank(); - - // Test that non-oracle role cannot revoke pending oracle - vm.startPrank(sender); - vm.expectRevert( - abi.encodeWithSelector( - IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.ORACLE_ROLE() - ) - ); - manager.revokePendingOracle(IOracle(address(res.oracle)), asset); - vm.stopPrank(); - - // Test that oracle role can revoke pending oracle - vm.startPrank(deployer); - - // We'll capture the event to verify that revocation happened - vm.expectEmit(true, true, true, true); - // Define the expected event - emit RevokePendingOracle(asset); - - // Call the revoke function - manager.revokePendingOracle(IOracle(address(res.oracle)), asset); - - // Try to accept the oracle after revocation, which should fail - // since there's no longer a pending oracle - vm.expectRevert(); // Should revert with NoPendingValue error - IOracle(address(res.oracle)).acceptPendingOracle(asset); - - vm.stopPrank(); - } - - // Define the event to match OracleAggregator's event - event RevokePendingOracle(address indexed asset); - function testUpdateGtConfig() public { bytes memory configData = abi.encode(1234); diff --git a/test/Factory.t.sol b/test/v1/Factory.t.sol similarity index 93% rename from test/Factory.t.sol rename to test/v1/Factory.t.sol index 700cf46..e467f08 100644 --- a/test/Factory.t.sol +++ b/test/v1/Factory.t.sol @@ -6,16 +6,16 @@ import {console} from "forge-std/console.sol"; import {DeployUtils} from "./utils/DeployUtils.sol"; import {JSONLoader} from "./utils/JSONLoader.sol"; -import {ITermMaxMarket, TermMaxMarket, Constants, MarketErrors} from "contracts/TermMaxMarket.sol"; -import {MockERC20, ERC20} from "contracts/test/MockERC20.sol"; - -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {IMintableERC20} from "contracts/tokens/MintableERC20.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {GearingTokenWithERC20} from "contracts/tokens/GearingTokenWithERC20.sol"; -import {ITermMaxFactory, TermMaxFactory, FactoryErrors, FactoryEvents} from "contracts/factory/TermMaxFactory.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/oracle/OracleAggregator.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {ITermMaxMarket, TermMaxMarket, Constants, MarketErrors} from "contracts/v1/TermMaxMarket.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; + +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IMintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import {GearingTokenWithERC20} from "contracts/v1/tokens/GearingTokenWithERC20.sol"; +import {ITermMaxFactory, TermMaxFactory, FactoryErrors, FactoryEvents} from "contracts/v1/factory/TermMaxFactory.sol"; +import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/v1/oracle/OracleAggregator.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; contract FactoryTest is Test { address deployer = vm.randomAddress(); diff --git a/test/Faucet.t.sol b/test/v1/Faucet.t.sol similarity index 97% rename from test/Faucet.t.sol rename to test/v1/Faucet.t.sol index 9e9f9e7..cc2ac26 100644 --- a/test/Faucet.t.sol +++ b/test/v1/Faucet.t.sol @@ -2,9 +2,9 @@ pragma solidity ^0.8.27; import "forge-std/Test.sol"; -import {Faucet} from "../contracts/test/testnet/Faucet.sol"; -import {FaucetERC20} from "../contracts/test/testnet/FaucetERC20.sol"; -import {MockPriceFeed} from "../contracts/test/MockPriceFeed.sol"; +import {Faucet} from "contracts/v1/test/testnet/Faucet.sol"; +import {FaucetERC20} from "contracts/v1/test/testnet/FaucetERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; contract FaucetTest is Test { diff --git a/test/FuzzActions.t.sol b/test/v1/FuzzActions.t.sol similarity index 87% rename from test/FuzzActions.t.sol rename to test/v1/FuzzActions.t.sol index be91756..0ff8547 100644 --- a/test/FuzzActions.t.sol +++ b/test/v1/FuzzActions.t.sol @@ -3,28 +3,28 @@ pragma solidity ^0.8.27; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import {ITermMaxRouter} from "contracts/router/ITermMaxRouter.sol"; -import {TermMaxMarket, Constants, SafeCast} from "contracts/TermMaxMarket.sol"; -import {TermMaxOrder, OrderConfig, ISwapCallback} from "contracts/TermMaxOrder.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockOrder} from "contracts/test/MockOrder.sol"; -import {IMintableERC20, MintableERC20} from "contracts/tokens/MintableERC20.sol"; -import {SwapAdapter} from "contracts/test/testnet/SwapAdapter.sol"; -import {IOracle, OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; -import {IOrderManager, OrderManager} from "contracts/vault/OrderManager.sol"; -import {ITermMaxVault, TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultFactory, IVaultFactory} from "contracts/factory/VaultFactory.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {TermMaxMarket, Constants, SafeCast} from "contracts/v1/TermMaxMarket.sol"; +import {TermMaxOrder, OrderConfig, ISwapCallback} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockOrder} from "contracts/v1/test/MockOrder.sol"; +import {IMintableERC20, MintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {IOracle, OracleAggregator} from "contracts/v1/oracle/OracleAggregator.sol"; +import {IOrderManager, OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {ITermMaxVault, TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; import { MarketConfig, FeeConfig, MarketInitialParams, LoanConfig, VaultInitialParams -} from "contracts/storage/TermMaxStorage.sol"; +} from "contracts/v1/storage/TermMaxStorage.sol"; import {DeployUtils} from "./utils/DeployUtils.sol"; import {JSONLoader} from "./utils/JSONLoader.sol"; import "forge-std/Test.sol"; diff --git a/test/FuzzSwap.t.sol b/test/v1/FuzzSwap.t.sol similarity index 89% rename from test/FuzzSwap.t.sol rename to test/v1/FuzzSwap.t.sol index 07309c5..ab3a292 100644 --- a/test/FuzzSwap.t.sol +++ b/test/v1/FuzzSwap.t.sol @@ -3,28 +3,28 @@ pragma solidity ^0.8.27; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import {ITermMaxRouter} from "contracts/router/ITermMaxRouter.sol"; -import {TermMaxMarket, Constants, SafeCast} from "contracts/TermMaxMarket.sol"; -import {TermMaxOrder, OrderConfig, ISwapCallback} from "contracts/TermMaxOrder.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockOrder} from "contracts/test/MockOrder.sol"; -import {IMintableERC20, MintableERC20} from "contracts/tokens/MintableERC20.sol"; -import {SwapAdapter} from "contracts/test/testnet/SwapAdapter.sol"; -import {IOracle, OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; -import {IOrderManager, OrderManager} from "contracts/vault/OrderManager.sol"; -import {ITermMaxVault, TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultFactory, IVaultFactory} from "contracts/factory/VaultFactory.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {TermMaxMarket, Constants, SafeCast} from "contracts/v1/TermMaxMarket.sol"; +import {TermMaxOrder, OrderConfig, ISwapCallback} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockOrder} from "contracts/v1/test/MockOrder.sol"; +import {IMintableERC20, MintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {IOracle, OracleAggregator} from "contracts/v1/oracle/OracleAggregator.sol"; +import {IOrderManager, OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {ITermMaxVault, TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; import { MarketConfig, FeeConfig, MarketInitialParams, LoanConfig, VaultInitialParams -} from "contracts/storage/TermMaxStorage.sol"; +} from "contracts/v1/storage/TermMaxStorage.sol"; import {DeployUtils} from "./utils/DeployUtils.sol"; import {JSONLoader} from "./utils/JSONLoader.sol"; import "forge-std/Test.sol"; diff --git a/test/Gt.t.sol b/test/v1/Gt.t.sol similarity index 98% rename from test/Gt.t.sol rename to test/v1/Gt.t.sol index 800a7f0..31127af 100644 --- a/test/Gt.t.sol +++ b/test/v1/Gt.t.sol @@ -11,21 +11,21 @@ import {LoanUtils} from "./utils/LoanUtils.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {Constants} from "contracts/lib/Constants.sol"; -import {ITermMaxMarket, TermMaxMarket, MarketEvents, MarketErrors} from "contracts/TermMaxMarket.sol"; -import {MockFlashLoanReceiver} from "contracts/test/MockFlashLoanReceiver.sol"; -import {MockFlashRepayer} from "contracts/test/MockFlashRepayer.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import {ITermMaxMarket, TermMaxMarket, MarketEvents, MarketErrors} from "contracts/v1/TermMaxMarket.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {MockFlashRepayer} from "contracts/v1/test/MockFlashRepayer.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; import { IGearingToken, AbstractGearingToken, GearingTokenErrors, GearingTokenEvents -} from "contracts/tokens/AbstractGearingToken.sol"; -import {IMintableERC20} from "contracts/tokens/MintableERC20.sol"; -import {ITermMaxFactory, TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/oracle/OracleAggregator.sol"; -import "contracts/storage/TermMaxStorage.sol"; +} from "contracts/v1/tokens/AbstractGearingToken.sol"; +import {IMintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {ITermMaxFactory, TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/v1/oracle/OracleAggregator.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; contract GtTest is Test { using JSONLoader for *; @@ -176,7 +176,7 @@ contract GtTest is Test { vm.prank(deployer); res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 3600, 3600) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 3600) ); res.oracle.acceptPendingOracle(address(res.collateral)); vm.warp(block.timestamp + 3600); @@ -192,7 +192,7 @@ contract GtTest is Test { vm.startPrank(deployer); res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 365 days, 0) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 365 days) ); res.oracle.acceptPendingOracle(address(res.collateral)); vm.stopPrank(); @@ -667,7 +667,7 @@ contract GtTest is Test { vm.prank(deployer); res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 3500, 3500) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 3600) ); vm.prank(deployer); res.oracle.acceptPendingOracle(address(res.collateral)); @@ -679,7 +679,7 @@ contract GtTest is Test { vm.prank(deployer); res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 0) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 365 days) ); vm.prank(deployer); res.oracle.acceptPendingOracle(address(res.collateral)); @@ -1206,7 +1206,7 @@ contract GtTest is Test { vm.prank(deployer); res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 3600, 3600) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 3600) ); res.oracle.acceptPendingOracle(address(res.collateral)); diff --git a/test/LinkedList.t.sol b/test/v1/LinkedList.t.sol similarity index 98% rename from test/LinkedList.t.sol rename to test/v1/LinkedList.t.sol index f265c30..c3f4e01 100644 --- a/test/LinkedList.t.sol +++ b/test/v1/LinkedList.t.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import "forge-std/Test.sol"; -import "contracts/lib/LinkedList.sol"; +import "contracts/v1/lib/LinkedList.sol"; contract LinkedListTest is Test { using LinkedList for mapping(uint64 => uint64); diff --git a/test/Market.t.sol b/test/v1/Market.t.sol similarity index 97% rename from test/Market.t.sol rename to test/v1/Market.t.sol index c48291d..d1d7291 100644 --- a/test/Market.t.sol +++ b/test/v1/Market.t.sol @@ -9,14 +9,14 @@ import {StateChecker} from "./utils/StateChecker.sol"; import {SwapUtils} from "./utils/SwapUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; -import {IFlashLoanReceiver} from "contracts/IFlashLoanReceiver.sol"; -import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents} from "contracts/TermMaxOrder.sol"; -import {MockERC20, ERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockFlashLoanReceiver} from "contracts/test/MockFlashLoanReceiver.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; contract MarketTest is Test { using JSONLoader for *; diff --git a/test/v1/OracleAggregator.t.sol b/test/v1/OracleAggregator.t.sol new file mode 100644 index 0000000..c19d0c6 --- /dev/null +++ b/test/v1/OracleAggregator.t.sol @@ -0,0 +1,227 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Test} from "forge-std/Test.sol"; +import {OracleAggregator} from "contracts/v1/oracle/OracleAggregator.sol"; +import {AggregatorV3Interface, IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; + +contract OracleAggregatorTest is Test { + OracleAggregator public oracleAggregator; + MockPriceFeed public primaryFeed; + MockPriceFeed public backupFeed; + + address public constant OWNER = address(0x1); + address public constant ASSET = address(0x2); + uint256 public constant TIMELOCK = 1 days; + uint32 public constant HEARTBEAT = 1 hours; + + // Price feed configuration + uint8 public constant DECIMALS = 8; + int256 public constant INITIAL_PRICE = 3000e8; + + function setUp() public { + // Deploy mock price feeds + primaryFeed = new MockPriceFeed(OWNER); + backupFeed = new MockPriceFeed(OWNER); + + // Set initial price data + MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + roundId: 1, + answer: INITIAL_PRICE, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 1 + }); + + vm.startPrank(OWNER); + primaryFeed.updateRoundData(roundData); + backupFeed.updateRoundData(roundData); + vm.stopPrank(); + + // Deploy OracleAggregator with owner and timelock + vm.prank(OWNER); + oracleAggregator = new OracleAggregator(OWNER, TIMELOCK); + } + + function test_SubmitPendingOracle() public { + IOracle.Oracle memory oracle = + IOracle.Oracle({aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT}); + + vm.prank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + + (AggregatorV3Interface aggregator, AggregatorV3Interface backupAgg, uint32 heartbeat) = + oracleAggregator.oracles(ASSET); + assertEq(address(aggregator), address(0), "Oracle should not be set yet"); + assertEq(address(backupAgg), address(0), "Backup oracle should not be set yet"); + assertEq(heartbeat, 0, "Heartbeat should not be set yet"); + + (IOracle.Oracle memory pendingOracle, uint64 validAt) = oracleAggregator.pendingOracles(ASSET); + assertEq(address(pendingOracle.aggregator), address(primaryFeed)); + assertEq(address(pendingOracle.backupAggregator), address(backupFeed)); + assertEq(pendingOracle.heartbeat, HEARTBEAT); + assertEq(validAt, block.timestamp + TIMELOCK); + } + + function test_AcceptPendingOracle() public { + // Submit pending oracle + IOracle.Oracle memory oracle = + IOracle.Oracle({aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT}); + + vm.prank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + + // Warp time past timelock + vm.warp(block.timestamp + TIMELOCK + 1); + + oracleAggregator.acceptPendingOracle(ASSET); + + (AggregatorV3Interface aggregator, AggregatorV3Interface backupAgg, uint32 heartbeat) = + oracleAggregator.oracles(ASSET); + assertEq(address(aggregator), address(primaryFeed)); + assertEq(address(backupAgg), address(backupFeed)); + assertEq(heartbeat, HEARTBEAT); + + // Verify pending oracle is cleared + (IOracle.Oracle memory pendingOracle, uint64 validAt) = oracleAggregator.pendingOracles(ASSET); + assertEq(address(pendingOracle.aggregator), address(0)); + assertEq(address(pendingOracle.backupAggregator), address(0)); + assertEq(pendingOracle.heartbeat, 0); + assertEq(validAt, 0); + } + + function test_GetPrice_PrimaryOracle() public { + // Setup oracle + IOracle.Oracle memory oracle = + IOracle.Oracle({aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT}); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Update primary oracle timestamp to match current time + MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + roundId: 1, + answer: INITIAL_PRICE, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 1 + }); + vm.prank(OWNER); + primaryFeed.updateRoundData(roundData); + + // Get price + (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); + assertEq(price, uint256(INITIAL_PRICE)); + assertEq(decimals, DECIMALS); + } + + function test_GetPrice_FallbackToBackup() public { + // Setup oracle + IOracle.Oracle memory oracle = + IOracle.Oracle({aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT}); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Make primary oracle stale + vm.warp(block.timestamp + HEARTBEAT + 1); + + // Update backup price + int256 backupPrice = 3100e8; + MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + roundId: 2, + answer: backupPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + vm.prank(OWNER); + backupFeed.updateRoundData(roundData); + + // Get price - should use backup + (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); + assertEq(price, uint256(backupPrice)); + assertEq(decimals, DECIMALS); + } + + function test_RevertGetPrice_BothOraclesStale() public { + // Setup oracle + IOracle.Oracle memory oracle = + IOracle.Oracle({aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT}); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Make both oracles stale + vm.warp(block.timestamp + HEARTBEAT + 1); + + vm.expectRevert(abi.encodeWithSignature("OracleIsNotWorking(address)", ASSET)); + // Should revert + oracleAggregator.getPrice(ASSET); + } + + function test_RevertSubmitPendingOracle_NotOwner() public { + IOracle.Oracle memory oracle = + IOracle.Oracle({aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT}); + + vm.prank(address(0x3)); + vm.expectRevert(abi.encodeWithSignature("OwnableUnauthorizedAccount(address)", address(0x3))); + oracleAggregator.submitPendingOracle(ASSET, oracle); + } + + function test_RevertAcceptPendingOracle_BeforeTimelock() public { + // Submit pending oracle + IOracle.Oracle memory oracle = + IOracle.Oracle({aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT}); + + vm.prank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.expectRevert(abi.encodeWithSignature("TimelockNotElapsed()")); + // Try to accept before timelock expires + oracleAggregator.acceptPendingOracle(ASSET); + } + + function test_RemoveOracle() public { + // First add an oracle + IOracle.Oracle memory oracle = + IOracle.Oracle({aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT}); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Now remove it by submitting empty oracle + vm.prank(OWNER); + oracleAggregator.submitPendingOracle( + ASSET, + IOracle.Oracle({ + aggregator: AggregatorV3Interface(address(0)), + backupAggregator: AggregatorV3Interface(address(0)), + heartbeat: 0 + }) + ); + + // Verify oracle is removed + (AggregatorV3Interface aggregator, AggregatorV3Interface backupAgg, uint32 heartbeat) = + oracleAggregator.oracles(ASSET); + assertEq(address(aggregator), address(0)); + assertEq(address(backupAgg), address(0)); + assertEq(heartbeat, 0); + } +} diff --git a/test/Order.t.sol b/test/v1/Order.t.sol similarity index 98% rename from test/Order.t.sol rename to test/v1/Order.t.sol index db24350..72e87b1 100644 --- a/test/Order.t.sol +++ b/test/v1/Order.t.sol @@ -11,14 +11,14 @@ import {SwapUtils} from "./utils/SwapUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {IFlashLoanReceiver} from "contracts/IFlashLoanReceiver.sol"; -import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/TermMaxOrder.sol"; -import {MockERC20, ERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockFlashLoanReceiver} from "contracts/test/MockFlashLoanReceiver.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; contract OrderTest is Test { using JSONLoader for *; diff --git a/test/Router.t.sol b/test/v1/Router.t.sol similarity index 92% rename from test/Router.t.sol rename to test/v1/Router.t.sol index ecfe2fd..1fda33e 100644 --- a/test/Router.t.sol +++ b/test/v1/Router.t.sol @@ -11,17 +11,18 @@ import {LoanUtils} from "./utils/LoanUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {IFlashLoanReceiver} from "contracts/IFlashLoanReceiver.sol"; -import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/TermMaxOrder.sol"; -import {MockERC20, ERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockFlashLoanReceiver} from "contracts/test/MockFlashLoanReceiver.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {MockSwapAdapter} from "contracts/test/MockSwapAdapter.sol"; -import {SwapUnit, ISwapAdapter} from "contracts/router/ISwapAdapter.sol"; -import {RouterErrors, RouterEvents, TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import {MockSwapAdapter} from "contracts/v1/test/MockSwapAdapter.sol"; +import {SwapUnit, ISwapAdapter} from "contracts/v1/router/ISwapAdapter.sol"; +import {RouterErrors, RouterEvents, TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import {TermMaxRouter_Repay_Gt} from "contracts/v1/router/TermMaxRouter_Repay_Gt.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; contract RouterTest is Test { using JSONLoader for *; @@ -691,4 +692,36 @@ contract RouterTest is Test { ); vm.stopPrank(); } + + function testRepayGt(bool byDebtToken) public { + TermMaxRouter_Repay_Gt repayer = new TermMaxRouter_Repay_Gt(); + vm.startPrank(deployer); + // upgrade res.router to support repayGt + res.router.upgradeToAndCall(address(repayer), bytes("")); + vm.stopPrank(); + + vm.startPrank(sender); + + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + uint128 maxRepayAmt = 50e8; + TermMaxRouter_Repay_Gt routerRepayer = TermMaxRouter_Repay_Gt(address(res.router)); + IERC20 repayToken = byDebtToken ? IERC20(res.debt) : res.ft; + deal(address(repayToken), sender, maxRepayAmt); + repayToken.approve(address(routerRepayer), maxRepayAmt); + uint128 repayAmt = routerRepayer.repayGt(res.market, gtId, maxRepayAmt, byDebtToken); + assertEq(repayAmt, maxRepayAmt); + assertEq(repayToken.balanceOf(sender), 0); + + maxRepayAmt = 100e8; + deal(address(repayToken), sender, maxRepayAmt); + repayToken.approve(address(routerRepayer), maxRepayAmt); + repayAmt = routerRepayer.repayGt(res.market, gtId, maxRepayAmt, byDebtToken); + + assertEq(repayAmt, 50e8); + assertEq(repayToken.balanceOf(sender), 50e8); + assertEq(res.collateral.balanceOf(sender), collateralAmt); + } } diff --git a/test/TermMaxTestBase.t.sol b/test/v1/TermMaxTestBase.t.sol similarity index 83% rename from test/TermMaxTestBase.t.sol rename to test/v1/TermMaxTestBase.t.sol index 4da5e20..99fb5bc 100644 --- a/test/TermMaxTestBase.t.sol +++ b/test/v1/TermMaxTestBase.t.sol @@ -11,20 +11,20 @@ import {LoanUtils} from "./utils/LoanUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {IFlashLoanReceiver} from "contracts/IFlashLoanReceiver.sol"; -import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/TermMaxOrder.sol"; -import {MockERC20, ERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultErrors, VaultEvents, ITermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {OrderManager} from "contracts/vault/OrderManager.sol"; -import {VaultConstants} from "contracts/lib/VaultConstants.sol"; -import {PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; -import {MockSwapAdapter} from "contracts/test/MockSwapAdapter.sol"; -import {SwapUnit, ISwapAdapter} from "contracts/router/ISwapAdapter.sol"; -import {RouterErrors, RouterEvents, TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultErrors, VaultEvents, ITermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {VaultConstants} from "contracts/v1/lib/VaultConstants.sol"; +import {PendingAddress, PendingUint192} from "contracts/v1/lib/PendingLib.sol"; +import {MockSwapAdapter} from "contracts/v1/test/MockSwapAdapter.sol"; +import {SwapUnit, ISwapAdapter} from "contracts/v1/router/ISwapAdapter.sol"; +import {RouterErrors, RouterEvents, TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; abstract contract TermMaxTestBase is Test { using JSONLoader for *; diff --git a/test/Vault.t.sol b/test/v1/Vault.t.sol similarity index 98% rename from test/Vault.t.sol rename to test/v1/Vault.t.sol index 8905418..695c0d5 100644 --- a/test/Vault.t.sol +++ b/test/v1/Vault.t.sol @@ -11,17 +11,17 @@ import {LoanUtils} from "./utils/LoanUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {IFlashLoanReceiver} from "contracts/IFlashLoanReceiver.sol"; -import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/TermMaxOrder.sol"; -import {MockERC20, ERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultErrors, VaultEvents, ITermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {OrderManager, OrderInfo} from "contracts/vault/OrderManager.sol"; -import {VaultConstants} from "contracts/lib/VaultConstants.sol"; -import {PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultErrors, VaultEvents, ITermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {OrderManager, OrderInfo} from "contracts/v1/vault/OrderManager.sol"; +import {VaultConstants} from "contracts/v1/lib/VaultConstants.sol"; +import {PendingAddress, PendingUint192} from "contracts/v1/lib/PendingLib.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; contract VaultTest is Test { using JSONLoader for *; @@ -1063,7 +1063,7 @@ contract VaultTest is Test { function testFixFindings101() public { vm.prank(curator); vault.createOrder(res.market, maxCapacity, 0, orderConfig.curveCuts); - address lper = vm.randomAddress(); + lper = vm.randomAddress(); res.debt.mint(lper, 100 ether); diff --git a/test/Vault2.t.sol b/test/v1/VaultDust.t.sol similarity index 92% rename from test/Vault2.t.sol rename to test/v1/VaultDust.t.sol index 23ae387..4524d04 100644 --- a/test/Vault2.t.sol +++ b/test/v1/VaultDust.t.sol @@ -11,20 +11,20 @@ import {LoanUtils} from "./utils/LoanUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {IFlashLoanReceiver} from "contracts/IFlashLoanReceiver.sol"; -import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/TermMaxOrder.sol"; -import {MockERC20, ERC20} from "contracts/test/MockERC20.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultErrors, VaultEvents, ITermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {OrderManager, OrderInfo} from "contracts/vault/OrderManager.sol"; -import {VaultConstants} from "contracts/lib/VaultConstants.sol"; -import {PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; -import "contracts/storage/TermMaxStorage.sol"; - -contract VaultTest2 is Test { +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import {ITermMaxMarket, TermMaxMarket, Constants, MarketEvents, MarketErrors} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder, TermMaxOrder, ISwapCallback, OrderEvents, OrderErrors} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultErrors, VaultEvents, ITermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {OrderManager, OrderInfo} from "contracts/v1/vault/OrderManager.sol"; +import {VaultConstants} from "contracts/v1/lib/VaultConstants.sol"; +import {PendingAddress, PendingUint192} from "contracts/v1/lib/PendingLib.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; + +contract VaultDustTest is Test { using JSONLoader for *; using SafeCast for *; diff --git a/test/v1/mainnet-fork/.DS_Store b/test/v1/mainnet-fork/.DS_Store new file mode 100644 index 0000000..87a6f55 Binary files /dev/null and b/test/v1/mainnet-fork/.DS_Store differ diff --git a/test/mainnet-fork/ForkBaseTest.sol b/test/v1/mainnet-fork/ForkBaseTest.sol similarity index 85% rename from test/mainnet-fork/ForkBaseTest.sol rename to test/v1/mainnet-fork/ForkBaseTest.sol index e79e3c1..75e3eb2 100644 --- a/test/mainnet-fork/ForkBaseTest.sol +++ b/test/v1/mainnet-fork/ForkBaseTest.sol @@ -3,29 +3,29 @@ pragma solidity ^0.8.27; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {ITermMaxFactory} from "contracts/factory/ITermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import {ITermMaxRouter} from "contracts/router/ITermMaxRouter.sol"; -import {TermMaxMarket, Constants, SafeCast} from "contracts/TermMaxMarket.sol"; -import {TermMaxOrder, OrderConfig} from "contracts/TermMaxOrder.sol"; -import {MockERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {MockOrder} from "contracts/test/MockOrder.sol"; -import {IMintableERC20, MintableERC20} from "contracts/tokens/MintableERC20.sol"; -import {SwapAdapter} from "contracts/test/testnet/SwapAdapter.sol"; -import {IOracle, OracleAggregator} from "contracts/oracle/OracleAggregator.sol"; -import {IOrderManager, OrderManager} from "contracts/vault/OrderManager.sol"; -import {ITermMaxVault, TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultFactory, IVaultFactory} from "contracts/factory/VaultFactory.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {TermMaxMarket, Constants, SafeCast} from "contracts/v1/TermMaxMarket.sol"; +import {TermMaxOrder, OrderConfig} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockOrder} from "contracts/v1/test/MockOrder.sol"; +import {IMintableERC20, MintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {IOracle, OracleAggregator} from "contracts/v1/oracle/OracleAggregator.sol"; +import {IOrderManager, OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {ITermMaxVault, TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; import { MarketConfig, FeeConfig, MarketInitialParams, LoanConfig, VaultInitialParams -} from "contracts/storage/TermMaxStorage.sol"; -import {JSONLoader} from "test/utils/JSONLoader.sol"; +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {JSONLoader} from "../utils/JSONLoader.sol"; import "forge-std/Test.sol"; abstract contract ForkBaseTest is Test { diff --git a/test/mainnet-fork/GtBaseTest.t.sol b/test/v1/mainnet-fork/GtBaseTest.t.sol similarity index 82% rename from test/mainnet-fork/GtBaseTest.t.sol rename to test/v1/mainnet-fork/GtBaseTest.t.sol index dfb8acf..c6ff964 100644 --- a/test/mainnet-fork/GtBaseTest.t.sol +++ b/test/v1/mainnet-fork/GtBaseTest.t.sol @@ -8,24 +8,29 @@ import {StateChecker} from "../utils/StateChecker.sol"; import {SwapUtils} from "../utils/SwapUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {Constants} from "contracts/lib/Constants.sol"; -import {ITermMaxMarket, TermMaxMarket, MarketEvents} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {IGearingToken, AbstractGearingToken, GearingTokenConstants} from "contracts/tokens/AbstractGearingToken.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/oracle/OracleAggregator.sol"; -import {TermMaxRouter, ISwapAdapter, ITermMaxRouter, SwapUnit, RouterErrors} from "contracts/router/TermMaxRouter.sol"; -import {UniswapV3Adapter, ERC20SwapAdapter} from "contracts/router/swapAdapters/UniswapV3Adapter.sol"; -import {PendleSwapV3Adapter} from "contracts/router/swapAdapters/PendleSwapV3Adapter.sol"; -import {OdosV2Adapter, IOdosRouterV2} from "contracts/router/swapAdapters/OdosV2Adapter.sol"; -import {ERC4626VaultAdapter} from "contracts/router/swapAdapters/ERC4626VaultAdapter.sol"; -import {TermMaxOrder, ITermMaxOrder} from "contracts/TermMaxOrder.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import {ITermMaxMarket, TermMaxMarket, MarketEvents} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import { + IGearingToken, AbstractGearingToken, GearingTokenConstants +} from "contracts/v1/tokens/AbstractGearingToken.sol"; +import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/v1/oracle/OracleAggregator.sol"; +import { + TermMaxRouter, ISwapAdapter, ITermMaxRouter, SwapUnit, RouterErrors +} from "contracts/v1/router/TermMaxRouter.sol"; +import {UniswapV3AdapterV2, ERC20SwapAdapterV2} from "contracts/v1/router/specAdapters/UniswapV3AdapterV2.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v1/router/specAdapters/PendleSwapV3AdapterV2.sol"; +import {OdosV2AdapterV2, IOdosRouterV2} from "contracts/v1/router/specAdapters/OdosV2AdapterV2.sol"; +import {ERC4626VaultAdapterV2} from "contracts/v1/router/specAdapters/ERC4626VaultAdapterV2.sol"; +import {TermMaxOrder, ITermMaxOrder} from "contracts/v1/TermMaxOrder.sol"; import {ForkBaseTest} from "./ForkBaseTest.sol"; -import {RouterEvents} from "contracts/events/RouterEvents.sol"; -import {MockFlashLoanReceiver} from "contracts/test/MockFlashLoanReceiver.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {RouterEvents} from "contracts/v1/events/RouterEvents.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; abstract contract GtBaseTest is ForkBaseTest { enum TokenType { @@ -88,10 +93,10 @@ abstract contract GtBaseTest is ForkBaseTest { res.debtPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); res.oracle.submitPendingOracle( address(res.marketInitialParams.collateral), - IOracle.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 0, 0, 0) + IOracle.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 365 days) ); res.oracle.submitPendingOracle( - address(res.marketInitialParams.debtToken), IOracle.Oracle(res.debtPriceFeed, res.debtPriceFeed, 0, 0, 0) + address(res.marketInitialParams.debtToken), IOracle.Oracle(res.debtPriceFeed, res.debtPriceFeed, 365 days) ); res.oracle.acceptPendingOracle(address(res.marketInitialParams.collateral)); @@ -126,12 +131,14 @@ abstract contract GtBaseTest is ForkBaseTest { res.market.createOrder(res.maker, res.maxXtReserve, ISwapCallback(address(0)), res.orderConfig.curveCuts); res.swapAdapters.uniswapAdapter = - address(new UniswapV3Adapter(vm.parseJsonAddress(jsonData, ".routers.uniswapRouter"))); + address(new UniswapV3AdapterV2(vm.parseJsonAddress(jsonData, ".routers.uniswapRouter"))); res.swapAdapters.pendleAdapter = - address(new PendleSwapV3Adapter(vm.parseJsonAddress(jsonData, ".routers.pendleRouter"))); - res.swapAdapters.odosAdapter = address(new OdosV2Adapter(vm.parseJsonAddress(jsonData, ".routers.odosRouter"))); - res.swapAdapters.vaultAdapter = address(new ERC4626VaultAdapter()); + address(new PendleSwapV3AdapterV2(vm.parseJsonAddress(jsonData, ".routers.pendleRouter"))); + res.swapAdapters.odosAdapter = + address(new OdosV2AdapterV2(vm.parseJsonAddress(jsonData, ".routers.odosRouter"))); + res.swapAdapters.vaultAdapter = address(new ERC4626VaultAdapterV2()); res.router = deployRouter(res.marketInitialParams.admin); + vm.label(address(res.router), "TermMaxRouter"); res.router.setAdapterWhitelist(res.swapAdapters.uniswapAdapter, true); res.router.setAdapterWhitelist(res.swapAdapters.pendleAdapter, true); res.router.setAdapterWhitelist(res.swapAdapters.odosAdapter, true); @@ -215,6 +222,12 @@ abstract contract GtBaseTest is ForkBaseTest { uint128 tokenAmtIn, SwapUnit[] memory units ) internal returns (uint256 gtId) { + vm.startPrank(Ownable(address(res.router)).owner()); + for (uint256 i = 0; i < units.length; i++) { + res.router.setAdapterWhitelist(units[i].adapter, true); + } + vm.stopPrank(); + vm.startPrank(taker); deal(taker, 1e8); deal(address(res.debtToken), taker, xtAmtIn); @@ -255,6 +268,13 @@ abstract contract GtBaseTest is ForkBaseTest { uint128 tokenAmtIn, SwapUnit[] memory units ) internal returns (uint256 gtId) { + vm.label(taker, "Taker"); + vm.startPrank(Ownable(address(res.router)).owner()); + for (uint256 i = 0; i < units.length; i++) { + res.router.setAdapterWhitelist(units[i].adapter, true); + } + vm.stopPrank(); + vm.startPrank(taker); deal(taker, 1e8); @@ -297,8 +317,20 @@ abstract contract GtBaseTest is ForkBaseTest { } function _testFlashRepay(GtTestRes memory res, uint256 gtId, address taker, SwapUnit[] memory units) internal { + vm.startPrank(Ownable(address(res.router)).owner()); + for (uint256 i = 0; i < units.length; i++) { + res.router.setAdapterWhitelist(units[i].adapter, true); + } + vm.stopPrank(); + deal(taker, 1e18); + vm.startPrank(Ownable(address(res.router)).owner()); + for (uint256 i = 0; i < units.length; i++) { + res.router.setAdapterWhitelist(units[i].adapter, true); + } + vm.stopPrank(); + vm.startPrank(taker); res.gt.approve(address(res.router), gtId); @@ -320,6 +352,12 @@ abstract contract GtBaseTest is ForkBaseTest { } function _testFlashRepayByFt(GtTestRes memory res, uint256 gtId, address taker, SwapUnit[] memory units) internal { + vm.startPrank(Ownable(address(res.router)).owner()); + for (uint256 i = 0; i < units.length; i++) { + res.router.setAdapterWhitelist(units[i].adapter, true); + } + vm.stopPrank(); + deal(taker, 1e18); vm.startPrank(taker); diff --git a/test/mainnet-fork/MarketBaseTest.t.sol b/test/v1/mainnet-fork/MarketBaseTest.t.sol similarity index 87% rename from test/mainnet-fork/MarketBaseTest.t.sol rename to test/v1/mainnet-fork/MarketBaseTest.t.sol index c982ee0..2c624ed 100644 --- a/test/mainnet-fork/MarketBaseTest.t.sol +++ b/test/v1/mainnet-fork/MarketBaseTest.t.sol @@ -8,23 +8,25 @@ import {StateChecker} from "../utils/StateChecker.sol"; import {SwapUtils} from "../utils/SwapUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {Constants} from "contracts/lib/Constants.sol"; -import {ITermMaxMarket, TermMaxMarket, MarketEvents, SafeCast} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {IGearingToken, AbstractGearingToken} from "contracts/tokens/AbstractGearingToken.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/oracle/OracleAggregator.sol"; -import {TermMaxRouter, ISwapAdapter, ITermMaxRouter, SwapUnit, RouterErrors} from "contracts/router/TermMaxRouter.sol"; -import {UniswapV3Adapter, ERC20SwapAdapter} from "contracts/router/swapAdapters/UniswapV3Adapter.sol"; -import {PendleSwapV3Adapter} from "contracts/router/swapAdapters/PendleSwapV3Adapter.sol"; -import {OdosV2Adapter, IOdosRouterV2} from "contracts/router/swapAdapters/OdosV2Adapter.sol"; -import {TermMaxOrder, ITermMaxOrder} from "contracts/TermMaxOrder.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import {ITermMaxMarket, TermMaxMarket, MarketEvents, SafeCast} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IGearingToken, AbstractGearingToken} from "contracts/v1/tokens/AbstractGearingToken.sol"; +import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/v1/oracle/OracleAggregator.sol"; +import { + TermMaxRouter, ISwapAdapter, ITermMaxRouter, SwapUnit, RouterErrors +} from "contracts/v1/router/TermMaxRouter.sol"; +import {UniswapV3Adapter, ERC20SwapAdapter} from "contracts/v1/router/swapAdapters/UniswapV3Adapter.sol"; +import {PendleSwapV3Adapter} from "contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol"; +import {OdosV2Adapter, IOdosRouterV2} from "contracts/v1/router/swapAdapters/OdosV2Adapter.sol"; +import {TermMaxOrder, ITermMaxOrder} from "contracts/v1/TermMaxOrder.sol"; import {ForkBaseTest} from "./ForkBaseTest.sol"; -import {RouterEvents} from "contracts/events/RouterEvents.sol"; -import {MockFlashLoanReceiver} from "contracts/test/MockFlashLoanReceiver.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {RouterEvents} from "contracts/v1/events/RouterEvents.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; abstract contract MarketBaseTest is ForkBaseTest { using SafeCast for *; @@ -66,10 +68,10 @@ abstract contract MarketBaseTest is ForkBaseTest { res.debtPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); res.oracle.submitPendingOracle( address(res.marketInitialParams.collateral), - IOracle.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 0, 0, 0) + IOracle.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 365 days) ); res.oracle.submitPendingOracle( - address(res.marketInitialParams.debtToken), IOracle.Oracle(res.debtPriceFeed, res.debtPriceFeed, 0, 0, 0) + address(res.marketInitialParams.debtToken), IOracle.Oracle(res.debtPriceFeed, res.debtPriceFeed, 365 days) ); res.oracle.acceptPendingOracle(address(res.marketInitialParams.collateral)); res.oracle.acceptPendingOracle(address(res.marketInitialParams.debtToken)); diff --git a/test/mainnet-fork/VaultBaseTest.t.sol b/test/v1/mainnet-fork/VaultBaseTest.t.sol similarity index 85% rename from test/mainnet-fork/VaultBaseTest.t.sol rename to test/v1/mainnet-fork/VaultBaseTest.t.sol index e63463b..5a696da 100644 --- a/test/mainnet-fork/VaultBaseTest.t.sol +++ b/test/v1/mainnet-fork/VaultBaseTest.t.sol @@ -8,28 +8,30 @@ import {StateChecker} from "../utils/StateChecker.sol"; import {SwapUtils} from "../utils/SwapUtils.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; -import {TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {Constants} from "contracts/lib/Constants.sol"; -import {ITermMaxMarket, TermMaxMarket, MarketEvents} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder} from "contracts/ITermMaxOrder.sol"; -import {IMintableERC20} from "contracts/tokens/IMintableERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {IGearingToken, AbstractGearingToken} from "contracts/tokens/AbstractGearingToken.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/oracle/OracleAggregator.sol"; -import {TermMaxRouter, ISwapAdapter, ITermMaxRouter, SwapUnit, RouterErrors} from "contracts/router/TermMaxRouter.sol"; -import {UniswapV3Adapter, ERC20SwapAdapter} from "contracts/router/swapAdapters/UniswapV3Adapter.sol"; -import {PendleSwapV3Adapter} from "contracts/router/swapAdapters/PendleSwapV3Adapter.sol"; -import {OdosV2Adapter, IOdosRouterV2} from "contracts/router/swapAdapters/OdosV2Adapter.sol"; -import {TermMaxOrder, ITermMaxOrder} from "contracts/TermMaxOrder.sol"; +import {TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import {ITermMaxMarket, TermMaxMarket, MarketEvents} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IGearingToken, AbstractGearingToken} from "contracts/v1/tokens/AbstractGearingToken.sol"; +import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/v1/oracle/OracleAggregator.sol"; +import { + TermMaxRouter, ISwapAdapter, ITermMaxRouter, SwapUnit, RouterErrors +} from "contracts/v1/router/TermMaxRouter.sol"; +import {UniswapV3Adapter, ERC20SwapAdapter} from "contracts/v1/router/swapAdapters/UniswapV3Adapter.sol"; +import {PendleSwapV3Adapter} from "contracts/v1/router/swapAdapters/PendleSwapV3Adapter.sol"; +import {OdosV2Adapter, IOdosRouterV2} from "contracts/v1/router/swapAdapters/OdosV2Adapter.sol"; +import {TermMaxOrder, ITermMaxOrder} from "contracts/v1/TermMaxOrder.sol"; import {ForkBaseTest} from "./ForkBaseTest.sol"; -import {RouterEvents} from "contracts/events/RouterEvents.sol"; -import {MockFlashLoanReceiver} from "contracts/test/MockFlashLoanReceiver.sol"; -import {TermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {VaultErrors, VaultEvents, ITermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {OrderManager} from "contracts/vault/OrderManager.sol"; -import {VaultConstants} from "contracts/lib/VaultConstants.sol"; -import {PendingAddress, PendingUint192} from "contracts/lib/PendingLib.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {RouterEvents} from "contracts/v1/events/RouterEvents.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {TermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {VaultErrors, VaultEvents, ITermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {VaultConstants} from "contracts/v1/lib/VaultConstants.sol"; +import {PendingAddress, PendingUint192} from "contracts/v1/lib/PendingLib.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; abstract contract VaultBaseTest is ForkBaseTest { struct VaultTestRes { @@ -74,11 +76,10 @@ abstract contract VaultBaseTest is ForkBaseTest { res.debtPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); res.oracle.submitPendingOracle( address(res.marketInitialParams.collateral), - IOracle.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 365 days, 365 days, 0) + IOracle.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 365 days) ); res.oracle.submitPendingOracle( - address(res.marketInitialParams.debtToken), - IOracle.Oracle(res.debtPriceFeed, res.debtPriceFeed, 365 days, 365 days, 0) + address(res.marketInitialParams.debtToken), IOracle.Oracle(res.debtPriceFeed, res.debtPriceFeed, 365 days) ); res.oracle.acceptPendingOracle(address(res.marketInitialParams.collateral)); res.oracle.acceptPendingOracle(address(res.marketInitialParams.debtToken)); diff --git a/test/v1/mainnet-fork/mainnet/ForkGt.t.sol b/test/v1/mainnet-fork/mainnet/ForkGt.t.sol new file mode 100644 index 0000000..b3bdf4d --- /dev/null +++ b/test/v1/mainnet-fork/mainnet/ForkGt.t.sol @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "../GtBaseTest.t.sol"; + +contract ForkGtV1 is GtBaseTest { + string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); + string DATA_PATH = string.concat(vm.projectRoot(), "/test/testdata/fork/bsc.json"); + + function _getForkRpcUrl() internal view override returns (string memory) { + return MAINNET_RPC_URL; + } + + function _getDataPath() internal view override returns (string memory) { + return DATA_PATH; + } + + function _finishSetup() internal override {} + + function testBorrow() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + GtTestRes memory res = _initializeGtTestRes(tokenPair); + uint256 collateralAmt = res.orderInitialAmount / 10; + uint128 borrowAmt = uint128(res.orderInitialAmount / 30); + uint128 maxDebtAmt = uint128(res.orderInitialAmount / 20); + _testBorrow(res, collateralAmt, borrowAmt, maxDebtAmt); + } + } + + function testLeverageFromXt() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + GtTestRes memory res = _initializeGtTestRes(tokenPair); + + address taker = vm.randomAddress(); + + _testLeverageFromXt(res, taker, res.swapData.debtAmt, res.swapData.swapAmtIn, res.swapData.leverageUnits); + } + } + + function testFlashRepay() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + GtTestRes memory res = _initializeGtTestRes(tokenPair); + + address taker = vm.randomAddress(); + uint256 gtId = _testLeverageFromXt( + res, taker, res.swapData.debtAmt, res.swapData.swapAmtIn, res.swapData.leverageUnits + ); + _testFlashRepay(res, gtId, taker, res.swapData.flashRepayUnits); + } + } + + function testFlashRepayByFt() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + GtTestRes memory res = _initializeGtTestRes(tokenPair); + + address taker = vm.randomAddress(); + uint256 gtId = _testLeverageFromXt( + res, taker, res.swapData.debtAmt, res.swapData.swapAmtIn, res.swapData.leverageUnits + ); + _testFlashRepayByFt(res, gtId, taker, res.swapData.flashRepayUnits); + } + } + + function testLiquidate() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + GtTestRes memory res = _initializeGtTestRes(tokenPair); + + address liquidator = vm.randomAddress(); + address borrower = vm.randomAddress(); + + uint256 collateralAmt = res.orderInitialAmount / 10; + uint128 borrowAmt = uint128(res.orderInitialAmount / 20); + + uint256 gtId = _fastLoan(res, borrower, borrowAmt, collateralAmt); + _updateCollateralPrice(res, 1); + + _testLiquidate(res, liquidator, gtId); + } + } +} diff --git a/test/mainnet-fork/mainnet/ForkMarket.t.sol b/test/v1/mainnet-fork/mainnet/ForkMarket.t.sol similarity index 100% rename from test/mainnet-fork/mainnet/ForkMarket.t.sol rename to test/v1/mainnet-fork/mainnet/ForkMarket.t.sol diff --git a/test/mainnet-fork/mainnet/ForkPriceFeed.t.sol b/test/v1/mainnet-fork/mainnet/ForkPriceFeed.t.sol similarity index 84% rename from test/mainnet-fork/mainnet/ForkPriceFeed.t.sol rename to test/v1/mainnet-fork/mainnet/ForkPriceFeed.t.sol index 7a40ac2..613e570 100644 --- a/test/mainnet-fork/mainnet/ForkPriceFeed.t.sol +++ b/test/v1/mainnet-fork/mainnet/ForkPriceFeed.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.27; import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; import "../ForkBaseTest.sol"; -import {TermMaxPriceFeedFactory} from "contracts/factory/TermMaxPriceFeedFactory.sol"; +import {PriceFeedFactory} from "contracts/v1/extensions/PriceFeedFactory.sol"; contract ForkPriceFeed is ForkBaseTest { string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); @@ -20,17 +20,15 @@ contract ForkPriceFeed is ForkBaseTest { function _finishSetup() internal override {} function testPriceFeed() public { - TermMaxPriceFeedFactory priceFeedFactory = new TermMaxPriceFeedFactory(); + PriceFeedFactory priceFeedFactory = new PriceFeedFactory(); address pendlePYLpOracle = 0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2; address pufferEthOracle; { address pufferEthToEth = 0x76A495b0bFfb53ef3F0E94ef0763e03cE410835C; address ethToUsd = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419; - address pufEth = 0xD9A442856C234a39a81a089C06451EBAa4306a72; AggregatorV3Interface pufferEthFeed = - AggregatorV3Interface(priceFeedFactory.createPriceFeedConverter(pufferEthToEth, ethToUsd, pufEth)); + AggregatorV3Interface(priceFeedFactory.createPriceFeedConverter(pufferEthToEth, ethToUsd)); (, int256 answer,,,) = pufferEthFeed.latestRoundData(); - console.log("pufferEth price feed description", pufferEthFeed.description()); console.log("pufferEth price feed address", address(pufferEthFeed)); console.log("pufferEth last answer", answer); pufferEthOracle = address(pufferEthFeed); @@ -44,7 +42,6 @@ contract ForkPriceFeed is ForkBaseTest { priceFeedFactory.createPTWithPriceFeed(pendlePYLpOracle, pt_market, 900, susdeToUsd) ); (, int256 answer,,,) = ptFeed.latestRoundData(); - console.log("pt_sUsde_29MAY2025 price feed description", ptFeed.description()); console.log("pt_sUsde_29MAY2025 price feed address", address(ptFeed)); console.log("pt_sUsde_29MAY2025 last answer", answer); } @@ -55,7 +52,6 @@ contract ForkPriceFeed is ForkBaseTest { AggregatorV3Interface usdcPlusFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdcToUsd, USUALUSDCPlusVault)); (, int256 answer,,,) = usdcPlusFeed.latestRoundData(); - console.log("USUALUSDC+ price feed description", usdcPlusFeed.description()); console.log("USUALUSDC+ price feed address", address(usdcPlusFeed)); console.log("USUALUSDC+ last answer", answer); } @@ -66,7 +62,6 @@ contract ForkPriceFeed is ForkBaseTest { AggregatorV3Interface wethFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(wethToUsd, MCwETHVault)); (, int256 answer,,,) = wethFeed.latestRoundData(); - console.log("MCwETH price feed description", wethFeed.description()); console.log("MCwETH price feed address", address(wethFeed)); console.log("MCwETH last answer", answer); } @@ -79,7 +74,6 @@ contract ForkPriceFeed is ForkBaseTest { ) ); (, int256 answer,,,) = ptFeed.latestRoundData(); - console.log("pt_pufETH_26JUN2025 price feed description", ptFeed.description()); console.log("pt_pufETH_26JUN2025 price feed address", address(ptFeed)); console.log("pt_pufETH_26JUN2025 last answer", answer); } @@ -90,7 +84,6 @@ contract ForkPriceFeed is ForkBaseTest { AggregatorV3Interface usdeFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdeToUsd, eUSDeVault)); (, int256 answer,,,) = usdeFeed.latestRoundData(); - console.log("eUSDe price feed description", usdeFeed.description()); console.log("eUSDe price feed address", address(usdeFeed)); console.log("eUSDe last answer", answer); } @@ -104,7 +97,6 @@ contract ForkPriceFeed is ForkBaseTest { ) ); (, int256 answer,,,) = usd0PlusPlusFeed.latestRoundData(); - console.log("PT_USD0PlusPlus_26JUN2025_market price feed description", usd0PlusPlusFeed.description()); console.log("PT_USD0PlusPlus_26JUN2025_market price feed address", address(usd0PlusPlusFeed)); console.log("PT_USD0PlusPlus_26JUN2025_market last answer", answer); } @@ -115,7 +107,6 @@ contract ForkPriceFeed is ForkBaseTest { AggregatorV3Interface usdcFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdcToUsd, upUSDCVault)); (, int256 answer,,,) = usdcFeed.latestRoundData(); - console.log("upUSDC price feed description", usdcFeed.description()); console.log("upUSDC price feed address", address(usdcFeed)); console.log("upUSDC last answer", answer); } @@ -126,7 +117,6 @@ contract ForkPriceFeed is ForkBaseTest { AggregatorV3Interface usualFeed = AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usualToUsd, usualxVault)); (, int256 answer,,,) = usualFeed.latestRoundData(); - console.log("usualx price feed description", usualFeed.description()); console.log("usualx price feed address", address(usualFeed)); console.log("usualx last answer", answer); } diff --git a/test/mainnet-fork/mainnet/ForkVault.t.sol b/test/v1/mainnet-fork/mainnet/ForkVault.t.sol similarity index 100% rename from test/mainnet-fork/mainnet/ForkVault.t.sol rename to test/v1/mainnet-fork/mainnet/ForkVault.t.sol diff --git a/test/utils/DeployUtils.sol b/test/v1/utils/DeployUtils.sol similarity index 86% rename from test/utils/DeployUtils.sol rename to test/v1/utils/DeployUtils.sol index ffdbfb4..548eba6 100644 --- a/test/utils/DeployUtils.sol +++ b/test/v1/utils/DeployUtils.sol @@ -5,21 +5,21 @@ import {console} from "forge-std/Script.sol"; import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import {ITermMaxMarket, TermMaxMarket} from "contracts/TermMaxMarket.sol"; -import {ITermMaxOrder, ISwapCallback, TermMaxOrder} from "contracts/TermMaxOrder.sol"; -import {MockERC20, ERC20} from "contracts/test/MockERC20.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; -import {IMintableERC20, MintableERC20} from "contracts/tokens/MintableERC20.sol"; -import {IGearingToken} from "contracts/tokens/IGearingToken.sol"; -import {ITermMaxFactory, TermMaxFactory} from "contracts/factory/TermMaxFactory.sol"; -import {TermMaxRouter} from "contracts/router/TermMaxRouter.sol"; -import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/oracle/OracleAggregator.sol"; -import {MockOrder} from "contracts/test/MockOrder.sol"; -import {VaultFactory, IVaultFactory} from "contracts/factory/VaultFactory.sol"; -import {OrderManager} from "contracts/vault/OrderManager.sol"; -import {TermMaxVault, ITermMaxVault} from "contracts/vault/TermMaxVault.sol"; -import {AccessManager} from "contracts/access/AccessManager.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import {ITermMaxMarket, TermMaxMarket} from "contracts/v1/TermMaxMarket.sol"; +import {ITermMaxOrder, ISwapCallback, TermMaxOrder} from "contracts/v1/TermMaxOrder.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IMintableERC20, MintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import {ITermMaxFactory, TermMaxFactory} from "contracts/v1/factory/TermMaxFactory.sol"; +import {TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import {IOracle, OracleAggregator, AggregatorV3Interface} from "contracts/v1/oracle/OracleAggregator.sol"; +import {MockOrder} from "contracts/v1/test/MockOrder.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import {OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {TermMaxVault, ITermMaxVault} from "contracts/v1/vault/TermMaxVault.sol"; +import {AccessManager} from "contracts/v1/access/AccessManager.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; library DeployUtils { bytes32 constant GT_ERC20 = keccak256("GearingTokenWithERC20"); @@ -68,11 +68,9 @@ library DeployUtils { res.collateralOracle = new MockPriceFeed(admin); res.oracle = deployOracle(admin, 0); + res.oracle.submitPendingOracle(address(res.debt), IOracle.Oracle(res.debtOracle, res.debtOracle, 365 days)); res.oracle.submitPendingOracle( - address(res.debt), IOracle.Oracle(res.debtOracle, res.debtOracle, 0, 365 days, 0) - ); - res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 365 days, 0) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 365 days) ); res.oracle.acceptPendingOracle(address(res.debt)); @@ -122,11 +120,9 @@ library DeployUtils { res.collateralOracle = new MockPriceFeed(admin); res.oracle = deployOracle(admin, 0); + res.oracle.submitPendingOracle(address(res.debt), IOracle.Oracle(res.debtOracle, res.debtOracle, 365 days)); res.oracle.submitPendingOracle( - address(res.debt), IOracle.Oracle(res.debtOracle, res.debtOracle, 0, 365 days, 0) - ); - res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 365 days, 0) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 365 days) ); res.oracle.acceptPendingOracle(address(res.debt)); res.oracle.acceptPendingOracle(address(res.collateral)); @@ -177,11 +173,9 @@ library DeployUtils { res.collateralOracle = new MockPriceFeed(admin); res.oracle = deployOracle(admin, 0); + res.oracle.submitPendingOracle(address(res.debt), IOracle.Oracle(res.debtOracle, res.debtOracle, 365 days)); res.oracle.submitPendingOracle( - address(res.debt), IOracle.Oracle(res.debtOracle, res.debtOracle, 0, 365 days, 0) - ); - res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 365 days, 0) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 365 days) ); res.oracle.acceptPendingOracle(address(res.debt)); res.oracle.acceptPendingOracle(address(res.collateral)); @@ -226,11 +220,9 @@ library DeployUtils { res.collateralOracle = new MockPriceFeed(admin); res.oracle = deployOracle(admin, 0); + res.oracle.submitPendingOracle(address(res.debt), IOracle.Oracle(res.debtOracle, res.debtOracle, 365 days)); res.oracle.submitPendingOracle( - address(res.debt), IOracle.Oracle(res.debtOracle, res.debtOracle, 0, 365 days, 0) - ); - res.oracle.submitPendingOracle( - address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 0, 365 days, 0) + address(res.collateral), IOracle.Oracle(res.collateralOracle, res.collateralOracle, 365 days) ); res.oracle.acceptPendingOracle(address(res.debt)); res.oracle.acceptPendingOracle(address(res.collateral)); diff --git a/test/utils/JSONLoader.sol b/test/v1/utils/JSONLoader.sol similarity index 98% rename from test/utils/JSONLoader.sol rename to test/v1/utils/JSONLoader.sol index a4c704d..8692ca5 100644 --- a/test/utils/JSONLoader.sol +++ b/test/v1/utils/JSONLoader.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.27; import "forge-std/Test.sol"; import {StateChecker} from "./StateChecker.sol"; -import "contracts/storage/TermMaxStorage.sol"; -import {MockPriceFeed} from "contracts/test/MockPriceFeed.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; import {DeployUtils} from "./DeployUtils.sol"; library JSONLoader { diff --git a/test/utils/LoanUtils.sol b/test/v1/utils/LoanUtils.sol similarity index 98% rename from test/utils/LoanUtils.sol rename to test/v1/utils/LoanUtils.sol index f7578c4..649fb2d 100644 --- a/test/utils/LoanUtils.sol +++ b/test/v1/utils/LoanUtils.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.27; import {console} from "forge-std/Script.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; -import {Constants} from "contracts/lib/Constants.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; import {DeployUtils} from "./DeployUtils.sol"; library LoanUtils { diff --git a/test/utils/StateChecker.sol b/test/v1/utils/StateChecker.sol similarity index 97% rename from test/utils/StateChecker.sol rename to test/v1/utils/StateChecker.sol index df21156..d04ec9d 100644 --- a/test/utils/StateChecker.sol +++ b/test/v1/utils/StateChecker.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.27; import {console} from "forge-std/console.sol"; import {DeployUtils} from "./DeployUtils.sol"; -import "contracts/storage/TermMaxStorage.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; library StateChecker { struct MarketState { diff --git a/test/utils/SwapUtils.sol b/test/v1/utils/SwapUtils.sol similarity index 94% rename from test/utils/SwapUtils.sol rename to test/v1/utils/SwapUtils.sol index 54a2a6b..80e6ef4 100644 --- a/test/utils/SwapUtils.sol +++ b/test/v1/utils/SwapUtils.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.27; import {console} from "forge-std/Script.sol"; import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; -import {Constants} from "contracts/lib/Constants.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; import {DeployUtils} from "./DeployUtils.sol"; library SwapUtils { diff --git a/test/v2/AccessManagerV2.t.sol b/test/v2/AccessManagerV2.t.sol new file mode 100644 index 0000000..176c7c4 --- /dev/null +++ b/test/v2/AccessManagerV2.t.sol @@ -0,0 +1,672 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {console} from "forge-std/console.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; +import {IAccessControl} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; +import {IERC1967} from "@openzeppelin/contracts/interfaces/IERC1967.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import {Ownable2StepUpgradeable} from "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol"; +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {GearingTokenWithERC20} from "contracts/v1/tokens/GearingTokenWithERC20.sol"; +import {ITermMaxMarket} from "contracts/v1/ITermMaxMarket.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {ITermMaxFactory} from "contracts/v1/factory/ITermMaxFactory.sol"; +import {MarketConfig, FeeConfig, MarketInitialParams} from "contracts/v1/storage/TermMaxStorage.sol"; +import {IOwnable, IPausable, AccessManagerV2, AccessManager} from "contracts/v2/access/AccessManagerV2.sol"; +import {TermMaxRouterV2} from "contracts/v2/router/TermMaxRouterV2.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {ITermMaxVault, TermMaxVaultV2} from "contracts/v2/vault/TermMaxVaultV2.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; +import {IOracleV2} from "contracts/v2/oracle/IOracleV2.sol"; +import {VaultInitialParamsV2} from "contracts/v2/storage/TermMaxStorageV2.sol"; + +contract AccessManagerTestV2 is Test { + using JSONLoader for *; + + DeployUtils.Res res; + + OrderConfig orderConfig; + MarketConfig marketConfig; + + address deployer = vm.randomAddress(); + address maker = vm.randomAddress(); + address sender = vm.randomAddress(); + address treasurer = vm.randomAddress(); + string testdata; + AccessManagerV2 manager; + + function setUp() public { + vm.startPrank(deployer); + testdata = vm.readFile(string.concat(vm.projectRoot(), "/test/testdata/testdata.json")); + + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + + marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + orderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".orderConfig"); + + res = DeployUtils.deployMarket(deployer, marketConfig, maxLtv, liquidationLtv); + + res.order = + res.market.createOrder(maker, orderConfig.maxXtReserve, ISwapCallback(address(0)), orderConfig.curveCuts); + + vm.warp(vm.parseUint(vm.parseJsonString(testdata, ".currentTime"))); + + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.dai")); + + uint256 amount = 150e8; + res.debt.mint(deployer, amount); + res.debt.approve(address(res.market), amount); + res.market.mint(deployer, amount); + res.ft.transfer(address(res.order), amount); + res.xt.transfer(address(res.order), amount); + + res.router = DeployUtils.deployRouter(deployer); + + AccessManagerV2 implementation = new AccessManagerV2(); + bytes memory data = abi.encodeCall(AccessManager.initialize, deployer); + address proxy = address(new ERC1967Proxy(address(implementation), data)); + + manager = AccessManagerV2(proxy); + + IOwnable(address(res.factory)).transferOwnership(address(manager)); + IOwnable(address(res.market)).transferOwnership(address(manager)); + IOwnable(address(res.router)).transferOwnership(address(manager)); + IOwnable(address(res.oracle)).transferOwnership(address(manager)); + + manager.acceptOwnership(IOwnable(address(res.factory))); + + manager.acceptOwnership(IOwnable(address(res.market))); + + manager.acceptOwnership(IOwnable(address(res.router))); + + manager.acceptOwnership(IOwnable(address(res.oracle))); + + manager.grantRole(manager.CONFIGURATOR_ROLE(), deployer); + manager.grantRole(manager.PAUSER_ROLE(), deployer); + manager.grantRole(manager.VAULT_ROLE(), deployer); + manager.grantRole(manager.MARKET_ROLE(), deployer); + manager.grantRole(manager.ORACLE_ROLE(), deployer); + + vm.stopPrank(); + } + + function testTransferOwnership() public { + vm.prank(deployer); + manager.transferOwnership(IOwnable(address(res.router)), sender); + vm.prank(sender); + IOwnable(address(res.router)).acceptOwnership(); + assert(res.router.owner() == sender); + } + + function testTransferOwnershipWithoutAuth() public { + vm.prank(sender); + + vm.expectRevert( + abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, sender, uint256(0)) + ); + manager.transferOwnership(IOwnable(address(res.router)), sender); + } + + function testRoleManagement() public { + address newUser = vm.randomAddress(); + + // Test granting roles + vm.startPrank(deployer); + manager.grantRole(manager.PAUSER_ROLE(), newUser); + manager.grantRole(manager.CONFIGURATOR_ROLE(), newUser); + manager.grantRole(manager.VAULT_ROLE(), newUser); + + assertTrue(manager.hasRole(manager.PAUSER_ROLE(), newUser)); + assertTrue(manager.hasRole(manager.CONFIGURATOR_ROLE(), newUser)); + assertTrue(manager.hasRole(manager.VAULT_ROLE(), newUser)); + + // Test revoking roles + manager.revokeRole(manager.PAUSER_ROLE(), newUser); + manager.revokeRole(manager.CONFIGURATOR_ROLE(), newUser); + manager.revokeRole(manager.VAULT_ROLE(), newUser); + + assertFalse(manager.hasRole(manager.PAUSER_ROLE(), newUser)); + assertFalse(manager.hasRole(manager.CONFIGURATOR_ROLE(), newUser)); + assertFalse(manager.hasRole(manager.VAULT_ROLE(), newUser)); + + vm.stopPrank(); + } + + function testRevokeRole() public { + bytes32 pauserRole = manager.PAUSER_ROLE(); + address user = vm.randomAddress(); + + // Grant role first + vm.prank(deployer); + manager.grantRole(pauserRole, user); + + // Revoke role + vm.prank(deployer); + manager.revokeRole(pauserRole, user); + + assertFalse(manager.hasRole(pauserRole, user)); + } + + function testCannotRevokeSelfRole() public { + bytes32 pauserRole = manager.PAUSER_ROLE(); + + // Try to revoke own role + vm.prank(deployer); + vm.expectRevert(abi.encodeWithSignature("AccessControlBadConfirmation()")); + manager.revokeRole(pauserRole, deployer); + } + + function testRenounceRole() public { + bytes32 pauserRole = manager.PAUSER_ROLE(); + address user = vm.randomAddress(); + + // Grant role first + vm.prank(deployer); + manager.grantRole(pauserRole, user); + + // Renounce role + vm.prank(user); + manager.renounceRole(pauserRole, user); + + assertFalse(manager.hasRole(pauserRole, user)); + } + + function testCannotRenounceDefaultAdminRole() public { + bytes32 defaultAdminRole = 0x00; + + vm.prank(deployer); + vm.expectRevert(AccessManager.CannotRevokeDefaultAdminRole.selector); + manager.renounceRole(defaultAdminRole, deployer); + } + + function testPausingFunctionality() public { + address pauser = vm.randomAddress(); + bytes32 pauserRole = manager.PAUSER_ROLE(); + // Grant PAUSER_ROLE to the pauser + vm.prank(deployer); + manager.grantRole(pauserRole, pauser); + + // Test pausing with PAUSER_ROLE + vm.startPrank(pauser); + manager.setSwitch(IPausable(address(res.router)), false); + assertTrue(PausableUpgradeable(address(res.router)).paused()); + + // Test unpausing with PAUSER_ROLE + manager.setSwitch(IPausable(address(res.router)), true); + assertFalse(PausableUpgradeable(address(res.router)).paused()); + vm.stopPrank(); + + // Test pausing without PAUSER_ROLE + address nonPauser = vm.randomAddress(); + vm.startPrank(nonPauser); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, nonPauser, manager.PAUSER_ROLE() + ) + ); + manager.setSwitch(IPausable(address(res.router)), false); + vm.stopPrank(); + } + + function testBatchSetSwitch() public { + // Create vault initialization parameters + VaultInitialParamsV2 memory params = VaultInitialParamsV2({ + admin: address(manager), + curator: address(0), // Will be set through AccessManager + guardian: address(0), // Will be set through AccessManager + timelock: 1 days, + asset: IERC20(address(res.debt)), + maxCapacity: 1000000e18, + name: "Test Vault", + symbol: "tVAULT", + performanceFeeRate: 0.2e8, + minApy: 0, + minIdleFundRate: 0 + }); + + // Deploy vault + res.vault = DeployUtils.deployVault(params); + + address pauser = vm.randomAddress(); + bytes32 pauserRole = manager.PAUSER_ROLE(); + + // Create multiple pausable test entities + IPausable[] memory entities = new IPausable[](2); + entities[0] = IPausable(address(res.router)); + entities[1] = IPausable(address(res.vault)); + + // Grant PAUSER_ROLE to the pauser + vm.prank(deployer); + manager.grantRole(pauserRole, pauser); + + // Test batch pausing with PAUSER_ROLE + vm.startPrank(pauser); + manager.batchSetSwitch(entities, false); + + // Verify all entities are paused + assertTrue(PausableUpgradeable(address(res.router)).paused()); + assertTrue(PausableUpgradeable(address(res.vault)).paused()); + + // Test batch unpausing with PAUSER_ROLE + manager.batchSetSwitch(entities, true); + + // Verify all entities are unpaused + assertFalse(PausableUpgradeable(address(res.router)).paused()); + assertFalse(PausableUpgradeable(address(res.vault)).paused()); + vm.stopPrank(); + + // Test batch pausing without PAUSER_ROLE + address nonPauser = vm.randomAddress(); + vm.startPrank(nonPauser); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, nonPauser, manager.PAUSER_ROLE() + ) + ); + manager.batchSetSwitch(entities, false); + vm.stopPrank(); + } + + function testVaultManagement() public { + address vaultManager = vm.randomAddress(); + address newCurator = vm.randomAddress(); + + // Create vault initialization parameters + VaultInitialParamsV2 memory params = VaultInitialParamsV2({ + admin: address(manager), + curator: address(0), // Will be set through AccessManager + guardian: address(0), // Will be set through AccessManager + timelock: 1 days, + asset: IERC20(address(res.debt)), + maxCapacity: 1000000e18, + name: "Test Vault", + symbol: "tVAULT", + performanceFeeRate: 0.2e8, // 20% + minApy: 0, // 5% minimum APY + minIdleFundRate: 0 // 1% minimum idle fund rate + }); + + // Deploy vault + ITermMaxVault vault = DeployUtils.deployVault(params); + + // Grant VAULT_ROLE to the vault manager + vm.startPrank(deployer); + manager.grantRole(manager.VAULT_ROLE(), vaultManager); + vm.stopPrank(); + + vm.startPrank(vaultManager); + + // Test setting curator + manager.setCuratorForVault(ITermMaxVault(address(vault)), newCurator); + assertEq(ITermMaxVault(address(vault)).curator(), newCurator); + + vm.stopPrank(); + + // Test without VAULT_ROLE + address nonVaultManager = vm.randomAddress(); + vm.startPrank(nonVaultManager); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, nonVaultManager, manager.VAULT_ROLE() + ) + ); + manager.setCuratorForVault(ITermMaxVault(address(vault)), newCurator); + vm.stopPrank(); + + // Test that non-vault role cannot set allocator + address allocator = vm.randomAddress(); + vm.startPrank(allocator); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, allocator, manager.VAULT_ROLE() + ) + ); + manager.setIsAllocatorForVault(ITermMaxVault(address(vault)), allocator, true); + vm.stopPrank(); + + // Test that vault role can set allocator + vm.prank(deployer); + manager.setIsAllocatorForVault(ITermMaxVault(address(vault)), allocator, true); + assertTrue(vault.isAllocator(allocator)); + } + + function testRevokeVaultPendingValues() public { + address vaultManager = vm.randomAddress(); + address newMarket = vm.randomAddress(); + address newGuardian = vm.randomAddress(); + address curator = vm.randomAddress(); + + // Create vault initialization parameters + + VaultInitialParamsV2 memory params = VaultInitialParamsV2({ + admin: address(manager), + curator: curator, + guardian: address(0), + timelock: 1 days, + asset: IERC20(address(res.debt)), + maxCapacity: 1000000e18, + name: "Test Vault", + symbol: "tVAULT", + performanceFeeRate: 0.2e8, // 20% + minApy: 0, + minIdleFundRate: 0 + }); + + // Deploy vault + ITermMaxVault vault = DeployUtils.deployVault(params); + + // Grant VAULT_ROLE to the vault manager and set curator + vm.startPrank(deployer); + manager.grantRole(manager.VAULT_ROLE(), vaultManager); + vm.stopPrank(); + + vm.startPrank(curator); + vault.submitTimelock(2 days); + vault.submitTimelock(1 days); + vault.submitMarket(newMarket, true); + vm.stopPrank(); + + vm.startPrank(vaultManager); + manager.setCuratorForVault(ITermMaxVault(address(vault)), vaultManager); + + // Test revoking pending timelock + manager.revokeVaultPendingTimelock(ITermMaxVault(address(vault))); + assertEq(vault.timelock(), 2 days); // Original timelock + + // Test revoking pending market + manager.revokeVaultPendingMarket(ITermMaxVault(address(vault)), newMarket); + assertTrue(!vault.marketWhitelist(newMarket)); // Market not whitelisted + + // Test revoking pending guardian + manager.submitVaultGuardian(vault, curator); + manager.submitVaultGuardian(vault, newGuardian); + manager.revokeVaultPendingGuardian(ITermMaxVault(address(vault))); + assertEq(vault.guardian(), curator); // Original guardian + + vm.stopPrank(); + + // Test without VAULT_ROLE + address nonVaultManager = vm.randomAddress(); + vm.startPrank(nonVaultManager); + + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, nonVaultManager, manager.VAULT_ROLE() + ) + ); + manager.revokeVaultPendingTimelock(ITermMaxVault(address(vault))); + + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, nonVaultManager, manager.VAULT_ROLE() + ) + ); + manager.revokeVaultPendingMarket(ITermMaxVault(address(vault)), newMarket); + + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, nonVaultManager, manager.VAULT_ROLE() + ) + ); + manager.revokeVaultPendingGuardian(ITermMaxVault(address(vault))); + + vm.stopPrank(); + } + + function testUpgradeSubContract() public { + vm.startPrank(deployer); + + // Deploy a new router implementation + TermMaxRouterV2 routerV2 = new TermMaxRouterV2(); + + // Test upgrade with DEFAULT_ADMIN_ROLE + manager.upgradeSubContract(UUPSUpgradeable(address(res.router)), address(routerV2), ""); + + // Test upgrade without DEFAULT_ADMIN_ROLE + address nonAdmin = vm.randomAddress(); + vm.stopPrank(); + + vm.startPrank(nonAdmin); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, nonAdmin, manager.DEFAULT_ADMIN_ROLE() + ) + ); + manager.upgradeSubContract(UUPSUpgradeable(address(res.router)), address(routerV2), ""); + vm.stopPrank(); + } + + function testSetGtImplement() public { + address newImplement = vm.randomAddress(); + string memory gtImplementName = "TestGT"; + + // Test that non-market role cannot set GT implement + vm.startPrank(sender); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.MARKET_ROLE() + ) + ); + manager.setGtImplement(ITermMaxFactory(address(res.factory)), gtImplementName, newImplement); + vm.stopPrank(); + + // Test that market role can set GT implement + vm.startPrank(deployer); + manager.setGtImplement(ITermMaxFactory(address(res.factory)), gtImplementName, newImplement); + assertEq(res.factory.gtImplements(keccak256(abi.encodePacked(gtImplementName))), newImplement); + vm.stopPrank(); + } + + function testCreateMarket() public { + bytes32 gtKey = keccak256("TestGT"); + MarketInitialParams memory params = MarketInitialParams({ + collateral: address(res.collateral), + debtToken: IERC20Metadata(address(res.debt)), + admin: address(manager), + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: LoanConfig({oracle: IOracle(address(0)), liquidatable: true, liquidationLtv: 0.9e8, maxLtv: 0.85e8}), + gtInitalParams: abi.encode(1e18), + tokenName: "Test Market", + tokenSymbol: "Test" + }); + uint256 salt = 123; + + // Test that non-market role cannot create market + vm.startPrank(sender); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.MARKET_ROLE() + ) + ); + manager.createMarket(ITermMaxFactory(address(res.factory)), gtKey, params, salt); + vm.stopPrank(); + + // Test that market role can create market + vm.startPrank(deployer); + address newMarket = manager.createMarket( + ITermMaxFactory(address(res.factory)), keccak256("GearingTokenWithERC20"), params, salt + ); + assertTrue(newMarket != address(0)); + vm.stopPrank(); + } + + function testSetAdapterWhitelist() public { + address adapter = vm.randomAddress(); + + // Test that non-market role cannot set adapter whitelist + vm.startPrank(sender); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.MARKET_ROLE() + ) + ); + manager.setAdapterWhitelist(ITermMaxRouter(address(res.router)), adapter, true); + vm.stopPrank(); + + // Test that market role can set adapter whitelist + vm.startPrank(deployer); + manager.setAdapterWhitelist(ITermMaxRouter(address(res.router)), adapter, true); + assertTrue(res.router.adapterWhitelist(adapter)); + + // Test setting adapter whitelist to false + manager.setAdapterWhitelist(ITermMaxRouter(address(res.router)), adapter, false); + assertFalse(res.router.adapterWhitelist(adapter)); + vm.stopPrank(); + } + + function testSubmitAndAcceptPendingOracle() public { + address asset = address(res.collateral); + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: AggregatorV3Interface(address(new MockPriceFeed(sender))), + backupAggregator: AggregatorV3Interface(address(new MockPriceFeed(sender))), + heartbeat: 3600, + backupHeartbeat: 7200, + maxPrice: 1e8, + minPrice: 0 + }); + + // Test that non-oracle role cannot submit pending oracle + vm.startPrank(sender); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.ORACLE_ROLE() + ) + ); + manager.submitPendingOracle(IOracleV2(address(res.oracle)), asset, oracle); + vm.stopPrank(); + + // Test that oracle role can submit pending oracle + vm.startPrank(deployer); + manager.submitPendingOracle(IOracleV2(address(res.oracle)), asset, oracle); + + // Test that non-oracle role cannot accept pending oracle + vm.stopPrank(); + vm.startPrank(sender); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.ORACLE_ROLE() + ) + ); + manager.acceptPendingOracle(IOracle(address(res.oracle)), asset); + vm.stopPrank(); + + // Test that oracle role can accept pending oracle + vm.startPrank(deployer); + manager.acceptPendingOracle(IOracle(address(res.oracle)), asset); + vm.stopPrank(); + } + + function testRevokePendingOracle() public { + address asset = address(res.collateral); + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: AggregatorV3Interface(address(new MockPriceFeed(sender))), + backupAggregator: AggregatorV3Interface(address(new MockPriceFeed(sender))), + heartbeat: 3600, + backupHeartbeat: 7200, + maxPrice: 1e8, + minPrice: 0 + }); + + // Submit a pending oracle + vm.startPrank(deployer); + manager.submitPendingOracle(IOracleV2(address(res.oracle)), asset, oracle); + vm.stopPrank(); + + // Test that non-oracle role cannot revoke pending oracle + vm.startPrank(sender); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.ORACLE_ROLE() + ) + ); + manager.revokePendingOracle(IOracleV2(address(res.oracle)), asset); + vm.stopPrank(); + + // Test that oracle role can revoke pending oracle + vm.startPrank(deployer); + + // We'll capture the event to verify that revocation happened + vm.expectEmit(true, true, true, true); + // Define the expected event + emit RevokePendingOracle(asset); + + // Call the revoke function + manager.revokePendingOracle(IOracleV2(address(res.oracle)), asset); + + // Try to accept the oracle after revocation, which should fail + // since there's no longer a pending oracle + vm.expectRevert(); // Should revert with NoPendingValue error + IOracle(address(res.oracle)).acceptPendingOracle(asset); + + vm.stopPrank(); + } + + // Define the event to match OracleAggregator's event + event RevokePendingOracle(address indexed asset); + + function testUpdateGtConfig() public { + bytes memory configData = abi.encode(1234); + + // Test that non-configurator role cannot update GT config + vm.startPrank(sender); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.CONFIGURATOR_ROLE() + ) + ); + manager.updateGtConfig(ITermMaxMarket(address(res.market)), configData); + vm.stopPrank(); + + // Test that configurator role can update GT config + vm.startPrank(deployer); + manager.updateGtConfig(ITermMaxMarket(address(res.market)), configData); + vm.stopPrank(); + } + + function testUpdateOrderFeeRate() public { + // Get new fee config from testdata + FeeConfig memory newFeeConfig = res.order.orderConfig().feeConfig; + + // Test that non-admin cannot update fee rate + vm.startPrank(sender); + vm.expectRevert( + abi.encodeWithSelector( + IAccessControl.AccessControlUnauthorizedAccount.selector, sender, manager.CONFIGURATOR_ROLE() + ) + ); + manager.updateOrderFeeRate(res.market, res.order, newFeeConfig); + vm.stopPrank(); + // Test that admin can update fee rate + vm.prank(deployer); + manager.updateOrderFeeRate(res.market, res.order, newFeeConfig); + + // Verify fee config was updated + OrderConfig memory updatedConfig = res.order.orderConfig(); + assertEq(updatedConfig.feeConfig.lendTakerFeeRatio, newFeeConfig.lendTakerFeeRatio); + assertEq(updatedConfig.feeConfig.borrowTakerFeeRatio, newFeeConfig.borrowTakerFeeRatio); + } + + function testUpdateMarketConfig() public { + // Get new market config from testdata + MarketConfig memory newMarketConfig = marketConfig; + newMarketConfig.treasurer = address(0x123); + // Test that configurator role can update market config + vm.prank(deployer); + manager.updateMarketConfig(res.market, newMarketConfig); + + // Verify market config was updated + MarketConfig memory updatedConfig = res.market.config(); + assertEq(updatedConfig.treasurer, newMarketConfig.treasurer); + } +} diff --git a/test/v2/FactoryV2.t.sol b/test/v2/FactoryV2.t.sol new file mode 100644 index 0000000..4f2b8cf --- /dev/null +++ b/test/v2/FactoryV2.t.sol @@ -0,0 +1,282 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {console} from "forge-std/console.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; + +import {ITermMaxMarketV2, TermMaxMarketV2, Constants, MarketErrors} from "contracts/v2/TermMaxMarketV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; + +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IMintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import { + GearingTokenWithERC20V2, + GearingTokenEvents, + GearingTokenEventsV2, + GtConfig +} from "contracts/v2/tokens/GearingTokenWithERC20V2.sol"; +import { + ITermMaxFactory, + TermMaxFactoryV2, + FactoryErrors, + FactoryEvents, + FactoryEventsV2 +} from "contracts/v2/factory/TermMaxFactoryV2.sol"; +import {IOracleV2, OracleAggregatorV2, AggregatorV3Interface} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCuts +} from "contracts/v1/storage/TermMaxStorage.sol"; + +contract FactoryTestV2 is Test { + address deployer = vm.randomAddress(); + + address treasurer = vm.randomAddress(); + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + MarketConfig marketConfig; + + function setUp() public { + string memory testdata = vm.readFile(string.concat(vm.projectRoot(), "/test/testdata/testdata.json")); + + marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + } + + function testDeploy() public { + vm.startPrank(deployer); + DeployUtils.Res memory res = DeployUtils.deployMarket(deployer, marketConfig, maxLtv, liquidationLtv); + + address predictedMarketAddress = res.factory.predictMarketAddress( + deployer, address(res.collateral), address(res.debt), marketConfig.maturity, 0 + ); + assert(address(res.market) == predictedMarketAddress); + + assert( + keccak256(abi.encode(ITermMaxMarketV2(address(res.market)).name())) + == keccak256(abi.encode("Termmax Market:DAI-ETH")) + ); + + assert(keccak256(abi.encode(res.market.config())) == keccak256(abi.encode(marketConfig))); + GtConfig memory gtConfig = res.gt.getGtConfig(); + assert(gtConfig.maturity == marketConfig.maturity); + assert(gtConfig.loanConfig.maxLtv == maxLtv); + assert(gtConfig.loanConfig.liquidationLtv == liquidationLtv); + assert(gtConfig.loanConfig.liquidatable == true); + assert(gtConfig.collateral == address(res.collateral)); + assert(gtConfig.debtToken == res.debt); + assert(gtConfig.ft == res.ft); + assert(GearingTokenWithERC20V2(address(res.gt)).collateralCapacity() == type(uint256).max); + vm.stopPrank(); + } + + function testDeployRepeatedly() public { + vm.startPrank(deployer); + DeployUtils.Res memory res = DeployUtils.deployMarket(deployer, marketConfig, maxLtv, liquidationLtv); + + LoanConfig memory loanConfig = res.gt.getGtConfig().loanConfig; + vm.expectRevert(abi.encodeWithSignature("FailedDeployment()")); + res.factory.createMarket( + DeployUtils.GT_ERC20, + MarketInitialParams({ + collateral: address(res.collateral), + debtToken: res.debt, + admin: deployer, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: loanConfig, + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "test", + tokenSymbol: "test" + }), + 0 + ); + vm.stopPrank(); + } + + function testDeployMarketWithInvalidParams() public { + vm.startPrank(deployer); + TermMaxFactoryV2 factory = DeployUtils.deployFactory(deployer); + + MockERC20 collateral = new MockERC20("ETH", "ETH", 18); + MockERC20 debt = new MockERC20("DAI", "DAI", 8); + + MarketInitialParams memory params = MarketInitialParams({ + collateral: address(collateral), + debtToken: debt, + admin: deployer, + gtImplementation: factory.gtImplements(DeployUtils.GT_ERC20), + marketConfig: marketConfig, + loanConfig: LoanConfig({ + maxLtv: maxLtv, + liquidationLtv: liquidationLtv, + liquidatable: true, + oracle: IOracle(vm.randomAddress()) + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "test", + tokenSymbol: "test" + }); + uint64 maturity = marketConfig.maturity; + vm.warp(maturity + 1 days); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.InvalidMaturity.selector)); + factory.createMarket(DeployUtils.GT_ERC20, params, 0); + + vm.warp(maturity - 1 days); + params.marketConfig.feeConfig.borrowTakerFeeRatio = Constants.MAX_FEE_RATIO; + vm.expectRevert(abi.encodeWithSelector(MarketErrors.FeeTooHigh.selector)); + factory.createMarket(DeployUtils.GT_ERC20, params, 0); + + params.marketConfig.feeConfig.borrowTakerFeeRatio = 0; + params.marketConfig.feeConfig.mintGtFeeRef = uint32(Constants.DECIMAL_BASE * 5 + 1); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.FeeTooHigh.selector)); + factory.createMarket(DeployUtils.GT_ERC20, params, 0); + + params.marketConfig.feeConfig.mintGtFeeRef = 0; + address predictMarketAddress = + factory.predictMarketAddress(deployer, address(collateral), address(debt), maturity, 0); + vm.expectEmit(); + emit GearingTokenEventsV2.GearingTokenInitialized( + predictMarketAddress, "GT:test", "GT:test", abi.encode(type(uint256).max) + ); + emit GearingTokenWithERC20V2.CollateralCapacityUpdated(type(uint256).max); + emit FactoryEventsV2.MarketCreated(predictMarketAddress, address(collateral), debt, params); + factory.createMarket(DeployUtils.GT_ERC20, params, 0); + vm.stopPrank(); + } + + function testLiquidationLtvMustBeGreaterThanMaxLtv() public { + vm.startPrank(deployer); + TermMaxFactoryV2 factory = DeployUtils.deployFactory(deployer); + + MockERC20 collateral = new MockERC20("ETH", "ETH", 18); + MockERC20 debt = new MockERC20("DAI", "DAI", 8); + + maxLtv = 3; + liquidationLtv = 2; + + MarketInitialParams memory params = MarketInitialParams({ + collateral: address(collateral), + debtToken: debt, + admin: deployer, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: LoanConfig({ + maxLtv: maxLtv, + liquidationLtv: liquidationLtv, + liquidatable: true, + oracle: IOracle(vm.randomAddress()) + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "test", + tokenSymbol: "test" + }); + + vm.expectRevert(abi.encodeWithSignature("LiquidationLtvMustBeGreaterThanMaxLtv()")); + factory.createMarket(DeployUtils.GT_ERC20, params, 0); + + vm.stopPrank(); + } + + function testInvalidLiquidationLtv() public { + vm.startPrank(deployer); + TermMaxFactoryV2 factory = DeployUtils.deployFactory(deployer); + + MockERC20 collateral = new MockERC20("ETH", "ETH", 18); + MockERC20 debt = new MockERC20("DAI", "DAI", 8); + + // Set liquidation LTV greater than 100% (Constants.DECIMAL_BASE = 1e8) + uint32 invalidLiquidationLtv = uint32(Constants.DECIMAL_BASE) + 1; + + MarketInitialParams memory params = MarketInitialParams({ + collateral: address(collateral), + debtToken: debt, + admin: deployer, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: LoanConfig({ + maxLtv: maxLtv, + liquidationLtv: invalidLiquidationLtv, + liquidatable: true, + oracle: IOracle(vm.randomAddress()) + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "test", + tokenSymbol: "test" + }); + + vm.expectRevert(abi.encodeWithSignature("InvalidLiquidationLtv()")); + factory.createMarket(DeployUtils.GT_ERC20, params, 0); + + vm.stopPrank(); + } + + function testRevertByCantNotFindGtImplementation() public { + vm.startPrank(deployer); + TermMaxFactoryV2 factory = DeployUtils.deployFactory(deployer); + + MockERC20 collateral = new MockERC20("ETH", "ETH", 18); + MockERC20 debt = new MockERC20("DAI", "DAI", 8); + + vm.expectRevert(abi.encodeWithSelector(FactoryErrors.CantNotFindGtImplementation.selector)); + factory.createMarket( + bytes32(0), + MarketInitialParams({ + collateral: address(collateral), + debtToken: debt, + admin: deployer, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: LoanConfig({ + maxLtv: maxLtv, + liquidationLtv: liquidationLtv, + liquidatable: true, + oracle: IOracle(vm.randomAddress()) + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "test", + tokenSymbol: "test" + }), + 0 + ); + vm.stopPrank(); + } + + function testSetGtImplement() public { + vm.startPrank(deployer); + TermMaxFactoryV2 factory = DeployUtils.deployFactory(deployer); + GearingTokenWithERC20V2 gt = new GearingTokenWithERC20V2(); + string memory gtImplemtName = "gt-test"; + bytes32 key = keccak256(abi.encodePacked(gtImplemtName)); + vm.expectEmit(); + emit FactoryEvents.SetGtImplement(key, address(gt)); + factory.setGtImplement(gtImplemtName, address(gt)); + assert(factory.gtImplements(key) == address(gt)); + vm.stopPrank(); + } + + function testSetGtImplementWithoutAuth() public { + address sender = vm.randomAddress(); + vm.startPrank(sender); + TermMaxFactoryV2 factory = DeployUtils.deployFactory(deployer); + GearingTokenWithERC20V2 gt = new GearingTokenWithERC20V2(); + string memory key = "gt-test"; + + vm.expectRevert(abi.encodePacked(bytes4(keccak256("OwnableUnauthorizedAccount(address)")), abi.encode(sender))); + factory.setGtImplement(key, address(gt)); + + vm.stopPrank(); + } + + function testInvalidMarketImplementation() public { + vm.expectRevert(abi.encodeWithSelector(FactoryErrors.InvalidImplementation.selector)); + new TermMaxFactoryV2(deployer, address(0)); + } +} diff --git a/test/v2/FuzzActionsV2.t.sol b/test/v2/FuzzActionsV2.t.sol new file mode 100644 index 0000000..a24e8f3 --- /dev/null +++ b/test/v2/FuzzActionsV2.t.sol @@ -0,0 +1,222 @@ +pragma solidity ^0.8.27; + +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import { + ITermMaxMarketV2, TermMaxMarketV2, Constants, MarketErrors, MarketEvents +} from "contracts/v2/TermMaxMarketV2.sol"; +import {ITermMaxOrder, TermMaxOrderV2, ISwapCallback, OrderEvents, OrderErrors} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCut, + CurveCuts, + FeeConfig +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; +import "forge-std/Test.sol"; + +contract FuzzActionsTestV2 is Test { + using JSONLoader for *; + using SafeCast for *; + using DeployUtils for *; + + enum OpType { + BUY_FT, + BUY_XT, + SELL_FT, + SELL_XT, + BUY_EXACT_FT, + BUY_EXACT_XT, + SELL_FT_FOR_EXACT_TOKEN, + SELL_XT_FOR_EXACT_TOKEN + } + + struct Action { + uint256 opType; + uint256 firstAmt; + uint256 ftReserve; + uint256 xtReserve; + uint256 secondAmt; + uint256 fee; + } + + address admin = vm.randomAddress(); + address maker = vm.randomAddress(); + address taker = vm.randomAddress(); + address treasurer = vm.randomAddress(); + + string path = string.concat(vm.projectRoot(), "/test/testdata/fuzzSwap/v2.json"); + + function setUp() public {} + + function _initResources() internal returns (DeployUtils.Res memory res) { + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + string memory entityPath = path; + string memory testdata = vm.readFile(entityPath); + uint256 currentTime = vm.parseJsonUint(testdata, ".currentTime"); + vm.warp(currentTime); + + MarketConfig memory marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + + vm.startPrank(admin); + + res = DeployUtils.deployMarket(admin, marketConfig, maxLtv, liquidationLtv); + + res.orderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".orderConfig"); + + MockSwapCallback afterSwap = new MockSwapCallback(res.ft, res.xt); + res.order = res.market.createOrder(maker, res.orderConfig.maxXtReserve, afterSwap, res.orderConfig.curveCuts); + + uint256 ftReserve = vm.parseJsonUint(testdata, ".orderConfig.ftReserve"); + uint256 xtReserve = vm.parseJsonUint(testdata, ".orderConfig.xtReserve"); + res.debt.mint(admin, ftReserve + xtReserve); + res.debt.approve(address(res.market), ftReserve + xtReserve); + res.market.mint(admin, ftReserve + xtReserve); + res.ft.transfer(address(res.order), ftReserve); + res.xt.transfer(address(res.order), xtReserve); + + vm.stopPrank(); + } + + function _parseActions() internal returns (Action[] memory actions) { + string memory json = vm.readFile(path); + uint256 length = vm.parseJsonUint(json, ".actions.length"); + actions = new Action[](length); + for (uint256 i = 0; i < length; i++) { + string memory key = string.concat(".actions.", vm.toString(i)); + actions[i].opType = vm.parseJsonUint(json, string.concat(key, ".opType")); + actions[i].firstAmt = vm.parseJsonUint(json, string.concat(key, ".firstAmt")); + actions[i].secondAmt = vm.parseJsonUint(json, string.concat(key, ".secondAmt")); + actions[i].ftReserve = vm.parseJsonUint(json, string.concat(key, ".contractState.ftReserve")); + actions[i].xtReserve = vm.parseJsonUint(json, string.concat(key, ".contractState.xtReserve")); + actions[i].fee = vm.parseJsonUint(json, string.concat(key, ".fee")); + } + } + + function testActions() public { + DeployUtils.Res memory res = _initResources(); + Action[] memory actions = _parseActions(); + vm.startPrank(taker); + uint256 max128 = type(uint128).max; + res.debt.mint(taker, max128); + res.debt.approve(address(res.market), max128); + res.market.mint(taker, max128 / 2); + res.debt.approve(address(res.order), max128); + res.ft.approve(address(res.order), max128); + res.xt.approve(address(res.order), max128); + vm.stopPrank(); + + for (uint256 i = 0; i < actions.length; i++) { + _swapToken(res, actions[i]); + } + } + + function _swapToken(DeployUtils.Res memory res, Action memory action) internal { + IERC20 tokenIn; + IERC20 tokenOut; + bool isExact; + if (action.opType == uint256(OpType.BUY_FT)) { + tokenIn = res.debt; + tokenOut = res.ft; + isExact = false; + console.log("buy ft"); + } else if (action.opType == uint256(OpType.BUY_XT)) { + tokenIn = res.debt; + tokenOut = res.xt; + isExact = false; + console.log("buy xt"); + } else if (action.opType == uint256(OpType.SELL_FT)) { + tokenIn = res.ft; + tokenOut = res.debt; + isExact = false; + console.log("sell ft"); + } else if (action.opType == uint256(OpType.SELL_XT)) { + tokenIn = res.xt; + tokenOut = res.debt; + isExact = false; + console.log("sell xt"); + } else if (action.opType == uint256(OpType.BUY_EXACT_FT)) { + tokenIn = res.debt; + tokenOut = res.ft; + isExact = true; + console.log("buy exact ft"); + } else if (action.opType == uint256(OpType.BUY_EXACT_XT)) { + tokenIn = res.debt; + tokenOut = res.xt; + isExact = true; + console.log("buy exact xt"); + } else if (action.opType == uint256(OpType.SELL_FT_FOR_EXACT_TOKEN)) { + tokenIn = res.ft; + tokenOut = res.debt; + isExact = true; + console.log("sell ft for exact token"); + } else if (action.opType == uint256(OpType.SELL_XT_FOR_EXACT_TOKEN)) { + tokenIn = res.xt; + tokenOut = res.debt; + isExact = true; + console.log("sell xt for exact token"); + } + + vm.startPrank(taker); + + uint256 netAmt; + if (isExact) { + netAmt = res.order.swapTokenToExactToken( + tokenIn, tokenOut, taker, uint128(action.firstAmt), type(uint128).max, block.timestamp + 1 hours + ); + } else { + netAmt = res.order.swapExactTokenToToken( + tokenIn, tokenOut, taker, uint128(action.firstAmt), 0, block.timestamp + 1 hours + ); + } + assertEq(netAmt, action.secondAmt, "net amt not as expected"); + assertEq(res.ft.balanceOf(address(res.order)), action.ftReserve); + assertEq(res.xt.balanceOf(address(res.order)), action.xtReserve); + vm.stopPrank(); + } +} + +// Mock contracts for testing +contract MockSwapCallback is ISwapCallback { + using SafeCast for *; + + int256 public deltaFt; + int256 public deltaXt; + int256 ftReserve; + int256 xtReserve; + IERC20 public ft; + IERC20 public xt; + + constructor(IERC20 ft_, IERC20 xt_) { + ft = ft_; + xt = xt_; + } + + function afterSwap(uint256 ftReserve_, uint256 xtReserve_, int256 deltaFt_, int256 deltaXt_) external override { + deltaFt = deltaFt_; + deltaXt = deltaXt_; + if (ftReserve == 0 || xtReserve == 0) { + ftReserve = int256(ftReserve_); + xtReserve = int256(xtReserve_); + return; + } else { + ftReserve += deltaFt; + xtReserve += deltaXt; + require(uint256(ftReserve) == ftReserve_, "ft reserve not as expected"); + require(uint256(xtReserve) == xtReserve_, "xt reserve not as expected"); + } + } +} diff --git a/test/v2/FuzzSwapV2.t.sol b/test/v2/FuzzSwapV2.t.sol new file mode 100644 index 0000000..f75fe54 --- /dev/null +++ b/test/v2/FuzzSwapV2.t.sol @@ -0,0 +1,254 @@ +pragma solidity ^0.8.27; + +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import { + ITermMaxMarketV2, TermMaxMarketV2, Constants, MarketErrors, MarketEvents +} from "contracts/v2/TermMaxMarketV2.sol"; +import {ITermMaxOrder, TermMaxOrderV2, ISwapCallback, OrderEvents, OrderErrors} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCut, + CurveCuts, + FeeConfig +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; +import "forge-std/Test.sol"; + +contract FuzzSwapTestV2 is Test { + using JSONLoader for *; + using SafeCast for *; + using DeployUtils for *; + + uint256 entities; + + address admin = vm.randomAddress(); + address maker = vm.randomAddress(); + address taker = vm.randomAddress(); + address treasurer = vm.randomAddress(); + + string[] indexs = ["0", "1", "2", "3", "4", "5"]; + + function setUp() public { + string memory entitiesData = string.concat(vm.projectRoot(), "/test/testdata/fuzzSwap/entities.json"); + entities = vm.parseJsonUint(vm.readFile(entitiesData), ".entities"); + } + + function _initResources(string memory index) internal returns (DeployUtils.Res memory res) { + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + string memory entityPath = string.concat(vm.projectRoot(), "/test/testdata/fuzzSwap/", index, ".json"); + string memory testdata = vm.readFile(entityPath); + uint256 currentTime = vm.parseJsonUint(testdata, ".currentTime"); + vm.warp(currentTime); + + MarketConfig memory marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + + vm.startPrank(admin); + + res = DeployUtils.deployMarket(admin, marketConfig, maxLtv, liquidationLtv); + + res.orderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".orderConfig"); + + MockSwapCallback afterSwap = new MockSwapCallback(res.ft, res.xt); + + res.order = res.market.createOrder(maker, res.orderConfig.maxXtReserve, afterSwap, res.orderConfig.curveCuts); + + uint256 orderInitialAmount = vm.parseJsonUint(testdata, ".orderInitialAmount"); + res.debt.mint(admin, orderInitialAmount); + res.debt.approve(address(res.market), orderInitialAmount); + res.market.mint(address(res.order), orderInitialAmount); + + res.swapRange = JSONLoader.getSwapRangeFromJson(testdata, ".maxInput"); + + vm.stopPrank(); + } + + function testBuyFt(uint256 index, uint128 tokenAmtIn) public { + console.log("buy ft", index, tokenAmtIn); + vm.assume(index < entities); + DeployUtils.Res memory res = _initResources(indexs[index]); + vm.assume(tokenAmtIn > 0 && tokenAmtIn <= res.swapRange.buyFtMax); + _buyFt(res, tokenAmtIn, 0); + } + + function testBuyXt(uint256 index, uint128 tokenAmtIn) public { + console.log("buy xt", index, tokenAmtIn); + vm.assume(index < entities); + DeployUtils.Res memory res = _initResources(indexs[index]); + vm.assume(tokenAmtIn > 0 && tokenAmtIn <= res.swapRange.buyXtMax); + _buyXt(res, tokenAmtIn, 0); + } + + function testSellFt(uint256 index, uint128 ftAmtIn) public { + console.log("sell ft", index, ftAmtIn); + vm.assume(index < entities); + DeployUtils.Res memory res = _initResources(indexs[index]); + vm.assume(ftAmtIn > 0 && ftAmtIn <= res.swapRange.sellFtMax); + _sellFt(res, ftAmtIn, 0); + } + + function testSellXt(uint256 index, uint128 xtAmtIn) public { + console.log("sell xt", index, xtAmtIn); + vm.assume(index < entities); + DeployUtils.Res memory res = _initResources(indexs[index]); + vm.assume(xtAmtIn > 0 && xtAmtIn <= res.swapRange.sellXtMax); + _sellXt(res, xtAmtIn, 0); + } + + function testBuyExactFt(uint256 index, uint128 ftAmtOut) public { + console.log("buy exact ft", index, ftAmtOut); + vm.assume(index < entities); + DeployUtils.Res memory res = _initResources(indexs[index]); + vm.assume(ftAmtOut > 0 && ftAmtOut <= res.swapRange.buyExactFtMax); + _buyExactFt(res, ftAmtOut, ftAmtOut); + } + + function testBuyExactXt(uint256 index, uint128 xtAmtOut) public { + console.log("buy exact xt", index, xtAmtOut); + vm.assume(index < entities); + DeployUtils.Res memory res = _initResources(indexs[index]); + vm.assume(xtAmtOut > 0 && xtAmtOut <= res.swapRange.buyExactXtMax); + _buyExactXt(res, xtAmtOut, xtAmtOut); + } + + function testSellFtForExactToken(uint256 index, uint128 tokenAmtOut) public { + console.log("sell ft for exact token", index, tokenAmtOut); + vm.assume(index < entities); + DeployUtils.Res memory res = _initResources(indexs[index]); + vm.assume(tokenAmtOut > 0 && tokenAmtOut <= res.swapRange.sellFtForExactTokenMax); + _sellFtForExactToken(res, tokenAmtOut, tokenAmtOut * 10); + } + + function testSellXtForExactToken(uint256 index, uint128 tokenAmtOut) public { + console.log("sell xt for exact token", index, tokenAmtOut); + vm.assume(index < entities); + DeployUtils.Res memory res = _initResources(indexs[index]); + vm.assume(tokenAmtOut > 0 && tokenAmtOut <= res.swapRange.sellXtForExactTokenMax); + _sellXtForExactToken(res, tokenAmtOut, tokenAmtOut * 10000); + } + + function _buyFt(DeployUtils.Res memory res, uint128 tokenAmtIn, uint128 minFtAmtOut) internal { + vm.startPrank(taker); + + res.debt.mint(taker, tokenAmtIn); + res.debt.approve(address(res.order), tokenAmtIn); + + res.order.swapExactTokenToToken(res.debt, res.ft, taker, tokenAmtIn, minFtAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function _buyXt(DeployUtils.Res memory res, uint128 tokenAmtIn, uint128 minXtAmtOut) internal { + vm.startPrank(taker); + + res.debt.mint(taker, tokenAmtIn); + res.debt.approve(address(res.order), tokenAmtIn); + + res.order.swapExactTokenToToken(res.debt, res.xt, taker, tokenAmtIn, minXtAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function _sellFt(DeployUtils.Res memory res, uint128 ftAmtIn, uint128 minTokenAmtOut) internal { + vm.startPrank(taker); + res.debt.mint(taker, ftAmtIn); + res.debt.approve(address(res.market), ftAmtIn); + res.market.mint(taker, ftAmtIn); + + res.ft.approve(address(res.order), ftAmtIn); + res.order.swapExactTokenToToken(res.ft, res.debt, taker, ftAmtIn, minTokenAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function _sellXt(DeployUtils.Res memory res, uint128 xtAmtIn, uint128 minTokenAmtOut) internal { + vm.startPrank(taker); + res.debt.mint(taker, xtAmtIn); + res.debt.approve(address(res.market), xtAmtIn); + res.market.mint(taker, xtAmtIn); + + res.xt.approve(address(res.order), xtAmtIn); + res.order.swapExactTokenToToken(res.xt, res.debt, taker, xtAmtIn, minTokenAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function _buyExactFt(DeployUtils.Res memory res, uint128 ftAmtOut, uint128 maxTokenAmtIn) internal { + vm.startPrank(taker); + res.debt.mint(taker, maxTokenAmtIn); + res.debt.approve(address(res.order), maxTokenAmtIn); + res.order.swapTokenToExactToken(res.debt, res.ft, taker, ftAmtOut, maxTokenAmtIn, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function _buyExactXt(DeployUtils.Res memory res, uint128 xtAmtOut, uint128 maxTokenAmtIn) internal { + vm.startPrank(taker); + res.debt.mint(taker, maxTokenAmtIn); + res.debt.approve(address(res.order), maxTokenAmtIn); + res.order.swapTokenToExactToken(res.debt, res.xt, taker, xtAmtOut, maxTokenAmtIn, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function _sellFtForExactToken(DeployUtils.Res memory res, uint128 tokenAmtOut, uint128 maxFtAmtIn) internal { + vm.startPrank(taker); + res.debt.mint(taker, maxFtAmtIn); + res.debt.approve(address(res.market), maxFtAmtIn); + res.market.mint(taker, maxFtAmtIn); + + res.ft.approve(address(res.order), maxFtAmtIn); + res.order.swapTokenToExactToken(res.ft, res.debt, taker, tokenAmtOut, maxFtAmtIn, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function _sellXtForExactToken(DeployUtils.Res memory res, uint128 tokenAmtOut, uint128 maxXtAmtIn) internal { + vm.startPrank(taker); + res.debt.mint(taker, maxXtAmtIn); + res.debt.approve(address(res.market), maxXtAmtIn); + res.market.mint(taker, maxXtAmtIn); + + res.xt.approve(address(res.order), maxXtAmtIn); + res.order.swapTokenToExactToken(res.xt, res.debt, taker, tokenAmtOut, maxXtAmtIn, block.timestamp + 1 hours); + vm.stopPrank(); + } +} + +// Mock contracts for testing +contract MockSwapCallback is ISwapCallback { + using SafeCast for *; + + int256 public deltaFt; + int256 public deltaXt; + int256 ftReserve; + int256 xtReserve; + IERC20 public ft; + IERC20 public xt; + + constructor(IERC20 ft_, IERC20 xt_) { + ft = ft_; + xt = xt_; + } + + function afterSwap(uint256 ftReserve_, uint256 xtReserve_, int256 deltaFt_, int256 deltaXt_) external override { + deltaFt = deltaFt_; + deltaXt = deltaXt_; + if (ftReserve == 0 || xtReserve == 0) { + ftReserve = int256(ftReserve_); + xtReserve = int256(xtReserve_); + return; + } else { + ftReserve += deltaFt; + xtReserve += deltaXt; + require(uint256(ftReserve) == ftReserve_, "ft reserve not as expected"); + require(uint256(xtReserve) == xtReserve_, "xt reserve not as expected"); + } + } +} diff --git a/test/v2/GtV2.t.sol b/test/v2/GtV2.t.sol new file mode 100644 index 0000000..fe37dda --- /dev/null +++ b/test/v2/GtV2.t.sol @@ -0,0 +1,1438 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {console} from "forge-std/console.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; +import {StateChecker} from "./utils/StateChecker.sol"; +import {SwapUtils} from "./utils/SwapUtils.sol"; +import {LoanUtils} from "./utils/LoanUtils.sol"; + +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import { + ITermMaxMarketV2, TermMaxMarketV2, Constants, MarketErrors, MarketEvents +} from "contracts/v2/TermMaxMarketV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; + +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IMintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import { + GearingTokenWithERC20V2, + GearingTokenEvents, + GearingTokenErrors, + GearingTokenErrorsV2, + GearingTokenEventsV2, + GtConfig +} from "contracts/v2/tokens/GearingTokenWithERC20V2.sol"; +import { + ITermMaxFactory, + TermMaxFactoryV2, + FactoryErrors, + FactoryEvents, + FactoryEventsV2 +} from "contracts/v2/factory/TermMaxFactoryV2.sol"; +import {IOracleV2, OracleAggregatorV2, AggregatorV3Interface} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCuts +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {MockFlashRepayerV2} from "contracts/v2/test/MockFlashRepayerV2.sol"; +import {ISwapCallback} from "contracts/v1/ISwapCallback.sol"; + +contract GtTestV2 is Test { + using JSONLoader for *; + using SafeCast for uint256; + using SafeCast for int256; + + DeployUtils.Res res; + + OrderConfig orderConfig; + MarketConfig marketConfig; + + address deployer = vm.randomAddress(); + address sender = vm.randomAddress(); + address treasurer = vm.randomAddress(); + address maker = vm.randomAddress(); + string testdata; + + MockFlashLoanReceiver flashLoanReceiver; + + MockFlashRepayerV2 flashRepayer; + + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + + function setUp() public { + vm.startPrank(deployer); + testdata = vm.readFile(string.concat(vm.projectRoot(), "/test/testdata/testdata.json")); + + marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + orderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".orderConfig"); + orderConfig.maxXtReserve = type(uint128).max; + res = DeployUtils.deployMarket(deployer, marketConfig, maxLtv, liquidationLtv); + + res.order = + res.market.createOrder(maker, orderConfig.maxXtReserve, ISwapCallback(address(0)), orderConfig.curveCuts); + + vm.warp(vm.parseUint(vm.parseJsonString(testdata, ".currentTime"))); + + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.dai")); + + uint256 amount = 15000e8; + res.debt.mint(deployer, amount); + res.debt.approve(address(res.market), amount); + res.market.mint(deployer, amount); + res.ft.transfer(address(res.order), amount); + res.xt.transfer(address(res.order), amount); + + flashLoanReceiver = new MockFlashLoanReceiver(res.market); + flashRepayer = new MockFlashRepayerV2(res.gt); + + vm.stopPrank(); + } + + function testMintGtByIssueFt() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + res.collateral.mint(sender, collateralAmt); + + vm.startPrank(sender); + + res.collateral.approve(address(res.gt), collateralAmt); + bytes memory collateralData = abi.encode(collateralAmt); + + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + uint256 issueFee = (debtAmt * res.market.mintGtFeeRatio()) / Constants.DECIMAL_BASE; + vm.expectEmit(); + emit MarketEvents.IssueFt( + sender, sender, 1, debtAmt, uint128(debtAmt - issueFee), uint128(issueFee), collateralData + ); + + (uint256 gtId, uint128 ftOutAmt) = res.market.issueFt(sender, debtAmt, collateralData); + + assert(ftOutAmt == (debtAmt - issueFee)); + assert(gtId == 1); + + state.collateralReserve += collateralAmt; + StateChecker.checkMarketState(res, state); + + assert(res.ft.balanceOf(marketConfig.treasurer) == issueFee); + assert(res.ft.balanceOf(sender) == ftOutAmt); + + (address owner, uint128 d, bytes memory cd) = res.gt.loanInfo(gtId); + assert(owner == sender); + assert(d == debtAmt); + assert(collateralAmt == abi.decode(cd, (uint256))); + (, uint128 ltv,) = res.gt.getLiquidationInfo(gtId); + assert(LoanUtils.calcLtv(res, debtAmt, collateralAmt) == ltv); + + vm.stopPrank(); + } + + function testMintGtByLeverage() public { + vm.startPrank(sender); + uint256 collateralAmt = 1e18; + bytes memory callbackData = abi.encode(sender, collateralAmt); + res.collateral.mint(address(flashLoanReceiver), collateralAmt); + + uint128 xtAmt = 90e8; + uint256 debtAmt = xtAmt * Constants.DECIMAL_BASE / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio()); + + uint128 debtAmtInForBuyXt = 5e8; + uint128 minXTOut = 0e8; + res.debt.mint(sender, debtAmtInForBuyXt); + res.debt.approve(address(res.order), debtAmtInForBuyXt); + res.order.swapExactTokenToToken( + res.debt, res.xt, sender, debtAmtInForBuyXt, minXTOut, block.timestamp + 1 hours + ); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + uint256 xtBefore = res.xt.balanceOf(address(sender)); + + res.xt.approve(address(flashLoanReceiver), xtAmt); + + vm.expectEmit(); + emit MarketEvents.LeverageByXt( + address(flashLoanReceiver), + sender, + 1, + uint128(debtAmt), + xtAmt, + uint128(debtAmt - xtAmt), + abi.encode(collateralAmt) + ); + uint256 gtId = flashLoanReceiver.leverageByXt(xtAmt, callbackData); + + assert(gtId == 1); + state.collateralReserve += collateralAmt; + state.debtReserve -= xtAmt; + StateChecker.checkMarketState(res, state); + + uint256 xtAfter = res.xt.balanceOf(address(sender)); + assert(xtBefore - xtAfter == xtAmt); + + (address owner, uint128 d, bytes memory cd) = res.gt.loanInfo(gtId); + assert(owner == sender); + assert(d == debtAmt); + assert(collateralAmt == abi.decode(cd, (uint256))); + + vm.stopPrank(); + } + + function testMintGtWhenOracleOutdated() public { + uint128 debtAmt = 1000e8; + uint256 collateralAmt = 1e18; + res.collateral.mint(sender, collateralAmt); + + vm.prank(deployer); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 3600, 3600) + ); + res.oracle.acceptPendingOracle(address(res.collateral)); + vm.warp(block.timestamp + 3600); + + vm.startPrank(sender); + res.collateral.approve(address(res.gt), collateralAmt); + bytes memory collateralData = abi.encode(collateralAmt); + + vm.expectRevert(abi.encodeWithSelector(IOracleV2.OracleIsNotWorking.selector, address(res.collateral))); + res.market.issueFt(sender, debtAmt, collateralData); + + vm.stopPrank(); + + vm.startPrank(deployer); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 365 days, 0) + ); + res.oracle.acceptPendingOracle(address(res.collateral)); + vm.stopPrank(); + + vm.startPrank(sender); + res.collateral.approve(address(res.gt), collateralAmt); + res.market.issueFt(sender, debtAmt, collateralData); + + vm.stopPrank(); + } + + function testRevertByGtIsNotHealthyWhenIssueFt() public { + // debt 1790 USD collaretal 2000USD ltv 0.891 + uint128 debtAmt = 1790e8; + uint256 collateralAmt = 1e18; + res.collateral.mint(sender, collateralAmt); + + vm.startPrank(sender); + + res.collateral.approve(address(res.gt), collateralAmt); + bytes memory collateralData = abi.encode(collateralAmt); + + vm.expectRevert( + abi.encodeWithSelector( + GearingTokenErrors.GtIsNotHealthy.selector, 0, sender, LoanUtils.calcLtv(res, debtAmt, collateralAmt) + ) + ); + res.market.issueFt(sender, debtAmt, collateralData); + + vm.stopPrank(); + } + + function testRevertByGtIsNotHealthyWhenCollateralCloseZero() public { + // debt 5 USD collaretal 2e-7 USD + uint128 debtAmt = 5e8; + uint256 collateralAmt = 1; + res.collateral.mint(sender, collateralAmt); + + vm.startPrank(sender); + + res.collateral.approve(address(res.gt), collateralAmt); + bytes memory collateralData = abi.encode(collateralAmt); + + vm.expectRevert( + abi.encodeWithSelector( + GearingTokenErrors.GtIsNotHealthy.selector, 0, sender, LoanUtils.calcLtv(res, debtAmt, collateralAmt) + ) + ); + res.market.issueFt(sender, debtAmt, collateralData); + + vm.stopPrank(); + } + + function testRevertByGtIsNotHealthyWhenLeverage() public { + vm.startPrank(sender); + uint256 collateralAmt = 0.001e18; + bytes memory callbackData = abi.encode(sender, collateralAmt); + res.collateral.mint(address(flashLoanReceiver), collateralAmt); + + uint128 xtAmt = 90e8; + uint256 debtAmt = xtAmt * Constants.DECIMAL_BASE / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio()); + + uint128 debtAmtInForBuyXt = 5e8; + uint128 minXTOut = 0e8; + res.debt.mint(sender, debtAmtInForBuyXt); + res.debt.approve(address(res.order), debtAmtInForBuyXt); + res.order.swapExactTokenToToken( + res.debt, res.xt, sender, debtAmtInForBuyXt, minXTOut, block.timestamp + 1 hours + ); + + res.xt.approve(address(flashLoanReceiver), xtAmt); + + vm.expectRevert( + abi.encodeWithSelector( + GearingTokenErrors.GtIsNotHealthy.selector, 0, sender, LoanUtils.calcLtv(res, debtAmt, collateralAmt) + ) + ); + flashLoanReceiver.leverageByXt(xtAmt, callbackData); + + vm.stopPrank(); + } + + function testReapyByDebtToken() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + res.debt.mint(sender, debtAmt); + + res.debt.approve(address(res.gt), debtAmt); + uint256 collateralBalanceBefore = res.collateral.balanceOf(sender); + uint256 debtBalanceBefore = res.debt.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + bool byDebtToken = true; + vm.expectEmit(); + emit GearingTokenEventsV2.Repay(gtId, debtAmt, byDebtToken, true); + res.gt.repay(gtId, debtAmt, byDebtToken); + + uint256 collateralBalanceAfter = res.collateral.balanceOf(sender); + uint256 debtBalanceAfter = res.debt.balanceOf(sender); + state.debtReserve += debtAmt; + state.collateralReserve -= collateralAmt; + StateChecker.checkMarketState(res, state); + + assert(collateralBalanceAfter - collateralBalanceBefore == collateralAmt); + assert(debtBalanceAfter + debtAmt == debtBalanceBefore); + vm.expectRevert(abi.encodePacked(bytes4(keccak256("ERC721NonexistentToken(uint256)")), gtId)); + res.gt.loanInfo(gtId); + + vm.stopPrank(); + } + + function testReapyByFt() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + // get FT token + uint128 debtAmtInForBuyFt = 100e8; + uint128 minFTOut = 0e8; + res.debt.mint(sender, debtAmtInForBuyFt); + res.debt.approve(address(res.order), debtAmtInForBuyFt); + res.order.swapExactTokenToToken( + res.debt, res.ft, sender, debtAmtInForBuyFt, minFTOut, block.timestamp + 1 hours + ); + + uint256 collateralBalanceBefore = res.collateral.balanceOf(sender); + uint256 ftBalanceBefore = res.ft.balanceOf(sender); + uint256 ftInMarketBefore = res.ft.balanceOf(address(res.market)); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + res.ft.approve(address(res.gt), debtAmt); + + bool byDebtToken = false; + vm.expectEmit(); + emit GearingTokenEventsV2.Repay(gtId, debtAmt, byDebtToken, true); + res.gt.repay(gtId, debtAmt, byDebtToken); + + uint256 collateralBalanceAfter = res.collateral.balanceOf(sender); + uint256 ftBalanceAfter = res.ft.balanceOf(sender); + uint256 ftInMarketAfter = res.ft.balanceOf(address(res.market)); + state.collateralReserve -= collateralAmt; + StateChecker.checkMarketState(res, state); + assert(ftInMarketAfter - debtAmt == ftInMarketBefore); + assert(collateralBalanceAfter - collateralBalanceBefore == collateralAmt); + assert(ftBalanceAfter + debtAmt == ftBalanceBefore); + vm.expectRevert(abi.encodePacked(bytes4(keccak256("ERC721NonexistentToken(uint256)")), gtId)); + res.gt.loanInfo(gtId); + + vm.stopPrank(); + } + + function testPatriallyReapy() public { + uint128 debtAmt = 100e8; + uint128 repayAmt = 10e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + // Repay repayAmt + address thirdPeople = vm.randomAddress(); + res.debt.mint(thirdPeople, debtAmt); + // Repay repayAmt + vm.startPrank(thirdPeople); + res.debt.approve(address(res.gt), debtAmt); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + bool byDebtToken = true; + vm.expectEmit(); + emit GearingTokenEventsV2.Repay(gtId, repayAmt, byDebtToken, false); + res.gt.repay(gtId, repayAmt, byDebtToken); + state.debtReserve += repayAmt; + StateChecker.checkMarketState(res, state); + assert(res.debt.balanceOf(thirdPeople) == debtAmt - repayAmt); + assert(res.collateral.balanceOf(thirdPeople) == 0); + + (address owner, uint128 d, bytes memory cd) = res.gt.loanInfo(gtId); + assert(owner == sender); + assert(d == debtAmt - repayAmt); + assert(collateralAmt == abi.decode(cd, (uint256))); + + // Repay all + uint256 debtBalanceBefore = res.debt.balanceOf(sender); + uint256 collateralBalanceBefore = res.collateral.balanceOf(sender); + + vm.expectEmit(); + emit GearingTokenEventsV2.Repay(gtId, debtAmt - repayAmt, byDebtToken, true); + res.gt.repay(gtId, debtAmt - repayAmt, byDebtToken); + + state.debtReserve += (debtAmt - repayAmt); + state.collateralReserve -= collateralAmt; + uint256 collateralBalanceAfter = res.collateral.balanceOf(sender); + uint256 debtBalanceAfter = res.debt.balanceOf(sender); + StateChecker.checkMarketState(res, state); + + assert(collateralBalanceAfter - collateralBalanceBefore == collateralAmt); + assert(debtBalanceAfter == debtBalanceBefore); + assert(res.debt.balanceOf(thirdPeople) == 0); + assert(res.collateral.balanceOf(thirdPeople) == 0); + + vm.expectRevert(abi.encodePacked(bytes4(keccak256("ERC721NonexistentToken(uint256)")), gtId)); + res.gt.loanInfo(gtId); + + vm.stopPrank(); + } + + function testFlashRepay() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + res.debt.mint(address(flashRepayer), debtAmt); + res.gt.approve(address(flashRepayer), gtId); + + uint256 removedCollateral = 0.5e18; + uint128 repayAmt = 50e8; + uint256 collateralBalanceBefore = res.collateral.balanceOf(sender); + uint256 debtBalanceBefore = res.debt.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + bool byDebtToken = true; + vm.expectEmit(); + emit GearingTokenEventsV2.FlashRepay( + gtId, address(flashRepayer), repayAmt, byDebtToken, false, abi.encode(removedCollateral) + ); + flashRepayer.flashRepay(gtId, repayAmt, byDebtToken, abi.encode(removedCollateral)); + + uint256 collateralBalanceAfter = res.collateral.balanceOf(sender); + uint256 debtBalanceAfter = res.debt.balanceOf(sender); + state.debtReserve += repayAmt; + state.collateralReserve -= removedCollateral; + StateChecker.checkMarketState(res, state); + + assertEq(res.collateral.balanceOf(address(flashRepayer)), removedCollateral, "flashRepayer collateral balance"); + assertEq(res.debt.balanceOf(address(flashRepayer)), repayAmt, "flashRepayer debt balance"); + assertEq(collateralBalanceAfter, collateralBalanceBefore, "sender collateral balance"); + assertEq(debtBalanceAfter, debtBalanceBefore, "sender debt balance"); + (address owner, uint128 currentDebt, bytes memory currentCollateral) = res.gt.loanInfo(gtId); + assertEq(owner, sender, "gt owner"); + assertEq(currentDebt, debtAmt - repayAmt, "current debt after repayment"); + assertEq( + collateralAmt - removedCollateral, + abi.decode(currentCollateral, (uint256)), + "current collateral after repayment" + ); + + res.gt.approve(address(flashRepayer), gtId); + flashRepayer.flashRepay(gtId, currentDebt, byDebtToken, currentCollateral); + vm.expectRevert(abi.encodePacked(bytes4(keccak256("ERC721NonexistentToken(uint256)")), gtId)); + res.gt.loanInfo(gtId); + vm.stopPrank(); + } + + function testRevertByGtIsNotHealthyWhenFlashRepay() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + uint128 repayAmt = 50e8; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + res.debt.mint(address(flashRepayer), debtAmt); + res.gt.approve(address(flashRepayer), gtId); + + vm.expectRevert( + abi.encodeWithSelector( + GearingTokenErrors.GtIsNotHealthy.selector, gtId, address(flashRepayer), type(uint128).max + ) + ); + flashRepayer.flashRepay(gtId, repayAmt, true, abi.encode(collateralAmt)); + } + + function testRevertByGtIsExpiredWhenRepay() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.warp(marketConfig.maturity); + res.debt.mint(sender, debtAmt); + + res.debt.approve(address(res.gt), debtAmt); + + vm.expectRevert(abi.encodeWithSelector(GearingTokenErrorsV2.GtIsExpired.selector)); + res.gt.repay(gtId, debtAmt, true); + + vm.stopPrank(); + } + + function testRevertByGtIsExpiredWhenFlashRepay() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.warp(marketConfig.maturity); + res.debt.mint(address(flashRepayer), debtAmt); + res.gt.approve(address(flashRepayer), gtId); + + vm.expectRevert(abi.encodeWithSelector(GearingTokenErrorsV2.GtIsExpired.selector)); + flashRepayer.flashRepay(gtId, debtAmt, true, abi.encode(collateralAmt)); + } + + function testMerge() public { + uint40[3] memory debts = [100e8, 30e8, 5e8]; + uint64[3] memory collaterals = [1e18, 0.5e18, 0.05e18]; + + vm.startPrank(sender); + + uint256[] memory ids = new uint256[](3); + for (uint256 i = 0; i < ids.length; ++i) { + (ids[i],) = LoanUtils.fastMintGt(res, sender, debts[i], collaterals[i]); + } + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + uint256 newId = ids[0]; + emit GearingTokenEvents.MergeGts(sender, newId, ids); + newId = res.gt.merge(ids); + StateChecker.checkMarketState(res, state); + + (address owner, uint128 d, bytes memory cd) = res.gt.loanInfo(newId); + assert(owner == sender); + assert(d == debts[0] + debts[1] + debts[2]); + assert(collaterals[0] + collaterals[1] + collaterals[2] == abi.decode(cd, (uint256))); + for (uint256 i = 1; i < ids.length; i++) { + vm.expectRevert(abi.encodePacked(bytes4(keccak256("ERC721NonexistentToken(uint256)")), ids[i])); + res.gt.loanInfo(ids[i]); + } + + vm.stopPrank(); + } + + function testMergeEmptyArray() public { + uint256[] memory ids = new uint256[](0); + vm.startPrank(sender); + vm.expectRevert(abi.encodeWithSelector(GearingTokenErrorsV2.GtIdArrayIsEmpty.selector)); + res.gt.merge(ids); + vm.stopPrank(); + } + + function testRevertByCanNotMergeLoanWithDiffOwnerWhenMerge() public { + uint40[3] memory debts = [100e8, 30e8, 5e8]; + uint64[3] memory collaterals = [1e18, 0.5e18, 0.005e18]; + + vm.startPrank(sender); + + uint256[] memory ids = new uint256[](3); + for (uint256 i = 0; i < ids.length; ++i) { + (ids[i],) = LoanUtils.fastMintGt(res, sender, debts[i], collaterals[i]); + } + vm.stopPrank(); + address other = vm.randomAddress(); + vm.prank(other); + vm.expectRevert(abi.encodeWithSignature("AuthorizationFailed(uint256,address)", ids[0], other)); + res.gt.merge(ids); + } + + function testAddCollateral() public { + uint128 debtAmt = 1700e8; + uint256 collateralAmt = 1e18; + uint256 addedCollateral = 0.1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + // Add collateral by third address + address thirdPeople = vm.randomAddress(); + res.collateral.mint(thirdPeople, addedCollateral); + vm.startPrank(thirdPeople); + + res.collateral.approve(address(res.gt), addedCollateral); + + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + emit GearingTokenEvents.AddCollateral(gtId, abi.encode(collateralAmt + addedCollateral)); + res.gt.addCollateral(gtId, abi.encode(addedCollateral)); + + state.collateralReserve += addedCollateral; + StateChecker.checkMarketState(res, state); + assert(res.debt.balanceOf(thirdPeople) == 0); + assert(res.collateral.balanceOf(thirdPeople) == 0); + + (address owner, uint128 d, bytes memory cd) = res.gt.loanInfo(gtId); + assert(owner == sender); + assert(d == debtAmt); + assert(collateralAmt + addedCollateral == abi.decode(cd, (uint256))); + + // Add collateral by self + vm.startPrank(sender); + + res.collateral.mint(sender, addedCollateral); + res.collateral.approve(address(res.gt), addedCollateral); + + res.gt.addCollateral(gtId, abi.encode(addedCollateral)); + vm.stopPrank(); + } + + function testRevertByGtIsExpiredWhenAddCollateral() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + uint256 addedCollateral = 0.1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + vm.stopPrank(); + + address thirdPeople = vm.randomAddress(); + vm.warp(marketConfig.maturity); + res.collateral.mint(thirdPeople, addedCollateral); + + vm.startPrank(thirdPeople); + res.collateral.approve(address(res.gt), addedCollateral); + + vm.expectRevert(abi.encodeWithSelector(GearingTokenErrorsV2.GtIsExpired.selector)); + + res.gt.addCollateral(gtId, abi.encode(addedCollateral)); + vm.stopPrank(); + } + + function testRemoveCollateral() public { + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + uint256 removedCollateral = 0.1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + uint256 collateralBlanceBefore = res.collateral.balanceOf(sender); + + vm.expectEmit(); + emit GearingTokenEvents.RemoveCollateral(gtId, abi.encode(collateralAmt - removedCollateral)); + res.gt.removeCollateral(gtId, abi.encode(removedCollateral)); + + state.collateralReserve -= removedCollateral; + StateChecker.checkMarketState(res, state); + + uint256 collateralBlanceAfter = res.collateral.balanceOf(sender); + + assert(collateralBlanceAfter - collateralBlanceBefore == removedCollateral); + + (address owner, uint128 d, bytes memory cd) = res.gt.loanInfo(gtId); + assert(owner == sender); + assert(d == debtAmt); + assert(collateralAmt - removedCollateral == abi.decode(cd, (uint256))); + + vm.stopPrank(); + } + + function testRemoveCollateralWhenOracleOutdated() public { + // debt 100 USD collaretal 2200USD + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1.1e18; + uint256 removedCollateral = 0.1e18; + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + + vm.prank(deployer); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 3500, 3500) + ); + vm.prank(deployer); + res.oracle.acceptPendingOracle(address(res.collateral)); + vm.warp(block.timestamp + 3600); + + vm.expectRevert(abi.encodeWithSelector(IOracleV2.OracleIsNotWorking.selector, address(res.collateral))); + vm.prank(sender); + res.gt.removeCollateral(gtId, abi.encode(removedCollateral)); + + vm.prank(deployer); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 0, 0) + ); + vm.prank(deployer); + res.oracle.acceptPendingOracle(address(res.collateral)); + + vm.prank(sender); + res.gt.removeCollateral(gtId, abi.encode(removedCollateral)); + } + + function testRevertByGtIsNotHealthyWhenRemoveCollateral() public { + // debt 1780 USD collaretal 2200USD + uint128 debtAmt = 1790e8; + uint256 collateralAmt = 1.1e18; + uint256 removedCollateral = 0.1e18; + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + vm.expectRevert( + abi.encodeWithSelector( + GearingTokenErrors.GtIsNotHealthy.selector, + gtId, + sender, + LoanUtils.calcLtv(res, debtAmt, collateralAmt - removedCollateral) + ) + ); + res.gt.removeCollateral(gtId, abi.encode(removedCollateral)); + + vm.stopPrank(); + } + + function testRevertByCallerIsNotTheOwnerWhenRemoveCollateral() public { + // debt 1780 USD collaretal 2200USD + uint128 debtAmt = 1780e8; + uint256 collateralAmt = 1.1e18; + uint256 removedCollateral = 0.1e18; + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + + address thirdPeople = vm.randomAddress(); + vm.expectRevert(abi.encodeWithSelector(GearingTokenErrors.CallerIsNotTheOwner.selector, gtId)); + vm.prank(thirdPeople); + res.gt.removeCollateral(gtId, abi.encode(removedCollateral)); + } + + function testRevertByGtIsExpiredWhenRemoveCollateral() public { + // debt 200 USD collaretal 2200USD + uint128 debtAmt = 200e8; + uint256 collateralAmt = 1.1e18; + uint256 removedCollateral = 0.1e18; + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + vm.stopPrank(); + + vm.warp(marketConfig.maturity); + + vm.expectRevert(abi.encodeWithSelector(GearingTokenErrorsV2.GtIsExpired.selector)); + vm.prank(sender); + res.gt.removeCollateral(gtId, abi.encode(removedCollateral)); + } + + // Case 1: removed collateral can not cover repayAmt + rewardToLiquidator + function testLiquidateCase1() public { + uint128 debtAmt = 1000e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.gt), debtAmt); + + uint256 senderCBalanceBefore = res.collateral.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + uint256 cToLiquidator = collateralAmt; + uint256 cToTreasurer = 0; + uint256 remainningC = 0; + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + debtAmt, + true, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + + res.gt.liquidate(gtId, debtAmt, true); + state.collateralReserve -= collateralAmt; + state.debtReserve += debtAmt; + StateChecker.checkMarketState(res, state); + + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + assert(res.collateral.balanceOf(sender) == remainningC + senderCBalanceBefore); + vm.stopPrank(); + } + + // Case 2: removed collateral can cover repayAmt + rewardToLiquidator but not rewardToProtocol + function testLiquidateCase2() public { + uint128 debtAmt = 950e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.gt), debtAmt); + + uint256 senderCBalanceBefore = res.collateral.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + // uint cToLiquidator = 0.9975e18; + // uint cToTreasurer = 0.0025e18; + // uint remainningC = 0; + (uint256 cToLiquidator, uint256 cToTreasurer, uint256 remainningC) = + LoanUtils.calcLiquidationResult(res, debtAmt, collateralAmt, debtAmt); + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + debtAmt, + true, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + + res.gt.liquidate(gtId, debtAmt, true); + state.collateralReserve -= collateralAmt; + state.debtReserve += debtAmt; + StateChecker.checkMarketState(res, state); + + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + assert(res.collateral.balanceOf(sender) == remainningC + senderCBalanceBefore); + vm.stopPrank(); + } + + // Case 3: removed collateral equal repayAmt + rewardToLiquidator + rewardToProtocol + function testLiquidateCase3() public { + uint128 debtAmt = 900e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.gt), debtAmt); + + uint256 senderCBalanceBefore = res.collateral.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + // uint cToLiquidator = 0.945e18; + // uint cToTreasurer = 0.045e18; + // uint remainningC = 0.01e18; + (uint256 cToLiquidator, uint256 cToTreasurer, uint256 remainningC) = + LoanUtils.calcLiquidationResult(res, debtAmt, collateralAmt, debtAmt); + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + debtAmt, + true, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + + res.gt.liquidate(gtId, debtAmt, true); + state.collateralReserve -= collateralAmt; + state.debtReserve += debtAmt; + StateChecker.checkMarketState(res, state); + + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + assert(res.collateral.balanceOf(sender) == remainningC + senderCBalanceBefore); + vm.stopPrank(); + } + + function testLiquidateByFt() public { + uint128 debtAmt = 1000e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.market), debtAmt); + res.market.mint(liquidator, debtAmt); + res.ft.approve(address(res.gt), debtAmt); + + uint256 senderCBalanceBefore = res.collateral.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + uint256 cToLiquidator = collateralAmt; + uint256 cToTreasurer = 0; + uint256 remainningC = 0; + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + debtAmt, + false, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + + res.gt.liquidate(gtId, debtAmt, false); + state.collateralReserve -= collateralAmt; + StateChecker.checkMarketState(res, state); + + assert(res.ft.balanceOf(address(res.market)) == debtAmt); + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + assert(res.collateral.balanceOf(sender) == remainningC + senderCBalanceBefore); + vm.stopPrank(); + } + + function testRemovedCollateralLessThanRepayAmt() public { + uint128 debtAmt = 900e8; + uint256 collateralAmt = 0.93e18; + uint128 repayAmt = 300e8; + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, repayAmt); + res.debt.approve(address(res.gt), repayAmt); + + uint256 senderCBalanceBefore = res.collateral.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + // uint cToLiquidator = 0.31e18; + // uint cToTreasurer = 0; + // uint remainningC = 0.62e18; + (uint256 cToLiquidator, uint256 cToTreasurer, uint256 remainningC) = + LoanUtils.calcLiquidationResult(res, debtAmt, collateralAmt, repayAmt); + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + repayAmt, + true, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + + res.gt.liquidate(gtId, repayAmt, true); + state.collateralReserve -= (cToLiquidator + cToTreasurer); + state.debtReserve += repayAmt; + StateChecker.checkMarketState(res, state); + + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + assert(res.collateral.balanceOf(sender) == senderCBalanceBefore); + vm.stopPrank(); + } + + function testHalfLiquidate() public { + uint128 debtAmt = 9000e8; + uint256 collateralAmt = 10e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + (bool isLiquidable,, uint128 maxRepayAmt) = res.gt.getLiquidationInfo(gtId); + assert(isLiquidable); + assert(maxRepayAmt == debtAmt / 2); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, maxRepayAmt); + res.debt.approve(address(res.gt), maxRepayAmt); + + uint256 senderCBalanceBefore = res.collateral.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + // uint cToLiquidator = 4.725e18; + // uint cToTreasurer = 0.225e18; + // uint remainningC = 5.05e18; + (uint256 cToLiquidator, uint256 cToTreasurer, uint256 remainningC) = + LoanUtils.calcLiquidationResult(res, debtAmt, collateralAmt, maxRepayAmt); + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + maxRepayAmt, + true, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + + res.gt.liquidate(gtId, maxRepayAmt, true); + state.collateralReserve -= (cToLiquidator + cToTreasurer); + state.debtReserve += maxRepayAmt; + StateChecker.checkMarketState(res, state); + + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + assert(res.collateral.balanceOf(sender) == senderCBalanceBefore); + vm.stopPrank(); + + (address owner, uint128 newDebtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assert(owner == sender); + assert(newDebtAmt == debtAmt - maxRepayAmt); + + assert(remainningC == abi.decode(collateralData, (uint256))); + uint128 ltv; + (isLiquidable, ltv, maxRepayAmt) = res.gt.getLiquidationInfo(gtId); + assert(ltv < liquidationLtv); + assert(!isLiquidable); + assert(maxRepayAmt == 0); + } + + function testLiquidateInWindowTime(uint16 exceedTime) public { + vm.assume(exceedTime < Constants.LIQUIDATION_WINDOW); + uint256 liquidateTime = marketConfig.maturity + exceedTime; + uint128 debtAmt = 1000e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + + vm.warp(liquidateTime); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.gt), debtAmt); + + uint256 senderCBalanceBefore = res.collateral.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + uint256 cToLiquidator = collateralAmt; + uint256 cToTreasurer = 0; + uint256 remainningC = 0; + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + debtAmt, + true, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + + res.gt.liquidate(gtId, debtAmt, true); + state.collateralReserve -= collateralAmt; + state.debtReserve += debtAmt; + StateChecker.checkMarketState(res, state); + + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + assert(res.collateral.balanceOf(sender) == remainningC + senderCBalanceBefore); + vm.stopPrank(); + } + + function testLiquidatable() public { + uint128 debtAmt = 10000e8; + uint256 collateralAmt = 10e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + + vm.warp(marketConfig.maturity - 1); + (bool isLiquidable,, uint128 maxRepayAmt) = res.gt.getLiquidationInfo(gtId); + assert(isLiquidable); + assert(maxRepayAmt == debtAmt / 2); + + vm.warp(marketConfig.maturity); + (isLiquidable,, maxRepayAmt) = res.gt.getLiquidationInfo(gtId); + assert(isLiquidable); + assert(maxRepayAmt == debtAmt); + + vm.warp(marketConfig.maturity + Constants.LIQUIDATION_WINDOW); + (isLiquidable,, maxRepayAmt) = res.gt.getLiquidationInfo(gtId); + assert(!isLiquidable); + assert(maxRepayAmt == 0); + } + + function testLiquidateWithDecimalsExceed8() public { + uint128 debtAmt = 1e8; + uint256 collateralAmt = 1.01e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + MockPriceFeed.RoundData memory data = JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth"); + data.answer = 1e18; // eth price 1e8 + res.collateralOracle.updateRoundData(data); + data.answer = 1e8; // dai price 1e18 + res.debtOracle.updateRoundData(data); + vm.stopPrank(); + + vm.warp(marketConfig.maturity + 1); + + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.gt), debtAmt); + + uint256 senderCBalanceBefore = res.collateral.balanceOf(sender); + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + + vm.expectEmit(); + (uint256 cToLiquidator, uint256 cToTreasurer, uint256 remainningC) = + LoanUtils.calcLiquidationResult(res, debtAmt, collateralAmt, debtAmt); + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + debtAmt, + true, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + + res.gt.liquidate(gtId, debtAmt, true); + state.collateralReserve -= collateralAmt; + state.debtReserve += debtAmt; + StateChecker.checkMarketState(res, state); + + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + assert(res.collateral.balanceOf(sender) == remainningC + senderCBalanceBefore); + vm.stopPrank(); + } + + function testLiquidateWhenOracleOutdated() public { + uint128 debtAmt = 1000e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + MockPriceFeed.RoundData memory peth = JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth"); + MockPriceFeed.RoundData memory pdai = JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai"); + peth.updatedAt = block.timestamp - 1; + pdai.updatedAt = block.timestamp - 1; + res.collateralOracle.updateRoundData(peth); + res.debtOracle.updateRoundData(pdai); + + vm.stopPrank(); + + vm.prank(deployer); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 3600, 3600) + ); + res.oracle.acceptPendingOracle(address(res.collateral)); + + vm.warp(block.timestamp + 3600); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.gt), debtAmt); + + vm.expectRevert(abi.encodeWithSelector(IOracleV2.OracleIsNotWorking.selector, address(res.collateral))); + res.gt.liquidate(gtId, debtAmt, true); + + vm.stopPrank(); + vm.warp(block.timestamp - 1); + vm.prank(liquidator); + res.gt.liquidate(gtId, debtAmt, true); + } + + function testRevertByGtIsSafeWhenLiquidate() public { + uint128 debtAmt = 1000e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.gt), debtAmt); + + vm.expectRevert(abi.encodeWithSelector(GearingTokenErrors.GtIsSafe.selector, gtId)); + res.gt.liquidate(gtId, debtAmt, true); + + vm.stopPrank(); + } + + function testRevertByCanNotLiquidationAfterFinalDeadline() public { + uint256 liquidateTime = marketConfig.maturity + Constants.LIQUIDATION_WINDOW; + uint128 debtAmt = 1000e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + + vm.warp(liquidateTime); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, debtAmt); + res.debt.approve(address(res.gt), debtAmt); + + vm.expectRevert( + abi.encodeWithSelector( + GearingTokenErrors.CanNotLiquidationAfterFinalDeadline.selector, + gtId, + marketConfig.maturity + Constants.LIQUIDATION_WINDOW + ) + ); + res.gt.liquidate(gtId, debtAmt, true); + } + + function testRevertByRepayAmtExceedsMaxRepayAmt() public { + uint128 debtAmt = 9000e8; + uint256 collateralAmt = 10e18; + + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + (bool isLiquidable,, uint128 maxRepayAmt) = res.gt.getLiquidationInfo(gtId); + assert(isLiquidable); + assert(maxRepayAmt == debtAmt / 2); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + uint128 repayAmt = maxRepayAmt + 1; + res.debt.mint(liquidator, repayAmt); + res.debt.approve(address(res.gt), repayAmt); + + vm.expectRevert( + abi.encodeWithSelector(GearingTokenErrors.RepayAmtExceedsMaxRepayAmt.selector, gtId, repayAmt, maxRepayAmt) + ); + res.gt.liquidate(gtId, repayAmt, true); + + vm.stopPrank(); + } + + function testNoRevertByLtvIncreasedAfterLiquidation(uint128 repayAmt) public { + uint128 debtAmt = 900e8; + vm.assume(repayAmt >= 5e8 && repayAmt <= debtAmt - 5e8); + uint256 collateralAmt = 0.6e18; + vm.startPrank(sender); + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + vm.stopPrank(); + vm.startPrank(deployer); + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_1000_DAI_1.dai")); + vm.stopPrank(); + address liquidator = vm.randomAddress(); + vm.startPrank(liquidator); + + res.debt.mint(liquidator, repayAmt); + res.debt.approve(address(res.gt), repayAmt); + + StateChecker.MarketState memory state = StateChecker.getMarketState(res); + (uint256 cToLiquidator, uint256 cToTreasurer, uint256 remainningC) = + LoanUtils.calcLiquidationResult(res, debtAmt, collateralAmt, repayAmt); + emit GearingTokenEvents.Liquidate( + gtId, + liquidator, + repayAmt, + true, + abi.encode(cToLiquidator), + abi.encode(cToTreasurer), + abi.encode(remainningC) + ); + res.gt.liquidate(gtId, repayAmt, true); + if (repayAmt < debtAmt) { + state.collateralReserve -= (cToLiquidator + cToTreasurer); + } else { + state.collateralReserve -= collateralAmt; + } + state.debtReserve += repayAmt; + StateChecker.checkMarketState(res, state); + + assert(res.collateral.balanceOf(marketConfig.treasurer) == cToTreasurer); + assert(res.collateral.balanceOf(liquidator) == cToLiquidator); + + vm.stopPrank(); + } + + function testFuzzMintGt(uint128 debtAmt, uint128 debtAmt2) public { + uint256 collateralAmt = 1e18; + vm.assume(debtAmt <= 1000e8); + vm.assume(debtAmt2 <= 600e8); + vm.startPrank(sender); + res.collateral.mint(sender, collateralAmt); + bytes memory collateralData = abi.encode(collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + (uint256 gtId,) = res.market.issueFt(sender, debtAmt, collateralData); + + res.market.issueFtByExistedGt(sender, debtAmt2, gtId); + vm.stopPrank(); + } + + function testLiquidateZeroDebt() public { + uint256 collateralAmt = 1e18; + uint128 debtAmt = 0; + vm.startPrank(sender); + res.collateral.mint(sender, collateralAmt); + bytes memory collateralData = abi.encode(collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + (uint256 gtId,) = res.market.issueFt(sender, debtAmt, collateralData); + vm.stopPrank(); + + address liquidator = vm.randomAddress(); + uint128 repayAmt = 0; + vm.startPrank(liquidator); + vm.expectRevert(abi.encodeWithSelector(GearingTokenErrors.GtIsSafe.selector, gtId)); + res.gt.liquidate(gtId, repayAmt, true); + + vm.warp(marketConfig.maturity); + res.gt.liquidate(gtId, repayAmt, true); + + assertEq(res.collateral.balanceOf(liquidator), 0); + assertEq(res.collateral.balanceOf(marketConfig.treasurer), 0); + assertEq(res.debt.balanceOf(sender), debtAmt); + vm.stopPrank(); + } + + function testRepayZeroDebt() public { + uint256 collateralAmt = 1e18; + uint128 debtAmt = 0; + vm.startPrank(sender); + res.collateral.mint(sender, collateralAmt); + bytes memory collateralData = abi.encode(collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + (uint256 gtId,) = res.market.issueFt(sender, debtAmt, collateralData); + + res.gt.repay(gtId, 0, true); + assertEq(res.collateral.balanceOf(sender), collateralAmt); + vm.stopPrank(); + } +} diff --git a/test/v2/MarketV2.t.sol b/test/v2/MarketV2.t.sol new file mode 100644 index 0000000..565dcaa --- /dev/null +++ b/test/v2/MarketV2.t.sol @@ -0,0 +1,421 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {console} from "forge-std/console.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; +import {StateChecker} from "./utils/StateChecker.sol"; +import {SwapUtils} from "./utils/SwapUtils.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import { + ITermMaxMarketV2, TermMaxMarketV2, Constants, MarketErrors, MarketEvents +} from "contracts/v2/TermMaxMarketV2.sol"; +import {ITermMaxOrder, TermMaxOrderV2, ISwapCallback, OrderEvents} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCuts +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {OrderEventsV2} from "contracts/v2/events/OrderEventsV2.sol"; + +contract MarketV2Test is Test { + using JSONLoader for *; + + DeployUtils.Res res; + + OrderConfig orderConfig; + MarketConfig marketConfig; + + address deployer = vm.randomAddress(); + address maker = vm.randomAddress(); + address sender = vm.randomAddress(); + address treasurer = vm.randomAddress(); + string testdata; + + function setUp() public { + vm.startPrank(deployer); + testdata = vm.readFile(string.concat(vm.projectRoot(), "/test/testdata/testdata.json")); + + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + + marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + orderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".orderConfig"); + res = DeployUtils.deployMarket(deployer, marketConfig, maxLtv, liquidationLtv); + + res.order = + res.market.createOrder(maker, orderConfig.maxXtReserve, ISwapCallback(address(0)), orderConfig.curveCuts); + + vm.warp(vm.parseUint(vm.parseJsonString(testdata, ".currentTime"))); + + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.dai")); + + vm.stopPrank(); + } + + function testUpdateMarketConfig() public { + vm.startPrank(deployer); + marketConfig.treasurer = vm.randomAddress(); + marketConfig.feeConfig.mintGtFeeRatio = 0.02e8; + marketConfig.feeConfig.borrowTakerFeeRatio = 0.03e8; + marketConfig.feeConfig.borrowMakerFeeRatio = 0.04e8; + marketConfig.feeConfig.lendTakerFeeRatio = 0.05e8; + marketConfig.feeConfig.lendMakerFeeRatio = 0.06e8; + + vm.expectEmit(); + emit MarketEvents.UpdateMarketConfig(marketConfig); + res.market.updateMarketConfig(marketConfig); + + assertEq(res.market.config().treasurer, marketConfig.treasurer); + assertEq(res.gt.getGtConfig().treasurer, marketConfig.treasurer); + assertEq(res.market.config().feeConfig.mintGtFeeRatio, marketConfig.feeConfig.mintGtFeeRatio); + assertEq(res.market.config().feeConfig.borrowTakerFeeRatio, marketConfig.feeConfig.borrowTakerFeeRatio); + assertEq(res.market.config().feeConfig.borrowMakerFeeRatio, marketConfig.feeConfig.borrowMakerFeeRatio); + assertEq(res.market.config().feeConfig.lendTakerFeeRatio, marketConfig.feeConfig.lendTakerFeeRatio); + assertEq(res.market.config().feeConfig.lendMakerFeeRatio, marketConfig.feeConfig.lendMakerFeeRatio); + + vm.stopPrank(); + } + + function testUpdateMarketConfigWhenNotOwner() public { + vm.startPrank(sender); + marketConfig.treasurer = vm.randomAddress(); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, address(sender))); + res.market.updateMarketConfig(marketConfig); + vm.stopPrank(); + } + + function testUpdateOrderConfigInvalidParams() public { + vm.startPrank(deployer); + + MarketConfig memory newConfig = res.market.config(); + newConfig.feeConfig.mintGtFeeRef = uint32(Constants.DECIMAL_BASE * 5 + 1); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.FeeTooHigh.selector)); + res.market.updateMarketConfig(newConfig); + + newConfig.feeConfig.mintGtFeeRef = 0; + newConfig.feeConfig.borrowMakerFeeRatio = uint32(Constants.MAX_FEE_RATIO); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.FeeTooHigh.selector)); + res.market.updateMarketConfig(newConfig); + vm.stopPrank(); + } + + function testMint() public { + vm.startPrank(sender); + uint256 amount = 150e8; + res.debt.mint(sender, amount); + res.debt.approve(address(res.market), amount); + + emit MarketEvents.Mint(sender, sender, amount); + res.market.mint(sender, amount); + + assertEq(res.debt.balanceOf(sender), 0); + assertEq(res.ft.balanceOf(sender), amount); + assertEq(res.xt.balanceOf(sender), amount); + assertEq(res.debt.balanceOf(address(res.market)), amount); + + vm.stopPrank(); + } + + function testMintWhenTermIsNotOpen() public { + vm.startPrank(sender); + uint256 amount = 150e8; + res.debt.mint(sender, amount); + res.debt.approve(address(res.market), amount); + + vm.warp(marketConfig.maturity); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.TermIsNotOpen.selector)); + res.market.mint(sender, amount); + + vm.stopPrank(); + } + + function testBurn() public { + vm.startPrank(sender); + uint256 amount = 150e8; + res.debt.mint(sender, amount); + res.debt.approve(address(res.market), amount); + res.market.mint(sender, amount); + + emit MarketEvents.Burn(sender, sender, amount); + ITermMaxMarketV2(address(res.market)).burn(sender, sender, amount); + assertEq(res.debt.balanceOf(sender), amount); + assertEq(res.ft.balanceOf(sender), 0); + assertEq(res.xt.balanceOf(sender), 0); + assertEq(res.debt.balanceOf(address(res.market)), 0); + vm.stopPrank(); + } + + function testBurnWhenTermIsNotOpen() public { + vm.startPrank(sender); + uint256 amount = 150e8; + res.debt.mint(sender, amount); + res.debt.approve(address(res.market), amount); + vm.warp(marketConfig.maturity); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.TermIsNotOpen.selector)); + ITermMaxMarketV2(address(res.market)).burn(sender, sender, amount); + vm.stopPrank(); + } + + function testIssueFt() public { + vm.startPrank(sender); + uint128 debtAmt = 1000e8; + res.debt.mint(sender, debtAmt); + res.debt.approve(address(res.market), debtAmt); + res.market.mint(sender, debtAmt); + + uint256 fee = (res.market.mintGtFeeRatio() * debtAmt) / Constants.DECIMAL_BASE; + uint256 collateralAmt = 1e18; + res.collateral.mint(sender, collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + vm.expectEmit(); + emit MarketEvents.IssueFt( + sender, sender, 1, debtAmt, uint128(debtAmt - fee), uint128(fee), abi.encode(collateralAmt) + ); + (uint256 gtId, uint128 ftOutAmt) = res.market.issueFt(sender, debtAmt, abi.encode(collateralAmt)); + + assertEq(gtId, 1); + assertEq(res.debt.balanceOf(sender), 0); + assertEq(debtAmt - fee, ftOutAmt); + assertEq(res.ft.balanceOf(sender), ftOutAmt + debtAmt); + assertEq(res.collateral.balanceOf(address(res.gt)), collateralAmt); + assertEq(res.debt.balanceOf(address(res.market)), debtAmt); + + (address owner, uint128 dAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, sender); + assertEq(dAmt, debtAmt); + + assertEq(abi.decode(collateralData, (uint256)), collateralAmt); + + vm.stopPrank(); + } + + function testIssueFtByExistGt() public { + vm.startPrank(sender); + uint128 debtAmt = 1000e8; + + uint256 collateralAmt = 1e18; + res.collateral.mint(sender, collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + (uint256 gtId, uint128 ftOutAmt) = res.market.issueFt(sender, debtAmt, abi.encode(collateralAmt)); + + uint128 debtAmt2 = debtAmt / 2; + uint256 fee = (res.market.mintGtFeeRatio() * debtAmt2) / Constants.DECIMAL_BASE; + vm.expectEmit(); + emit MarketEvents.IssueFtByExistedGt(sender, sender, gtId, debtAmt2, uint128(debtAmt2 - fee), uint128(fee)); + uint256 ftOutAmt2 = res.market.issueFtByExistedGt(sender, debtAmt2, gtId); + + assertEq(res.ft.balanceOf(sender), ftOutAmt + ftOutAmt2); + (address owner, uint128 dAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, sender); + assertEq(dAmt, debtAmt + debtAmt2); + assertEq(abi.decode(collateralData, (uint256)), collateralAmt); + vm.stopPrank(); + } + + function testIssueFtByExistedGtWhenTermIsNotOpen() public { + vm.startPrank(sender); + uint128 debtAmt = 1000e8; + + vm.warp(marketConfig.maturity); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.TermIsNotOpen.selector)); + res.market.issueFtByExistedGt(sender, debtAmt, 1); + vm.stopPrank(); + } + + function testIssueFtWhenTermIsNotOpen() public { + vm.startPrank(sender); + uint128 debtAmt = 1000e8; + + vm.warp(marketConfig.maturity); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.TermIsNotOpen.selector)); + res.market.issueFt(sender, debtAmt, abi.encode(1e18)); + vm.stopPrank(); + } + + function testLeverage() public { + uint128 xtAmt = 1000e8; + uint256 collateralAmt = 1e18; + vm.startPrank(deployer); + res.debt.mint(deployer, xtAmt); + res.debt.approve(address(res.market), xtAmt); + res.market.mint(deployer, xtAmt); + res.xt.transfer(sender, xtAmt); + vm.stopPrank(); + + vm.startPrank(sender); + MockFlashLoanReceiver receiver = new MockFlashLoanReceiver(res.market); + res.xt.approve(address(receiver), xtAmt); + + res.collateral.mint(address(receiver), collateralAmt); + + uint256 debtAmt = xtAmt * Constants.DECIMAL_BASE / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio()); + + vm.expectEmit(); + emit MarketEvents.LeverageByXt( + address(receiver), sender, 1, uint128(debtAmt), xtAmt, uint128(debtAmt - xtAmt), abi.encode(collateralAmt) + ); + receiver.leverageByXt(xtAmt, abi.encode(sender, collateralAmt)); + + assertEq(res.debt.balanceOf(sender), 0); + assertEq(res.debt.balanceOf(address(res.market)), 0); + assertEq(res.debt.balanceOf(address(receiver)), xtAmt); + assertEq(res.xt.balanceOf(sender), 0); + + (address owner, uint128 dAmt, bytes memory collateralData) = res.gt.loanInfo(1); + assertEq(owner, sender); + + assertEq(dAmt, uint128(debtAmt)); + + assertEq(abi.decode(collateralData, (uint256)), collateralAmt); + + vm.stopPrank(); + } + + function testLeverageWhenTermIsNotOpen() public { + uint128 debtAmt = 1000e8; + uint256 collateralAmt = 1e18; + vm.startPrank(deployer); + res.debt.mint(deployer, debtAmt); + res.debt.approve(address(res.market), debtAmt); + res.market.mint(deployer, debtAmt); + res.xt.transfer(sender, debtAmt); + vm.stopPrank(); + + vm.startPrank(sender); + MockFlashLoanReceiver receiver = new MockFlashLoanReceiver(res.market); + res.xt.approve(address(receiver), debtAmt); + + vm.warp(marketConfig.maturity); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.TermIsNotOpen.selector)); + receiver.leverageByXt(debtAmt, abi.encode(sender, collateralAmt)); + vm.stopPrank(); + } + + function testCreateOrder() public { + vm.startPrank(sender); + orderConfig.feeConfig = res.market.config().feeConfig; + vm.expectEmit(); + emit OrderEventsV2.OrderInitialized(sender, address(res.market), orderConfig); + ITermMaxOrder order = + res.market.createOrder(sender, orderConfig.maxXtReserve, ISwapCallback(address(0)), orderConfig.curveCuts); + assertEq(address(order.market()), address(res.market)); + assertEq(Ownable(address(order)).owner(), sender); + assertEq(order.orderConfig().maxXtReserve, orderConfig.maxXtReserve); + assertEq(order.maker(), sender); + + vm.stopPrank(); + } + + function testCreateOrderWhenTermIsNotOpen() public { + vm.startPrank(sender); + vm.warp(marketConfig.maturity); + vm.expectRevert(abi.encodeWithSelector(MarketErrors.TermIsNotOpen.selector)); + res.market.createOrder(sender, orderConfig.maxXtReserve, ISwapCallback(address(0)), orderConfig.curveCuts); + vm.stopPrank(); + } + + function testRedeem() public { + address bob = vm.randomAddress(); + address alice = vm.randomAddress(); + + uint128 depositAmt = 1000e8; + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(bob); + res.debt.mint(bob, depositAmt); + res.debt.approve(address(res.market), depositAmt); + res.market.mint(bob, depositAmt); + + res.xt.transfer(alice, debtAmt); + vm.stopPrank(); + + vm.startPrank(alice); + + MockFlashLoanReceiver receiver = new MockFlashLoanReceiver(res.market); + res.collateral.mint(address(receiver), collateralAmt); + + res.xt.approve(address(receiver), debtAmt); + receiver.leverageByXt(debtAmt, abi.encode(alice, collateralAmt)); + uint128 leverageFee = + uint128(debtAmt * Constants.DECIMAL_BASE / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio())) - debtAmt; + vm.stopPrank(); + + vm.warp(marketConfig.maturity + Constants.LIQUIDATION_WINDOW); + + vm.startPrank(bob); + res.ft.approve(address(res.market), depositAmt); + + (uint256 expectDebt, bytes memory collateralData) = res.market.previewRedeem(depositAmt); + vm.expectEmit(); + uint128 proportion = uint128(Constants.DECIMAL_BASE_SQ) * depositAmt / (depositAmt + leverageFee); + emit MarketEvents.Redeem(bob, bob, proportion, uint128(expectDebt), collateralData); + ITermMaxMarketV2(address(res.market)).redeem(bob, bob, depositAmt); + uint256 expectCollateral = abi.decode(collateralData, (uint256)); + + assertEq(res.debt.balanceOf(bob), expectDebt); + assertEq(res.collateral.balanceOf(bob), expectCollateral); + assertEq(res.debt.balanceOf(address(res.market)), (depositAmt - debtAmt) - expectDebt); + assertEq(res.collateral.balanceOf(address(res.gt)), collateralAmt - expectCollateral); + assertEq(res.ft.balanceOf(bob), 0); + vm.stopPrank(); + } + + function testRedeemBeforeDeadline() public { + uint128 depositAmt = 1000e8; + + vm.startPrank(sender); + res.debt.mint(sender, depositAmt); + res.debt.approve(address(res.market), depositAmt); + res.market.mint(sender, depositAmt); + + res.ft.approve(address(res.market), depositAmt); + uint256 deadline = marketConfig.maturity + Constants.LIQUIDATION_WINDOW; + vm.warp(deadline - 1); + vm.expectRevert( + abi.encodeWithSelector(MarketErrors.CanNotRedeemBeforeFinalLiquidationDeadline.selector, deadline) + ); + ITermMaxMarketV2(address(res.market)).redeem(sender, sender, depositAmt); + + vm.warp(marketConfig.maturity - 1); + vm.expectRevert( + abi.encodeWithSelector(MarketErrors.CanNotRedeemBeforeFinalLiquidationDeadline.selector, deadline) + ); + ITermMaxMarketV2(address(res.market)).redeem(sender, sender, depositAmt); + + vm.stopPrank(); + } + + function testFuzzIssueFtByExistedGtDebtAmount(uint128 issueAmount) public { + vm.assume(issueAmount >= 1); + vm.assume(issueAmount <= type(uint64).max); + + uint128 debt = + uint128((issueAmount * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio())); + + vm.startPrank(sender); + + uint256 collateralAmt = type(uint128).max; + bytes memory collateralData = abi.encode(collateralAmt); + res.collateral.mint(sender, collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + res.market.issueFt(sender, issueAmount, collateralData); + + uint128 ftOutAmt = res.market.issueFtByExistedGt(sender, debt, 1); + assertTrue(ftOutAmt == issueAmount); + vm.stopPrank(); + } +} diff --git a/test/OracleAggregator.t.sol b/test/v2/OracleAggregatorV2.t.sol similarity index 52% rename from test/OracleAggregator.t.sol rename to test/v2/OracleAggregatorV2.t.sol index 67d32b0..71e8f4b 100644 --- a/test/OracleAggregator.t.sol +++ b/test/v2/OracleAggregatorV2.t.sol @@ -2,14 +2,14 @@ pragma solidity ^0.8.27; import {Test} from "forge-std/Test.sol"; -import {OracleAggregator} from "../contracts/oracle/OracleAggregator.sol"; -import {AggregatorV3Interface, IOracle} from "../contracts/oracle/IOracle.sol"; -import {MockPriceFeed} from "../contracts/test/MockPriceFeed.sol"; +import {console} from "forge-std/console.sol"; +import {OracleAggregatorV2, IOracleV2, AggregatorV3Interface} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {MockPriceFeedV2} from "contracts/v2/test/MockPriceFeedV2.sol"; -contract OracleAggregatorTest is Test { - OracleAggregator public oracleAggregator; - MockPriceFeed public primaryFeed; - MockPriceFeed public backupFeed; +contract OracleAggregatorTestV2 is Test { + OracleAggregatorV2 public oracleAggregator; + MockPriceFeedV2 public primaryFeed; + MockPriceFeedV2 public backupFeed; address public constant OWNER = address(0x1); address public constant ASSET = address(0x2); @@ -17,6 +17,7 @@ contract OracleAggregatorTest is Test { uint32 public constant HEARTBEAT = 1 hours; uint32 public constant BACKUP_HEARTBEAT = 2 hours; int256 public constant MAX_PRICE = 10000e8; + int256 public constant MIN_PRICE = 1000e8; // Price feed configuration uint8 public constant DECIMALS = 8; @@ -24,11 +25,11 @@ contract OracleAggregatorTest is Test { function setUp() public { // Deploy mock price feeds - primaryFeed = new MockPriceFeed(OWNER); - backupFeed = new MockPriceFeed(OWNER); + primaryFeed = new MockPriceFeedV2(OWNER); + backupFeed = new MockPriceFeedV2(OWNER); // Set initial price data - MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ roundId: 1, answer: INITIAL_PRICE, startedAt: block.timestamp, @@ -43,16 +44,17 @@ contract OracleAggregatorTest is Test { // Deploy OracleAggregator with owner and timelock vm.prank(OWNER); - oracleAggregator = new OracleAggregator(OWNER, TIMELOCK); + oracleAggregator = new OracleAggregatorV2(OWNER, TIMELOCK); } function test_SubmitPendingOracle() public { - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.prank(OWNER); @@ -63,6 +65,7 @@ contract OracleAggregatorTest is Test { AggregatorV3Interface aggregator, AggregatorV3Interface backupAggregator, int256 maxPrice, + int256 minPrice, uint32 heartbeat, uint32 backupHeartbeat ) = oracleAggregator.oracles(ASSET); @@ -71,8 +74,9 @@ contract OracleAggregatorTest is Test { assertEq(heartbeat, 0, "Heartbeat should not be set yet"); assertEq(backupHeartbeat, 0, "Backup heartbeat should not be set yet"); assertEq(maxPrice, 0, "Max price should not be set yet"); + assertEq(minPrice, 0, "Min price should not be set yet"); - (IOracle.Oracle memory pendingOracle, uint64 validAt) = oracleAggregator.pendingOracles(ASSET); + (IOracleV2.Oracle memory pendingOracle, uint64 validAt) = oracleAggregator.pendingOracles(ASSET); assertEq(address(pendingOracle.aggregator), address(primaryFeed)); assertEq(address(pendingOracle.backupAggregator), address(backupFeed)); assertEq(pendingOracle.heartbeat, HEARTBEAT); @@ -83,12 +87,13 @@ contract OracleAggregatorTest is Test { function test_AcceptPendingOracle() public { // Submit pending oracle - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.prank(OWNER); @@ -104,6 +109,7 @@ contract OracleAggregatorTest is Test { AggregatorV3Interface aggregator, AggregatorV3Interface backupAggregator, int256 maxPrice, + int256 minPrice, uint32 heartbeat, uint32 backupHeartbeat ) = oracleAggregator.oracles(ASSET); @@ -112,9 +118,10 @@ contract OracleAggregatorTest is Test { assertEq(heartbeat, HEARTBEAT); assertEq(backupHeartbeat, BACKUP_HEARTBEAT); assertEq(maxPrice, MAX_PRICE); + assertEq(minPrice, MIN_PRICE); // Verify pending oracle is cleared - (IOracle.Oracle memory pendingOracle, uint64 validAt) = oracleAggregator.pendingOracles(ASSET); + (IOracleV2.Oracle memory pendingOracle, uint64 validAt) = oracleAggregator.pendingOracles(ASSET); assertEq(address(pendingOracle.aggregator), address(0)); assertEq(address(pendingOracle.backupAggregator), address(0)); assertEq(pendingOracle.heartbeat, 0); @@ -125,12 +132,13 @@ contract OracleAggregatorTest is Test { function test_GetPrice_PrimaryOracle() public { // Setup oracle - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -141,7 +149,7 @@ contract OracleAggregatorTest is Test { oracleAggregator.acceptPendingOracle(ASSET); // Update primary oracle timestamp to match current time - MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ roundId: 1, answer: INITIAL_PRICE, startedAt: block.timestamp, @@ -159,12 +167,13 @@ contract OracleAggregatorTest is Test { function test_GetPrice_FallbackToBackup() public { // Setup oracle - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -179,7 +188,7 @@ contract OracleAggregatorTest is Test { // Update backup price int256 backupPrice = 3100e8; - MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ roundId: 2, answer: backupPrice, startedAt: block.timestamp, @@ -197,12 +206,13 @@ contract OracleAggregatorTest is Test { function test_RevertGetPrice_BothOraclesStale() public { // Setup oracle - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -221,12 +231,13 @@ contract OracleAggregatorTest is Test { } function test_RevertSubmitPendingOracle_NotOwner() public { - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.prank(address(0x3)); @@ -236,12 +247,13 @@ contract OracleAggregatorTest is Test { function test_RevertAcceptPendingOracle_BeforeTimelock() public { // Submit pending oracle - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.prank(OWNER); @@ -253,12 +265,13 @@ contract OracleAggregatorTest is Test { function test_RemoveOracle() public { // First add an oracle - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -272,12 +285,13 @@ contract OracleAggregatorTest is Test { vm.prank(OWNER); oracleAggregator.submitPendingOracle( ASSET, - IOracle.Oracle({ + IOracleV2.Oracle({ aggregator: AggregatorV3Interface(address(0)), backupAggregator: AggregatorV3Interface(address(0)), heartbeat: 0, backupHeartbeat: 0, - maxPrice: 0 + maxPrice: 0, + minPrice: 0 }) ); @@ -286,6 +300,7 @@ contract OracleAggregatorTest is Test { AggregatorV3Interface aggregator, AggregatorV3Interface backupAggregator, int256 maxPrice, + int256 minPrice, uint32 heartbeat, uint32 backupHeartbeat ) = oracleAggregator.oracles(ASSET); @@ -294,16 +309,18 @@ contract OracleAggregatorTest is Test { assertEq(heartbeat, 0); assertEq(backupHeartbeat, 0); assertEq(maxPrice, 0); + assertEq(minPrice, 0); } function test_GetPrice_PrimaryExceedsMaxPrice_NoBackup() public { // Create an oracle with maxPrice and no backup - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: AggregatorV3Interface(address(0)), heartbeat: HEARTBEAT, backupHeartbeat: 0, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -315,7 +332,7 @@ contract OracleAggregatorTest is Test { // Set primary price above maxPrice int256 highPrice = MAX_PRICE + 1000e8; - MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ roundId: 2, answer: highPrice, startedAt: block.timestamp, @@ -325,20 +342,20 @@ contract OracleAggregatorTest is Test { vm.prank(OWNER); primaryFeed.updateRoundData(roundData); - // Get price - should return maxPrice instead of actual price - (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); - assertEq(price, uint256(MAX_PRICE)); - assertEq(decimals, DECIMALS); + // Should revert since primary exceeds maxPrice and no backup exists + vm.expectRevert(abi.encodeWithSignature("OracleIsNotWorking(address)", ASSET)); + oracleAggregator.getPrice(ASSET); } function test_GetPrice_PrimaryExceedsMaxPrice_WithBackup() public { // Create an oracle with maxPrice - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -350,7 +367,7 @@ contract OracleAggregatorTest is Test { // Set primary price above maxPrice int256 highPrice = MAX_PRICE + 1000e8; - MockPriceFeed.RoundData memory primaryRoundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory primaryRoundData = MockPriceFeedV2.RoundData({ roundId: 2, answer: highPrice, startedAt: block.timestamp, @@ -358,11 +375,11 @@ contract OracleAggregatorTest is Test { answeredInRound: 2 }); - // Set backup price below maxPrice - int256 validBackupPrice = MAX_PRICE - 1000e8; - MockPriceFeed.RoundData memory backupRoundData = MockPriceFeed.RoundData({ + // Set backup price below maxPrice (valid) + int256 backupPrice = MAX_PRICE - 1000e8; + MockPriceFeedV2.RoundData memory backupRoundData = MockPriceFeedV2.RoundData({ roundId: 2, - answer: validBackupPrice, + answer: backupPrice, startedAt: block.timestamp, updatedAt: block.timestamp, answeredInRound: 2 @@ -373,20 +390,21 @@ contract OracleAggregatorTest is Test { backupFeed.updateRoundData(backupRoundData); vm.stopPrank(); - // Get price - should fallback to backup oracle + // Get price - should fallback to backup oracle since primary exceeds maxPrice (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); - assertEq(price, uint256(validBackupPrice)); + assertEq(price, uint256(backupPrice)); assertEq(decimals, DECIMALS); } - function test_GetPrice_BothExceedMaxPrice() public { + function test_RevertGetPrice_BothExceedMaxPrice() public { // Create an oracle with maxPrice - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -398,7 +416,7 @@ contract OracleAggregatorTest is Test { // Set both primary and backup prices above maxPrice int256 highPrimaryPrice = MAX_PRICE + 1000e8; - MockPriceFeed.RoundData memory primaryRoundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory primaryRoundData = MockPriceFeedV2.RoundData({ roundId: 2, answer: highPrimaryPrice, startedAt: block.timestamp, @@ -407,7 +425,7 @@ contract OracleAggregatorTest is Test { }); int256 highBackupPrice = MAX_PRICE + 500e8; - MockPriceFeed.RoundData memory backupRoundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory backupRoundData = MockPriceFeedV2.RoundData({ roundId: 2, answer: highBackupPrice, startedAt: block.timestamp, @@ -420,20 +438,20 @@ contract OracleAggregatorTest is Test { backupFeed.updateRoundData(backupRoundData); vm.stopPrank(); - // Get price - should use backup capped at maxPrice - (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); - assertEq(price, uint256(MAX_PRICE)); - assertEq(decimals, DECIMALS); + // Should revert since both oracles exceed maxPrice + vm.expectRevert(abi.encodeWithSignature("OracleIsNotWorking(address)", ASSET)); + oracleAggregator.getPrice(ASSET); } function test_GetPrice_WithMaxPriceZero_PrimaryOracle() public { // Create an oracle with maxPrice set to 0 (no price cap) - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: 0 // No price cap + maxPrice: 0, // No price cap + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -445,7 +463,7 @@ contract OracleAggregatorTest is Test { // Set very high price that would normally exceed any reasonable cap int256 extremelyHighPrice = 1000000e8; // 1 million units - MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ roundId: 2, answer: extremelyHighPrice, startedAt: block.timestamp, @@ -463,12 +481,13 @@ contract OracleAggregatorTest is Test { function test_GetPrice_WithMaxPriceZero_FallbackToBackup() public { // Create an oracle with maxPrice set to 0 (no price cap) - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: 0 // No price cap + maxPrice: 0, // No price cap + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -483,7 +502,7 @@ contract OracleAggregatorTest is Test { // Set very high price on backup oracle int256 extremelyHighBackupPrice = 2000000e8; // 2 million units - MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ roundId: 2, answer: extremelyHighBackupPrice, startedAt: block.timestamp, @@ -499,14 +518,175 @@ contract OracleAggregatorTest is Test { assertEq(decimals, DECIMALS); } + // ========== MIN PRICE TESTS ========== + + function test_GetPrice_PrimaryBelowMinPrice_WithBackup() public { + // Create an oracle with minPrice + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: primaryFeed, + backupAggregator: backupFeed, + heartbeat: HEARTBEAT, + backupHeartbeat: BACKUP_HEARTBEAT, + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE + }); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Set primary price below minPrice + int256 lowPrice = MIN_PRICE - 1000e8; + MockPriceFeedV2.RoundData memory primaryRoundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: lowPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + + // Set backup price above minPrice + int256 validBackupPrice = MIN_PRICE + 1000e8; + MockPriceFeedV2.RoundData memory backupRoundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: validBackupPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + + vm.startPrank(OWNER); + primaryFeed.updateRoundData(primaryRoundData); + backupFeed.updateRoundData(backupRoundData); + vm.stopPrank(); + + // Get price - should fallback to backup oracle + (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); + assertEq(price, uint256(validBackupPrice)); + assertEq(decimals, DECIMALS); + } + + function test_GetPrice_PriceAtMinPrice() public { + // Create an oracle with minPrice + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: primaryFeed, + backupAggregator: backupFeed, + heartbeat: HEARTBEAT, + backupHeartbeat: BACKUP_HEARTBEAT, + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE + }); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Set price exactly at minPrice + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: MIN_PRICE, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + vm.prank(OWNER); + primaryFeed.updateRoundData(roundData); + + // Get price - should return the exact minPrice + (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); + assertEq(price, uint256(MIN_PRICE)); + assertEq(decimals, DECIMALS); + } + + function test_RevertGetPrice_CombinedMaxMinPriceConstraints() public { + // Create an oracle with both maxPrice and minPrice + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: primaryFeed, + backupAggregator: backupFeed, + heartbeat: HEARTBEAT, + backupHeartbeat: BACKUP_HEARTBEAT, + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE + }); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Test price below minPrice should revert when no valid backup + int256 lowPrice = MIN_PRICE - 100e8; + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: lowPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + + // Set both primary and backup to invalid prices + vm.startPrank(OWNER); + primaryFeed.updateRoundData(roundData); + backupFeed.updateRoundData(roundData); + vm.stopPrank(); + + // Should revert since both oracles are below minPrice + vm.expectRevert(abi.encodeWithSignature("OracleIsNotWorking(address)", ASSET)); + oracleAggregator.getPrice(ASSET); + + // Test price above maxPrice should revert when no valid backup + int256 highPrice = MAX_PRICE + 1000e8; + roundData = MockPriceFeedV2.RoundData({ + roundId: 3, + answer: highPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 3 + }); + + vm.startPrank(OWNER); + primaryFeed.updateRoundData(roundData); + backupFeed.updateRoundData(roundData); + vm.stopPrank(); + + // Should revert since both oracles exceed maxPrice + vm.expectRevert(abi.encodeWithSignature("OracleIsNotWorking(address)", ASSET)); + oracleAggregator.getPrice(ASSET); + + // Test price within range is unchanged + int256 validPrice = (MIN_PRICE + MAX_PRICE) / 2; // Middle value + roundData = MockPriceFeedV2.RoundData({ + roundId: 4, + answer: validPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 4 + }); + vm.prank(OWNER); + primaryFeed.updateRoundData(roundData); + + (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); + assertEq(price, uint256(validPrice)); + assertEq(decimals, DECIMALS); + } + function test_GetPrice_NoBackupAggregator() public { // Create an oracle with no backup aggregator - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: AggregatorV3Interface(address(0)), heartbeat: HEARTBEAT, backupHeartbeat: 0, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -518,7 +698,7 @@ contract OracleAggregatorTest is Test { // Set normal price int256 newPrice = 3200e8; - MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ roundId: 2, answer: newPrice, startedAt: block.timestamp, @@ -536,12 +716,13 @@ contract OracleAggregatorTest is Test { function test_RevertGetPrice_NoBackupAggregator_PrimaryStale() public { // Create an oracle with no backup aggregator - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: AggregatorV3Interface(address(0)), heartbeat: HEARTBEAT, backupHeartbeat: 0, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.startPrank(OWNER); @@ -561,12 +742,12 @@ contract OracleAggregatorTest is Test { function test_RevertSubmitPendingOracle_DecimalMismatch() public { // Create another mock feed with different decimals - MockPriceFeed differentDecimalsFeed = new MockPriceFeed(OWNER); + MockPriceFeedV2 differentDecimalsFeed = new MockPriceFeedV2(OWNER); vm.startPrank(OWNER); differentDecimalsFeed.setDecimals(DECIMALS + 2); // Different decimal precision // Set initial price data on the different decimals feed - MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ roundId: 1, answer: INITIAL_PRICE, startedAt: block.timestamp, @@ -577,12 +758,13 @@ contract OracleAggregatorTest is Test { vm.stopPrank(); // Try to set an oracle with mismatched decimals - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: differentDecimalsFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.prank(OWNER); @@ -592,19 +774,20 @@ contract OracleAggregatorTest is Test { function test_RevokePendingOracle() public { // First submit a pending oracle - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.prank(OWNER); oracleAggregator.submitPendingOracle(ASSET, oracle); // Verify the pending oracle was set - (IOracle.Oracle memory pendingOracle, uint64 validAt) = oracleAggregator.pendingOracles(ASSET); + (IOracleV2.Oracle memory pendingOracle, uint64 validAt) = oracleAggregator.pendingOracles(ASSET); assertEq(address(pendingOracle.aggregator), address(primaryFeed)); assertEq(validAt, block.timestamp + TIMELOCK); @@ -627,12 +810,13 @@ contract OracleAggregatorTest is Test { function test_RevertRevokePendingOracle_NotOwner() public { // First submit a pending oracle - IOracle.Oracle memory oracle = IOracle.Oracle({ + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ aggregator: primaryFeed, backupAggregator: backupFeed, heartbeat: HEARTBEAT, backupHeartbeat: BACKUP_HEARTBEAT, - maxPrice: MAX_PRICE + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE }); vm.prank(OWNER); @@ -644,4 +828,199 @@ contract OracleAggregatorTest is Test { vm.expectRevert(abi.encodeWithSignature("OwnableUnauthorizedAccount(address)", nonOwner)); oracleAggregator.revokePendingOracle(ASSET); } + + // ========== MIN PRICE TESTS ========== + + function test_GetPrice_PrimaryBelowMinPrice_NoBackup() public { + // Create an oracle with minPrice and no backup + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: primaryFeed, + backupAggregator: AggregatorV3Interface(address(0)), + heartbeat: HEARTBEAT, + backupHeartbeat: 0, + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE + }); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Set primary price below minPrice + int256 lowPrice = MIN_PRICE - 100e8; + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: lowPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + vm.prank(OWNER); + primaryFeed.updateRoundData(roundData); + + // Should revert since primary is below minPrice and no backup exists + vm.expectRevert(abi.encodeWithSignature("OracleIsNotWorking(address)", ASSET)); + oracleAggregator.getPrice(ASSET); + } + + function test_GetPrice_BothBelowMinPrice() public { + // Create an oracle with minPrice + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: primaryFeed, + backupAggregator: backupFeed, + heartbeat: HEARTBEAT, + backupHeartbeat: BACKUP_HEARTBEAT, + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE + }); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Set both primary and backup prices below minPrice + int256 lowPrimaryPrice = MIN_PRICE - 1000e8; + MockPriceFeedV2.RoundData memory primaryRoundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: lowPrimaryPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + + int256 lowBackupPrice = MIN_PRICE - 500e8; + MockPriceFeedV2.RoundData memory backupRoundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: lowBackupPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + + vm.startPrank(OWNER); + primaryFeed.updateRoundData(primaryRoundData); + backupFeed.updateRoundData(backupRoundData); + vm.stopPrank(); + + // Should revert since both oracles are below minPrice + vm.expectRevert(abi.encodeWithSignature("OracleIsNotWorking(address)", ASSET)); + oracleAggregator.getPrice(ASSET); + } + + function test_GetPrice_WithMinPriceZero_PrimaryOracle() public { + // Create an oracle with minPrice set to 0 (no price floor) + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: primaryFeed, + backupAggregator: backupFeed, + heartbeat: HEARTBEAT, + backupHeartbeat: BACKUP_HEARTBEAT, + maxPrice: MAX_PRICE, + minPrice: 0 // No price floor + }); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Set very low price that would normally be below any reasonable floor + int256 extremelyLowPrice = 1e8; // 1 unit + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: extremelyLowPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + vm.prank(OWNER); + primaryFeed.updateRoundData(roundData); + + // Get price - should return the full price without flooring + (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); + assertEq(price, uint256(extremelyLowPrice)); + assertEq(decimals, DECIMALS); + } + + function test_GetPrice_WithMinPriceZero_FallbackToBackup() public { + // Create an oracle with minPrice set to 0 (no price floor) + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: primaryFeed, + backupAggregator: backupFeed, + heartbeat: HEARTBEAT, + backupHeartbeat: BACKUP_HEARTBEAT, + maxPrice: MAX_PRICE, + minPrice: 0 // No price floor + }); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Make primary oracle stale + vm.warp(block.timestamp + HEARTBEAT + 1); + + // Set very low price on backup oracle + int256 extremelyLowBackupPrice = 5e7; // 0.5 units + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: extremelyLowBackupPrice, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + vm.prank(OWNER); + backupFeed.updateRoundData(roundData); + + // Get price - should return the full backup price without flooring + (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); + assertEq(price, uint256(extremelyLowBackupPrice)); + assertEq(decimals, DECIMALS); + } + + function test_GetPrice_PriceJustAboveMinPrice() public { + // Create an oracle with minPrice + IOracleV2.Oracle memory oracle = IOracleV2.Oracle({ + aggregator: primaryFeed, + backupAggregator: backupFeed, + heartbeat: HEARTBEAT, + backupHeartbeat: BACKUP_HEARTBEAT, + maxPrice: MAX_PRICE, + minPrice: MIN_PRICE + }); + + vm.startPrank(OWNER); + oracleAggregator.submitPendingOracle(ASSET, oracle); + vm.warp(block.timestamp + TIMELOCK + 1); + vm.stopPrank(); + + oracleAggregator.acceptPendingOracle(ASSET); + + // Set price just above minPrice + int256 priceAboveMin = MIN_PRICE + 1; + MockPriceFeedV2.RoundData memory roundData = MockPriceFeedV2.RoundData({ + roundId: 2, + answer: priceAboveMin, + startedAt: block.timestamp, + updatedAt: block.timestamp, + answeredInRound: 2 + }); + vm.prank(OWNER); + primaryFeed.updateRoundData(roundData); + + // Get price - should return the actual price without modification + (uint256 price, uint8 decimals) = oracleAggregator.getPrice(ASSET); + assertEq(price, uint256(priceAboveMin)); + assertEq(decimals, DECIMALS); + } } diff --git a/test/v2/OrderV2.t.sol b/test/v2/OrderV2.t.sol new file mode 100644 index 0000000..0081b89 --- /dev/null +++ b/test/v2/OrderV2.t.sol @@ -0,0 +1,858 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {console} from "forge-std/console.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {LoanUtils} from "./utils/LoanUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; +import {StateChecker} from "./utils/StateChecker.sol"; +import {SwapUtils} from "./utils/SwapUtils.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import { + ITermMaxMarketV2, TermMaxMarketV2, Constants, MarketErrors, MarketEvents +} from "contracts/v2/TermMaxMarketV2.sol"; +import {ITermMaxOrder, TermMaxOrderV2, ISwapCallback, OrderEvents, OrderErrors} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCut, + CurveCuts, + FeeConfig +} from "contracts/v1/storage/TermMaxStorage.sol"; + +contract OrderTestV2 is Test { + using JSONLoader for *; + using SafeCast for *; + + DeployUtils.Res res; + + OrderConfig orderConfig; + MarketConfig marketConfig; + + address deployer = vm.randomAddress(); + address maker = vm.randomAddress(); + address sender = vm.randomAddress(); + address treasurer = vm.randomAddress(); + string testdata; + + function setUp() public { + vm.startPrank(deployer); + testdata = vm.readFile(string.concat(vm.projectRoot(), "/test/testdata/testdata.json")); + + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + + marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + orderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".orderConfig"); + + res = DeployUtils.deployMarket(deployer, marketConfig, maxLtv, liquidationLtv); + + res.order = + res.market.createOrder(maker, orderConfig.maxXtReserve, ISwapCallback(address(0)), orderConfig.curveCuts); + + vm.warp(vm.parseUint(vm.parseJsonString(testdata, ".currentTime"))); + + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.dai")); + + uint256 amount = 150e8; + res.debt.mint(deployer, amount); + res.debt.approve(address(res.market), amount); + res.market.mint(deployer, amount); + res.ft.transfer(address(res.order), amount); + res.xt.transfer(address(res.order), amount); + + vm.stopPrank(); + } + + function testInvalidCurveCuts() public { + vm.startPrank(maker); + { + OrderConfig memory newOrderConfig = orderConfig; + newOrderConfig.curveCuts.lendCurveCuts[0].offset = 0; + vm.expectRevert(abi.encodeWithSelector(OrderErrors.InvalidCurveCuts.selector)); + res.order.updateOrder(newOrderConfig, 0, 0); + } + + { + OrderConfig memory newOrderConfig = orderConfig; + newOrderConfig.curveCuts.borrowCurveCuts[0].offset = 0; + vm.expectRevert(abi.encodeWithSelector(OrderErrors.InvalidCurveCuts.selector)); + res.order.updateOrder(newOrderConfig, 0, 0); + } + + { + OrderConfig memory newOrderConfig = orderConfig; + newOrderConfig.curveCuts.borrowCurveCuts[1].offset = 0; + vm.expectRevert(abi.encodeWithSelector(OrderErrors.InvalidCurveCuts.selector)); + res.order.updateOrder(newOrderConfig, 0, 0); + } + + vm.stopPrank(); + } + + function testBuyFt() public { + vm.startPrank(sender); + + uint128 underlyingAmtIn = 100e8; + uint128 minTokenOut = 0e8; + res.debt.mint(sender, underlyingAmtIn); + res.debt.approve(address(res.order), underlyingAmtIn); + + uint256 actualOut = vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyFt.output.netOut")); + uint256 fee = vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyFt.output.fee")); + StateChecker.OrderState memory expectedState = + JSONLoader.getOrderStateFromJson(testdata, ".expected.testBuyFt.contractState"); + vm.expectEmit(); + emit OrderEvents.SwapExactTokenToToken( + res.debt, res.ft, sender, sender, underlyingAmtIn, uint128(actualOut), uint128(fee) + ); + uint256 netOut = res.order.swapExactTokenToToken( + res.debt, res.ft, sender, underlyingAmtIn, minTokenOut, block.timestamp + 1 hours + ); + + StateChecker.checkOrderState(res, expectedState); + + assert(netOut == actualOut); + assert(res.ft.balanceOf(sender) == netOut); + + vm.stopPrank(); + } + + function testBuyFtMinTokenOut() public { + vm.startPrank(sender); + + uint128 expectedNetOut = + uint128(vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyFt.output.netOut"))); + uint128 underlyingAmtIn = 100e8; + uint128 minTokenOut = expectedNetOut + 1; + + res.debt.mint(sender, underlyingAmtIn); + res.debt.approve(address(res.order), underlyingAmtIn); + vm.expectRevert(abi.encodeWithSelector(OrderErrors.UnexpectedAmount.selector, minTokenOut, expectedNetOut)); + res.order.swapExactTokenToToken( + res.debt, res.ft, sender, underlyingAmtIn, minTokenOut, block.timestamp + 1 hours + ); + + vm.stopPrank(); + } + + function testSwapTokenWhenTermIsNotOpen() public { + vm.startPrank(sender); + + uint128 underlyingAmtIn = 100e8; + uint128 minTokenOut = 0e8; + + res.debt.mint(sender, underlyingAmtIn); + res.debt.approve(address(res.order), underlyingAmtIn); + + vm.warp(res.market.config().maturity); + vm.expectRevert(abi.encodeWithSelector(OrderErrors.TermIsNotOpen.selector)); + res.order.swapExactTokenToToken( + res.debt, res.ft, sender, underlyingAmtIn, minTokenOut, block.timestamp + 1 hours + ); + + vm.stopPrank(); + } + + function testBuyXt() public { + vm.startPrank(sender); + + uint128 underlyingAmtIn = 5e8; + uint128 minTokenOut = 0e8; + res.debt.mint(sender, underlyingAmtIn); + res.debt.approve(address(res.order), underlyingAmtIn); + + uint256 actualOut = vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyXt.output.netOut")); + uint256 fee = vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyXt.output.fee")); + StateChecker.OrderState memory expectedState = + JSONLoader.getOrderStateFromJson(testdata, ".expected.testBuyXt.contractState"); + vm.expectEmit(); + emit OrderEvents.SwapExactTokenToToken( + res.debt, res.xt, sender, sender, underlyingAmtIn, uint128(actualOut), uint128(fee) + ); + uint256 netOut = res.order.swapExactTokenToToken( + res.debt, res.xt, sender, underlyingAmtIn, minTokenOut, block.timestamp + 1 hours + ); + + StateChecker.checkOrderState(res, expectedState); + + assert(netOut == actualOut); + assert(res.xt.balanceOf(sender) == netOut); + + vm.stopPrank(); + } + + function testBuyXtMinTokenOut() public { + vm.startPrank(sender); + + uint128 expectedNetOut = + uint128(vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyXt.output.netOut"))); + uint128 underlyingAmtIn = 5e8; + uint128 minTokenOut = expectedNetOut + 1; + + res.debt.mint(sender, underlyingAmtIn); + res.debt.approve(address(res.order), underlyingAmtIn); + vm.expectRevert(abi.encodeWithSelector(OrderErrors.UnexpectedAmount.selector, minTokenOut, expectedNetOut)); + res.order.swapExactTokenToToken( + res.debt, res.xt, sender, underlyingAmtIn, minTokenOut, block.timestamp + 1 hours + ); + + vm.stopPrank(); + } + + function testSellFt() public { + vm.startPrank(sender); + + uint128 underlyingAmtInForBuyFt = 100e8; + uint128 minFtOut = 0e8; + res.debt.mint(sender, underlyingAmtInForBuyFt); + res.debt.approve(address(res.order), underlyingAmtInForBuyFt); + uint128 ftAmtIn = uint128( + res.order.swapExactTokenToToken( + res.debt, res.ft, sender, underlyingAmtInForBuyFt, minFtOut, block.timestamp + 1 hours + ) + ); + uint128 minTokenOut = 0e8; + res.ft.approve(address(res.order), ftAmtIn); + + uint256 actualOut = vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellFt.output.netOut")); + uint256 fee = vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellFt.output.fee")); + StateChecker.OrderState memory expectedState = + JSONLoader.getOrderStateFromJson(testdata, ".expected.testSellFt.contractState"); + vm.expectEmit(); + emit OrderEvents.SwapExactTokenToToken( + res.ft, res.debt, sender, sender, ftAmtIn, uint128(actualOut), uint128(fee) + ); + uint256 netOut = + res.order.swapExactTokenToToken(res.ft, res.debt, sender, ftAmtIn, minTokenOut, block.timestamp + 1 hours); + + StateChecker.checkOrderState(res, expectedState); + + assert(netOut == actualOut); + assert(res.ft.balanceOf(sender) == 0); + assert(res.debt.balanceOf(sender) == netOut); + + vm.stopPrank(); + } + + function testSellFtMinTokenOut() public { + vm.startPrank(sender); + + uint128 expectedNetOut = + uint128(vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellFt.output.netOut"))); + uint128 underlyingAmtInForBuyFt = 100e8; + uint128 minFtOut = 0e8; + res.debt.mint(sender, underlyingAmtInForBuyFt); + res.debt.approve(address(res.order), underlyingAmtInForBuyFt); + uint128 ftAmtIn = uint128( + res.order.swapExactTokenToToken( + res.debt, res.ft, sender, underlyingAmtInForBuyFt, minFtOut, block.timestamp + 1 hours + ) + ); + uint128 minTokenOut = expectedNetOut + 1; + + res.ft.approve(address(res.order), ftAmtIn); + vm.expectRevert(abi.encodeWithSelector(OrderErrors.UnexpectedAmount.selector, minTokenOut, expectedNetOut)); + res.order.swapExactTokenToToken(res.ft, res.debt, sender, ftAmtIn, minTokenOut, block.timestamp + 1 hours); + + vm.stopPrank(); + } + + function testSellXt() public { + vm.startPrank(sender); + + uint128 underlyingAmtInForBuyXt = 5e8; + uint128 minXTOut = 0e8; + res.debt.mint(sender, underlyingAmtInForBuyXt); + res.debt.approve(address(res.order), underlyingAmtInForBuyXt); + uint128 xtAmtIn = uint128( + res.order.swapExactTokenToToken( + res.debt, res.xt, sender, underlyingAmtInForBuyXt, minXTOut, block.timestamp + 1 hours + ) + ); + uint128 minTokenOut = 0e8; + res.xt.approve(address(res.order), xtAmtIn); + + uint256 actualOut = vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellXt.output.netOut")); + uint256 fee = vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellXt.output.fee")); + StateChecker.OrderState memory expectedState = + JSONLoader.getOrderStateFromJson(testdata, ".expected.testSellXt.contractState"); + vm.expectEmit(); + emit OrderEvents.SwapExactTokenToToken( + res.xt, res.debt, sender, sender, xtAmtIn, uint128(actualOut), uint128(fee) + ); + uint256 netOut = + res.order.swapExactTokenToToken(res.xt, res.debt, sender, xtAmtIn, minTokenOut, block.timestamp + 1 hours); + + StateChecker.checkOrderState(res, expectedState); + + assert(netOut == actualOut); + assert(res.xt.balanceOf(sender) == 0); + assert(res.debt.balanceOf(sender) == netOut); + + vm.stopPrank(); + } + + function testSellXtMinTokenOut() public { + vm.startPrank(sender); + + uint128 expectedNetOut = + uint128(vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellXt.output.netOut"))); + uint128 underlyingAmtInForBuyXt = 5e8; + uint128 minXtOut = 0e8; + res.debt.mint(sender, underlyingAmtInForBuyXt); + res.debt.approve(address(res.order), underlyingAmtInForBuyXt); + uint128 xtAmtIn = uint128( + res.order.swapExactTokenToToken( + res.debt, res.xt, sender, underlyingAmtInForBuyXt, minXtOut, block.timestamp + 1 hours + ) + ); + uint128 minTokenOut = expectedNetOut + 1; + + res.xt.approve(address(res.order), xtAmtIn); + vm.expectRevert(abi.encodeWithSelector(OrderErrors.UnexpectedAmount.selector, minTokenOut, expectedNetOut)); + res.order.swapExactTokenToToken(res.xt, res.debt, sender, xtAmtIn, minTokenOut, block.timestamp + 1 hours); + + vm.stopPrank(); + } + + function testBuyExactFt() public { + vm.startPrank(sender); + uint128 ftOutAmt = 100e8; + uint128 maxTokenIn = 100e8; + res.debt.mint(sender, maxTokenIn); + res.debt.approve(address(res.order), maxTokenIn); + + uint256 actualIn = vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyExactFt.output.netOut")); + uint256 fee = vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyExactFt.output.fee")); + StateChecker.OrderState memory expectedState = + JSONLoader.getOrderStateFromJson(testdata, ".expected.testBuyExactFt.contractState"); + vm.expectEmit(); + emit OrderEvents.SwapTokenToExactToken( + res.debt, res.ft, sender, sender, ftOutAmt, uint128(actualIn), uint128(fee) + ); + uint256 netIn = + res.order.swapTokenToExactToken(res.debt, res.ft, sender, ftOutAmt, maxTokenIn, block.timestamp + 1 hours); + + StateChecker.checkOrderState(res, expectedState); + + assert(netIn < maxTokenIn); + assert(res.ft.balanceOf(sender) == ftOutAmt); + assert(res.debt.balanceOf(sender) == maxTokenIn - netIn); + + vm.stopPrank(); + } + + function testBuyExactXt() public { + vm.startPrank(sender); + uint128 xtOutAmt = 100e8; + uint128 maxTokenIn = 100e8; + res.debt.mint(sender, maxTokenIn); + res.debt.approve(address(res.order), maxTokenIn); + + uint256 actualIn = vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyExactXt.output.netOut")); + uint256 fee = vm.parseUint(vm.parseJsonString(testdata, ".expected.testBuyExactXt.output.fee")); + StateChecker.OrderState memory expectedState = + JSONLoader.getOrderStateFromJson(testdata, ".expected.testBuyExactXt.contractState"); + vm.expectEmit(); + emit OrderEvents.SwapTokenToExactToken( + res.debt, res.xt, sender, sender, xtOutAmt, uint128(actualIn), uint128(fee) + ); + uint256 netIn = + res.order.swapTokenToExactToken(res.debt, res.xt, sender, xtOutAmt, maxTokenIn, block.timestamp + 1 hours); + + StateChecker.checkOrderState(res, expectedState); + + assert(netIn < maxTokenIn); + assert(res.xt.balanceOf(sender) == xtOutAmt); + assert(res.debt.balanceOf(sender) == maxTokenIn - netIn); + vm.stopPrank(); + } + + function testSellFtForExactToken() public { + vm.startPrank(sender); + + uint128 underlyingAmtInForBuyFt = 100e8; + uint128 minFtOut = 0e8; + res.debt.mint(sender, underlyingAmtInForBuyFt); + res.debt.approve(address(res.order), underlyingAmtInForBuyFt); + uint128 maxTokenIn = uint128( + res.order.swapExactTokenToToken( + res.debt, res.ft, sender, underlyingAmtInForBuyFt, minFtOut, block.timestamp + 1 hours + ) + ); + uint128 debtOutAmt = 80e8; + res.ft.approve(address(res.order), maxTokenIn); + + uint256 actualIn = vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellFtForExactToken.output.netOut")); + uint256 fee = vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellFtForExactToken.output.fee")); + StateChecker.OrderState memory expectedState = + JSONLoader.getOrderStateFromJson(testdata, ".expected.testSellFtForExactToken.contractState"); + vm.expectEmit(); + emit OrderEvents.SwapTokenToExactToken( + res.ft, res.debt, sender, sender, debtOutAmt, uint128(actualIn), uint128(fee) + ); + uint256 netIn = + res.order.swapTokenToExactToken(res.ft, res.debt, sender, debtOutAmt, maxTokenIn, block.timestamp + 1 hours); + + StateChecker.checkOrderState(res, expectedState); + + assert(netIn < maxTokenIn); + assert(res.debt.balanceOf(sender) == debtOutAmt); + assert(res.ft.balanceOf(sender) == maxTokenIn - netIn); + + vm.stopPrank(); + } + + function testSellXtForExactToken() public { + vm.startPrank(sender); + + uint128 underlyingAmtInForBuyXt = 5e8; + uint128 minFtOut = 0e8; + res.debt.mint(sender, underlyingAmtInForBuyXt); + res.debt.approve(address(res.order), underlyingAmtInForBuyXt); + uint128 maxTokenIn = uint128( + res.order.swapExactTokenToToken( + res.debt, res.xt, sender, underlyingAmtInForBuyXt, minFtOut, block.timestamp + 1 hours + ) + ); + uint128 debtOutAmt = 3e8; + res.xt.approve(address(res.order), maxTokenIn); + + uint256 actualIn = vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellXtForExactToken.output.netOut")); + uint256 fee = vm.parseUint(vm.parseJsonString(testdata, ".expected.testSellXtForExactToken.output.fee")); + StateChecker.OrderState memory expectedState = + JSONLoader.getOrderStateFromJson(testdata, ".expected.testSellXtForExactToken.contractState"); + vm.expectEmit(); + emit OrderEvents.SwapTokenToExactToken( + res.xt, res.debt, sender, sender, debtOutAmt, uint128(actualIn), uint128(fee) + ); + uint256 netIn = + res.order.swapTokenToExactToken(res.xt, res.debt, sender, debtOutAmt, maxTokenIn, block.timestamp + 1 hours); + + StateChecker.checkOrderState(res, expectedState); + + assert(netIn < maxTokenIn); + assert(res.debt.balanceOf(sender) == debtOutAmt); + assert(res.xt.balanceOf(sender) == maxTokenIn - netIn); + + vm.stopPrank(); + } + + function testByExactFtWhenTermIsNotOpen() public { + uint128 ftInAmt = 100e8; + uint128 maxTokenOut = 100e8; + res.debt.mint(sender, ftInAmt); + res.debt.approve(address(res.market), ftInAmt); + + vm.warp(res.market.config().maturity); + vm.expectRevert(abi.encodeWithSignature("TermIsNotOpen()")); + res.order.swapTokenToExactToken(res.debt, res.ft, sender, maxTokenOut, ftInAmt, block.timestamp + 1 hours); + } + + function testIssueFtWhenSwap() public { + vm.startPrank(maker); + // Mint a GT + (uint256 gtId,) = LoanUtils.fastMintGt(res, maker, 100e8, 1e18); + res.gt.approve(address(res.order), gtId); + orderConfig.gtId = gtId; + res.order.updateOrder(orderConfig, -150e8, 0); + vm.stopPrank(); + + uint128 ftOutAmt = 151e8; + uint128 maxTokenIn = 150e8; + vm.startPrank(sender); + res.debt.mint(sender, maxTokenIn); + res.debt.approve(address(res.order), maxTokenIn); + res.order.swapTokenToExactToken(res.debt, res.ft, sender, ftOutAmt, maxTokenIn, block.timestamp + 1 hours); + assertEq(res.ft.balanceOf(sender), ftOutAmt); + (, uint128 debtAmt,) = res.gt.loanInfo(gtId); + assertGt(debtAmt, 100e8); + vm.stopPrank(); + } + + function testIssueFtWhenNoAssets() public { + vm.startPrank(maker); + // Mint a GT + (uint256 gtId,) = LoanUtils.fastMintGt(res, maker, 100e8, 1e18); + res.gt.approve(address(res.order), gtId); + orderConfig.gtId = gtId; + res.order.updateOrder(orderConfig, -150e8, -150e8); + assert(res.ft.balanceOf(address(res.order)) == 0); + assert(res.xt.balanceOf(address(res.order)) == 0); + vm.stopPrank(); + + uint128 ftOutAmt = 151e8; + uint128 maxTokenIn = 150e8; + vm.startPrank(sender); + res.debt.mint(sender, maxTokenIn); + res.debt.approve(address(res.order), maxTokenIn); + res.order.swapTokenToExactToken(res.debt, res.ft, sender, ftOutAmt, maxTokenIn, block.timestamp + 1 hours); + assertEq(res.ft.balanceOf(sender), ftOutAmt); + (, uint128 debtAmt,) = res.gt.loanInfo(gtId); + assertGt(debtAmt, 100e8); + vm.stopPrank(); + } + + function testRevertWhenIssueFt() public { + vm.prank(maker); + res.order.updateOrder(orderConfig, -150e8, 0); + + uint128 ftOutAmt = 151e8; + uint128 maxTokenIn = 150e8; + vm.startPrank(sender); + + res.debt.mint(sender, maxTokenIn); + res.debt.approve(address(res.order), maxTokenIn); + vm.expectRevert(abi.encodeWithSelector(OrderErrors.CantNotIssueFtWithoutGt.selector)); + res.order.swapTokenToExactToken(res.debt, res.ft, sender, ftOutAmt, maxTokenIn, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function testUpdateOrderConfig() public { + vm.startPrank(maker); + + // Prepare new curve cuts + OrderConfig memory newOrderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".newOrderConfig"); + int256 ftChangeAmt = 1e8; + int256 xtChangeAmt = -1e8; + + deal(address(res.ft), maker, ftChangeAmt.toUint256()); + res.ft.approve(address(res.order), ftChangeAmt.toUint256()); + + // vm.expectEmit(); + // emit OrderEvents.UpdateOrder( + // newOrderConfig.curveCuts, + // ftChangeAmt, + // xtChangeAmt, + // orderConfig.gtId, + // orderConfig.maxXtReserve, + // ISwapCallback(address(0)) + // ); + res.order.updateOrder(newOrderConfig, ftChangeAmt, xtChangeAmt); + + // Verify curve was updated + OrderConfig memory updatedConfig = res.order.orderConfig(); + for (uint256 i = 0; i < updatedConfig.curveCuts.lendCurveCuts.length; i++) { + assertEq( + updatedConfig.curveCuts.lendCurveCuts[i].xtReserve, newOrderConfig.curveCuts.lendCurveCuts[i].xtReserve + ); + assertEq( + updatedConfig.curveCuts.lendCurveCuts[i].liqSquare, newOrderConfig.curveCuts.lendCurveCuts[i].liqSquare + ); + assertEq(updatedConfig.curveCuts.lendCurveCuts[i].offset, newOrderConfig.curveCuts.lendCurveCuts[i].offset); + } + for (uint256 i = 0; i < updatedConfig.curveCuts.borrowCurveCuts.length; i++) { + assertEq( + updatedConfig.curveCuts.borrowCurveCuts[i].xtReserve, + newOrderConfig.curveCuts.borrowCurveCuts[i].xtReserve + ); + assertEq( + updatedConfig.curveCuts.borrowCurveCuts[i].liqSquare, + newOrderConfig.curveCuts.borrowCurveCuts[i].liqSquare + ); + assertEq( + updatedConfig.curveCuts.borrowCurveCuts[i].offset, newOrderConfig.curveCuts.borrowCurveCuts[i].offset + ); + } + assertEq(res.xt.balanceOf(maker), (-xtChangeAmt).toUint256()); + assertEq(res.ft.balanceOf(maker), 0); + + vm.stopPrank(); + } + + function testOnlyMakerCanUpdateOrder() public { + vm.startPrank(sender); + + vm.expectRevert(abi.encodeWithSignature("OwnableUnauthorizedAccount(address)", sender)); + res.order.updateOrder(orderConfig, 0, 0); + + vm.stopPrank(); + } + + function testPauseAndUnpause() public { + vm.startPrank(maker); + + // Test pause + res.order.pause(); + assertTrue(TermMaxOrderV2(address(res.order)).paused()); + + // Verify swaps are blocked when paused + vm.expectRevert(abi.encodeWithSignature("EnforcedPause()")); + res.order.swapExactTokenToToken(res.ft, res.debt, sender, 1e8, 0, block.timestamp + 1 hours); + + // Test unpause + res.order.unpause(); + assertFalse(TermMaxOrderV2(address(res.order)).paused()); + + vm.stopPrank(); + } + + function testOnlyMakerCanPause() public { + vm.startPrank(sender); + + vm.expectRevert(abi.encodeWithSignature("OwnableUnauthorizedAccount(address)", sender)); + res.order.pause(); + + vm.stopPrank(); + } + + function testSwapReverts() public { + vm.startPrank(sender); + + // Test same token swap + vm.expectRevert(OrderErrors.CantSwapSameToken.selector); + res.order.swapExactTokenToToken(res.ft, res.ft, sender, 1e8, 0, block.timestamp + 1 hours); + + IERC20 token0 = IERC20(vm.randomAddress()); + IERC20 token1 = IERC20(vm.randomAddress()); + // Test invalid token combination + vm.expectRevert(abi.encodeWithSelector(OrderErrors.CantNotSwapToken.selector, token0, token1)); + res.order.swapExactTokenToToken(token0, token1, sender, 1e8, 0, block.timestamp + 1 hours); + + vm.stopPrank(); + } + + function testSwapWithCallback(uint128 swapAmt, bool isBuy, bool isFt) public { + vm.assume(swapAmt > 0 && swapAmt < 0.1e8); + + // Deploy mock callback contract + MockSwapCallback callback = new MockSwapCallback(); + + orderConfig.swapTrigger = callback; + vm.startPrank(maker); + res.order.updateOrder(orderConfig, 0, 0); + + res.debt.mint(maker, 150e8); + res.debt.approve(address(res.market), 150e8); + res.market.mint(address(res.order), 150e8); + vm.stopPrank(); + + vm.startPrank(sender); + + res.debt.mint(sender, swapAmt * 2); + + res.debt.approve(address(res.order), swapAmt); + res.debt.approve(address(res.market), swapAmt); + res.market.mint(sender, swapAmt); + + IERC20 tokenIn; + IERC20 tokenOut; + + if (isBuy && isFt) { + tokenIn = res.debt; + tokenOut = res.ft; + } + + if (isBuy && !isFt) { + tokenIn = res.debt; + tokenOut = res.xt; + } + + if (!isBuy && isFt) { + tokenIn = res.ft; + tokenOut = res.debt; + } + + if (!isBuy && !isFt) { + tokenIn = res.xt; + tokenOut = res.debt; + } + uint256 ftBalanceBefore = res.ft.balanceOf(address(res.order)); + uint256 xtBalanceBefore = res.xt.balanceOf(address(res.order)); + tokenIn.approve(address(res.order), swapAmt); + res.order.swapExactTokenToToken(tokenIn, tokenOut, sender, swapAmt, 0, block.timestamp + 1 hours); + + uint256 ftBalanceAfter = res.ft.balanceOf(address(res.order)); + uint256 xtBalanceAfter = res.xt.balanceOf(address(res.order)); + + assertEq(ftBalanceBefore.toInt256() + callback.deltaFt(), ftBalanceAfter.toInt256()); + assertEq(xtBalanceBefore.toInt256() + callback.deltaXt(), xtBalanceAfter.toInt256()); + + vm.stopPrank(); + } + + function testUpdateOrderFeeRate() public { + // Create new fee config + FeeConfig memory newFeeConfig = marketConfig.feeConfig; + newFeeConfig.lendTakerFeeRatio++; + newFeeConfig.borrowTakerFeeRatio++; + + // Test that non-owner cannot update fee rate + vm.expectRevert(abi.encodeWithSelector(OrderErrors.OnlyMarket.selector)); + vm.prank(sender); + res.order.updateFeeConfig(newFeeConfig); + + // Test that owner can update fee rate + vm.startPrank(deployer); + res.market.updateOrderFeeRate(res.order, newFeeConfig); + assertEq(res.order.orderConfig().feeConfig.lendTakerFeeRatio, newFeeConfig.lendTakerFeeRatio); + assertEq(res.order.orderConfig().feeConfig.borrowTakerFeeRatio, newFeeConfig.borrowTakerFeeRatio); + + // Test invalid fee rates (over 100%) + FeeConfig memory invalidFeeConfig = marketConfig.feeConfig; + invalidFeeConfig.lendTakerFeeRatio = Constants.MAX_FEE_RATIO; + vm.expectRevert(abi.encodeWithSelector(MarketErrors.FeeTooHigh.selector)); + res.market.updateOrderFeeRate(res.order, invalidFeeConfig); + vm.stopPrank(); + } + + function testRevertLendIsNotAllowed() public { + vm.startPrank(maker); + OrderConfig memory testOrderConfig = res.order.orderConfig(); + testOrderConfig.curveCuts.borrowCurveCuts = new CurveCut[](0); + + vm.expectEmit(); + emit OrderEvents.UpdateOrder( + testOrderConfig.curveCuts, + 0, + 0, + testOrderConfig.gtId, + testOrderConfig.maxXtReserve, + ISwapCallback(address(0)) + ); + res.order.updateOrder(testOrderConfig, 0, 0); + vm.stopPrank(); + + vm.startPrank(sender); + + uint128 underlyingAmtIn = 100e8; + uint128 minTokenOut = 0e8; + res.debt.mint(sender, underlyingAmtIn); + res.debt.approve(address(res.order), underlyingAmtIn); + + vm.expectRevert(abi.encodeWithSelector(OrderErrors.LendIsNotAllowed.selector)); + res.order.swapExactTokenToToken( + res.debt, res.ft, sender, underlyingAmtIn, minTokenOut, block.timestamp + 1 hours + ); + + vm.stopPrank(); + } + + function testRevertBorrowIsNotAllowed() public { + vm.startPrank(maker); + OrderConfig memory testOrderConfig = res.order.orderConfig(); + testOrderConfig.curveCuts.lendCurveCuts = new CurveCut[](0); + + vm.expectEmit(); + emit OrderEvents.UpdateOrder( + testOrderConfig.curveCuts, + 0, + 0, + testOrderConfig.gtId, + testOrderConfig.maxXtReserve, + ISwapCallback(address(0)) + ); + res.order.updateOrder(testOrderConfig, 0, 0); + vm.stopPrank(); + + vm.startPrank(sender); + + uint128 underlyingAmtIn = 100e8; + uint128 minTokenOut = 0e8; + res.debt.mint(sender, underlyingAmtIn); + res.debt.approve(address(res.order), underlyingAmtIn); + + vm.expectRevert(abi.encodeWithSelector(OrderErrors.BorrowIsNotAllowed.selector)); + res.order.swapExactTokenToToken( + res.debt, res.xt, sender, underlyingAmtIn, minTokenOut, block.timestamp + 1 hours + ); + + vm.stopPrank(); + } + + function testUtWhenDeadlineLessThanBlockTime() public { + vm.startPrank(sender); + + uint128 swapAmt = 5e8; + IERC20 tokenIn = IERC20(address(res.debt)); + IERC20 tokenOut = IERC20(address(res.xt)); + + // Set block timestamp + uint256 currentTime = 1000; + vm.warp(currentTime); + + // Try to swap with deadline less than block time + uint256 pastDeadline = currentTime - 1; + + tokenIn.approve(address(res.order), swapAmt); + + vm.expectRevert(OrderErrors.DeadlineExpired.selector); + res.order.swapExactTokenToToken(tokenIn, tokenOut, sender, swapAmt, 0, pastDeadline); + + vm.expectRevert(OrderErrors.DeadlineExpired.selector); + res.order.swapTokenToExactToken(tokenIn, tokenOut, sender, 1, swapAmt, pastDeadline); + + vm.stopPrank(); + } + + function testAprWithoutCurve() public { + vm.startPrank(maker); + OrderConfig memory testOrderConfig = res.order.orderConfig(); + testOrderConfig.curveCuts.lendCurveCuts = new CurveCut[](0); + testOrderConfig.curveCuts.borrowCurveCuts = new CurveCut[](0); + + vm.expectEmit(); + emit OrderEvents.UpdateOrder( + testOrderConfig.curveCuts, + 0, + 0, + testOrderConfig.gtId, + testOrderConfig.maxXtReserve, + ISwapCallback(address(0)) + ); + res.order.updateOrder(testOrderConfig, 0, 0); + vm.stopPrank(); + + (uint256 lendApr, uint256 borrowApr) = res.order.apr(); + + assert(lendApr == 0); + assert(borrowApr == type(uint256).max); + } + + function testAprWithCurve() public { + vm.startPrank(maker); + OrderConfig memory testOrderConfig = res.order.orderConfig(); + testOrderConfig.curveCuts.lendCurveCuts = new CurveCut[](0); + + res.order.updateOrder(testOrderConfig, 0, 0); + + (uint256 lendApr, uint256 borrowApr) = res.order.apr(); + + assert(lendApr == 0); + + testOrderConfig = res.order.orderConfig(); + testOrderConfig.curveCuts.borrowCurveCuts = new CurveCut[](0); + res.order.updateOrder(testOrderConfig, 0, 0); + + (lendApr, borrowApr) = res.order.apr(); + + assert(borrowApr == type(uint256).max); + + vm.stopPrank(); + } +} + +// Mock contracts for testing +contract MockSwapCallback is ISwapCallback { + int256 public deltaFt; + int256 public deltaXt; + + function afterSwap(uint256, uint256, int256 deltaFt_, int256 deltaXt_) external override { + deltaFt = deltaFt_; + deltaXt = deltaXt_; + } +} diff --git a/test/v2/RouterV2.t.sol b/test/v2/RouterV2.t.sol new file mode 100644 index 0000000..bf1a3ba --- /dev/null +++ b/test/v2/RouterV2.t.sol @@ -0,0 +1,765 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {console} from "forge-std/console.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; +import {StateChecker} from "./utils/StateChecker.sol"; +import {SwapUtils} from "./utils/SwapUtils.sol"; +import {LoanUtils} from "./utils/LoanUtils.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import { + ITermMaxMarketV2, TermMaxMarketV2, Constants, MarketErrors, MarketEvents +} from "contracts/v2/TermMaxMarketV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; + +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IMintableERC20} from "contracts/v1/tokens/MintableERC20.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import { + GearingTokenWithERC20V2, + GearingTokenEvents, + GearingTokenErrors, + GearingTokenEventsV2, + GtConfig +} from "contracts/v2/tokens/GearingTokenWithERC20V2.sol"; +import { + ITermMaxFactory, + TermMaxFactoryV2, + FactoryErrors, + FactoryEvents, + FactoryEventsV2 +} from "contracts/v2/factory/TermMaxFactoryV2.sol"; +import {IOracleV2, OracleAggregatorV2, AggregatorV3Interface} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCuts +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {MockFlashRepayerV2} from "contracts/v2/test/MockFlashRepayerV2.sol"; +import {ISwapCallback} from "contracts/v1/ISwapCallback.sol"; +import { + TermMaxRouterV2, + ITermMaxRouterV2, + SwapUnit, + RouterErrors, + RouterEvents +} from "contracts/v2/router/TermMaxRouterV2.sol"; +import {ITermMaxRouter} from "contracts/v1/router/ITermMaxRouter.sol"; +import {MockSwapAdapterV2} from "contracts/v2/test/MockSwapAdapterV2.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; + +contract RouterTestV2 is Test { + using JSONLoader for *; + using SafeCast for *; + + DeployUtils.Res res; + + OrderConfig orderConfig; + MarketConfig marketConfig; + + address deployer = vm.randomAddress(); + address maker = vm.randomAddress(); + address sender = vm.randomAddress(); + address treasurer = vm.randomAddress(); + string testdata; + + address pool = vm.randomAddress(); + + MockSwapAdapterV2 adapter; + + function setUp() public { + vm.startPrank(deployer); + testdata = vm.readFile(string.concat(vm.projectRoot(), "/test/testdata/testdata.json")); + + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + + marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + orderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".orderConfig"); + + res = DeployUtils.deployMarket(deployer, marketConfig, maxLtv, liquidationLtv); + + res.order = + res.market.createOrder(maker, orderConfig.maxXtReserve, ISwapCallback(address(0)), orderConfig.curveCuts); + + vm.warp(vm.parseUint(vm.parseJsonString(testdata, ".currentTime"))); + + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.dai")); + + uint256 amount = 150e8; + res.debt.mint(deployer, amount); + res.debt.approve(address(res.market), amount); + res.market.mint(deployer, amount); + res.ft.transfer(address(res.order), amount); + res.xt.transfer(address(res.order), amount); + + res.router = DeployUtils.deployRouter(deployer); + adapter = new MockSwapAdapterV2(pool); + res.router.setAdapterWhitelist(address(adapter), true); + + vm.stopPrank(); + } + + function testSetAdapterWhitelist() public { + vm.startPrank(deployer); + + address randomAdapter = vm.randomAddress(); + res.router.setAdapterWhitelist(randomAdapter, true); + assertTrue(res.router.adapterWhitelist(randomAdapter)); + + res.router.setAdapterWhitelist(randomAdapter, false); + assertFalse(res.router.adapterWhitelist(randomAdapter)); + + vm.stopPrank(); + } + + function testSetAdapterWhitelistUnauthorized() public { + vm.startPrank(sender); + + address randomAdapter = vm.randomAddress(); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, address(sender))); + res.router.setAdapterWhitelist(randomAdapter, true); + + vm.stopPrank(); + } + + function testPause() public { + vm.startPrank(deployer); + + res.router.pause(); + assertTrue(res.router.paused()); + + res.router.unpause(); + assertFalse(res.router.paused()); + + vm.stopPrank(); + } + + function testPauseUnauthorized() public { + vm.startPrank(sender); + + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, address(sender))); + res.router.pause(); + + vm.stopPrank(); + } + + function testSwapExactTokenToToken() public { + vm.startPrank(sender); + + uint128 amountIn = 100e8; + uint128[] memory tradingAmts = new uint128[](2); + tradingAmts[0] = 50e8; + tradingAmts[1] = 50e8; + uint128 mintTokenOut = 80e8; + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](2); + orders[0] = res.order; + orders[1] = res.order; + + res.debt.mint(sender, amountIn); + res.debt.approve(address(res.router), amountIn); + uint256 netOut = res.router.swapExactTokenToToken( + res.debt, res.ft, sender, orders, tradingAmts, mintTokenOut, block.timestamp + 1 hours + ); + assertEq(netOut, res.ft.balanceOf(sender)); + + assertEq(res.debt.balanceOf(sender), 0); + + vm.stopPrank(); + } + + function testSwapTokenToExactToken() public { + vm.startPrank(sender); + + uint128 amountOut = 90e8; + uint128[] memory tradingAmts = new uint128[](2); + tradingAmts[0] = 45e8; + tradingAmts[1] = 45e8; + uint128 maxAmountIn = 100e8; + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](2); + orders[0] = res.order; + orders[1] = res.order; + + res.debt.mint(sender, maxAmountIn); + res.debt.approve(address(res.router), maxAmountIn); + + uint256 balanceBefore = res.ft.balanceOf(sender); + uint256 amountIn = res.router.swapTokenToExactToken( + res.debt, res.ft, sender, orders, tradingAmts, maxAmountIn, block.timestamp + 1 hours + ); + uint256 balanceAfter = res.ft.balanceOf(sender); + + assertEq(maxAmountIn - amountIn, res.debt.balanceOf(sender)); + assertEq(balanceAfter - balanceBefore, amountOut); + + vm.stopPrank(); + } + + function testSellTokens(uint128 ftAmount, uint128 xtAmount) public { + //TODO check output + vm.assume(ftAmount <= 150e8 && xtAmount <= 150e8); + vm.startPrank(sender); + deal(address(res.ft), sender, ftAmount); + deal(address(res.xt), sender, xtAmount); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](2); + orders[0] = res.order; + orders[1] = res.order; + + (uint128 maxBurn, uint128 sellAmt) = + ftAmount > xtAmount ? (xtAmount, ftAmount - xtAmount) : (ftAmount, xtAmount - ftAmount); + uint128[] memory tradingAmts = new uint128[](2); + tradingAmts[0] = sellAmt / 2; + tradingAmts[1] = sellAmt / 2; + uint128 mintTokenOut = 0; + + res.ft.approve(address(res.router), ftAmount); + res.xt.approve(address(res.router), xtAmount); + + // vm.expectEmit(); + // emit ITermMaxRouter.SellTokens(res.market, tokenToSell, sender, orders, tradingAmts, mintTokenOut); + uint256 netOut = res.router.sellTokens( + sender, res.market, ftAmount, xtAmount, orders, tradingAmts, mintTokenOut, block.timestamp + ); + assertEq(netOut, res.debt.balanceOf(sender)); + assertEq(res.ft.balanceOf(sender), 0); + assertEq(res.xt.balanceOf(sender), 0); + assert(maxBurn <= netOut); + + vm.stopPrank(); + } + + function testLeaveFromToken() public { + vm.startPrank(sender); + + uint128 minXtOut = 0; + uint128 tokenToSwap = 100e8; + uint128 maxLtv = 0.8e8; + uint256 minCollAmt = 1e18; + res.debt.mint(sender, tokenToSwap + 2e8 * 2); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](2); + orders[0] = res.order; + orders[1] = res.order; + + uint128[] memory amtsToBuyXt = new uint128[](2); + amtsToBuyXt[0] = 2e8; + amtsToBuyXt[1] = 2e8; + + SwapUnit[] memory units = new SwapUnit[](1); + units[0] = SwapUnit(address(adapter), address(res.debt), address(res.collateral), abi.encode(minCollAmt)); + + res.debt.approve(address(res.router), tokenToSwap + 2e8 * 2); + (uint256 gtId, uint256 netXtOut) = res.router.leverageFromToken( + sender, res.market, orders, amtsToBuyXt, minXtOut, tokenToSwap, maxLtv, units, block.timestamp + ); + (address owner, uint128 debtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, sender); + assertEq(minCollAmt, abi.decode(collateralData, (uint256))); + assertEq(netXtOut * Constants.DECIMAL_BASE / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio()), debtAmt); + vm.stopPrank(); + } + + function testLeverageFromXt() public { + vm.startPrank(sender); + + uint128 xtAmt = 10e8; + uint128 tokenToSwap = 100e8; + uint128 maxLtv = 0.8e8; + uint256 minCollAmt = 1e18; + + deal(address(res.xt), sender, xtAmt); + + SwapUnit[] memory units = new SwapUnit[](1); + units[0] = SwapUnit(address(adapter), address(res.debt), address(res.collateral), abi.encode(minCollAmt)); + + res.xt.approve(address(res.router), xtAmt); + res.debt.mint(sender, tokenToSwap); + res.debt.approve(address(res.router), tokenToSwap); + + uint256 gtId = res.router.leverageFromXt(sender, res.market, xtAmt, tokenToSwap, maxLtv, units); + (address owner, uint128 debtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, sender); + assertEq(minCollAmt, abi.decode(collateralData, (uint256))); + assertEq( + uint128(xtAmt * Constants.DECIMAL_BASE / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio())), debtAmt + ); + vm.stopPrank(); + } + + function testLeverageFromCollateral() public { + vm.startPrank(sender); + + uint128 xtAmt = 10e8; + uint128 collateralAmt = 0.5e18; + uint128 maxLtv = 0.8e8; + uint256 minCollAmt = 0.5e18; + + deal(address(res.xt), sender, xtAmt); + + SwapUnit[] memory units = new SwapUnit[](1); + units[0] = SwapUnit(address(adapter), address(res.debt), address(res.collateral), abi.encode(minCollAmt)); + + res.xt.approve(address(res.router), xtAmt); + res.collateral.mint(sender, collateralAmt); + res.collateral.approve(address(res.router), collateralAmt); + + uint256 gtId = res.router.leverageFromXtAndCollateral(sender, res.market, xtAmt, collateralAmt, maxLtv, units); + (address owner, uint128 debtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, sender); + assertEq(minCollAmt + collateralAmt, abi.decode(collateralData, (uint256))); + assertEq( + uint128(xtAmt * Constants.DECIMAL_BASE / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio())), debtAmt + ); + vm.stopPrank(); + } + + function testLeverage_LtvTooBigger() public { + vm.startPrank(sender); + + uint128 xtAmt = 100e8; + uint128 tokenToSwap = 100e8; + uint128 maxLtv = 0.1e2; + uint256 minCollAmt = 1e18; + + uint256 ltv = (xtAmt * Constants.DECIMAL_BASE / (Constants.DECIMAL_BASE - res.market.mintGtFeeRatio())) / 2000; + + deal(address(res.xt), sender, xtAmt); + + SwapUnit[] memory units = new SwapUnit[](1); + units[0] = SwapUnit(address(adapter), address(res.debt), address(res.collateral), abi.encode(minCollAmt)); + + res.xt.approve(address(res.router), xtAmt); + res.debt.mint(sender, tokenToSwap); + res.debt.approve(address(res.router), tokenToSwap); + + vm.expectRevert( + abi.encodeWithSelector(RouterErrors.LtvBiggerThanExpected.selector, uint128(maxLtv), uint128(ltv)) + ); + res.router.leverageFromXt(sender, res.market, xtAmt, tokenToSwap, maxLtv, units); + + vm.stopPrank(); + } + + function testBorrowTokenFromCollateral() public { + vm.startPrank(sender); + + uint256 collInAmt = 1e18; + uint128 borrowAmt = 80e8; + uint128 maxDebtAmt = 100e8; + + // uint fee = (res.market.mintGtFeeRatio() * maxDebtAmt) / Constants.DECIMAL_BASE; + // uint ftAmt = maxDebtAmt - fee; + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + uint128[] memory tokenAmtsWantBuy = new uint128[](1); + tokenAmtsWantBuy[0] = borrowAmt; + + res.collateral.mint(sender, collInAmt); + res.collateral.approve(address(res.router), collInAmt); + + // vm.expectEmit(); + // emit RouterEvents.Borrow(res.market, gtId, sender, sender, collInAmt, maxDebtAmt.toUint128(), borrowAmt); + uint256 gtId = res.router.borrowTokenFromCollateral( + sender, res.market, collInAmt, orders, tokenAmtsWantBuy, maxDebtAmt, block.timestamp + 1 hours + ); + + (address owner, uint128 debtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, sender); + assertEq(collInAmt, abi.decode(collateralData, (uint256))); + assert(debtAmt <= maxDebtAmt); + assertEq(res.debt.balanceOf(sender), borrowAmt); + + vm.stopPrank(); + } + + function testBorrowTokenFromCollateralCase2() public { + vm.startPrank(sender); + + uint256 collInAmt = 1e18; + uint128 borrowAmt = 80e8; + + res.collateral.mint(sender, collInAmt); + res.collateral.approve(address(res.router), collInAmt); + + res.debt.mint(sender, borrowAmt); + res.debt.approve(address(res.market), borrowAmt); + res.market.mint(sender, borrowAmt); + + res.xt.approve(address(res.router), borrowAmt); + + uint256 mintGtFeeRatio = res.market.mintGtFeeRatio(); + uint128 previewDebtAmt = + ((borrowAmt * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - mintGtFeeRatio)).toUint128(); + + vm.expectEmit(); + emit RouterEvents.Borrow(res.market, 1, sender, sender, collInAmt, previewDebtAmt, borrowAmt); + + uint256 gtId = res.router.borrowTokenFromCollateral(sender, res.market, collInAmt, borrowAmt); + (address owner, uint128 debtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, sender); + assertEq(collInAmt, abi.decode(collateralData, (uint256))); + assert(previewDebtAmt == debtAmt); + assertEq(res.debt.balanceOf(sender), borrowAmt); + + vm.stopPrank(); + } + + function testBorrowTokenFromGt() public { + vm.startPrank(sender); + uint256 collInAmt = 1e18; + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, 100e8, collInAmt); + + uint128 borrowAmt = 80e8; + + res.debt.mint(sender, borrowAmt); + res.debt.approve(address(res.market), borrowAmt); + res.market.mint(sender, borrowAmt); + + res.xt.approve(address(res.router), borrowAmt); + res.gt.approve(address(res.router), gtId); + + uint256 mintGtFeeRatio = res.market.mintGtFeeRatio(); + uint128 previewDebtAmt = + ((borrowAmt * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - mintGtFeeRatio)).toUint128(); + + vm.expectEmit(); + emit RouterEvents.Borrow(res.market, 1, sender, sender, 0, previewDebtAmt, borrowAmt); + + res.router.borrowTokenFromGt(sender, res.market, gtId, borrowAmt); + + (, uint128 dAmt,) = res.gt.loanInfo(gtId); + assert(dAmt == 100e8 + previewDebtAmt); + assertEq(res.debt.balanceOf(sender), borrowAmt); + + vm.stopPrank(); + } + + function testBorrowTokenFromGtInvalidSender() public { + vm.startPrank(sender); + uint256 collInAmt = 1e18; + + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, 100e8, collInAmt); + + uint128 borrowAmt = 80e8; + + res.debt.mint(sender, borrowAmt); + res.debt.approve(address(res.market), borrowAmt); + res.market.mint(sender, borrowAmt); + + res.xt.approve(address(res.router), borrowAmt); + res.gt.approve(address(res.router), gtId); + + uint256 mintGtFeeRatio = res.market.mintGtFeeRatio(); + ((borrowAmt * Constants.DECIMAL_BASE) / (Constants.DECIMAL_BASE - mintGtFeeRatio)).toUint128(); + vm.stopPrank(); + + vm.expectRevert(abi.encodeWithSelector(RouterErrors.GtNotOwnedBySender.selector)); + vm.prank(deployer); + res.router.borrowTokenFromGt(sender, res.market, gtId, borrowAmt); + + vm.stopPrank(); + } + + function testFlashRepayFromCollateral() public { + vm.startPrank(sender); + uint128 debtAmt = 100e8; + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, 1e18); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](0); + uint128[] memory amtsToBuyFt = new uint128[](0); + bool byDebtToken = true; + + uint256 mintTokenOut = 2000e8; + SwapUnit[] memory units = new SwapUnit[](1); + units[0] = SwapUnit(address(adapter), address(res.collateral), address(res.debt), abi.encode(mintTokenOut)); + + res.gt.approve(address(res.router), gtId); + ITermMaxRouterV2.TermMaxSwapData memory swapData; + res.router.flashRepayFromColl(sender, res.market, gtId, byDebtToken, 0, units, swapData); + + assertEq(res.collateral.balanceOf(sender), 0); + assertEq(res.debt.balanceOf(sender), mintTokenOut - debtAmt); + + vm.expectRevert(abi.encodePacked(bytes4(keccak256("ERC721NonexistentToken(uint256)")), gtId)); + res.gt.loanInfo(gtId); + + vm.stopPrank(); + } + + function testFlashRepayFromCollateral_ByFt() public { + vm.startPrank(sender); + uint128 debtAmt = 100e8; + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, 1e18); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + uint128[] memory amtsToBuyFt = new uint128[](1); + amtsToBuyFt[0] = debtAmt; + + bool byDebtToken = false; + + uint256 mintTokenOut = 2000e8; + SwapUnit[] memory units = new SwapUnit[](1); + units[0] = SwapUnit(address(adapter), address(res.collateral), address(res.debt), abi.encode(mintTokenOut)); + + ITermMaxRouterV2.TermMaxSwapData memory swapData; + swapData.orders = orders; + swapData.tradingAmts = amtsToBuyFt; + swapData.tokenIn = address(res.debt); + swapData.tokenOut = address(res.ft); + swapData.netTokenAmt = 0; + swapData.deadline = block.timestamp + 1 hours; + + res.gt.approve(address(res.router), gtId); + res.router.flashRepayFromColl(sender, res.market, gtId, byDebtToken, 0, units, swapData); + + assertEq(res.collateral.balanceOf(sender), 0); + assert(res.debt.balanceOf(sender) > mintTokenOut - debtAmt); + + vm.expectRevert(abi.encodePacked(bytes4(keccak256("ERC721NonexistentToken(uint256)")), gtId)); + res.gt.loanInfo(gtId); + + vm.stopPrank(); + } + + function testRepayByTokenThroughFt() public { + vm.startPrank(sender); + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + uint128[] memory amtsToBuyFt = new uint128[](1); + amtsToBuyFt[0] = debtAmt; + uint128 maxTokenIn = debtAmt; + + res.debt.mint(sender, maxTokenIn); + res.debt.approve(address(res.router), maxTokenIn); + + uint256 returnAmt = + res.router.repayByTokenThroughFt(sender, res.market, gtId, orders, amtsToBuyFt, maxTokenIn, block.timestamp); + assertEq(res.debt.balanceOf(sender), returnAmt); + assertEq(res.collateral.balanceOf(sender), collateralAmt); + + vm.expectRevert(abi.encodePacked(bytes4(keccak256("ERC721NonexistentToken(uint256)")), gtId)); + res.gt.loanInfo(gtId); + + vm.stopPrank(); + } + + function testPartialRepayByTokenThroughFt() public { + vm.startPrank(sender); + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + (uint256 gtId,) = LoanUtils.fastMintGt(res, sender, debtAmt, collateralAmt); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + uint128[] memory amtsToBuyFt = new uint128[](1); + amtsToBuyFt[0] = debtAmt / 2; + uint128 maxTokenIn = debtAmt; + + res.debt.mint(sender, maxTokenIn); + res.debt.approve(address(res.router), maxTokenIn); + + uint256 returnAmt = + res.router.repayByTokenThroughFt(sender, res.market, gtId, orders, amtsToBuyFt, maxTokenIn, block.timestamp); + assertEq(res.debt.balanceOf(sender), returnAmt); + assertEq(res.collateral.balanceOf(sender), 0); + + (address owner, uint128 dAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, sender); + assertEq(collateralAmt, abi.decode(collateralData, (uint256))); + assertEq(dAmt, debtAmt / 2); + + vm.stopPrank(); + } + + function testRedeemAndSwap() public { + address bob = vm.randomAddress(); + address alice = vm.randomAddress(); + + uint128 depositAmt = 1000e8; + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(bob); + res.debt.mint(bob, depositAmt); + res.debt.approve(address(res.market), depositAmt); + res.market.mint(bob, depositAmt); + + res.xt.transfer(alice, debtAmt); + vm.stopPrank(); + + vm.startPrank(alice); + + MockFlashLoanReceiver receiver = new MockFlashLoanReceiver(res.market); + res.collateral.mint(address(receiver), collateralAmt); + + res.xt.approve(address(receiver), debtAmt); + receiver.leverageByXt(debtAmt, abi.encode(alice, collateralAmt)); + vm.stopPrank(); + + vm.warp(marketConfig.maturity + Constants.LIQUIDATION_WINDOW); + + vm.startPrank(bob); + + uint256 minDebtOutAmt = 1000e8; + SwapUnit[] memory units = new SwapUnit[](1); + units[0] = SwapUnit(address(adapter), address(res.collateral), address(res.debt), abi.encode(minDebtOutAmt)); + + res.ft.approve(address(res.router), depositAmt); + uint256 ftTotalSupply = res.ft.totalSupply(); + uint256 redeemedDebtToken = (res.debt.balanceOf(address(res.market)) * depositAmt) / ftTotalSupply; + + uint256 expectedOutput = redeemedDebtToken + minDebtOutAmt; + + vm.expectEmit(); + emit RouterEvents.RedeemAndSwap(res.market, depositAmt, bob, bob, expectedOutput); + uint256 netOutput = res.router.redeemAndSwap(bob, res.market, depositAmt, units, expectedOutput); + + assertEq(netOutput, expectedOutput); + assertEq(res.debt.balanceOf(bob), netOutput); + + vm.stopPrank(); + } + + function testSwapUnitsIsEmpty() public { + address bob = vm.randomAddress(); + address alice = vm.randomAddress(); + + uint128 depositAmt = 1000e8; + uint128 debtAmt = 100e8; + uint256 collateralAmt = 1e18; + + vm.startPrank(bob); + res.debt.mint(bob, depositAmt); + res.debt.approve(address(res.market), depositAmt); + res.market.mint(bob, depositAmt); + + res.xt.transfer(alice, debtAmt); + vm.stopPrank(); + + vm.startPrank(alice); + + MockFlashLoanReceiver receiver = new MockFlashLoanReceiver(res.market); + res.collateral.mint(address(receiver), collateralAmt); + + res.xt.approve(address(receiver), debtAmt); + receiver.leverageByXt(debtAmt, abi.encode(alice, collateralAmt)); + vm.stopPrank(); + + vm.warp(marketConfig.maturity + Constants.LIQUIDATION_WINDOW); + + vm.startPrank(bob); + + uint256 minDebtOutAmt = 1000e8; + SwapUnit[] memory units = new SwapUnit[](0); + res.ft.approve(address(res.router), depositAmt); + + vm.expectRevert(abi.encodeWithSelector(RouterErrors.SwapUnitsIsEmpty.selector)); + res.router.redeemAndSwap(bob, res.market, depositAmt, units, minDebtOutAmt); + + vm.stopPrank(); + } + + function testPlaceOrderForV1() public { + vm.startPrank(sender); + + uint256 debtTokenToDeposit = 1e8; + uint128 ftToDeposit = 2e8; + uint128 xtToDeposit = 0; + + res.debt.mint(sender, debtTokenToDeposit); + deal(address(res.ft), sender, ftToDeposit); + res.debt.approve(address(res.router), debtTokenToDeposit); + res.ft.approve(address(res.router), ftToDeposit); + res.xt.approve(address(res.router), xtToDeposit); + uint256 collateralToMintGt = 1e18; + res.collateral.mint(sender, collateralToMintGt); + res.collateral.approve(address(res.router), collateralToMintGt); + + (ITermMaxOrder order, uint256 gtId) = res.router.placeOrderForV1( + res.market, sender, collateralToMintGt, debtTokenToDeposit, ftToDeposit, xtToDeposit, orderConfig + ); + + assertEq(gtId, 1); + assertEq(order.maker(), sender); + assertEq(res.ft.balanceOf(address(order)), ftToDeposit + debtTokenToDeposit); + assertEq(res.xt.balanceOf(address(order)), xtToDeposit + debtTokenToDeposit); + + vm.stopPrank(); + } + + function testPlaceOrderForV2() public { + vm.startPrank(sender); + + uint256 debtTokenToDeposit = 1e8; + uint128 ftToDeposit = 2e8; + uint128 xtToDeposit = 0; + + res.debt.mint(sender, debtTokenToDeposit); + deal(address(res.ft), sender, ftToDeposit); + res.debt.approve(address(res.router), debtTokenToDeposit); + res.ft.approve(address(res.router), ftToDeposit); + res.xt.approve(address(res.router), xtToDeposit); + uint256 collateralToMintGt = 1e18; + res.collateral.mint(sender, collateralToMintGt); + res.collateral.approve(address(res.router), collateralToMintGt); + + (ITermMaxOrder order, uint256 gtId) = res.router.placeOrderForV2( + res.market, sender, collateralToMintGt, debtTokenToDeposit, ftToDeposit, xtToDeposit, orderConfig + ); + + assertEq(gtId, order.orderConfig().gtId); + assertEq(order.maker(), sender); + assertEq(res.ft.balanceOf(address(order)), ftToDeposit + debtTokenToDeposit); + assertEq(res.xt.balanceOf(address(order)), xtToDeposit + debtTokenToDeposit); + + vm.stopPrank(); + } + + function testOrdersAndAmtsLengthNotMatch() public { + vm.startPrank(sender); + + uint128[] memory tradingAmts = new uint128[](2); + tradingAmts[0] = 45e8; + tradingAmts[1] = 45e8; + uint128 maxAmountIn = 100e8; + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + + res.debt.mint(sender, maxAmountIn); + res.debt.approve(address(res.router), maxAmountIn); + + vm.expectRevert(RouterErrors.OrdersAndAmtsLengthNotMatch.selector); + res.router.swapTokenToExactToken( + res.debt, res.ft, sender, orders, tradingAmts, maxAmountIn, block.timestamp + 1 hours + ); + + vm.expectRevert(RouterErrors.OrdersAndAmtsLengthNotMatch.selector); + res.router.swapExactTokenToToken( + res.debt, res.ft, sender, orders, tradingAmts, maxAmountIn, block.timestamp + 1 hours + ); + vm.stopPrank(); + } +} diff --git a/test/v2/TermMaxToken.t.sol b/test/v2/TermMaxToken.t.sol new file mode 100644 index 0000000..7b2a488 --- /dev/null +++ b/test/v2/TermMaxToken.t.sol @@ -0,0 +1,440 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {TermMaxToken, StakingBuffer} from "contracts/v2/tokens/TermMaxToken.sol"; +import {Test} from "forge-std/Test.sol"; +import {MockAave} from "contracts/v2/test/MockAave.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {IERC20Errors} from "@openzeppelin/contracts/interfaces/draft-IERC6093.sol"; + +contract TermMaxTokenTest is Test { + TermMaxToken public termMaxToken; + MockAave public aavePool; + MockERC20 public underlying; + address public admin = vm.randomAddress(); + + function setUp() public { + underlying = new MockERC20("USDC", "USDC", 6); + aavePool = new MockAave(address(underlying)); + + vm.label(address(underlying), "USDC"); + vm.label(address(aavePool), "AavePool"); + vm.label(admin, "Admin"); + + address implementation = address(new TermMaxToken(address(aavePool), 0)); + termMaxToken = TermMaxToken( + address( + new ERC1967Proxy( + implementation, + abi.encodeWithSelector( + TermMaxToken.initialize.selector, + admin, + address(underlying), + StakingBuffer.BufferConfig({minimumBuffer: 1000e6, maximumBuffer: 10000e6, buffer: 5000e6}) + ) + ) + ) + ); + + vm.label(address(termMaxToken), "tmxUSDC"); + } + + function testMint() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + + termMaxToken.mint(address(this), amount); + + assertEq(termMaxToken.balanceOf(address(this)), amount); + assertEq(underlying.balanceOf(address(this)), 0); + // Check that aTokens were minted to the TermMaxToken contract + assertEq(aavePool.balanceOf(address(termMaxToken)), 0); + assertEq(underlying.balanceOf(address(termMaxToken)), amount); + } + + function testBurn() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + termMaxToken.burn(address(this), amount); + + assertEq(termMaxToken.balanceOf(address(this)), 0); + assertEq(underlying.balanceOf(address(this)), amount); + assertEq(aavePool.balanceOf(address(termMaxToken)), 0); + } + + function testBurnToAToken() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + vm.expectRevert(); + termMaxToken.burnToAToken(address(this), amount); + + underlying.mint(address(this), amount * 10); + underlying.approve(address(termMaxToken), amount * 10); + termMaxToken.mint(address(this), amount * 10); + + termMaxToken.burnToAToken(address(this), amount); + + assertEq(termMaxToken.balanceOf(address(this)), amount * 10); + assertEq(aavePool.balanceOf(address(this)), amount); + } + + function testWithdrawIncomeAssets() public { + // Setup - mint some tokens + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + // Simulate yield by directly minting aTokens to the TermMaxToken contract + uint256 yieldAmount = 100e6; + aavePool.simulateInterestAccrual(address(termMaxToken), yieldAmount); + + // Withdraw income as the admin + vm.startPrank(admin); + termMaxToken.withdrawIncomeAssets(address(underlying), admin, yieldAmount); + vm.stopPrank(); + + // Assert balances are correct + assertEq(underlying.balanceOf(admin), yieldAmount); + assertEq(termMaxToken.totalIncomeAssets(), yieldAmount); + } + + function testUpdateBufferConfigAndAddReserves() public { + uint256 additionalReserves = 500e6; + underlying.mint(admin, additionalReserves); + + vm.startPrank(admin); + underlying.approve(address(termMaxToken), additionalReserves); + + StakingBuffer.BufferConfig memory newConfig = + StakingBuffer.BufferConfig({minimumBuffer: 2000e6, maximumBuffer: 20000e6, buffer: 10000e6}); + + termMaxToken.updateBufferConfigAndAddReserves(additionalReserves, newConfig); + vm.stopPrank(); + + // Get current buffer config + (uint256 minimumBuffer, uint256 maximumBuffer, uint256 buffer) = termMaxToken.bufferConfig(); + + // Assert the new config was set correctly + assertEq(minimumBuffer, newConfig.minimumBuffer); + assertEq(maximumBuffer, newConfig.maximumBuffer); + assertEq(buffer, newConfig.buffer); + + // Assert the additional reserves were added + assertEq(underlying.balanceOf(address(termMaxToken)), additionalReserves); + } + + function testTotalIncomeAssets() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + // Simulate yield by directly minting aTokens to the TermMaxToken contract + uint256 yieldAmount = 100e6; + aavePool.simulateInterestAccrual(address(termMaxToken), yieldAmount); + + assertEq(termMaxToken.totalIncomeAssets(), yieldAmount); + } + + function testMintZeroAmount() public { + // The mint function doesn't explicitly check for zero amounts at the ERC20 level, + // but it should revert due to transferFrom of zero amount or other validations + underlying.mint(address(this), 0); + underlying.approve(address(termMaxToken), 0); + + // This should succeed as minting 0 tokens is typically allowed + termMaxToken.mint(address(this), 0); + assertEq(termMaxToken.balanceOf(address(this)), 0); + } + + function testBurnMoreThanBalance() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + vm.expectRevert(); + termMaxToken.burn(address(this), amount + 1); + } + + function testWithdrawTooMuchIncome() public { + // Setup - mint some tokens + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + // Simulate yield by directly minting aTokens to the TermMaxToken contract + uint256 yieldAmount = 100e6; + aavePool.simulateInterestAccrual(address(termMaxToken), yieldAmount); + + // Try to withdraw more than available income + vm.startPrank(admin); + vm.expectRevert(); + termMaxToken.withdrawIncomeAssets(address(underlying), admin, yieldAmount + 1); + vm.stopPrank(); + } + + function testNonAdminCannotWithdrawIncome() public { + // Setup - mint some tokens + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + // Simulate yield by directly minting aTokens to the TermMaxToken contract + uint256 yieldAmount = 100e6; + aavePool.simulateInterestAccrual(address(termMaxToken), yieldAmount); + + // Try to withdraw as non-admin + vm.expectRevert(); + termMaxToken.withdrawIncomeAssets(address(underlying), address(this), yieldAmount); + } + + function testNonAdminCannotUpdateBufferConfig() public { + StakingBuffer.BufferConfig memory newConfig = + StakingBuffer.BufferConfig({minimumBuffer: 2000e6, maximumBuffer: 20000e6, buffer: 10000e6}); + + vm.expectRevert(); + termMaxToken.updateBufferConfigAndAddReserves(0, newConfig); + } + + function testWithdrawIncomeAsAToken() public { + // Setup - mint some tokens + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + // Simulate yield by directly minting aTokens to the TermMaxToken contract + uint256 yieldAmount = 100e6; + aavePool.simulateInterestAccrual(address(termMaxToken), yieldAmount); + + // Withdraw income as aToken + vm.startPrank(admin); + termMaxToken.withdrawIncomeAssets(address(aavePool), admin, yieldAmount); + vm.stopPrank(); + + // Assert balances are correct + assertEq(aavePool.balanceOf(admin), yieldAmount); + } + + function testWithdrawIncomeAsInvalidToken() public { + // Setup + MockERC20 invalidToken = new MockERC20("Invalid", "INV", 18); + + // Attempt to withdraw income with invalid token + vm.startPrank(admin); + vm.expectRevert(); + termMaxToken.withdrawIncomeAssets(address(invalidToken), admin, 100e6); + vm.stopPrank(); + } + + function testInvalidBufferConfiguration() public { + vm.startPrank(admin); + + // Test minimum buffer greater than maximum buffer + vm.expectRevert(abi.encodeWithSelector(StakingBuffer.InvalidBuffer.selector, 10000e6, 5000e6, 7500e6)); + termMaxToken.updateBufferConfigAndAddReserves( + 0, StakingBuffer.BufferConfig({minimumBuffer: 10000e6, maximumBuffer: 5000e6, buffer: 7500e6}) + ); + + // Test buffer outside min/max range (below minimum) + vm.expectRevert(abi.encodeWithSelector(StakingBuffer.InvalidBuffer.selector, 5000e6, 10000e6, 4000e6)); + termMaxToken.updateBufferConfigAndAddReserves( + 0, StakingBuffer.BufferConfig({minimumBuffer: 5000e6, maximumBuffer: 10000e6, buffer: 4000e6}) + ); + + // Test buffer outside min/max range (above maximum) + vm.expectRevert(abi.encodeWithSelector(StakingBuffer.InvalidBuffer.selector, 5000e6, 10000e6, 11000e6)); + termMaxToken.updateBufferConfigAndAddReserves( + 0, StakingBuffer.BufferConfig({minimumBuffer: 5000e6, maximumBuffer: 10000e6, buffer: 11000e6}) + ); + + vm.stopPrank(); + } + + function testUnauthorizedAccess() public { + address unauthorizedUser = vm.randomAddress(); + + // Test unauthorized buffer config update + vm.startPrank(unauthorizedUser); + vm.expectRevert(); + termMaxToken.updateBufferConfigAndAddReserves( + 0, StakingBuffer.BufferConfig({minimumBuffer: 2000e6, maximumBuffer: 20000e6, buffer: 10000e6}) + ); + vm.stopPrank(); + + // Test unauthorized income withdrawal + vm.startPrank(unauthorizedUser); + vm.expectRevert(); + termMaxToken.withdrawIncomeAssets(address(termMaxToken), unauthorizedUser, 100e6); + vm.stopPrank(); + } + + function testBurnToATokenInsufficientStaking() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + // Should revert when trying to burn to aToken without sufficient staking buffer + vm.expectRevert( + abi.encodeWithSelector(IERC20Errors.ERC20InsufficientBalance.selector, address(termMaxToken), 0, amount) + ); + termMaxToken.burnToAToken(address(this), amount); + } + + function testBurnToATokenExceedsBalance() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount * 20); + underlying.approve(address(termMaxToken), amount * 20); + termMaxToken.mint(address(this), amount * 20); + + // Should revert when trying to burn more than balance + vm.expectRevert( + abi.encodeWithSelector( + IERC20Errors.ERC20InsufficientBalance.selector, address(this), amount * 20, amount * 21 + ) + ); + termMaxToken.burnToAToken(address(this), amount * 21); + } + + function testMintWithInsufficientApproval() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount - 1); // Insufficient approval + + vm.expectRevert( + abi.encodeWithSelector( + IERC20Errors.ERC20InsufficientAllowance.selector, address(termMaxToken), amount - 1, amount + ) + ); + termMaxToken.mint(address(this), amount); + } + + function testBurnWithInsufficientBalance() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + // Try to burn more than balance + vm.expectRevert( + abi.encodeWithSelector(IERC20Errors.ERC20InsufficientBalance.selector, address(this), amount, amount + 1) + ); + termMaxToken.burn(address(this), amount + 1); + } + + function testWithdrawIncomeToZeroAddress() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + + uint256 yieldAmount = 100e6; + aavePool.simulateInterestAccrual(address(termMaxToken), yieldAmount); + + vm.startPrank(admin); + vm.expectRevert(abi.encodeWithSelector(IERC20Errors.ERC20InvalidReceiver.selector, address(0))); + termMaxToken.withdrawIncomeAssets(address(underlying), address(0), yieldAmount); + vm.stopPrank(); + } + + function testMintToZeroAddress() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + + vm.expectRevert(abi.encodeWithSelector(IERC20Errors.ERC20InvalidReceiver.selector, address(0))); + termMaxToken.mint(address(0), amount); + } + + function testBurnToZeroAddress() public { + uint256 amount = 1000e6; + underlying.mint(address(this), amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(address(this), amount); + vm.expectRevert(abi.encodeWithSelector(IERC20Errors.ERC20InvalidReceiver.selector, address(0))); + termMaxToken.burn(address(0), amount); + } + + function testUpdateBufferWithInsufficientBalance() public { + uint256 additionalReserves = 500e6; + // Don't mint tokens to admin + + vm.startPrank(admin); + underlying.approve(address(termMaxToken), additionalReserves); + + StakingBuffer.BufferConfig memory newConfig = + StakingBuffer.BufferConfig({minimumBuffer: 2000e6, maximumBuffer: 20000e6, buffer: 10000e6}); + + vm.expectRevert( + abi.encodeWithSelector(IERC20Errors.ERC20InsufficientBalance.selector, admin, 0, additionalReserves) + ); + termMaxToken.updateBufferConfigAndAddReserves(additionalReserves, newConfig); + vm.stopPrank(); + } + + function testTermMaxTokenFuzzActions() public { + vm.prank(admin); + termMaxToken.updateBufferConfigAndAddReserves( + 0, StakingBuffer.BufferConfig({minimumBuffer: 500e6, maximumBuffer: 1000e6, buffer: 700e6}) + ); + + address[] memory accounts = new address[](10); + for (uint256 i = 0; i < accounts.length; i++) { + accounts[i] = vm.addr(i + 1); // Create unique addresses for each account + } + uint256 totalInterest = 0; + for (uint256 i = 0; i < 1000; i++) { + uint256 amount = vm.randomUint(1e6, 1000000e6); + address account = accounts[vm.randomUint(0, accounts.length - 1)]; + vm.startPrank(account); + uint256 action = vm.randomUint(0, 2); // 0 for mint, 1 for burn + + uint256 underlyingBalanceBefore = underlying.balanceOf(account); + uint256 tmxTokenBalanceBefore = termMaxToken.balanceOf(account); + if (action == 0 || tmxTokenBalanceBefore < amount) { + if (underlyingBalanceBefore < amount) { + underlying.mint(account, amount - underlyingBalanceBefore); + } + // Mint action + underlying.mint(account, amount); + underlying.approve(address(termMaxToken), amount); + termMaxToken.mint(account, amount); + assertEq(termMaxToken.balanceOf(account), amount + tmxTokenBalanceBefore); + } else { + // Burn action + if (termMaxToken.balanceOf(account) >= amount) { + termMaxToken.burn(account, amount); + assertEq(termMaxToken.balanceOf(account), tmxTokenBalanceBefore - amount); + assertEq(underlying.balanceOf(account), underlyingBalanceBefore + amount); + } + } + + // Simulate interest accrual + uint256 rate = vm.randomUint(0.01e8, 0.1e8); + uint256 aTokenBalanceBefore = aavePool.balanceOf(address(termMaxToken)); + uint256 interest = (aTokenBalanceBefore * rate) / 1e8; // Interest accrued + aavePool.simulateInterestAccrual(address(termMaxToken), interest); + totalInterest += interest; + vm.stopPrank(); + } + + assertEq(termMaxToken.totalIncomeAssets(), totalInterest); + assertEq( + underlying.balanceOf(address(termMaxToken)) + aavePool.balanceOf(address(termMaxToken)), + totalInterest + termMaxToken.totalSupply() + ); + } +} diff --git a/test/v2/VaultV2.t.sol b/test/v2/VaultV2.t.sol new file mode 100644 index 0000000..c3ecb00 --- /dev/null +++ b/test/v2/VaultV2.t.sol @@ -0,0 +1,1390 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {console} from "forge-std/console.sol"; +import {DeployUtils} from "./utils/DeployUtils.sol"; +import {JSONLoader} from "./utils/JSONLoader.sol"; +import {StateChecker} from "./utils/StateChecker.sol"; +import {SwapUtils} from "./utils/SwapUtils.sol"; +import {LoanUtils} from "./utils/LoanUtils.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {IFlashLoanReceiver} from "contracts/v1/IFlashLoanReceiver.sol"; +import { + ITermMaxMarketV2, + ITermMaxMarket, + TermMaxMarketV2, + Constants, + MarketErrors, + MarketEvents +} from "contracts/v2/TermMaxMarketV2.sol"; +import {ITermMaxOrder, TermMaxOrderV2, ISwapCallback, OrderEvents} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCuts, + IOracle +} from "contracts/v1/storage/TermMaxStorage.sol"; +import { + ITermMaxVault, + ITermMaxVaultV2, + TermMaxVaultV2, + VaultErrors, + VaultEvents, + VaultConstants, + OrderInfo +} from "contracts/v2/vault/TermMaxVaultV2.sol"; +import {PendingUint192, PendingLib} from "contracts/v1/lib/PendingLib.sol"; +import {VaultErrorsV2} from "contracts/v2/errors/VaultErrorsV2.sol"; +import {IPausable} from "contracts/v1/access/AccessManager.sol"; +import {VaultEventsV2} from "contracts/v2/events/VaultEventsV2.sol"; +import {VaultInitialParamsV2} from "contracts/v2/storage/TermMaxStorageV2.sol"; + +/// @dev use --isolate to run this tests +contract VaultTestV2 is Test { + using JSONLoader for *; + using SafeCast for *; + + DeployUtils.Res res; + + OrderConfig orderConfig; + MarketConfig marketConfig; + + address deployer = vm.randomAddress(); + address curator = vm.randomAddress(); + address allocator = vm.randomAddress(); + address guardian = vm.randomAddress(); + address lper = vm.randomAddress(); + address treasurer = vm.randomAddress(); + string testdata; + + ITermMaxVault vault; + + uint256 timelock = 86400; + uint256 maxCapacity = 1000000e18; + uint64 performanceFeeRate = 0.5e8; + + ITermMaxMarket market2; + + uint256 currentTime; + uint32 maxLtv = 0.89e8; + uint32 liquidationLtv = 0.9e8; + VaultInitialParamsV2 initialParams; + + function setUp() public { + vm.startPrank(deployer); + testdata = vm.readFile(string.concat(vm.projectRoot(), "/test/testdata/testdata.json")); + + currentTime = vm.parseUint(vm.parseJsonString(testdata, ".currentTime")); + vm.warp(currentTime); + + marketConfig = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + orderConfig = JSONLoader.getOrderConfigFromJson(testdata, ".orderConfig"); + marketConfig.maturity = uint64(currentTime + 90 days); + res = DeployUtils.deployMockMarket(deployer, marketConfig, maxLtv, liquidationLtv); + vm.label(address(res.market), "market"); + MarketConfig memory marketConfig2 = JSONLoader.getMarketConfigFromJson(treasurer, testdata, ".marketConfig"); + marketConfig2.maturity = uint64(currentTime + 180 days); + + market2 = ITermMaxMarket( + res.factory.createMarket( + DeployUtils.GT_ERC20, + MarketInitialParams({ + collateral: address(res.collateral), + debtToken: res.debt, + admin: deployer, + gtImplementation: address(0), + marketConfig: marketConfig2, + loanConfig: LoanConfig({ + maxLtv: maxLtv, + liquidationLtv: liquidationLtv, + liquidatable: true, + oracle: IOracle(address(res.oracle)) + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "test", + tokenSymbol: "test" + }), + 0 + ) + ); + vm.label(address(market2), "market2"); + + // update oracle + res.collateralOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.eth")); + res.debtOracle.updateRoundData(JSONLoader.getRoundDataFromJson(testdata, ".priceData.ETH_2000_DAI_1.dai")); + + uint256 amount = 10000e8; + + initialParams = VaultInitialParamsV2( + deployer, + curator, + guardian, + timelock, + res.debt, + maxCapacity, + "Vault-DAI", + "Vault-DAI", + performanceFeeRate, + 0, + 0 + ); + + vault = DeployUtils.deployVault(initialParams); + + vm.label(address(vault), "vault"); + vm.label(guardian, "guardian"); + vault.setIsAllocator(allocator, true); + vm.label(allocator, "allocator"); + vm.label(curator, "curator"); + vm.label(deployer, "deployer"); + vm.label(lper, "lper"); + vm.label(address(res.debt), "debt token"); + vm.label(address(res.collateral), "collateral token"); + + vault.submitMarket(address(res.market), true); + vault.submitMarket(address(market2), true); + vm.warp(currentTime + timelock + 1); + vault.acceptMarket(address(res.market)); + vault.acceptMarket(address(market2)); + vm.warp(currentTime); + + res.debt.mint(deployer, amount); + res.debt.approve(address(vault), amount); + vault.deposit(amount, deployer); + assertEq(res.debt.balanceOf(address(vault)), amount); + + res.order = vault.createOrder(res.market, maxCapacity, amount, orderConfig.curveCuts); + vm.label(address(res.order), "order"); + res.debt.mint(deployer, 10000e18); + res.debt.approve(address(res.market), 10000e18); + res.market.mint(deployer, 10000e18); + vm.stopPrank(); + } + + function testRoleManagement() public { + // Test initial roles + assertEq(vault.guardian(), guardian); + assertEq(vault.curator(), curator); + assertTrue(vault.isAllocator(allocator)); + + // Test guardian role checks + vm.startPrank(deployer); + address newGuardian = address(0x123); + vault.submitGuardian(newGuardian); + + // Should not be set immediately due to timelock + assertEq(vault.guardian(), guardian); + + // Move forward past timelock + vm.warp(block.timestamp + timelock + 1); + vault.acceptGuardian(); + assertEq(vault.guardian(), newGuardian); + vm.stopPrank(); + + // Test revoke guardian + address nextGuardian = address(0x456); + vm.prank(deployer); + vault.submitGuardian(nextGuardian); + + vm.prank(newGuardian); + vault.revokePendingGuardian(); + assertEq(vault.pendingGuardian().value, address(0)); + + // Test curator role + vm.prank(deployer); + address newCurator = address(0x456); + vault.setCurator(newCurator); + assertEq(vault.curator(), newCurator); + + // Test allocator management + vm.prank(deployer); + address newAllocator = address(0x789); + vault.setIsAllocator(newAllocator, true); + assertTrue(vault.isAllocator(newAllocator)); + } + + function test_RevertSetGuardian() public { + address newGuardian = address(0x123); + vm.prank(allocator); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, allocator)); + vault.submitGuardian(newGuardian); + + vm.startPrank(deployer); + vault.submitGuardian(newGuardian); + + vm.expectRevert(VaultErrors.AlreadyPending.selector); + vault.submitGuardian(newGuardian); + + vm.expectRevert(VaultErrors.TimelockNotElapsed.selector); + vault.acceptGuardian(); + + vm.warp(block.timestamp + 1 days + 1); + vault.acceptGuardian(); + + vm.expectRevert(VaultErrors.AlreadySet.selector); + vault.submitGuardian(address(0x123)); + + vm.stopPrank(); + } + + function testMarketWhitelist() public { + // check current timelock value + assertEq(vault.timelock(), 86400); + + // submit market + vm.startPrank(curator); + address market = address(0x123); + vault.submitMarket(market, false); + + assertEq(vault.marketWhitelist(market), false); + vault.submitMarket(market, true); + + assertEq(vault.marketWhitelist(market), false); + + // The validAt of the newly submitted market is the current time, without timelock + PendingUint192 memory pendingMarket = vault.pendingMarkets(market); + assertEq(pendingMarket.validAt, block.timestamp + 86400); + + vm.warp(block.timestamp + 86400 + 1); + vault.acceptMarket(market); + assertEq(vault.marketWhitelist(market), true); + + vault.submitMarket(market, false); + assertEq(vault.marketWhitelist(market), false); + vm.stopPrank(); + + // Test revoke market + address newMarket = address(0x456); + vm.prank(curator); + vault.submitMarket(newMarket, true); + + vm.prank(guardian); + vault.revokePendingMarket(newMarket); + assertEq(vault.pendingMarkets(newMarket).validAt, 0); + } + + function test_RevertSetMarketWhitelist() public { + address market = address(0x123); + + vm.prank(vm.randomAddress()); + vm.expectRevert(VaultErrors.NotCuratorRole.selector); + vault.submitMarket(market, true); + + vm.startPrank(curator); + vault.submitMarket(market, true); + + vm.expectRevert(VaultErrors.AlreadyPending.selector); + vault.submitMarket(market, true); + + vm.expectRevert(VaultErrors.TimelockNotElapsed.selector); + vault.acceptMarket(market); + + vm.warp(block.timestamp + 86400 + 1); + vault.acceptMarket(market); + + vm.expectRevert(VaultErrors.AlreadySet.selector); + vault.submitMarket(market, true); + + vm.stopPrank(); + } + + function test_RevertCreateOrder() public { + ITermMaxMarket market = ITermMaxMarket(address(0x123)); + address bob = lper; + vm.startPrank(bob); + + vm.expectRevert(VaultErrors.NotCuratorRole.selector); + vault.createOrder(market, maxCapacity, 0, orderConfig.curveCuts); + + vm.stopPrank(); + + vm.startPrank(curator); + vm.expectRevert(VaultErrors.MarketNotWhitelisted.selector); + vault.createOrder(market, maxCapacity, 0, orderConfig.curveCuts); + vm.stopPrank(); + } + + function testTimelockManagement() public { + uint256 newTimelock = 2 days; + + vm.prank(curator); + vault.submitTimelock(newTimelock); + assertEq(vault.timelock(), newTimelock); + + newTimelock = 1.5 days; + vm.prank(curator); + vault.submitTimelock(newTimelock); + assertEq(vault.timelock(), 2 days); + + PendingUint192 memory pendingTimelock = vault.pendingTimelock(); + assertEq(uint256(pendingTimelock.value), newTimelock); + assertEq(vault.timelock(), 2 days); + + // Can accept after timelock period + vm.warp(currentTime + 2 days); + vm.prank(vm.randomAddress()); + vault.acceptTimelock(); + assertEq(vault.timelock(), newTimelock); + + // revoke + vm.warp(currentTime + 3 days); + vm.prank(curator); + vault.submitTimelock(1 days); + vm.prank(guardian); + vault.revokePendingTimelock(); + pendingTimelock = vault.pendingTimelock(); + assertEq(uint256(pendingTimelock.value), 0); + } + + function test_RevertSetTimelock() public { + uint256 newTimelock = 2 days; + vm.startPrank(curator); + + vault.submitTimelock(newTimelock); + + vm.expectRevert(VaultErrors.AlreadySet.selector); + vault.submitTimelock(newTimelock); + + newTimelock = 1.5 days; + vault.submitTimelock(newTimelock); + + vm.expectRevert(VaultErrors.AlreadyPending.selector); + vault.submitTimelock(newTimelock); + + vm.warp(currentTime + 2 days); + vault.acceptTimelock(); + + vm.expectRevert(VaultErrors.BelowMinTimelock.selector); + vault.submitTimelock(1 days - 1); + + vm.expectRevert(VaultErrors.AboveMaxTimelock.selector); + vault.submitTimelock(VaultConstants.MAX_TIMELOCK + 1); + + vm.expectRevert(VaultErrors.NoPendingValue.selector); + vault.acceptTimelock(); + + vault.submitTimelock(1 days); + vm.warp(currentTime + 0.9 days); + vm.expectRevert(VaultErrors.TimelockNotElapsed.selector); + vault.acceptTimelock(); + + vm.stopPrank(); + + vm.expectRevert(VaultErrors.NotCuratorRole.selector); + vault.submitTimelock(1 days); + } + + function testPerformanceFeeRate() public { + uint184 newPercentage = 0.4e8; + + vm.prank(curator); + vault.submitPerformanceFeeRate(newPercentage); + + uint256 percentage = vault.performanceFeeRate(); + assertEq(percentage, newPercentage); + + newPercentage = 0.5e8; + vm.prank(curator); + vault.submitPerformanceFeeRate(newPercentage); + + vm.prank(guardian); + vault.revokePendingPerformanceFeeRate(); + + vm.prank(curator); + vault.submitPerformanceFeeRate(newPercentage); + + PendingUint192 memory pendingFeeRate = vault.pendingPerformanceFeeRate(); + assertEq(uint256(pendingFeeRate.value), newPercentage); + + vm.warp(pendingFeeRate.validAt); + vm.prank(vm.randomAddress()); + vault.acceptPerformanceFeeRate(); + percentage = vault.performanceFeeRate(); + assertEq(percentage, newPercentage); + } + + function test_RevertSetPerformanceFeeRate() public { + uint184 newPercentage = 0.5e8; + + vm.prank(curator); + vm.expectRevert(VaultErrors.AlreadySet.selector); + vault.submitPerformanceFeeRate(newPercentage); + + newPercentage = 0.6e8; + vm.prank(curator); + vm.expectRevert(VaultErrors.PerformanceFeeRateExceeded.selector); + vault.submitPerformanceFeeRate(newPercentage); + + vm.prank(vm.randomAddress()); + vm.expectRevert(VaultErrors.NotCuratorRole.selector); + vault.submitPerformanceFeeRate(newPercentage); + + newPercentage = 0.4e8; + vm.startPrank(curator); + vault.submitPerformanceFeeRate(newPercentage); + + newPercentage = 0.41e8; + vault.submitPerformanceFeeRate(newPercentage); + + newPercentage = 0.42e8; + vm.expectRevert(VaultErrors.AlreadyPending.selector); + vault.submitPerformanceFeeRate(newPercentage); + + vm.stopPrank(); + } + + function testSupplyQueue() public { + vm.expectRevert(VaultErrorsV2.SupplyQueueNoLongerSupported.selector); + vault.supplyQueueLength(); + + vm.expectRevert(VaultErrorsV2.SupplyQueueNoLongerSupported.selector); + vault.supplyQueue(0); + + vm.startPrank(curator); + uint256[] memory indexes = new uint256[](2); + vm.expectRevert(VaultErrorsV2.SupplyQueueNoLongerSupported.selector); + vault.updateSupplyQueue(indexes); + + vm.stopPrank(); + } + + function testWithdrawQueue() public { + vm.expectRevert(VaultErrorsV2.WithdrawalQueueNoLongerSupported.selector); + vault.withdrawQueueLength(); + + vm.expectRevert(VaultErrorsV2.WithdrawalQueueNoLongerSupported.selector); + vault.withdrawQueue(0); + + vm.startPrank(curator); + uint256[] memory indexes = new uint256[](2); + vm.expectRevert(VaultErrorsV2.WithdrawalQueueNoLongerSupported.selector); + vault.updateWithdrawQueue(indexes); + + vm.stopPrank(); + } + + function shuffle(uint256[] memory arr, uint256 seed) public pure returns (uint256[] memory) { + uint256 length = arr.length; + + for (uint256 i = length - 1; i > 0; i--) { + uint256 j = seed % (i + 1); + + uint256 temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; + } + + return arr; + } + + function testUpdateOrder() public { + vm.startPrank(curator); + ITermMaxOrder[] memory orders = new ITermMaxOrder[](3); + orders[0] = res.order; + orders[1] = vault.createOrder(res.market, maxCapacity, 0, orderConfig.curveCuts); + orders[2] = vault.createOrder(res.market, maxCapacity, 0, orderConfig.curveCuts); + + int256[] memory changes = new int256[](3); + changes[0] = -3000; + changes[1] = 2000; + changes[2] = 1000; + + uint256[] memory maxSupplies = new uint256[](3); + maxSupplies[0] = maxCapacity - 1; + maxSupplies[1] = maxCapacity + 1; + maxSupplies[2] = maxCapacity; + + CurveCuts[] memory curveCuts = new CurveCuts[](3); + CurveCuts memory newCurveCuts = orderConfig.curveCuts; + newCurveCuts.lendCurveCuts[0].liqSquare++; + curveCuts[0] = newCurveCuts; + newCurveCuts.lendCurveCuts[0].liqSquare++; + curveCuts[1] = newCurveCuts; + newCurveCuts.lendCurveCuts[0].liqSquare++; + curveCuts[2] = newCurveCuts; + + uint256[] memory balancesBefore = new uint256[](3); + balancesBefore[0] = res.ft.balanceOf(address(orders[0])); + balancesBefore[1] = res.ft.balanceOf(address(orders[1])); + balancesBefore[2] = res.ft.balanceOf(address(orders[2])); + vault.updateOrders(orders, changes, maxSupplies, curveCuts); + + for (uint256 i = 0; i < orders.length; i++) { + assertEq(orders[i].orderConfig().maxXtReserve, maxSupplies[i]); + if (changes[i] < 0) { + assertEq(res.ft.balanceOf(address(orders[i])), balancesBefore[i] - (-changes[i]).toUint256()); + } else { + assertEq(res.ft.balanceOf(address(orders[i])), balancesBefore[i] + changes[i].toUint256()); + } + assertEq( + orders[i].orderConfig().curveCuts.lendCurveCuts[0].liqSquare, curveCuts[i].lendCurveCuts[0].liqSquare + ); + } + + vm.stopPrank(); + } + + function testDeposit() public { + vm.warp(currentTime + 2 days); + buyXt(48.219178e8, 1000e8); + + vm.warp(currentTime + 2 days); + address lper2 = vm.randomAddress(); + uint256 amount2 = 20000e8; + res.debt.mint(lper2, amount2); + vm.startPrank(lper2); + res.debt.approve(address(vault), amount2); + uint256 share = vault.previewDeposit(amount2); + vault.deposit(amount2, lper2); + assertEq(vault.balanceOf(lper2), share); + + vm.stopPrank(); + } + + function testDepositWhenNoOrders() public { + initialParams.name = "Vault-DAI2"; + initialParams.symbol = "Vault-DAI2"; + ITermMaxVault vault2 = DeployUtils.deployVault(initialParams); + vm.startPrank(deployer); + uint256 amount = 10000e8; + res.debt.mint(deployer, amount); + res.debt.approve(address(vault2), amount); + uint256 share = vault2.previewDeposit(amount); + vault2.deposit(amount, deployer); + assertEq(vault2.balanceOf(deployer), share); + assertEq(vault2.totalFt(), amount); + assertEq(vault2.totalAssets(), amount); + assertEq(vault2.totalSupply(), share); + vm.stopPrank(); + + vm.startPrank(lper); + res.debt.mint(lper, amount); + res.debt.approve(address(vault2), amount); + uint256 share2 = vault2.previewDeposit(amount); + vault2.deposit(amount, lper); + assertEq(vault2.balanceOf(lper), share2); + assertEq(vault2.totalFt(), amount + amount); + assertEq(vault2.totalAssets(), amount + amount); + assertEq(vault2.totalSupply(), share + share2); + vm.stopPrank(); + } + + function testRedeem() public { + vm.warp(currentTime + 2 days); + buyXt(48.219178e8, 1000e8); + vm.warp(currentTime + 4 days); + address lper2 = vm.randomAddress(); + uint256 amount2 = 10000e8; + res.debt.mint(lper2, amount2); + vm.startPrank(lper2); + res.debt.approve(address(vault), amount2); + vault.deposit(amount2, lper2); + vm.stopPrank(); + + _depositToOrder(vault, res.order, -1e10); + + vm.startPrank(deployer); + uint256 totalFt = vault.totalFt(); + uint256 lockedFr = vault.totalAssets(); + + uint256 share = vault.balanceOf(deployer); + uint256 redeemmedAmt = vault.previewRedeem(share); + assertEq(redeemmedAmt, vault.redeem(share, deployer, deployer)); + assert(redeemmedAmt > 10000e8); + assertEq(vault.totalFt(), totalFt - redeemmedAmt); + assertEq(vault.totalAssets(), lockedFr - redeemmedAmt); + + vm.stopPrank(); + } + + // redeem when balance bigger tha redeemed + function testRedeemCase2() public { + vm.warp(currentTime + 2 days); + buyXt(48.219178e8, 1000e8); + + vm.warp(currentTime + 4 days); + address lper2 = vm.randomAddress(); + uint256 amount2 = 10000e8; + res.debt.mint(lper2, amount2); + vm.startPrank(lper2); + res.debt.approve(address(vault), amount2); + vault.deposit(amount2, lper2); + vm.stopPrank(); + + vm.startPrank(curator); + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + + int256[] memory changes = new int256[](1); + changes[0] = -1000e8; + + uint256[] memory maxSupplies = new uint256[](1); + maxSupplies[0] = maxCapacity; + + CurveCuts[] memory curveCuts = new CurveCuts[](1); + curveCuts[0] = orderConfig.curveCuts; + + vault.updateOrders(orders, changes, maxSupplies, curveCuts); + vm.stopPrank(); + + vm.startPrank(deployer); + uint256 totalFt = vault.totalFt(); + uint256 lockedFr = vault.totalAssets(); + + uint256 share = 100e8; + uint256 redeemmedAmt = vault.previewRedeem(share); + assertEq(redeemmedAmt, vault.redeem(share, deployer, deployer)); + assert(redeemmedAmt > share); + assertEq(vault.totalFt(), totalFt - redeemmedAmt); + assertEq(vault.totalAssets(), lockedFr - redeemmedAmt); + + vm.stopPrank(); + } + + function testActions() public { + console.log("----day 2----"); + vm.warp(currentTime + 2 days); + buyXt(48.219178e8, 1000e8); + console.log("anulizedInterest:", vault.annualizedInterest()); + console.log("apy:", ITermMaxVaultV2(address(vault)).apy()); + + console.log("----day 3----"); + vm.warp(currentTime + 3 days); + console.log("new principal:", vault.totalAssets()); + address lper2 = vm.randomAddress(); + uint256 amount2 = 10000e8; + res.debt.mint(lper2, amount2); + vm.startPrank(lper2); + res.debt.approve(address(vault), amount2); + vault.deposit(amount2, lper2); + vm.stopPrank(); + _depositToOrder(vault, res.order, amount2.toInt256()); + console.log("principal after deposit:", vault.totalAssets()); + console.log("total supply:", vault.totalSupply()); + console.log("anulizedInterest:", vault.annualizedInterest()); + console.log("apy:", ITermMaxVaultV2(address(vault)).apy()); + + console.log("----day 4----"); + vm.warp(currentTime + 4 days); + swapFtToXt(94.247e8, 2000e8); + console.log("1-principal after swap:", vault.totalAssets()); + console.log("1-anulizedInterest:", vault.annualizedInterest()); + console.log("1-apy:", ITermMaxVaultV2(address(vault)).apy()); + swapFtToXt(94.247e8, 2000e8); + console.log("2-principal after swap:", vault.totalAssets()); + console.log("2-anulizedInterest:", vault.annualizedInterest()); + console.log("2-apy:", ITermMaxVaultV2(address(vault)).apy()); + + console.log("----day 6----"); + vm.warp(currentTime + 6 days); + console.log("new principal:", vault.totalAssets()); + _depositToOrder(vault, res.order, -(vault.previewRedeem(1000e8)).toInt256()); + vm.startPrank(lper2); + console.log("previewRedeem: ", vault.previewRedeem(1000e8)); + assertEq(vault.previewRedeem(1000e8), vault.redeem(1000e8, lper2, lper2)); + console.log("principal after redeem:", vault.totalAssets()); + console.log("total supply:", vault.totalSupply()); + console.log("anulizedInterest:", vault.annualizedInterest()); + console.log("apy:", ITermMaxVaultV2(address(vault)).apy()); + vm.stopPrank(); + + console.log("----day 91----"); + vm.warp(currentTime + 91 days); + console.log("new principal:", vault.totalAssets()); + console.log("previewRedeem: ", vault.previewRedeem(1000e8)); + + console.log("----day 92----"); + vm.warp(currentTime + 92 days); + console.log("new principal:", vault.totalAssets()); + vm.startPrank(lper2); + console.log("previewRedeem: ", vault.previewRedeem(1000e8)); + vault.redeemOrder(res.order); + assertEq(vault.previewRedeem(1000e8), vault.redeem(1000e8, lper2, lper2)); + console.log("principal after redeem:", vault.totalAssets()); + console.log("total supply:", vault.totalSupply()); + console.log("anulizedInterest:", vault.annualizedInterest()); + console.log("apy:", ITermMaxVaultV2(address(vault)).apy()); + vm.stopPrank(); + } + + function testAnulizedInterestLessThanZero() public { + uint128 tokenAmtIn = 100e8; + uint128 ftAmtOut = 100e8; + address taker = vm.randomAddress(); + res.debt.mint(taker, tokenAmtIn); + vm.startPrank(taker); + res.debt.approve(address(res.order), tokenAmtIn); + vm.expectRevert(VaultErrors.OrderHasNegativeInterest.selector); + res.order.swapExactTokenToToken(res.debt, res.ft, taker, tokenAmtIn, ftAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function testLockedFtGreaterThanTotalFt() public { + vm.warp(currentTime + 2 days); + buyXt(50e8, 1000e8); + + vm.warp(currentTime + 4 days); + uint128 tokenAmtIn = 80e8; + uint128 ftAmtOut = 130e8; + + address taker = vm.randomAddress(); + res.debt.mint(taker, tokenAmtIn); + vm.startPrank(taker); + res.debt.approve(address(res.order), tokenAmtIn); + + vm.expectRevert(VaultErrors.LockedFtGreaterThanTotalFt.selector); + res.order.swapExactTokenToToken(res.debt, res.ft, taker, tokenAmtIn, ftAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function testOrderHasNegativeInterest() public { + vm.warp(currentTime + 2 days); + uint128 tokenAmtIn = 90e8; + uint128 ftAmtOut = 100e8; + address taker = vm.randomAddress(); + res.debt.mint(taker, tokenAmtIn); + vm.startPrank(taker); + res.debt.approve(address(res.order), tokenAmtIn); + vm.expectRevert(VaultErrors.OrderHasNegativeInterest.selector); + res.order.swapExactTokenToToken(res.debt, res.ft, taker, tokenAmtIn, ftAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function testBadDebt() public { + vm.warp(currentTime + 2 days); + buyXt(48.219178e8, 1000e8); + + vm.warp(currentTime + 3 days); + address lper2 = vm.randomAddress(); + vm.label(lper2, "lper2"); + uint256 amount2 = 10000e8; + res.debt.mint(lper2, amount2); + vm.startPrank(lper2); + res.debt.approve(address(vault), amount2); + vault.deposit(amount2, lper2); + assertEq(res.debt.balanceOf(address(vault)), amount2); + vm.stopPrank(); + + _depositToOrder(vault, res.order, amount2.toInt256()); + + address borrower = vm.randomAddress(); + vm.startPrank(borrower); + LoanUtils.fastMintGt(res, borrower, 1000e8, 1e18); + vm.stopPrank(); + + vm.warp(marketConfig.maturity + 1 days); + + uint256 propotion = (res.ft.balanceOf(address(res.order)) * Constants.DECIMAL_BASE_SQ) + / (res.ft.totalSupply() - res.ft.balanceOf(address(res.market))); + + uint256 tokenOut = (res.debt.balanceOf(address(res.market)) * propotion) / Constants.DECIMAL_BASE_SQ; + uint256 badDebt = res.ft.balanceOf(address(res.order)) - tokenOut; + uint256 delivered = (propotion * 1e18) / Constants.DECIMAL_BASE_SQ; + + vm.startPrank(lper2); + vault.redeemOrder(res.order); + vault.redeem(1000e8, lper2, lper2); + vm.stopPrank(); + + assertEq(vault.badDebtMapping(address(res.collateral)), badDebt); + assertEq(res.collateral.balanceOf(address(vault)), delivered); + + uint256 shareToDealBadDebt = vault.previewWithdraw(badDebt / 2); + vm.startPrank(lper2); + (uint256 shares, uint256 collateralOut) = vault.dealBadDebt(address(res.collateral), badDebt / 2, lper2, lper2); + assertEq(shares, shareToDealBadDebt); + assertEq(collateralOut, ((badDebt / 2) * delivered) / badDebt); + assertEq(vault.badDebtMapping(address(res.collateral)), badDebt - badDebt / 2); + assertEq(res.collateral.balanceOf(address(vault)), delivered - collateralOut); + vm.stopPrank(); + + vm.startPrank(lper2); + shareToDealBadDebt = vault.previewWithdraw(badDebt - badDebt / 2); + uint256 remainningCollateral = res.collateral.balanceOf(address(vault)); + vm.expectEmit(); + emit VaultEvents.DealBadDebt( + lper2, lper2, address(res.collateral), badDebt - badDebt / 2, shareToDealBadDebt, remainningCollateral + ); + (shares, collateralOut) = vault.dealBadDebt(address(res.collateral), badDebt - badDebt / 2, lper2, lper2); + assertEq(shares, shareToDealBadDebt); + assertEq(collateralOut, remainningCollateral); + assertEq(vault.badDebtMapping(address(res.collateral)), 0); + assertEq(res.collateral.balanceOf(address(vault)), 0); + vm.stopPrank(); + } + + function testDealBadDebtRevert() public { + vm.warp(currentTime + 2 days); + buyXt(48.219178e8, 1000e8); + + vm.warp(currentTime + 3 days); + address lper2 = vm.randomAddress(); + uint256 amount2 = 10000e8; + res.debt.mint(lper2, amount2); + vm.startPrank(lper2); + res.debt.approve(address(vault), amount2); + vault.deposit(amount2, lper2); + vm.stopPrank(); + + _depositToOrder(vault, res.order, amount2.toInt256()); + + address borrower = vm.randomAddress(); + vm.startPrank(borrower); + LoanUtils.fastMintGt(res, borrower, 1000e8, 1e18); + vm.stopPrank(); + + vm.warp(currentTime + 92 days); + vm.startPrank(lper2); + vault.redeemOrder(res.order); + vault.redeem(1000e8, lper2, lper2); + + uint256 badDebt = vault.badDebtMapping(address(res.collateral)); + vm.expectRevert(abi.encodeWithSelector(VaultErrors.InsufficientFunds.selector, badDebt, 2000e8)); + vault.dealBadDebt(address(res.collateral), 2000e8, lper2, lper2); + + vault.dealBadDebt(address(res.collateral), badDebt, lper2, lper2); + + vm.expectRevert(abi.encodeWithSelector(VaultErrors.NoBadDebt.selector, address(res.collateral))); + vault.dealBadDebt(address(res.collateral), 10e8, lper2, lper2); + + vm.expectRevert(abi.encodeWithSelector(VaultErrorsV2.CollateralIsAsset.selector)); + vault.dealBadDebt(address(res.debt), 10e8, lper2, lper2); // Update to use asset() for the test + + vm.stopPrank(); + } + + function testSwapWhenVaultIsPaused() public { + vm.prank(deployer); + IPausable(address(vault)).pause(); + address taker = vm.randomAddress(); + uint128 tokenAmtIn = 1e8; + uint128 ftAmtOut = 1.2e8; + res.debt.mint(taker, tokenAmtIn); + vm.startPrank(taker); + res.debt.approve(address(res.order), tokenAmtIn); + vm.expectRevert(abi.encodeWithSignature("EnforcedPause()")); + res.order.swapExactTokenToToken(res.debt, res.ft, taker, tokenAmtIn, ftAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function buyFt(uint128 tokenAmtIn, uint128 ftAmtOut) internal { + address taker = vm.randomAddress(); + res.debt.mint(taker, tokenAmtIn); + vm.startPrank(taker); + res.debt.approve(address(res.order), tokenAmtIn); + res.order.swapExactTokenToToken(res.debt, res.ft, taker, tokenAmtIn, ftAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function buyXt(uint128 tokenAmtIn, uint128 xtAmtOut) internal { + address taker = vm.randomAddress(); + res.debt.mint(taker, tokenAmtIn); + vm.startPrank(taker); + res.debt.approve(address(res.order), tokenAmtIn); + res.order.swapExactTokenToToken(res.debt, res.xt, taker, tokenAmtIn, xtAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function sellFt(uint128 ftAmtIn, uint128 tokenAmtOut) internal { + address taker = vm.randomAddress(); + vm.prank(deployer); + res.ft.transfer(taker, ftAmtIn); + vm.startPrank(taker); + res.ft.approve(address(res.order), ftAmtIn); + res.order.swapExactTokenToToken(res.ft, res.debt, taker, ftAmtIn, tokenAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function sellXt(uint128 xtAmtIn, uint128 tokenAmtOut) internal { + address taker = vm.randomAddress(); + vm.prank(deployer); + res.xt.transfer(taker, xtAmtIn); + vm.startPrank(taker); + res.xt.approve(address(res.order), xtAmtIn); + res.order.swapExactTokenToToken(res.xt, res.debt, taker, xtAmtIn, tokenAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function swapFtToXt(uint128 ftAmtIn, uint128 xtAmtOut) internal { + address taker = vm.randomAddress(); + vm.prank(deployer); + res.ft.transfer(taker, ftAmtIn); + vm.startPrank(taker); + res.ft.approve(address(res.order), ftAmtIn); + res.order.swapExactTokenToToken(res.ft, res.xt, taker, ftAmtIn, xtAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function swapXtToFt(uint128 xtAmtIn, uint128 ftAmtOut) internal { + address taker = vm.randomAddress(); + vm.prank(deployer); + res.xt.transfer(taker, xtAmtIn); + vm.startPrank(taker); + res.xt.approve(address(res.order), xtAmtIn); + res.order.swapExactTokenToToken(res.xt, res.ft, taker, xtAmtIn, ftAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function testFixFindings101() public { + vm.prank(curator); + vault.createOrder(res.market, maxCapacity, 0, orderConfig.curveCuts); + lper = vm.randomAddress(); + + res.debt.mint(lper, 100 ether); + + // depositing funds for lp1 + vm.startPrank(lper); + res.debt.approve(address(vault), 100 ether); + vault.deposit(100 ether, lper); + vm.stopPrank(); + + vm.warp(currentTime + 110 days); + + vm.startPrank(lper); + vault.withdraw(100 ether, lper, lper); + } + + function _daysToMaturity(uint256 _now) internal view returns (uint256 daysToMaturity) { + daysToMaturity = (res.market.config().maturity - _now + Constants.SECONDS_IN_DAY - 1) / Constants.SECONDS_IN_DAY; + } + + function _depositToOrder(ITermMaxVault vault, ITermMaxOrder order, int256 amount) internal { + vm.startPrank(vault.curator()); + CurveCuts[] memory curveCuts = new CurveCuts[](1); + curveCuts[0] = order.orderConfig().curveCuts; + int256[] memory amounts = new int256[](1); + amounts[0] = amount; + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = order; + uint256[] memory maxSupplies = new uint256[](1); + maxSupplies[0] = maxCapacity; + vault.updateOrders(orders, amounts, maxSupplies, curveCuts); + vm.stopPrank(); + } + + // ========== Tests for ITermMaxVaultV2 new functions ========== + + function testMinApyManagement() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Test initial state + assertEq(vaultV2.minApy(), 0); + assertEq(vaultV2.pendingMinApy().value, 0); + assertEq(vaultV2.pendingMinApy().validAt, 0); + + // Test submitPendingMinApy - increase (immediate) + uint64 newMinApy = 0.05e8; // 5% + vm.prank(curator); + vaultV2.submitPendingMinApy(newMinApy); + + // Should be set immediately for increases + assertEq(vaultV2.minApy(), newMinApy); + assertEq(vaultV2.pendingMinApy().value, 0); + + // Test submitPendingMinApy - decrease (timelock required) + uint64 lowerMinApy = 0.03e8; // 3% + vm.prank(curator); + vaultV2.submitPendingMinApy(lowerMinApy); + + // Should not be set immediately for decreases + assertEq(vaultV2.minApy(), newMinApy); + assertEq(vaultV2.pendingMinApy().value, lowerMinApy); + assertEq(vaultV2.pendingMinApy().validAt, block.timestamp + timelock); + + // Test acceptPendingMinApy before timelock + vm.expectRevert(VaultErrors.TimelockNotElapsed.selector); + vaultV2.acceptPendingMinApy(); + + // Test acceptPendingMinApy after timelock + vm.warp(block.timestamp + timelock + 1); + vaultV2.acceptPendingMinApy(); + + assertEq(vaultV2.minApy(), lowerMinApy); + assertEq(vaultV2.pendingMinApy().value, 0); + assertEq(vaultV2.pendingMinApy().validAt, 0); + } + + function testMinApyRevoke() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Set initial minApy + uint64 initialMinApy = 0.05e8; + vm.prank(curator); + vaultV2.submitPendingMinApy(initialMinApy); + + // Submit decrease + uint64 lowerMinApy = 0.03e8; + vm.prank(curator); + vaultV2.submitPendingMinApy(lowerMinApy); + + // Guardian revokes pending change + vm.prank(guardian); + vaultV2.revokePendingMinApy(); + + assertEq(vaultV2.minApy(), initialMinApy); + assertEq(vaultV2.pendingMinApy().value, 0); + assertEq(vaultV2.pendingMinApy().validAt, 0); + } + + function testMinIdleFundRateManagement() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Test initial state + assertEq(vaultV2.minIdleFundRate(), 0); + assertEq(vaultV2.pendingMinIdleFundRate().value, 0); + assertEq(vaultV2.pendingMinIdleFundRate().validAt, 0); + + // Test submitPendingMinIdleFundRate - increase (immediate) + uint64 newMinIdleFundRate = 0.1e8; // 10% + vm.prank(curator); + vaultV2.submitPendingMinIdleFundRate(newMinIdleFundRate); + + // Should be set immediately for increases + assertEq(vaultV2.minIdleFundRate(), newMinIdleFundRate); + assertEq(vaultV2.pendingMinIdleFundRate().value, 0); + + // Test submitPendingMinIdleFundRate - decrease (timelock required) + uint64 lowerMinIdleFundRate = 0.05e8; // 5% + vm.prank(curator); + vaultV2.submitPendingMinIdleFundRate(lowerMinIdleFundRate); + + // Should not be set immediately for decreases + assertEq(vaultV2.minIdleFundRate(), newMinIdleFundRate); + assertEq(vaultV2.pendingMinIdleFundRate().value, lowerMinIdleFundRate); + assertEq(vaultV2.pendingMinIdleFundRate().validAt, block.timestamp + timelock); + + // Test acceptPendingMinIdleFundRate before timelock + vm.expectRevert(VaultErrors.TimelockNotElapsed.selector); + vaultV2.acceptPendingMinIdleFundRate(); + + // Test acceptPendingMinIdleFundRate after timelock + vm.warp(block.timestamp + timelock + 1); + vaultV2.acceptPendingMinIdleFundRate(); + + assertEq(vaultV2.minIdleFundRate(), lowerMinIdleFundRate); + assertEq(vaultV2.pendingMinIdleFundRate().value, 0); + assertEq(vaultV2.pendingMinIdleFundRate().validAt, 0); + } + + function testMinIdleFundRateRevoke() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Set initial minIdleFundRate + uint64 initialMinIdleFundRate = 0.1e8; + vm.prank(curator); + vaultV2.submitPendingMinIdleFundRate(initialMinIdleFundRate); + + // Submit decrease + uint64 lowerMinIdleFundRate = 0.05e8; + vm.prank(curator); + vaultV2.submitPendingMinIdleFundRate(lowerMinIdleFundRate); + + // Guardian revokes pending change + vm.prank(guardian); + vaultV2.revokePendingMinIdleFundRate(); + + assertEq(vaultV2.minIdleFundRate(), initialMinIdleFundRate); + assertEq(vaultV2.pendingMinIdleFundRate().value, 0); + assertEq(vaultV2.pendingMinIdleFundRate().validAt, 0); + } + + function testApyFunction() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Initially should return 0 when no accreting principal + assertEq(vaultV2.apy(), 0); + + // After some trading activity, APY should be calculated correctly + vm.warp(currentTime + 2 days); + buyXt(48.219178e8, 1000e8); + + uint256 apy = vaultV2.apy(); + uint256 annualizedInterest = vault.annualizedInterest(); + uint256 accretingPrincipal = vault.accretingPrincipal(); + uint256 performanceFeeRate = vault.performanceFeeRate(); + + // APY should be calculated as: (annualizedInterest * (1 - performanceFeeRate)) / accretingPrincipal + uint256 expectedApy = (annualizedInterest * (Constants.DECIMAL_BASE - performanceFeeRate)) / accretingPrincipal; + assertEq(apy, expectedApy); + + // APY should be greater than 0 after trading + assertGt(apy, 0); + } + + function test_RevertMinApyAccessControl() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Test unauthorized access + vm.prank(vm.randomAddress()); + vm.expectRevert(VaultErrors.NotCuratorRole.selector); + vaultV2.submitPendingMinApy(0.05e8); + + vm.prank(vm.randomAddress()); + vm.expectRevert(VaultErrors.NotGuardianRole.selector); + vaultV2.revokePendingMinApy(); + } + + function test_RevertMinIdleFundRateAccessControl() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Test unauthorized access + vm.prank(vm.randomAddress()); + vm.expectRevert(VaultErrors.NotCuratorRole.selector); + vaultV2.submitPendingMinIdleFundRate(0.1e8); + + vm.prank(vm.randomAddress()); + vm.expectRevert(VaultErrors.NotGuardianRole.selector); + vaultV2.revokePendingMinIdleFundRate(); + } + + function test_RevertMinApyAlreadySet() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + uint64 minApy = 0.05e8; + vm.startPrank(curator); + vaultV2.submitPendingMinApy(minApy); + + // Should revert when trying to set the same value + vm.expectRevert(VaultErrors.AlreadySet.selector); + vaultV2.submitPendingMinApy(minApy); + + vm.stopPrank(); + } + + function test_RevertMinIdleFundRateAlreadySet() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + uint64 minIdleFundRate = 0.1e8; + vm.startPrank(curator); + vaultV2.submitPendingMinIdleFundRate(minIdleFundRate); + + // Should revert when trying to set the same value + vm.expectRevert(VaultErrors.AlreadySet.selector); + vaultV2.submitPendingMinIdleFundRate(minIdleFundRate); + + vm.stopPrank(); + } + + function test_RevertMinApyAlreadyPending() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + vm.startPrank(curator); + // Set initial value + vaultV2.submitPendingMinApy(0.05e8); + + // Submit decrease (creates pending) + vaultV2.submitPendingMinApy(0.03e8); + + // Should revert when trying to submit another pending change + vm.expectRevert(VaultErrors.AlreadyPending.selector); + vaultV2.submitPendingMinApy(0.02e8); + + vm.stopPrank(); + } + + function test_RevertMinIdleFundRateAlreadyPending() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + vm.startPrank(curator); + // Set initial value + vaultV2.submitPendingMinIdleFundRate(0.1e8); + + // Submit decrease (creates pending) + vaultV2.submitPendingMinIdleFundRate(0.05e8); + + // Should revert when trying to submit another pending change + vm.expectRevert(VaultErrors.AlreadyPending.selector); + vaultV2.submitPendingMinIdleFundRate(0.03e8); + + vm.stopPrank(); + } + + function test_RevertAcceptMinApyNoPendingValue() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Should revert when no pending value exists + vm.expectRevert(VaultErrors.NoPendingValue.selector); + vaultV2.acceptPendingMinApy(); + } + + function test_RevertAcceptMinIdleFundRateNoPendingValue() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Should revert when no pending value exists + vm.expectRevert(VaultErrors.NoPendingValue.selector); + vaultV2.acceptPendingMinIdleFundRate(); + } + + function testMinApyEventEmission() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Test SetMinApy event for immediate increase + uint64 newMinApy = 0.05e8; + vm.expectEmit(true, false, false, true); + emit VaultEventsV2.SetMinApy(curator, newMinApy); + + vm.prank(curator); + vaultV2.submitPendingMinApy(newMinApy); + + // Test SubmitMinApy event for timelock decrease + uint64 lowerMinApy = 0.03e8; + vm.expectEmit(false, false, false, true); + emit VaultEventsV2.SubmitMinApy(lowerMinApy, uint64(block.timestamp + timelock)); + + vm.prank(curator); + vaultV2.submitPendingMinApy(lowerMinApy); + + // Test SetMinApy event when accepting pending value + vm.warp(block.timestamp + timelock + 1); + vm.expectEmit(true, false, false, true); + emit VaultEventsV2.SetMinApy(address(this), lowerMinApy); + + vaultV2.acceptPendingMinApy(); + } + + function testMinIdleFundRateEventEmission() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Test SetMinIdleFundRate event for immediate increase + uint64 newMinIdleFundRate = 0.1e8; + vm.expectEmit(true, false, false, true); + emit VaultEventsV2.SetMinIdleFundRate(curator, newMinIdleFundRate); + + vm.prank(curator); + vaultV2.submitPendingMinIdleFundRate(newMinIdleFundRate); + + // Test SubmitMinIdleFundRate event for timelock decrease + uint64 lowerMinIdleFundRate = 0.05e8; + vm.expectEmit(false, false, false, true); + emit VaultEventsV2.SubmitMinIdleFundRate(lowerMinIdleFundRate, uint64(block.timestamp + timelock)); + + vm.prank(curator); + vaultV2.submitPendingMinIdleFundRate(lowerMinIdleFundRate); + + // Test SetMinIdleFundRate event when accepting pending value + vm.warp(block.timestamp + timelock + 1); + vm.expectEmit(true, false, false, true); + emit VaultEventsV2.SetMinIdleFundRate(address(this), lowerMinIdleFundRate); + + vaultV2.acceptPendingMinIdleFundRate(); + } + + function testRevokeEventEmission() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Set up pending changes + vm.startPrank(curator); + vaultV2.submitPendingMinApy(0.05e8); + vaultV2.submitPendingMinApy(0.03e8); // Creates pending + vaultV2.submitPendingMinIdleFundRate(0.1e8); + vaultV2.submitPendingMinIdleFundRate(0.05e8); // Creates pending + vm.stopPrank(); + + // Test RevokePendingMinApy event + vm.expectEmit(true, false, false, false); + emit VaultEventsV2.RevokePendingMinApy(guardian); + + vm.prank(guardian); + vaultV2.revokePendingMinApy(); + + // Test RevokePendingMinIdleFundRate event + vm.expectEmit(true, false, false, false); + emit VaultEventsV2.RevokePendingMinIdleFundRate(guardian); + + vm.prank(guardian); + vaultV2.revokePendingMinIdleFundRate(); + } + + function testRevertWhenIdleFundTooLow() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + vm.startPrank(curator); + vaultV2.submitPendingMinIdleFundRate(0.1e8); // minIdleFundRate = 10% + + CurveCuts[] memory curveCuts = new CurveCuts[](1); + curveCuts[0] = res.order.orderConfig().curveCuts; + int256[] memory amounts = new int256[](1); + amounts[0] = -3000e8; // Withdraw 3000e8 from the order + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + uint256[] memory maxSupplies = new uint256[](1); + maxSupplies[0] = maxCapacity; + + vault.updateOrders(orders, amounts, maxSupplies, curveCuts); + + amounts[0] = 3000e8; // deposit 3000e8 from the order + vm.expectRevert(abi.encodeWithSelector(VaultErrorsV2.IdleFundRateTooLow.selector, 0, 0.1e8)); + vault.updateOrders(orders, amounts, maxSupplies, curveCuts); + + vm.stopPrank(); + } + + function testRevertWhenApyTooLow() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + vm.prank(curator); + vaultV2.submitPendingMinApy(0.05e8); // minApy = 5% + + sellFt(1000e8, 800e8); // Sell 100e8 FT + + uint128 tokenAmtIn = 800e8; + uint128 ftAmtOut = 1000e8; + address taker = vm.randomAddress(); + res.debt.mint(taker, tokenAmtIn); + vm.startPrank(taker); + res.debt.approve(address(res.order), tokenAmtIn); + + vm.expectRevert(abi.encodeWithSelector(VaultErrorsV2.ApyTooLow.selector, 0, 0.05e8)); + res.order.swapExactTokenToToken(res.debt, res.ft, taker, tokenAmtIn, ftAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + // ========== Tests for ITermMaxVaultV2 nonTxReentrantBetweenActions ========== + /// @dev remove --isolate to run this test + function testMultipleDeposits() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + // Initial deposit + vm.startPrank(deployer); + res.debt.mint(deployer, 1000e8); + res.debt.approve(address(vault), 1000e8); + vault.deposit(1000e8, deployer); + vm.stopPrank(); + + // Second deposit + vm.startPrank(deployer); + res.debt.mint(deployer, 500e8); + res.debt.approve(address(vault), 500e8); + vault.deposit(500e8, deployer); + vm.stopPrank(); + } + + /// @dev remove --isolate to run this test + function testMultipleWithdrawals() public { + ITermMaxVaultV2 vaultV2 = ITermMaxVaultV2(address(vault)); + + _depositToOrder(vault, res.order, -10e8.toInt256()); + + // First withdrawal + vm.startPrank(deployer); + uint256 sharesToWithdraw = 1e2; + uint256 amountWithdrawn = vault.withdraw(sharesToWithdraw, deployer, deployer); + assertEq(amountWithdrawn, vault.previewWithdraw(sharesToWithdraw)); + vm.stopPrank(); + + // Second withdrawal + vm.startPrank(deployer); + sharesToWithdraw = 1e3; + amountWithdrawn = vault.withdraw(sharesToWithdraw, deployer, deployer); + assertEq(amountWithdrawn, vault.previewWithdraw(sharesToWithdraw)); + vm.stopPrank(); + } +} diff --git a/test/v2/integration/ForkPrdFlashRepay.t.sol b/test/v2/integration/ForkPrdFlashRepay.t.sol new file mode 100644 index 0000000..b30dc2b --- /dev/null +++ b/test/v2/integration/ForkPrdFlashRepay.t.sol @@ -0,0 +1,255 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {ITermMaxMarket} from "contracts/v1/ITermMaxMarket.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; +import {SwapUnit, ITermMaxRouter, TermMaxRouter} from "contracts/v1/router/TermMaxRouter.sol"; +import { + IGearingToken, + GearingTokenEvents, + AbstractGearingToken, + GtConfig +} from "contracts/v1/tokens/AbstractGearingToken.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v2/router/swapAdapters/PendleSwapV3AdapterV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import { + ForkBaseTestV2, + TermMaxFactoryV2, + MarketConfig, + IERC20, + MarketInitialParams, + IERC20Metadata +} from "../mainnet-fork/ForkBaseTestV2.sol"; +import {ITermMaxMarketV2} from "contracts/v2/ITermMaxMarketV2.sol"; +import {ITermMaxRouterV2, TermMaxRouterV2} from "contracts/v2/router/TermMaxRouterV2.sol"; +import {console} from "forge-std/console.sol"; + +interface TestOracle is IOracle { + function acceptPendingOracle(address asset) external; + function oracles(address asset) external returns (address aggregator, address backupAggregator, uint32 heartbeat); +} + +contract ForkPrdFlashRepay is ForkBaseTestV2 { + string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); + string DATA_PATH = string.concat(vm.projectRoot(), "/test/testdata/fork/mainnet.json"); + + uint64 may_30 = 1748534400; // 2025-05-30 00:00:00 + uint64 aug_1 = 1753977600; // 2025-08-01 00:00:00 + address pt_susde_may_29 = 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308; + address pt_susde_jun_31 = 0x3b3fB9C57858EF816833dC91565EFcd85D96f634; + address usdc = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; + address usde = 0x4c9EDD5852cd905f086C759E8383e09bff1E68B3; + address susde = 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497; + TestOracle oracle = TestOracle(0xE3a31690392E8E18DC3d862651C079339E2c1ADE); + + ITermMaxMarket mmay_30 = ITermMaxMarket(0xe867255dC0c3a27c90f756ECC566a5292ce19492); + ITermMaxMarket maug_1 = ITermMaxMarket(0xdBB2D44c238c459cCB820De886ABF721EF6E6941); + ITermMaxOrder o_may_30 = ITermMaxOrder(0xe99ee5b18cB57276EbEADf0E773E4f8Ab49Db9B7); + ITermMaxOrder o_aug_1 = ITermMaxOrder(0x71Df74d65c3895C8FA5a1c8E8d93A7eE30A1aFc7); + address pendleAdapter; + address odosAdapter = 0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779; + TermMaxRouterV2 router; + + function _getForkRpcUrl() internal view override returns (string memory) { + return MAINNET_RPC_URL; + } + + function _getDataPath() internal view override returns (string memory) { + return DATA_PATH; + } + + function _finishSetup() internal override { + vm.rollFork(22486319); // 2025-05-15 + + address accessManager = Ownable(address(oracle)).owner(); + vm.startPrank(accessManager); + address[] memory tokens = new address[](4); + tokens[0] = usdc; + tokens[1] = susde; + tokens[2] = pt_susde_may_29; + tokens[3] = pt_susde_jun_31; + + for (uint256 i = 0; i < tokens.length; i++) { + address token = tokens[i]; + (address aggregator, address backupAggregator,) = oracle.oracles(token); + IOracle.Oracle memory oracleData = IOracle.Oracle({ + aggregator: AggregatorV3Interface(aggregator), + backupAggregator: AggregatorV3Interface(backupAggregator), + heartbeat: 365 days + }); + oracle.submitPendingOracle(token, oracleData); + } + vm.warp(block.timestamp + 1 days); + for (uint256 i = 0; i < tokens.length; i++) { + address token = tokens[i]; + oracle.acceptPendingOracle(token); + } + + vm.stopPrank(); + + PendleSwapV3AdapterV2 adapter = new PendleSwapV3AdapterV2(0x888888888889758F76e7103c6CbF23ABbF58F946); + pendleAdapter = address(adapter); + + vm.label(pt_susde_may_29, "pt_susde_may_29"); + vm.label(pt_susde_jun_31, "pt_susde_jun_31"); + vm.label(susde, "susde"); + vm.label(address(oracle), "oracle"); + vm.label(address(mmay_30), "mmay_30"); + vm.label(address(maug_1), "maug_1"); + vm.label(address(o_may_30), "o_may_30"); + vm.label(address(o_aug_1), "o_aug_1"); + vm.label(address(pendleAdapter), "pendleAdapter"); + + address admin = vm.randomAddress(); + + vm.startPrank(admin); + router = deployRouter(admin); + router.setAdapterWhitelist(pendleAdapter, true); + router.setAdapterWhitelist(odosAdapter, true); + vm.stopPrank(); + } + + function testFlashRepayPtV2() public { + address borrower = vm.randomAddress(); + vm.label(borrower, "borrower"); + address admin = vm.randomAddress(); + vm.label(admin, "admin"); + + vm.startPrank(admin); + ITermMaxMarket market; + uint256 gtId1; + uint128 oldDebt = 1000e6; + uint256 oldCollateral = 35012712455278300958037; + + deal(pt_susde_may_29, admin, oldCollateral); + + // create new market support v2 flash repay + { + TermMaxFactoryV2 f2 = deployFactory(admin); + MarketConfig memory marketConfig = mmay_30.config(); + (,, IGearingToken gt, address collateral, IERC20 debtToken) = mmay_30.tokens(); + GtConfig memory gtConfig = gt.getGtConfig(); + MarketInitialParams memory params = MarketInitialParams({ + collateral: collateral, + debtToken: IERC20Metadata(address(debtToken)), + admin: admin, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: gtConfig.loanConfig, + gtInitalParams: abi.encode(type(uint128).max), + tokenName: "Test", + tokenSymbol: "TEST" + }); + market = ITermMaxMarket(f2.createMarket(keccak256("GearingTokenWithERC20"), params, 1)); + vm.label(address(market), "newMarket"); + + (,, IGearingToken gt2,,) = market.tokens(); + + IERC20(pt_susde_may_29).approve(address(gt2), oldCollateral); + (gtId1,) = market.issueFt(borrower, oldDebt, abi.encode(oldCollateral)); + + vm.label(address(market), "market_may_30"); + vm.label(address(gt2), "gt_may_30"); + } + + vm.stopPrank(); + vm.startPrank(borrower); + vm.warp(may_30 - 0.5 days); + uint128 repayAmount = 300e6; + uint256 removedCollateral = 25012712455278300958037; + // roll gt + { + ITermMaxOrder[] memory orders = new ITermMaxOrder[](0); + uint128[] memory amounts = new uint128[](0); + SwapUnit[] memory swapUnits = new SwapUnit[](2); + address pm1 = 0xB162B764044697cf03617C2EFbcB1f42e31E4766; + swapUnits[0] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: pt_susde_may_29, + tokenOut: susde, + swapData: abi.encode(pm1, removedCollateral, 0) + }); + swapUnits[1] = SwapUnit({ + adapter: 0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779, + tokenIn: susde, + tokenOut: usdc, + swapData: hex"0000000000000000000000009d39a5de30e57443bff2a8307a4256c8797a349700000000000000000000000000000000000000000000048103daed12389fbcc800000000000000000000000076edf8c155a1e0d9b2ad11b04d9671cbc25fee99000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000005d443b21d00000000000000000000000000000000000000000000000000000005b66b4d45000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000000000000000000000000000000000000000014000000000000000000000000076edf8c155a1e0d9b2ad11b04d9671cbc25fee9900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084010206000d0100010201022700000304000d0101050400ff00000000000000007eb59373d63627be64b42406b108b602174b4ccc9d39a5de30e57443bff2a8307a4256c8797a3497dac17f958d2ee523a2206206994597c13d831ec7c02aaa39b223fe8d0a0e5c4f27ead9083c756cc288e6a0c2ddd26feeb64f039a2c41296fcb3f564000000000000000000000000000000000000000000000000000000000" + }); + (IERC20 ft,, IGearingToken gt, address collateral,) = market.tokens(); + console.log("usdc balance before:", IERC20(usdc).balanceOf(borrower)); + gt.approve(address(router), gtId1); + ITermMaxRouterV2.TermMaxSwapData memory swapData; + router.flashRepayFromCollV2( + borrower, market, gtId1, repayAmount, true, 0, abi.encode(removedCollateral), swapUnits, swapData + ); + console.log("usdc balance after:", IERC20(usdc).balanceOf(borrower)); + + (address owner, uint128 currentDebt, bytes memory currentCollateral) = gt.loanInfo(gtId1); + assertEq(owner, borrower, "borrower should be the same"); + assertEq(currentDebt, oldDebt - repayAmount, "debt should be the same"); + assertEq( + abi.decode(currentCollateral, (uint256)), + oldCollateral - removedCollateral, + "collateral should be the same" + ); + vm.stopPrank(); + } + + vm.stopPrank(); + } + + function testFlashRepayPt() public { + address borrower; + address admin = vm.randomAddress(); + + vm.startPrank(admin); + TermMaxRouterV2 router2 = deployRouter(admin); + router2.setAdapterWhitelist(pendleAdapter, true); + router2.setAdapterWhitelist(0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779, true); + vm.stopPrank(); + + uint128 debt; + uint256 collateralAmount; + // deal(pt_susde_may_29, borrower, collateralAmount); + uint256 gt1 = 5; + + { + (IERC20 ft,, IGearingToken gt, address collateral,) = mmay_30.tokens(); + (address owner, uint128 debtAmt, bytes memory collateralData) = gt.loanInfo(gt1); + borrower = owner; + debt = debtAmt; + collateralAmount = abi.decode(collateralData, (uint256)); + console.log("collateralAmount:", collateralAmount); + console.log("debt:", debt); + + vm.startPrank(borrower); + vm.warp(may_30 - 0.5 days); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](0); + uint128[] memory amounts = new uint128[](0); + SwapUnit[] memory swapUnits = new SwapUnit[](2); + address pm1 = 0xB162B764044697cf03617C2EFbcB1f42e31E4766; + swapUnits[0] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: pt_susde_may_29, + tokenOut: susde, + swapData: abi.encode(pm1, collateralAmount, 0) + }); + swapUnits[1] = SwapUnit({ + adapter: odosAdapter, + tokenIn: susde, + tokenOut: usdc, + swapData: hex"0000000000000000000000009d39a5de30e57443bff2a8307a4256c8797a349700000000000000000000000000000000000000000000048103daed12389fbcc800000000000000000000000076edf8c155a1e0d9b2ad11b04d9671cbc25fee99000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4800000000000000000000000000000000000000000000000000000005d443b21d00000000000000000000000000000000000000000000000000000005b66b4d45000000000000000000000000c47591f5c023e44931c78d5a993834875b79fb11000000000000000000000000000000000000000000000000000000000000014000000000000000000000000076edf8c155a1e0d9b2ad11b04d9671cbc25fee9900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084010206000d0100010201022700000304000d0101050400ff00000000000000007eb59373d63627be64b42406b108b602174b4ccc9d39a5de30e57443bff2a8307a4256c8797a3497dac17f958d2ee523a2206206994597c13d831ec7c02aaa39b223fe8d0a0e5c4f27ead9083c756cc288e6a0c2ddd26feeb64f039a2c41296fcb3f564000000000000000000000000000000000000000000000000000000000" + }); + + console.log("usdc balance before:", IERC20(usdc).balanceOf(borrower)); + gt.approve(address(router2), gt1); + ITermMaxRouterV2.TermMaxSwapData memory swapData; + router2.flashRepayFromColl(borrower, mmay_30, gt1, true, 0, swapUnits, swapData); + console.log("usdc balance after:", IERC20(usdc).balanceOf(borrower)); + vm.stopPrank(); + } + } +} diff --git a/test/v2/integration/ForkPrdRollOver.t.sol b/test/v2/integration/ForkPrdRollOver.t.sol new file mode 100644 index 0000000..4506d80 --- /dev/null +++ b/test/v2/integration/ForkPrdRollOver.t.sol @@ -0,0 +1,497 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {ITermMaxMarket} from "contracts/v1/ITermMaxMarket.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; +import {SwapUnit, ITermMaxRouterV2, TermMaxRouterV2} from "contracts/v2/router/TermMaxRouterV2.sol"; +import { + IGearingToken, + GearingTokenEvents, + AbstractGearingToken, + GtConfig +} from "contracts/v1/tokens/AbstractGearingToken.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v2/router/swapAdapters/PendleSwapV3AdapterV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import { + ForkBaseTestV2, + TermMaxFactoryV2, + MarketConfig, + IERC20, + MarketInitialParams, + IERC20Metadata +} from "test/v2/mainnet-fork/ForkBaseTestV2.sol"; +import {console} from "forge-std/console.sol"; + +interface TestOracle is IOracle { + function acceptPendingOracle(address asset) external; + function oracles(address asset) external returns (address aggregator, address backupAggregator, uint32 heartbeat); +} + +contract ForkPrdRollover is ForkBaseTestV2 { + string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); + string DATA_PATH = string.concat(vm.projectRoot(), "/test/testdata/fork/mainnet.json"); + + uint64 may_30 = 1748534400; // 2025-05-30 00:00:00 + uint64 aug_1 = 1753977600; // 2025-08-01 00:00:00 + address pt_susde_may_29 = 0xb7de5dFCb74d25c2f21841fbd6230355C50d9308; + address pt_susde_jun_31 = 0x3b3fB9C57858EF816833dC91565EFcd85D96f634; + address usdc = 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48; + address usde = 0x4c9EDD5852cd905f086C759E8383e09bff1E68B3; + address susde = 0x9D39A5DE30e57443BfF2A8307A4256c8797A3497; + TestOracle oracle = TestOracle(0xE3a31690392E8E18DC3d862651C079339E2c1ADE); + + ITermMaxMarket mmay_30 = ITermMaxMarket(0xe867255dC0c3a27c90f756ECC566a5292ce19492); + ITermMaxMarket maug_1 = ITermMaxMarket(0xdBB2D44c238c459cCB820De886ABF721EF6E6941); + ITermMaxOrder o_may_30 = ITermMaxOrder(0xe99ee5b18cB57276EbEADf0E773E4f8Ab49Db9B7); + ITermMaxOrder o_aug_1 = ITermMaxOrder(0x71Df74d65c3895C8FA5a1c8E8d93A7eE30A1aFc7); + address pendleAdapter; + address odosAdapter = 0x2aFEf28a8Ab57d2F5A5663Ef69351e9d3abf1779; + TermMaxRouterV2 router; + + function _getForkRpcUrl() internal view override returns (string memory) { + return MAINNET_RPC_URL; + } + + function _getDataPath() internal view override returns (string memory) { + return DATA_PATH; + } + + function _finishSetup() internal override { + vm.rollFork(22486319); // 2025-05-15 + // vm.warp(1747256663); + + address accessManager = Ownable(address(oracle)).owner(); + vm.startPrank(accessManager); + address[] memory tokens = new address[](4); + tokens[0] = usdc; + tokens[1] = susde; + tokens[2] = pt_susde_may_29; + tokens[3] = pt_susde_jun_31; + + for (uint256 i = 0; i < tokens.length; i++) { + address token = tokens[i]; + (address aggregator, address backupAggregator,) = oracle.oracles(token); + IOracle.Oracle memory oracleData = IOracle.Oracle({ + aggregator: AggregatorV3Interface(aggregator), + backupAggregator: AggregatorV3Interface(backupAggregator), + heartbeat: 365 days + }); + oracle.submitPendingOracle(token, oracleData); + } + vm.warp(block.timestamp + 1 days); + for (uint256 i = 0; i < tokens.length; i++) { + address token = tokens[i]; + oracle.acceptPendingOracle(token); + } + + vm.stopPrank(); + + PendleSwapV3AdapterV2 adapter = new PendleSwapV3AdapterV2(0x888888888889758F76e7103c6CbF23ABbF58F946); + pendleAdapter = address(adapter); + + vm.label(pt_susde_may_29, "pt_susde_may_29"); + vm.label(pt_susde_jun_31, "pt_susde_jun_31"); + vm.label(susde, "susde"); + vm.label(address(oracle), "oracle"); + vm.label(address(mmay_30), "mmay_30"); + vm.label(address(maug_1), "maug_1"); + vm.label(address(o_may_30), "o_may_30"); + vm.label(address(o_aug_1), "o_aug_1"); + vm.label(address(pendleAdapter), "pendleAdapter"); + + address admin = vm.randomAddress(); + + vm.startPrank(admin); + router = deployRouter(admin); + router.setAdapterWhitelist(pendleAdapter, true); + router.setAdapterWhitelist(odosAdapter, true); + vm.stopPrank(); + } + + function testRolloverPt() public { + uint128 debt; + uint256 collateralAmount; + // deal(pt_susde_may_29, borrower, collateralAmount); + uint256 gt1 = 5; + address borrower; + { + (,, IGearingToken gt,,) = mmay_30.tokens(); + (address owner, uint128 debtAmt, bytes memory collateralData) = gt.loanInfo(gt1); + borrower = owner; + debt = debtAmt; + collateralAmount = abi.decode(collateralData, (uint256)); + console.log("collateralAmount:", collateralAmount); + console.log("debt:", debt); + } + { + (,, IGearingToken gt,,) = mmay_30.tokens(); + (address owner, uint128 debtAmt, bytes memory collateralData) = gt.loanInfo(gt1); + borrower = owner; + debt = debtAmt; + collateralAmount = abi.decode(collateralData, (uint256)); + console.log("collateralAmount:", collateralAmount); + console.log("debt:", debt); + } + vm.startPrank(borrower); + vm.warp(may_30 - 0.5 days); + // roll gt + { + address pm1 = 0xB162B764044697cf03617C2EFbcB1f42e31E4766; + address pm2 = 0x4339Ffe2B7592Dc783ed13cCE310531aB366dEac; + + SwapUnit[] memory swapUnits = new SwapUnit[](2); + swapUnits[0] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: pt_susde_may_29, + tokenOut: susde, + swapData: abi.encode(pm1, collateralAmount, 0) + }); + swapUnits[1] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: susde, + tokenOut: pt_susde_jun_31, + swapData: abi.encode(pm2, 1e18, 0) + }); + + uint128 additionalAssets = debt / 10; + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = ITermMaxOrder(address(o_aug_1)); + uint128[] memory amounts = new uint128[](1); + amounts[0] = debt - additionalAssets; + (IERC20 ft,, IGearingToken gt, address collateral,) = mmay_30.tokens(); + + deal(usdc, borrower, additionalAssets); + IERC20(usdc).approve(address(router), additionalAssets); + gt.approve(address(router), gt1); + + (IERC20 ft_aug_1,,,,) = maug_1.tokens(); + ITermMaxRouterV2.TermMaxSwapData memory swapData = ITermMaxRouterV2.TermMaxSwapData({ + tokenIn: address(ft_aug_1), + tokenOut: usdc, + orders: orders, + tradingAmts: amounts, + netTokenAmt: debt, + deadline: aug_1 + }); + uint128 maxLtv = 0.9e8; + uint256 gtId2 = + router.rolloverGt(borrower, gt, gt1, additionalAssets, swapUnits, maug_1, 0, swapData, maxLtv); + console.log("new gtId:", gtId2); + } + + vm.stopPrank(); + } + + function testRolloverPtWithCollateral() public { + uint128 debt; + uint256 collateralAmount; + // deal(pt_susde_may_29, borrower, collateralAmount); + uint256 gt1 = 5; + address borrower; + { + (,, IGearingToken gt,,) = mmay_30.tokens(); + (address owner, uint128 debtAmt, bytes memory collateralData) = gt.loanInfo(gt1); + borrower = owner; + debt = debtAmt; + collateralAmount = abi.decode(collateralData, (uint256)); + console.log("collateralAmount:", collateralAmount); + console.log("debt:", debt); + } + { + (,, IGearingToken gt,,) = mmay_30.tokens(); + (address owner, uint128 debtAmt, bytes memory collateralData) = gt.loanInfo(gt1); + borrower = owner; + debt = debtAmt; + collateralAmount = abi.decode(collateralData, (uint256)); + console.log("collateralAmount:", collateralAmount); + console.log("debt:", debt); + } + vm.startPrank(borrower); + vm.warp(may_30 - 0.5 days); + // roll gt + { + address pm1 = 0xB162B764044697cf03617C2EFbcB1f42e31E4766; + address pm2 = 0x4339Ffe2B7592Dc783ed13cCE310531aB366dEac; + + SwapUnit[] memory swapUnits = new SwapUnit[](2); + swapUnits[0] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: pt_susde_may_29, + tokenOut: susde, + swapData: abi.encode(pm1, collateralAmount, 0) + }); + swapUnits[1] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: susde, + tokenOut: pt_susde_jun_31, + swapData: abi.encode(pm2, 1e18, 0) + }); + + uint128 additionalAssets = 0; + uint256 additionalCollateral = 0.2 ether; + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = ITermMaxOrder(address(o_aug_1)); + uint128[] memory amounts = new uint128[](1); + amounts[0] = debt - additionalAssets; + (IERC20 ft,, IGearingToken gt, address collateral,) = mmay_30.tokens(); + + deal(pt_susde_jun_31, borrower, additionalCollateral); + IERC20(pt_susde_jun_31).approve(address(router), additionalCollateral); + gt.approve(address(router), gt1); + + (IERC20 ft_aug_1,,,,) = maug_1.tokens(); + ITermMaxRouterV2.TermMaxSwapData memory swapData = ITermMaxRouterV2.TermMaxSwapData({ + tokenIn: address(ft_aug_1), + tokenOut: usdc, + orders: orders, + tradingAmts: amounts, + netTokenAmt: debt + debt / 15, + deadline: aug_1 + }); + uint128 maxLtv = 0.9e8; + uint256 gtId2 = router.rolloverGt( + borrower, gt, gt1, additionalAssets, swapUnits, maug_1, additionalCollateral, swapData, maxLtv + ); + console.log("new gtId:", gtId2); + } + + vm.stopPrank(); + } + + function testRolloverPtV2() public { + address borrower = vm.randomAddress(); + vm.label(borrower, "borrower"); + address admin = vm.randomAddress(); + vm.label(admin, "admin"); + + vm.startPrank(admin); + ITermMaxMarket market; + uint256 gtId1; + uint128 oldDebt = 100e6; + uint256 oldCollateral = 1000e18; + + deal(pt_susde_may_29, admin, oldCollateral); + + // create new market support v2 flash repay + { + TermMaxFactoryV2 f2 = deployFactory(admin); + MarketConfig memory marketConfig = mmay_30.config(); + (,, IGearingToken gt, address collateral, IERC20 debtToken) = mmay_30.tokens(); + GtConfig memory gtConfig = gt.getGtConfig(); + MarketInitialParams memory params = MarketInitialParams({ + collateral: collateral, + debtToken: IERC20Metadata(address(debtToken)), + admin: admin, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: gtConfig.loanConfig, + gtInitalParams: abi.encode(type(uint128).max), + tokenName: "Test", + tokenSymbol: "TEST" + }); + market = ITermMaxMarket(f2.createMarket(keccak256("GearingTokenWithERC20"), params, 1)); + vm.label(address(market), "newMarket"); + + (,, IGearingToken gt2,,) = market.tokens(); + + IERC20(pt_susde_may_29).approve(address(gt2), oldCollateral); + (gtId1,) = market.issueFt(borrower, 100e6, abi.encode(oldCollateral)); + + vm.label(address(market), "market_may_30"); + vm.label(address(gt2), "gt_may_30"); + } + + vm.stopPrank(); + + uint128 debt = 20e6; + uint256 collateralAmount = 500e18; + + vm.startPrank(borrower); + vm.warp(may_30 - 0.5 days); + // roll gt + { + address pm1 = 0xB162B764044697cf03617C2EFbcB1f42e31E4766; + address pm2 = 0x4339Ffe2B7592Dc783ed13cCE310531aB366dEac; + + SwapUnit[] memory swapUnits = new SwapUnit[](2); + swapUnits[0] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: pt_susde_may_29, + tokenOut: susde, + swapData: abi.encode(pm1, collateralAmount, 0) + }); + swapUnits[1] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: susde, + tokenOut: pt_susde_jun_31, + swapData: abi.encode(pm2, 1e18, 0) + }); + + uint128 additionalAssets = debt / 10; + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = ITermMaxOrder(address(o_aug_1)); + uint128[] memory amounts = new uint128[](1); + amounts[0] = debt - additionalAssets; + (IERC20 ft,, IGearingToken gt, address collateral,) = market.tokens(); + + deal(usdc, borrower, additionalAssets); + IERC20(usdc).approve(address(router), additionalAssets); + gt.approve(address(router), gtId1); + + (IERC20 ft_aug_1,,,,) = maug_1.tokens(); + ITermMaxRouterV2.TermMaxSwapData memory swapData = ITermMaxRouterV2.TermMaxSwapData({ + tokenIn: address(ft_aug_1), + tokenOut: usdc, + orders: orders, + tradingAmts: amounts, + netTokenAmt: debt, + deadline: aug_1 + }); + + uint128 maxLtv = 0.9e8; + uint256 gtId2 = router.rolloverGtV2( + borrower, gt, gtId1, debt, additionalAssets, collateralAmount, swapUnits, maug_1, 0, swapData, maxLtv + ); + + (address owner, uint128 currentDebt, bytes memory currentCollateral) = gt.loanInfo(gtId1); + assertEq(owner, borrower, "borrower should be the same"); + assertEq(currentDebt + debt, oldDebt, "debt should be the same"); + assertEq( + abi.decode(currentCollateral, (uint256)), + oldCollateral - collateralAmount, + "collateral should be the same" + ); + + (,, IGearingToken gt2,,) = maug_1.tokens(); + console.log("new gtId:", gtId2); + (address owner2, uint128 currentDebt2, bytes memory currentCollateral2) = gt2.loanInfo(gtId2); + assertEq(owner2, borrower, "borrower should be the same"); + console.log("new gt debt:", currentDebt2 / 1e6); + console.log("new gt collateral:", abi.decode(currentCollateral2, (uint256)) / 1e18); + } + + vm.stopPrank(); + } + + function testRolloverPtV2WithCollateral() public { + address borrower = vm.randomAddress(); + vm.label(borrower, "borrower"); + address admin = vm.randomAddress(); + vm.label(admin, "admin"); + + vm.startPrank(admin); + ITermMaxMarket market; + uint256 gtId1; + uint128 oldDebt = 100e6; + uint256 oldCollateral = 1000e18; + + deal(pt_susde_may_29, admin, oldCollateral); + + // create new market support v2 flash repay + { + TermMaxFactoryV2 f2 = deployFactory(admin); + MarketConfig memory marketConfig = mmay_30.config(); + (,, IGearingToken gt, address collateral, IERC20 debtToken) = mmay_30.tokens(); + GtConfig memory gtConfig = gt.getGtConfig(); + MarketInitialParams memory params = MarketInitialParams({ + collateral: collateral, + debtToken: IERC20Metadata(address(debtToken)), + admin: admin, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: gtConfig.loanConfig, + gtInitalParams: abi.encode(type(uint128).max), + tokenName: "Test", + tokenSymbol: "TEST" + }); + market = ITermMaxMarket(f2.createMarket(keccak256("GearingTokenWithERC20"), params, 1)); + vm.label(address(market), "newMarket"); + + (,, IGearingToken gt2,,) = market.tokens(); + + IERC20(pt_susde_may_29).approve(address(gt2), oldCollateral); + (gtId1,) = market.issueFt(borrower, 100e6, abi.encode(oldCollateral)); + + vm.label(address(market), "market_may_30"); + vm.label(address(gt2), "gt_may_30"); + } + + vm.stopPrank(); + + uint128 debt = 20e6; + uint256 collateralAmount = 500e18; + + vm.startPrank(borrower); + vm.warp(may_30 - 0.5 days); + // roll gt + { + address pm1 = 0xB162B764044697cf03617C2EFbcB1f42e31E4766; + address pm2 = 0x4339Ffe2B7592Dc783ed13cCE310531aB366dEac; + + SwapUnit[] memory swapUnits = new SwapUnit[](2); + swapUnits[0] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: pt_susde_may_29, + tokenOut: susde, + swapData: abi.encode(pm1, collateralAmount, 0) + }); + swapUnits[1] = SwapUnit({ + adapter: pendleAdapter, + tokenIn: susde, + tokenOut: pt_susde_jun_31, + swapData: abi.encode(pm2, 1e18, 0) + }); + + uint128 additionalAssets = 0; + uint256 additionalCollateral = 2 ether; + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = ITermMaxOrder(address(o_aug_1)); + uint128[] memory amounts = new uint128[](1); + amounts[0] = debt - additionalAssets; + (IERC20 ft,, IGearingToken gt, address collateral,) = market.tokens(); + + deal(pt_susde_jun_31, borrower, additionalCollateral); + IERC20(pt_susde_jun_31).approve(address(router), additionalCollateral); + gt.approve(address(router), gtId1); + + (IERC20 ft_aug_1,,,,) = maug_1.tokens(); + ITermMaxRouterV2.TermMaxSwapData memory swapData = ITermMaxRouterV2.TermMaxSwapData({ + tokenIn: address(ft_aug_1), + tokenOut: usdc, + orders: orders, + tradingAmts: amounts, + netTokenAmt: debt + 10e6, + deadline: aug_1 + }); + + uint128 maxLtv = 0.9e8; + uint256 gtId2 = router.rolloverGtV2( + borrower, gt, gtId1, debt, additionalAssets, collateralAmount, swapUnits, maug_1, 0, swapData, maxLtv + ); + + (address owner, uint128 currentDebt, bytes memory currentCollateral) = gt.loanInfo(gtId1); + assertEq(owner, borrower, "borrower should be the same"); + assertEq(currentDebt + debt, oldDebt, "debt should be the same"); + assertEq( + abi.decode(currentCollateral, (uint256)), + oldCollateral - collateralAmount, + "collateral should be the same" + ); + + (,, IGearingToken gt2,,) = maug_1.tokens(); + console.log("new gtId:", gtId2); + (address owner2, uint128 currentDebt2, bytes memory currentCollateral2) = gt2.loanInfo(gtId2); + assertEq(owner2, borrower, "borrower should be the same"); + console.log("new gt debt:", currentDebt2 / 1e6); + console.log("new gt collateral:", abi.decode(currentCollateral2, (uint256)) / 1e18); + } + + vm.stopPrank(); + } +} diff --git a/test/v2/mainnet-fork/ForkBaseTestV2.sol b/test/v2/mainnet-fork/ForkBaseTestV2.sol new file mode 100644 index 0000000..ba7b705 --- /dev/null +++ b/test/v2/mainnet-fork/ForkBaseTestV2.sol @@ -0,0 +1,173 @@ +pragma solidity ^0.8.27; + +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {TermMaxFactoryV2, ITermMaxFactory} from "contracts/v2/factory/TermMaxFactoryV2.sol"; +import {ITermMaxRouterV2, TermMaxRouterV2} from "contracts/v2/router/TermMaxRouterV2.sol"; +import {TermMaxMarketV2, Constants, SafeCast} from "contracts/v2/TermMaxMarketV2.sol"; +import {TermMaxOrderV2, OrderConfig} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockOrderV2} from "contracts/v2/test/MockOrderV2.sol"; +import {MintableERC20V2} from "contracts/v2/tokens/MintableERC20V2.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {IOracleV2, OracleAggregatorV2} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {IOrderManager, OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {ITermMaxVault, ITermMaxVaultV2, TermMaxVaultV2} from "contracts/v2/vault/TermMaxVaultV2.sol"; +import {OrderManagerV2} from "contracts/v2/vault/OrderManagerV2.sol"; +import {TermMaxVaultFactoryV2} from "contracts/v2/factory/TermMaxVaultFactoryV2.sol"; +import { + MarketConfig, + FeeConfig, + MarketInitialParams, + LoanConfig, + VaultInitialParams +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {JSONLoader} from "../utils/JSONLoader.sol"; +import "forge-std/Test.sol"; + +abstract contract ForkBaseTestV2 is Test { + using SafeCast for *; + + string jsonData; + + string[] tokenPairs; + + function _finishSetup() internal virtual; + + function setUp() public { + jsonData = vm.readFile(_getDataPath()); + _readTokenPairs(); + + uint256 mainnetFork = vm.createFork(_getForkRpcUrl()); + vm.selectFork(mainnetFork); + + _finishSetup(); + } + + function _getForkRpcUrl() internal view virtual returns (string memory); + + function _getDataPath() internal view virtual returns (string memory); + + function _readTokenPairs() internal { + // uint256 len = vm.parseJsonUint(jsonData, ".tokenPairs.length"); + string[] memory _tokenPairs = vm.parseJsonStringArray(jsonData, ".tokenPairs"); + for (uint256 i = 0; i < _tokenPairs.length; i++) { + tokenPairs.push(string.concat(".", _tokenPairs[i])); + } + } + + function _readBlockNumber(string memory key) internal view returns (uint256) { + return uint256(vm.parseJsonUint(jsonData, string.concat(key, ".blockNumber"))); + } + + function _readMarketInitialParams(string memory key) + internal + returns (MarketInitialParams memory marketInitialParams) + { + marketInitialParams.admin = vm.randomAddress(); + marketInitialParams.collateral = vm.parseJsonAddress(jsonData, string.concat(key, ".collateral")); + marketInitialParams.debtToken = IERC20Metadata(vm.parseJsonAddress(jsonData, string.concat(key, ".debtToken"))); + + marketInitialParams.tokenName = key; + marketInitialParams.tokenSymbol = key; + + MarketConfig memory marketConfig; + + marketConfig.feeConfig.mintGtFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".feeConfig.mintGtFeeRatio")))); + marketConfig.feeConfig.mintGtFeeRef = + uint32(vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".feeConfig.mintGtFeeRef")))); + marketConfig.feeConfig.lendTakerFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".feeConfig.lendTakerFeeRatio")))); + marketConfig.feeConfig.borrowTakerFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".feeConfig.borrowTakerFeeRatio")))); + marketConfig.feeConfig.lendMakerFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".feeConfig.lendMakerFeeRatio")))); + marketConfig.feeConfig.borrowMakerFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".feeConfig.borrowMakerFeeRatio")))); + marketInitialParams.marketConfig = marketConfig; + + marketConfig.treasurer = vm.randomAddress(); + marketConfig.maturity = + uint64(86400 * vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".duration")))); + + marketInitialParams.loanConfig.maxLtv = + uint32(vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".loanConfig.maxLtv")))); + marketInitialParams.loanConfig.liquidationLtv = + uint32(vm.parseUint(vm.parseJsonString(jsonData, string.concat(key, ".loanConfig.liquidationLtv")))); + marketInitialParams.loanConfig.liquidatable = + vm.parseBool(vm.parseJsonString(jsonData, string.concat(key, ".loanConfig.liquidatable"))); + + marketInitialParams.gtInitalParams = abi.encode(type(uint256).max); + + return marketInitialParams; + } + + function _readOrderConfig(string memory key) internal view returns (OrderConfig memory orderConfig) { + orderConfig = JSONLoader.getOrderConfigFromJson(jsonData, string.concat(key, ".orderConfig")); + return orderConfig; + } + + function _readVaultInitialParams(address admin, IERC20 debtToken, string memory key) + internal + returns (VaultInitialParams memory vaultInitialParams) + { + vaultInitialParams.admin = admin; + vaultInitialParams.curator = vm.randomAddress(); + vaultInitialParams.timelock = 1 days; + vaultInitialParams.asset = debtToken; + vaultInitialParams.maxCapacity = type(uint128).max; + vaultInitialParams.name = string.concat("Vault-", key); + vaultInitialParams.symbol = string.concat("Vault-", key); + vaultInitialParams.performanceFeeRate = 0.1e8; + return vaultInitialParams; + } + + function _setPriceFeedInTokenDecimal8( + MockPriceFeed priceFeed, + uint8 tokenDecimals, + MockPriceFeed.RoundData memory roundData + ) internal { + roundData.answer = + (roundData.answer.toUint256() * (10 ** uint256(tokenDecimals)) / Constants.DECIMAL_BASE).toInt256(); + priceFeed.updateRoundData(roundData); + } + + function deployFactory(address admin) public returns (TermMaxFactoryV2 factory) { + address tokenImplementation = address(new MintableERC20V2()); + address orderImplementation = address(new TermMaxOrderV2()); + TermMaxMarketV2 m = new TermMaxMarketV2(tokenImplementation, orderImplementation); + factory = new TermMaxFactoryV2(admin, address(m)); + } + + function deployFactoryWithMockOrder(address admin) public returns (TermMaxFactoryV2 factory) { + address tokenImplementation = address(new MintableERC20V2()); + address orderImplementation = address(new MockOrderV2()); + TermMaxMarketV2 m = new TermMaxMarketV2(tokenImplementation, orderImplementation); + factory = new TermMaxFactoryV2(admin, address(m)); + } + + function deployVaultFactory() public returns (TermMaxVaultFactoryV2 vaultFactory) { + OrderManagerV2 orderManager = new OrderManagerV2(); + TermMaxVaultV2 implementation = new TermMaxVaultV2(address(orderManager)); + vaultFactory = new TermMaxVaultFactoryV2(address(implementation)); + } + + function deployOracleAggregator(address admin) public returns (OracleAggregatorV2 oracle) { + oracle = new OracleAggregatorV2(admin, 0); + } + + function deployMockPriceFeed(address admin) public returns (MockPriceFeed priceFeed) { + priceFeed = new MockPriceFeed(admin); + } + + function deployRouter(address admin) public returns (TermMaxRouterV2 router) { + TermMaxRouterV2 implementation = new TermMaxRouterV2(); + bytes memory data = abi.encodeCall(TermMaxRouterV2.initialize, admin); + ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), data); + router = TermMaxRouterV2(address(proxy)); + } +} diff --git a/test/v2/mainnet-fork/GtBaseTestV2.t.sol b/test/v2/mainnet-fork/GtBaseTestV2.t.sol new file mode 100644 index 0000000..a30d93e --- /dev/null +++ b/test/v2/mainnet-fork/GtBaseTestV2.t.sol @@ -0,0 +1,411 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {DeployUtils} from "../utils/DeployUtils.sol"; +import {JSONLoader} from "../utils/JSONLoader.sol"; +import {StateChecker} from "../utils/StateChecker.sol"; +import {SwapUtils} from "../utils/SwapUtils.sol"; +import {ForkBaseTestV2} from "./ForkBaseTestV2.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import {TermMaxFactoryV2, ITermMaxFactory} from "contracts/v2/factory/TermMaxFactoryV2.sol"; +import {ITermMaxRouterV2, TermMaxRouterV2} from "contracts/v2/router/TermMaxRouterV2.sol"; +import {TermMaxMarketV2, Constants, SafeCast} from "contracts/v2/TermMaxMarketV2.sol"; +import {TermMaxOrderV2, OrderConfig} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockOrderV2} from "contracts/v2/test/MockOrderV2.sol"; +import {MintableERC20V2} from "contracts/v2/tokens/MintableERC20V2.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {IOracleV2, OracleAggregatorV2} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {IOrderManager, OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {ITermMaxVault, ITermMaxVaultV2, TermMaxVaultV2} from "contracts/v2/vault/TermMaxVaultV2.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import { + MarketConfig, + FeeConfig, + MarketInitialParams, + LoanConfig, + VaultInitialParams +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {ITermMaxRouter, RouterEvents, RouterErrors} from "contracts/v1/router/TermMaxRouter.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {SwapUnit, ISwapAdapter} from "contracts/v1/router/ISwapAdapter.sol"; +import { + IGearingToken, IGearingTokenV2, GearingTokenWithERC20V2 +} from "contracts/v2/tokens/GearingTokenWithERC20V2.sol"; +import {MintableERC20V2} from "contracts/v2/tokens/MintableERC20V2.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; +import {ISwapCallback} from "contracts/v1/ISwapCallback.sol"; +import {UniswapV3AdapterV2} from "contracts/v2/router/swapAdapters/UniswapV3AdapterV2.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v2/router/swapAdapters/PendleSwapV3AdapterV2.sol"; +import {OdosV2AdapterV2} from "contracts/v2/router/swapAdapters/OdosV2AdapterV2.sol"; +import {ERC4626VaultAdapterV2} from "contracts/v2/router/swapAdapters/ERC4626VaultAdapterV2.sol"; +import {KyberswapV2AdapterV2} from "contracts/v2/router/swapAdapters/KyberswapV2AdapterV2.sol"; + +abstract contract GtBaseTestV2 is ForkBaseTestV2 { + enum TokenType { + General, + Pendle, + Morpho + } + + struct SwapData { + uint128 debtAmt; + uint128 swapAmtIn; + TokenType tokenType; + SwapUnit[] leverageUnits; + SwapUnit[] flashRepayUnits; + } + + struct SwapAdapters { + address uniswapAdapter; + address pendleAdapter; + address odosAdapter; + address vaultAdapter; + } + + struct GtTestRes { + uint256 blockNumber; + uint256 orderInitialAmount; + MarketInitialParams marketInitialParams; + OrderConfig orderConfig; + TermMaxMarketV2 market; + IMintableERC20 ft; + IMintableERC20 xt; + IGearingToken gt; + IERC20Metadata collateral; + IERC20Metadata debtToken; + IOracleV2 oracle; + MockPriceFeed collateralPriceFeed; + MockPriceFeed debtPriceFeed; + ITermMaxOrder order; + TermMaxRouterV2 router; + uint256 maxXtReserve; + address maker; + SwapData swapData; + SwapAdapters swapAdapters; + } + + function _initializeGtTestRes(string memory key) internal returns (GtTestRes memory) { + GtTestRes memory res; + res.blockNumber = _readBlockNumber(key); + res.marketInitialParams = _readMarketInitialParams(key); + res.orderConfig = _readOrderConfig(key); + res.maker = vm.randomAddress(); + res.maxXtReserve = type(uint128).max; + + vm.rollFork(res.blockNumber); + + vm.startPrank(res.marketInitialParams.admin); + + res.oracle = deployOracleAggregator(res.marketInitialParams.admin); + res.collateralPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); + res.debtPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); + res.oracle.submitPendingOracle( + address(res.marketInitialParams.collateral), + IOracleV2.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 0, 0, 0, 0) + ); + res.oracle.submitPendingOracle( + address(res.marketInitialParams.debtToken), + IOracleV2.Oracle(res.debtPriceFeed, res.debtPriceFeed, 0, 0, 0, 0) + ); + + res.oracle.acceptPendingOracle(address(res.marketInitialParams.collateral)); + res.oracle.acceptPendingOracle(address(res.marketInitialParams.debtToken)); + + res.marketInitialParams.marketConfig.maturity += uint64(block.timestamp); + res.marketInitialParams.loanConfig.oracle = IOracle(address(res.oracle)); + + res.market = TermMaxMarketV2( + deployFactory(res.marketInitialParams.admin).createMarket( + keccak256("GearingTokenWithERC20"), res.marketInitialParams, 0 + ) + ); + + (res.ft, res.xt, res.gt,,) = res.market.tokens(); + res.debtToken = res.marketInitialParams.debtToken; + res.collateral = IERC20Metadata(res.marketInitialParams.collateral); + + // set all price as 1 USD = 1e8 tokens + uint8 debtDecimals = res.debtToken.decimals(); + _setPriceFeedInTokenDecimal8( + res.debtPriceFeed, debtDecimals, MockPriceFeed.RoundData(1, 1e8, block.timestamp, block.timestamp, 0) + ); + uint8 collateralDecimals = res.collateral.decimals(); + _setPriceFeedInTokenDecimal8( + res.collateralPriceFeed, + collateralDecimals, + MockPriceFeed.RoundData(1, 1e8, block.timestamp, block.timestamp, 0) + ); + + res.order = + res.market.createOrder(res.maker, res.maxXtReserve, ISwapCallback(address(0)), res.orderConfig.curveCuts); + + res.swapAdapters.uniswapAdapter = + address(new UniswapV3AdapterV2(vm.parseJsonAddress(jsonData, ".routers.uniswapRouter"))); + res.swapAdapters.pendleAdapter = + address(new PendleSwapV3AdapterV2(vm.parseJsonAddress(jsonData, ".routers.pendleRouter"))); + res.swapAdapters.odosAdapter = + address(new OdosV2AdapterV2(vm.parseJsonAddress(jsonData, ".routers.odosRouter"))); + res.swapAdapters.vaultAdapter = address(new ERC4626VaultAdapterV2()); + res.router = deployRouter(res.marketInitialParams.admin); + res.router.setAdapterWhitelist(res.swapAdapters.uniswapAdapter, true); + res.router.setAdapterWhitelist(res.swapAdapters.pendleAdapter, true); + res.router.setAdapterWhitelist(res.swapAdapters.odosAdapter, true); + res.router.setAdapterWhitelist(res.swapAdapters.vaultAdapter, true); + res.swapData = _readSwapData(key); + + res.orderInitialAmount = vm.parseJsonUint(jsonData, string.concat(key, ".orderInitialAmount")); + deal(address(res.debtToken), res.marketInitialParams.admin, res.orderInitialAmount); + + res.debtToken.approve(address(res.market), res.orderInitialAmount); + res.market.mint(address(res.order), res.orderInitialAmount); + + vm.stopPrank(); + + return res; + } + + function _readSwapData(string memory key) internal view returns (SwapData memory data) { + data.tokenType = TokenType(vm.parseJsonUint(jsonData, string.concat(key, ".swapData.tokenType"))); + data.debtAmt = uint128(vm.parseJsonUint(jsonData, string.concat(key, ".swapData.debtAmt"))); + data.swapAmtIn = uint128(vm.parseJsonUint(jsonData, string.concat(key, ".swapData.swapAmtIn"))); + + uint256 length = vm.parseJsonUint(jsonData, string.concat(key, ".swapData.length")); + data.leverageUnits = new SwapUnit[](length); + data.flashRepayUnits = new SwapUnit[](length); + for (uint256 i = 0; i < length; i++) { + data.leverageUnits[i] = _readSwapUnit(string.concat(key, ".swapData.leverageUnits.", vm.toString(i))); + data.flashRepayUnits[i] = _readSwapUnit(string.concat(key, ".swapData.flashRepayUnits.", vm.toString(i))); + } + } + + function _readSwapUnit(string memory key) internal view returns (SwapUnit memory data) { + data.adapter = vm.parseJsonAddress(jsonData, string.concat(key, ".adapter")); + data.tokenIn = vm.parseJsonAddress(jsonData, string.concat(key, ".tokenIn")); + data.tokenOut = vm.parseJsonAddress(jsonData, string.concat(key, ".tokenOut")); + data.swapData = vm.parseJsonBytes(jsonData, string.concat(key, ".swapData")); + } + + function _updateCollateralPrice(GtTestRes memory res, int256 price) internal { + vm.startPrank(res.marketInitialParams.admin); + // set all price as 1 USD = 1e8 tokens + uint8 decimals = res.collateral.decimals(); + (uint80 roundId,,,,) = res.collateralPriceFeed.latestRoundData(); + roundId++; + uint256 time = block.timestamp; + _setPriceFeedInTokenDecimal8( + res.collateralPriceFeed, decimals, MockPriceFeed.RoundData(roundId, price, time, time, 0) + ); + vm.stopPrank(); + } + + function _testBorrow(GtTestRes memory res, uint256 collInAmt, uint128 borrowAmt, uint128 maxDebtAmt) internal { + address taker = vm.randomAddress(); + + vm.startPrank(taker); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + uint128[] memory tokenAmtsWantBuy = new uint128[](1); + tokenAmtsWantBuy[0] = borrowAmt; + + deal(address(res.collateral), taker, collInAmt); + res.collateral.approve(address(res.router), collInAmt); + + uint256 gtId = res.router.borrowTokenFromCollateral( + taker, res.market, collInAmt, orders, tokenAmtsWantBuy, maxDebtAmt, block.timestamp + 1 hours + ); + (address owner, uint128 debtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + assertEq(owner, taker); + assertEq(collInAmt, abi.decode(collateralData, (uint256))); + assertLe(debtAmt, maxDebtAmt); + assertEq(res.debtToken.balanceOf(taker), borrowAmt); + + vm.stopPrank(); + } + + function _testLeverageFromXt( + GtTestRes memory res, + address taker, + uint128 xtAmtIn, + uint128 tokenAmtIn, + SwapUnit[] memory units + ) internal returns (uint256 gtId) { + vm.startPrank(taker); + deal(taker, 1e8); + deal(address(res.debtToken), taker, xtAmtIn); + res.debtToken.approve(address(res.market), xtAmtIn); + res.market.mint(taker, xtAmtIn); + + uint256 maxLtv = res.marketInitialParams.loanConfig.maxLtv; + + deal(address(res.debtToken), taker, tokenAmtIn); + res.debtToken.approve(address(res.router), tokenAmtIn); + + uint256 debtTokenBalanceBeforeSwap = res.debtToken.balanceOf(taker); + uint256 xtAmtBeforeSwap = res.xt.balanceOf(taker); + + res.xt.approve(address(res.router), xtAmtIn); + gtId = res.router.leverageFromXt(taker, res.market, xtAmtIn, tokenAmtIn, uint128(maxLtv), units); + + uint256 debtTokenBalanceAfterSwap = res.debtToken.balanceOf(taker); + uint256 xtAmtAfterSwap = res.xt.balanceOf(taker); + + assertEq(debtTokenBalanceBeforeSwap - debtTokenBalanceAfterSwap, tokenAmtIn); + assertEq(xtAmtBeforeSwap - xtAmtAfterSwap, xtAmtIn); + + assertEq(res.collateral.balanceOf(taker), 0); + + assertEq(res.debtToken.balanceOf(address(res.router)), 0); + assertEq(res.xt.balanceOf(address(res.router)), 0); + assertEq(res.debtToken.balanceOf(address(res.router)), 0); + assertEq(res.collateral.balanceOf(address(res.router)), 0); + + vm.stopPrank(); + } + + function _testLeverageFromToken( + GtTestRes memory res, + address taker, + uint128 tokenAmtToBuyXt, + uint128 tokenAmtIn, + SwapUnit[] memory units + ) internal returns (uint256 gtId) { + vm.startPrank(taker); + deal(taker, 1e8); + + uint256 maxLtv = res.marketInitialParams.loanConfig.maxLtv; + uint128 minXTOut = 0e8; + deal(address(res.debtToken), taker, tokenAmtToBuyXt + tokenAmtIn); + res.debtToken.approve(address(res.router), tokenAmtToBuyXt + tokenAmtIn); + + uint256 debtTokenBalanceBeforeSwap = res.debtToken.balanceOf(taker); + + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + uint128[] memory amtsToBuyXt = new uint128[](1); + amtsToBuyXt[0] = tokenAmtToBuyXt; + + (gtId,) = res.router.leverageFromToken( + taker, + res.market, + orders, + amtsToBuyXt, + minXTOut, + tokenAmtIn, + uint128(maxLtv), + units, + block.timestamp + 1 hours + ); + + uint256 debtTokenBalanceAfterSwap = res.debtToken.balanceOf(taker); + + assertEq(debtTokenBalanceBeforeSwap - debtTokenBalanceAfterSwap, tokenAmtToBuyXt + tokenAmtIn); + + assertEq(res.collateral.balanceOf(taker), 0); + + assertEq(res.debtToken.balanceOf(address(res.router)), 0); + assertEq(res.xt.balanceOf(address(res.router)), 0); + assertEq(res.debtToken.balanceOf(address(res.router)), 0); + assertEq(res.collateral.balanceOf(address(res.router)), 0); + + vm.stopPrank(); + } + + function _testFlashRepay(GtTestRes memory res, uint256 gtId, address taker, SwapUnit[] memory units) internal { + deal(taker, 1e18); + + vm.startPrank(taker); + + res.gt.approve(address(res.router), gtId); + + uint256 debtTokenBalanceBeforeRepay = res.debtToken.balanceOf(taker); + bool byDebtToken = true; + + ITermMaxRouterV2.TermMaxSwapData memory swapData; + + (, uint128 debtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + uint256 netTokenOut = res.router.flashRepayFromCollV2( + taker, res.market, gtId, debtAmt, byDebtToken, 0, collateralData, units, swapData + ); + + uint256 debtTokenBalanceAfterRepay = res.debtToken.balanceOf(taker); + + assertEq(debtTokenBalanceAfterRepay - debtTokenBalanceBeforeRepay, netTokenOut); + + vm.stopPrank(); + } + + function _testFlashRepayByFt(GtTestRes memory res, uint256 gtId, address taker, SwapUnit[] memory units) internal { + deal(taker, 1e18); + + vm.startPrank(taker); + res.gt.approve(address(res.router), gtId); + + uint256 debtTokenBalanceBeforeRepay = res.debtToken.balanceOf(taker); + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = res.order; + uint128[] memory amtsToBuyFt = new uint128[](1); + + (, uint128 debtAmt, bytes memory collateralData) = res.gt.loanInfo(gtId); + amtsToBuyFt[0] = debtAmt; + bool byDebtToken = false; + + ITermMaxRouterV2.TermMaxSwapData memory swapData; + swapData.tokenIn = address(res.debtToken); + swapData.tokenOut = address(res.ft); + swapData.orders = orders; + swapData.tradingAmts = amtsToBuyFt; + swapData.deadline = block.timestamp + 1 hours; + + uint256 netTokenOut = res.router.flashRepayFromCollV2( + taker, res.market, gtId, debtAmt, byDebtToken, 0, collateralData, units, swapData + ); + + uint256 debtTokenBalanceAfterRepay = res.debtToken.balanceOf(taker); + + assertEq(debtTokenBalanceAfterRepay - debtTokenBalanceBeforeRepay, netTokenOut); + + vm.stopPrank(); + } + + function _testLiquidate(GtTestRes memory res, address liquidator, uint256 gtId) + internal + returns (uint256 collateralAmt) + { + deal(liquidator, 1e18); + vm.startPrank(liquidator); + + (, uint128 debtAmt,) = res.gt.loanInfo(gtId); + + deal(address(res.debtToken), liquidator, debtAmt); + res.debtToken.approve(address(res.gt), debtAmt); + + collateralAmt = res.collateral.balanceOf(liquidator); + + bool byDebtToken = true; + res.gt.liquidate(gtId, debtAmt, byDebtToken); + + collateralAmt = res.collateral.balanceOf(liquidator) - collateralAmt; + + vm.stopPrank(); + } + + function _fastLoan(GtTestRes memory res, address taker, uint256 debtAmt, uint256 collateralAmt) + internal + returns (uint256 gtId) + { + vm.startPrank(taker); + deal(taker, 1e18); + deal(address(res.collateral), taker, collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + (gtId,) = res.market.issueFt(taker, uint128(debtAmt), abi.encode(collateralAmt)); + vm.stopPrank(); + } +} diff --git a/test/v2/mainnet-fork/MarketBaseTestV2.t.sol b/test/v2/mainnet-fork/MarketBaseTestV2.t.sol new file mode 100644 index 0000000..9a9f95a --- /dev/null +++ b/test/v2/mainnet-fork/MarketBaseTestV2.t.sol @@ -0,0 +1,251 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {DeployUtils} from "../utils/DeployUtils.sol"; +import {JSONLoader} from "../utils/JSONLoader.sol"; +import {StateChecker} from "../utils/StateChecker.sol"; +import {SwapUtils} from "../utils/SwapUtils.sol"; +import {ForkBaseTestV2} from "./ForkBaseTestV2.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import {TermMaxFactoryV2, ITermMaxFactory} from "contracts/v2/factory/TermMaxFactoryV2.sol"; +import {ITermMaxRouterV2, TermMaxRouterV2} from "contracts/v2/router/TermMaxRouterV2.sol"; +import {TermMaxMarketV2, Constants, SafeCast, MarketEvents} from "contracts/v2/TermMaxMarketV2.sol"; +import {TermMaxOrderV2, OrderConfig} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockOrderV2} from "contracts/v2/test/MockOrderV2.sol"; +import {MintableERC20V2} from "contracts/v2/tokens/MintableERC20V2.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {IOracleV2, OracleAggregatorV2} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {IOrderManager, OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {ITermMaxVault, ITermMaxVaultV2, TermMaxVaultV2} from "contracts/v2/vault/TermMaxVaultV2.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import { + MarketConfig, + FeeConfig, + MarketInitialParams, + LoanConfig, + VaultInitialParams +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {ITermMaxRouter, RouterEvents, RouterErrors} from "contracts/v1/router/TermMaxRouter.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {SwapUnit, ISwapAdapter} from "contracts/v1/router/ISwapAdapter.sol"; +import { + IGearingToken, IGearingTokenV2, GearingTokenWithERC20V2 +} from "contracts/v2/tokens/GearingTokenWithERC20V2.sol"; +import {MintableERC20V2} from "contracts/v2/tokens/MintableERC20V2.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; +import {ISwapCallback} from "contracts/v1/ISwapCallback.sol"; +import {UniswapV3AdapterV2} from "contracts/v2/router/swapAdapters/UniswapV3AdapterV2.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v2/router/swapAdapters/PendleSwapV3AdapterV2.sol"; +import {OdosV2AdapterV2} from "contracts/v2/router/swapAdapters/OdosV2AdapterV2.sol"; +import {ERC4626VaultAdapterV2} from "contracts/v2/router/swapAdapters/ERC4626VaultAdapterV2.sol"; +import {KyberswapV2AdapterV2} from "contracts/v2/router/swapAdapters/KyberswapV2AdapterV2.sol"; + +abstract contract MarketBaseTestV2 is ForkBaseTestV2 { + using SafeCast for *; + + struct MarketTestRes { + uint256 blockNumber; + uint256 orderInitialAmount; + MarketInitialParams marketInitialParams; + OrderConfig orderConfig; + TermMaxMarketV2 market; + IMintableERC20 ft; + IMintableERC20 xt; + IGearingToken gt; + IERC20Metadata collateral; + IERC20Metadata debtToken; + IOracleV2 oracle; + MockPriceFeed collateralPriceFeed; + MockPriceFeed debtPriceFeed; + ITermMaxOrder order; + ITermMaxRouterV2 router; + uint256 maxXtReserve; + address maker; + } + + function _initializeMarketTestRes(string memory key) internal returns (MarketTestRes memory) { + MarketTestRes memory res; + res.blockNumber = _readBlockNumber(key); + res.marketInitialParams = _readMarketInitialParams(key); + res.orderConfig = _readOrderConfig(key); + res.maker = vm.randomAddress(); + res.maxXtReserve = type(uint128).max; + + vm.rollFork(res.blockNumber); + + vm.startPrank(res.marketInitialParams.admin); + + res.oracle = deployOracleAggregator(res.marketInitialParams.admin); + res.collateralPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); + res.debtPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); + res.oracle.submitPendingOracle( + address(res.marketInitialParams.collateral), + IOracleV2.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 0, 0, 0, 0) + ); + res.oracle.submitPendingOracle( + address(res.marketInitialParams.debtToken), + IOracleV2.Oracle(res.debtPriceFeed, res.debtPriceFeed, 0, 0, 0, 0) + ); + res.oracle.acceptPendingOracle(address(res.marketInitialParams.collateral)); + res.oracle.acceptPendingOracle(address(res.marketInitialParams.debtToken)); + + res.marketInitialParams.marketConfig.maturity += uint64(block.timestamp); + res.marketInitialParams.loanConfig.oracle = IOracle(address(res.oracle)); + + res.market = TermMaxMarketV2( + deployFactory(res.marketInitialParams.admin).createMarket( + keccak256("GearingTokenWithERC20"), res.marketInitialParams, 0 + ) + ); + + (res.ft, res.xt, res.gt,,) = res.market.tokens(); + res.debtToken = res.marketInitialParams.debtToken; + res.collateral = IERC20Metadata(res.marketInitialParams.collateral); + + // set all price as 1 USD = 1e8 tokens + uint8 debtDecimals = res.debtToken.decimals(); + _setPriceFeedInTokenDecimal8( + res.debtPriceFeed, debtDecimals, MockPriceFeed.RoundData(1, 1e8, block.timestamp, block.timestamp, 0) + ); + uint8 collateralDecimals = res.collateral.decimals(); + _setPriceFeedInTokenDecimal8( + res.collateralPriceFeed, + collateralDecimals, + MockPriceFeed.RoundData(1, 1e8, block.timestamp, block.timestamp, 0) + ); + + res.order = + res.market.createOrder(res.maker, res.maxXtReserve, ISwapCallback(address(0)), res.orderConfig.curveCuts); + + res.router = deployRouter(res.marketInitialParams.admin); + + res.orderInitialAmount = vm.parseJsonUint(jsonData, string.concat(key, ".orderInitialAmount")); + deal(address(res.debtToken), res.marketInitialParams.admin, res.orderInitialAmount); + + res.debtToken.approve(address(res.market), res.orderInitialAmount); + res.market.mint(address(res.order), res.orderInitialAmount); + + vm.stopPrank(); + + return res; + } + + function _testMint(MarketTestRes memory res) internal { + address to = vm.randomAddress(); + uint256 amount = 100e8; + deal(address(res.debtToken), to, amount); + deal(to, 1e18); + vm.startPrank(to); + res.debtToken.approve(address(res.market), amount); + res.market.mint(to, amount); + vm.assertEq(res.ft.balanceOf(to), amount); + vm.assertEq(res.xt.balanceOf(to), amount); + vm.stopPrank(); + } + + function _testBurn(MarketTestRes memory res) internal { + address taker = vm.randomAddress(); + uint256 amount = 100e8; + deal(taker, 1e18); + deal(address(res.debtToken), taker, amount); + vm.startPrank(taker); + res.debtToken.approve(address(res.market), amount); + res.market.mint(taker, amount); + + res.market.burn(taker, taker, amount); + vm.assertEq(res.debtToken.balanceOf(taker), amount); + vm.stopPrank(); + } + + function _testRedeem(MarketTestRes memory res) internal { + MarketConfig memory marketConfig = res.market.config(); + vm.prank(res.marketInitialParams.admin); + res.market.updateMarketConfig(marketConfig); + + address bob = vm.randomAddress(); + address alice = vm.randomAddress(); + deal(bob, 1e18); + deal(alice, 1e18); + + uint128 depositAmt = uint128(res.orderInitialAmount); + uint128 debtAmt = uint128(res.orderInitialAmount / 20); + uint256 collateralAmt = uint256(res.orderInitialAmount / 10); + + vm.startPrank(bob); + deal(address(res.debtToken), bob, depositAmt); + res.debtToken.approve(address(res.market), depositAmt); + res.market.mint(bob, depositAmt); + + res.xt.transfer(alice, debtAmt); + vm.stopPrank(); + + vm.startPrank(alice); + + MockFlashLoanReceiver receiver = new MockFlashLoanReceiver(res.market); + deal(address(res.collateral), address(receiver), collateralAmt); + + res.xt.approve(address(receiver), debtAmt); + receiver.leverageByXt(debtAmt, abi.encode(alice, collateralAmt)); + vm.stopPrank(); + + vm.warp(marketConfig.maturity + Constants.LIQUIDATION_WINDOW); + + vm.startPrank(bob); + res.ft.approve(address(res.market), depositAmt); + + uint256 propotion = + depositAmt * Constants.DECIMAL_BASE_SQ / (res.ft.totalSupply() - res.ft.balanceOf(address(res.market))); + uint256 redeemAmt = propotion * res.debtToken.balanceOf(address(res.market)) / Constants.DECIMAL_BASE_SQ; + uint256 redeemedCollateral = propotion * res.collateral.balanceOf(address(res.gt)) / Constants.DECIMAL_BASE_SQ; + + vm.expectEmit(); + emit MarketEvents.Redeem(bob, bob, uint128(propotion), uint128(redeemAmt), abi.encode(redeemedCollateral)); + res.market.redeem(bob, bob, depositAmt); + + assertEq(res.debtToken.balanceOf(bob), redeemAmt); + assertEq(res.collateral.balanceOf(bob), redeemedCollateral); + assertEq(res.ft.balanceOf(bob), 0); + vm.stopPrank(); + } + + function _testIssueFtByGtWhenSwap(MarketTestRes memory res, uint256 collateralAmt, uint128 debtAmt) internal { + address taker = vm.randomAddress(); + deal(taker, 1e18); + + uint128 ftOutAmt = 151e8; + uint128 maxTokenIn = 150e8; + + vm.startPrank(res.maker); + deal(res.maker, 1e18); + deal(address(res.collateral), res.maker, collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + (uint256 gtId,) = res.market.issueFt(res.maker, debtAmt, abi.encode(collateralAmt)); + + res.gt.approve(address(res.order), gtId); + OrderConfig memory orderConfig = res.order.orderConfig(); + orderConfig.gtId = gtId; + // make sure ft reserve in order is zero and xt is 150e8 + res.order.updateOrder( + orderConfig, + -(res.ft.balanceOf(address(res.order)).toInt256()), + -(res.xt.balanceOf(address(res.order)) - maxTokenIn).toInt256() + ); + vm.stopPrank(); + + vm.startPrank(taker); + deal(address(res.debtToken), taker, maxTokenIn); + res.debtToken.approve(address(res.order), maxTokenIn); + res.order.swapTokenToExactToken(res.debtToken, res.ft, taker, ftOutAmt, maxTokenIn, block.timestamp + 1 hours); + assertEq(res.ft.balanceOf(taker), ftOutAmt); + (, uint128 debtAmtNow,) = res.gt.loanInfo(gtId); + assertGt(debtAmtNow, debtAmt); + vm.stopPrank(); + } +} diff --git a/test/v2/mainnet-fork/VaultBaseTestV2.t.sol b/test/v2/mainnet-fork/VaultBaseTestV2.t.sol new file mode 100644 index 0000000..256594a --- /dev/null +++ b/test/v2/mainnet-fork/VaultBaseTestV2.t.sol @@ -0,0 +1,290 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {DeployUtils} from "../utils/DeployUtils.sol"; +import {JSONLoader} from "../utils/JSONLoader.sol"; +import {StateChecker} from "../utils/StateChecker.sol"; +import {SwapUtils} from "../utils/SwapUtils.sol"; +import {ForkBaseTestV2} from "./ForkBaseTestV2.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; +import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; +import {TermMaxFactoryV2, ITermMaxFactory} from "contracts/v2/factory/TermMaxFactoryV2.sol"; +import {ITermMaxRouterV2, TermMaxRouterV2} from "contracts/v2/router/TermMaxRouterV2.sol"; +import {TermMaxMarketV2, Constants, SafeCast, MarketEvents} from "contracts/v2/TermMaxMarketV2.sol"; +import {TermMaxOrderV2, OrderConfig} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {MockOrderV2} from "contracts/v2/test/MockOrderV2.sol"; +import {MintableERC20V2} from "contracts/v2/tokens/MintableERC20V2.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {SwapAdapter} from "contracts/v1/test/testnet/SwapAdapter.sol"; +import {IOracleV2, OracleAggregatorV2} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {IOrderManager, OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {ITermMaxVault, ITermMaxVaultV2, TermMaxVaultV2} from "contracts/v2/vault/TermMaxVaultV2.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import { + MarketConfig, + FeeConfig, + MarketInitialParams, + LoanConfig, + VaultInitialParams, + CurveCuts +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {ITermMaxRouter, RouterEvents, RouterErrors} from "contracts/v1/router/TermMaxRouter.sol"; +import {MockFlashLoanReceiver} from "contracts/v1/test/MockFlashLoanReceiver.sol"; +import {SwapUnit, ISwapAdapter} from "contracts/v1/router/ISwapAdapter.sol"; +import { + IGearingToken, IGearingTokenV2, GearingTokenWithERC20V2 +} from "contracts/v2/tokens/GearingTokenWithERC20V2.sol"; +import {MintableERC20V2} from "contracts/v2/tokens/MintableERC20V2.sol"; +import {ITermMaxOrder} from "contracts/v1/ITermMaxOrder.sol"; +import {ISwapCallback} from "contracts/v1/ISwapCallback.sol"; +import {UniswapV3AdapterV2} from "contracts/v2/router/swapAdapters/UniswapV3AdapterV2.sol"; +import {PendleSwapV3AdapterV2} from "contracts/v2/router/swapAdapters/PendleSwapV3AdapterV2.sol"; +import {OdosV2AdapterV2} from "contracts/v2/router/swapAdapters/OdosV2AdapterV2.sol"; +import {ERC4626VaultAdapterV2} from "contracts/v2/router/swapAdapters/ERC4626VaultAdapterV2.sol"; +import {KyberswapV2AdapterV2} from "contracts/v2/router/swapAdapters/KyberswapV2AdapterV2.sol"; +import {OrderManager} from "contracts/v1/vault/OrderManager.sol"; +import {VaultConstants} from "contracts/v1/lib/VaultConstants.sol"; +import {PendingAddress, PendingUint192} from "contracts/v1/lib/PendingLib.sol"; +import {ITermMaxVault} from "contracts/v1/vault/ITermMaxVault.sol"; +import {ITermMaxVaultV2, VaultErrors, VaultEvents, TermMaxVaultV2} from "contracts/v2/vault/TermMaxVaultV2.sol"; +import {VaultInitialParamsV2} from "contracts/v2/storage/TermMaxStorageV2.sol"; +import {TermMaxVaultFactoryV2} from "contracts/v2/factory/TermMaxVaultFactoryV2.sol"; + +abstract contract VaultBaseTestV2 is ForkBaseTestV2 { + using SafeCast for *; + + struct VaultTestRes { + uint256 blockNumber; + uint256 orderInitialAmount; + MarketInitialParams marketInitialParams; + OrderConfig orderConfig; + TermMaxMarketV2 market; + IMintableERC20 ft; + IMintableERC20 xt; + IGearingToken gt; + IERC20Metadata collateral; + IERC20Metadata debtToken; + IOracleV2 oracle; + MockPriceFeed collateralPriceFeed; + MockPriceFeed debtPriceFeed; + ITermMaxOrder order; + ITermMaxVault vault; + VaultInitialParamsV2 vaultInitialParams; + uint256 currentTime; + uint256 maxCapacity; + address maker; + } + + function _initializeVaultTestRes(string memory key) internal returns (VaultTestRes memory) { + VaultTestRes memory res; + res.blockNumber = _readBlockNumber(key); + res.orderInitialAmount = vm.parseJsonUint(jsonData, string.concat(key, ".orderInitialAmount")); + res.marketInitialParams = _readMarketInitialParams(key); + res.orderConfig = _readOrderConfig(key); + res.maker = vm.randomAddress(); + + vm.rollFork(res.blockNumber); + res.currentTime = block.timestamp; + + _generateVaultInitialParams(res); + + vm.startPrank(res.marketInitialParams.admin); + + res.oracle = deployOracleAggregator(res.marketInitialParams.admin); + res.collateralPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); + res.debtPriceFeed = deployMockPriceFeed(res.marketInitialParams.admin); + res.oracle.submitPendingOracle( + address(res.marketInitialParams.collateral), + IOracleV2.Oracle(res.collateralPriceFeed, res.collateralPriceFeed, 365 days, 365 days, 0, 0) + ); + res.oracle.submitPendingOracle( + address(res.marketInitialParams.debtToken), + IOracleV2.Oracle(res.debtPriceFeed, res.debtPriceFeed, 365 days, 365 days, 0, 0) + ); + res.oracle.acceptPendingOracle(address(res.marketInitialParams.collateral)); + res.oracle.acceptPendingOracle(address(res.marketInitialParams.debtToken)); + + res.marketInitialParams.marketConfig.maturity += uint64(block.timestamp); + res.marketInitialParams.loanConfig.oracle = IOracle(address(res.oracle)); + + res.market = TermMaxMarketV2( + deployFactoryWithMockOrder(res.marketInitialParams.admin).createMarket( + keccak256("GearingTokenWithERC20"), res.marketInitialParams, 0 + ) + ); + + (res.ft, res.xt, res.gt,,) = res.market.tokens(); + res.debtToken = res.marketInitialParams.debtToken; + res.collateral = IERC20Metadata(res.marketInitialParams.collateral); + + // set all price as 1 USD = 1e8 tokens + uint8 debtDecimals = res.debtToken.decimals(); + _setPriceFeedInTokenDecimal8( + res.debtPriceFeed, debtDecimals, MockPriceFeed.RoundData(1, 1e8, block.timestamp, block.timestamp, 0) + ); + uint8 collateralDecimals = res.collateral.decimals(); + _setPriceFeedInTokenDecimal8( + res.collateralPriceFeed, + collateralDecimals, + MockPriceFeed.RoundData(1, 1e8, block.timestamp, block.timestamp, 0) + ); + + res.vault = ITermMaxVault(deployVaultFactory().createVault(res.vaultInitialParams, 0)); + + res.vault.submitMarket(address(res.market), true); + vm.warp(res.currentTime + res.vaultInitialParams.timelock + 1); + res.vault.acceptMarket(address(res.market)); + + vm.warp(res.currentTime); + + res.orderInitialAmount = vm.parseJsonUint(jsonData, string.concat(key, ".orderInitialAmount")); + deal(address(res.debtToken), res.marketInitialParams.admin, res.orderInitialAmount); + + res.debtToken.approve(address(res.vault), res.orderInitialAmount); + res.vault.deposit(res.orderInitialAmount, res.marketInitialParams.admin); + + res.order = res.vault.createOrder( + res.market, res.vaultInitialParams.maxCapacity, res.orderInitialAmount, res.orderConfig.curveCuts + ); + + vm.stopPrank(); + + return res; + } + + function _generateVaultInitialParams(VaultTestRes memory res) internal { + res.vaultInitialParams.admin = res.marketInitialParams.admin; + res.vaultInitialParams.curator = vm.randomAddress(); + res.vaultInitialParams.timelock = 1 days; + res.vaultInitialParams.asset = res.marketInitialParams.debtToken; + res.vaultInitialParams.maxCapacity = type(uint128).max; + res.vaultInitialParams.name = string.concat("Vault-", res.marketInitialParams.tokenName); + res.vaultInitialParams.symbol = res.vaultInitialParams.name; + res.vaultInitialParams.performanceFeeRate = 0.1e8; + } + + function _testDeposit(VaultTestRes memory res) internal { + _buyXt(res, 48.219178e8, uint128(res.orderInitialAmount / 100)); + vm.warp(res.currentTime + 2 days); + address lper2 = vm.randomAddress(); + uint256 amount2 = 20000e8; + deal(lper2, 1e18); + deal(address(res.debtToken), lper2, amount2); + vm.startPrank(lper2); + res.debtToken.approve(address(res.vault), amount2); + uint256 share = res.vault.previewDeposit(amount2); + res.vault.deposit(amount2, lper2); + assertEq(res.vault.balanceOf(lper2), share); + + vm.stopPrank(); + } + + function _testRedeem(VaultTestRes memory res) internal { + vm.warp(res.currentTime + 2 days); + _buyXt(res, 48.219178e8, uint128(res.orderInitialAmount / 100)); + vm.warp(res.currentTime + 4 days); + address lper2 = vm.randomAddress(); + uint256 amount2 = 10000e8; + deal(lper2, 1e18); + deal(address(res.debtToken), lper2, amount2); + vm.startPrank(lper2); + res.debtToken.approve(address(res.vault), amount2); + res.vault.deposit(amount2, lper2); + vm.stopPrank(); + + address admin = res.marketInitialParams.admin; + vm.startPrank(admin); + uint256 share = res.vault.balanceOf(admin); + uint256 redeem = res.vault.previewRedeem(share); + assertEq(redeem, res.vault.redeem(share, admin, admin)); + assertGt(redeem, amount2); + vm.stopPrank(); + } + + function _testBadDebt(VaultTestRes memory res) internal { + vm.warp(res.currentTime + 2 days); + _buyXt(res, 48.219178e8, uint128(res.orderInitialAmount / 100)); + + vm.warp(res.currentTime + 3 days); + address lper2 = vm.randomAddress(); + deal(lper2, 1e18); + uint256 amount2 = 100e8; + deal(address(res.debtToken), lper2, amount2); + vm.startPrank(lper2); + res.debtToken.approve(address(res.vault), amount2); + res.vault.deposit(amount2, lper2); + vm.stopPrank(); + + _depositToOrder(res.vault, res.order, amount2.toInt256()); + + address borrower = vm.randomAddress(); + vm.startPrank(borrower); + deal(borrower, 1e18); + uint256 collateralAmt = 100000e18; + deal(address(res.collateral), borrower, collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + res.market.issueFt(borrower, uint128(res.orderInitialAmount / 10), abi.encode(collateralAmt)); + vm.stopPrank(); + + vm.warp(res.currentTime + 92 days); + + uint256 propotion = (res.ft.balanceOf(address(res.order)) * Constants.DECIMAL_BASE_SQ) + / (res.ft.totalSupply() - res.ft.balanceOf(address(res.market))); + + uint256 tokenOut = (res.debtToken.balanceOf(address(res.market)) * propotion) / Constants.DECIMAL_BASE_SQ; + uint256 badDebt = res.ft.balanceOf(address(res.order)) - tokenOut; + uint256 delivered = (propotion * collateralAmt) / Constants.DECIMAL_BASE_SQ; + + vm.startPrank(lper2); + res.vault.redeemOrder(res.order); + res.vault.redeem(10e8, lper2, lper2); + vm.stopPrank(); + + assertEq(res.vault.badDebtMapping(address(res.collateral)), badDebt); + assertEq(res.collateral.balanceOf(address(res.vault)), delivered); + + uint256 shareToDealBadDebt = res.vault.balanceOf(lper2); + uint256 withdrawAmt = res.vault.previewRedeem(shareToDealBadDebt); + if (withdrawAmt > badDebt) { + withdrawAmt = badDebt; + } + + vm.startPrank(lper2); + (uint256 shares, uint256 collateralOut) = + res.vault.dealBadDebt(address(res.collateral), withdrawAmt, lper2, lper2); + assertEq(shares, shareToDealBadDebt); + assertEq(collateralOut, (withdrawAmt * delivered) / badDebt); + assertEq(res.vault.badDebtMapping(address(res.collateral)), badDebt - withdrawAmt); + assertEq(res.collateral.balanceOf(address(res.vault)), delivered - collateralOut); + vm.stopPrank(); + } + + function _buyXt(VaultTestRes memory res, uint128 tokenAmtIn, uint128 xtAmtOut) internal { + address taker = vm.randomAddress(); + deal(taker, 1e18); + deal(address(res.debtToken), taker, tokenAmtIn); + vm.startPrank(taker); + res.debtToken.approve(address(res.order), tokenAmtIn); + res.order.swapExactTokenToToken(res.debtToken, res.xt, taker, tokenAmtIn, xtAmtOut, block.timestamp + 1 hours); + vm.stopPrank(); + } + + function _depositToOrder(ITermMaxVault vault, ITermMaxOrder order, int256 amount) internal { + vm.startPrank(vault.curator()); + CurveCuts[] memory curveCuts = new CurveCuts[](1); + curveCuts[0] = order.orderConfig().curveCuts; + int256[] memory amounts = new int256[](1); + amounts[0] = amount; + ITermMaxOrder[] memory orders = new ITermMaxOrder[](1); + orders[0] = order; + uint256[] memory maxSupplies = new uint256[](1); + maxSupplies[0] = type(uint128).max; + vault.updateOrders(orders, amounts, maxSupplies, curveCuts); + vm.stopPrank(); + } +} diff --git a/test/mainnet-fork/mainnet/ForkGt.t.sol b/test/v2/mainnet-fork/mainnet/ForkGtV2.t.sol similarity index 99% rename from test/mainnet-fork/mainnet/ForkGt.t.sol rename to test/v2/mainnet-fork/mainnet/ForkGtV2.t.sol index 9d4bf06..5cb8564 100644 --- a/test/mainnet-fork/mainnet/ForkGt.t.sol +++ b/test/v2/mainnet-fork/mainnet/ForkGtV2.t.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.27; -import "../GtBaseTest.t.sol"; +import "../GtBaseTestV2.t.sol"; -contract ForkGt is GtBaseTest { +contract ForkGtV2 is GtBaseTestV2 { string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); string DATA_PATH = string.concat(vm.projectRoot(), "/test/testdata/fork/mainnet.json"); diff --git a/test/v2/mainnet-fork/mainnet/ForkMarketV2.t.sol b/test/v2/mainnet-fork/mainnet/ForkMarketV2.t.sol new file mode 100644 index 0000000..1240ad3 --- /dev/null +++ b/test/v2/mainnet-fork/mainnet/ForkMarketV2.t.sol @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "../MarketBaseTestV2.t.sol"; + +contract ForkMarketV2 is MarketBaseTestV2 { + string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); + string DATA_PATH = string.concat(vm.projectRoot(), "/test/testdata/fork/mainnet.json"); + + function _getForkRpcUrl() internal view override returns (string memory) { + return MAINNET_RPC_URL; + } + + function _getDataPath() internal view override returns (string memory) { + return DATA_PATH; + } + + function _finishSetup() internal override {} + + function testMint() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + MarketTestRes memory res = _initializeMarketTestRes(tokenPair); + _testMint(res); + } + } + + function testRedeem() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + MarketTestRes memory res = _initializeMarketTestRes(tokenPair); + _testRedeem(res); + } + } + + function testIssueFtByGtWhenSwap() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + MarketTestRes memory res = _initializeMarketTestRes(tokenPair); + uint256 collateralAmt = res.orderInitialAmount / 10; + uint128 debtAmt = uint128(res.orderInitialAmount / 100); + _testIssueFtByGtWhenSwap(res, collateralAmt, debtAmt); + } + } +} diff --git a/test/v2/mainnet-fork/mainnet/ForkPriceFeedV2.t.sol b/test/v2/mainnet-fork/mainnet/ForkPriceFeedV2.t.sol new file mode 100644 index 0000000..0a9596b --- /dev/null +++ b/test/v2/mainnet-fork/mainnet/ForkPriceFeedV2.t.sol @@ -0,0 +1,134 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {AggregatorV3Interface} from "@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.sol"; +import {TermMaxPriceFeedFactoryV2} from "contracts/v2/factory/TermMaxPriceFeedFactoryV2.sol"; +import "../ForkBaseTestV2.sol"; + +contract ForkPriceFeedV2 is ForkBaseTestV2 { + string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); + string DATA_PATH = string.concat(vm.projectRoot(), "/test/testdata/fork/mainnet.json"); + + function _getForkRpcUrl() internal view override returns (string memory) { + return MAINNET_RPC_URL; + } + + function _getDataPath() internal view override returns (string memory) { + return DATA_PATH; + } + + function _finishSetup() internal override {} + + function testPriceFeed() public { + TermMaxPriceFeedFactoryV2 priceFeedFactory = new TermMaxPriceFeedFactoryV2(); + address pendlePYLpOracle = 0x9a9Fa8338dd5E5B2188006f1Cd2Ef26d921650C2; + address pufferEthOracle; + { + address pufferEthToEth = 0x76A495b0bFfb53ef3F0E94ef0763e03cE410835C; + address ethToUsd = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419; + address pufEth = 0xD9A442856C234a39a81a089C06451EBAa4306a72; + AggregatorV3Interface pufferEthFeed = + AggregatorV3Interface(priceFeedFactory.createPriceFeedConverter(pufferEthToEth, ethToUsd, pufEth)); + (, int256 answer,,,) = pufferEthFeed.latestRoundData(); + console.log("pufferEth price feed description", pufferEthFeed.description()); + console.log("pufferEth price feed address", address(pufferEthFeed)); + console.log("pufferEth last answer", answer); + pufferEthOracle = address(pufferEthFeed); + } + + { + address pt_market = 0xB162B764044697cf03617C2EFbcB1f42e31E4766; + address susdeToUsd = 0xFF3BC18cCBd5999CE63E788A1c250a88626aD099; + + AggregatorV3Interface ptFeed = AggregatorV3Interface( + priceFeedFactory.createPTWithPriceFeed(pendlePYLpOracle, pt_market, 900, susdeToUsd) + ); + (, int256 answer,,,) = ptFeed.latestRoundData(); + console.log("pt_sUsde_29MAY2025 price feed description", ptFeed.description()); + console.log("pt_sUsde_29MAY2025 price feed address", address(ptFeed)); + console.log("pt_sUsde_29MAY2025 last answer", answer); + } + + { + address USUALUSDCPlusVault = 0xd63070114470f685b75B74D60EEc7c1113d33a3D; + address usdcToUsd = 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6; + AggregatorV3Interface usdcPlusFeed = + AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdcToUsd, USUALUSDCPlusVault)); + (, int256 answer,,,) = usdcPlusFeed.latestRoundData(); + console.log("USUALUSDC+ price feed description", usdcPlusFeed.description()); + console.log("USUALUSDC+ price feed address", address(usdcPlusFeed)); + console.log("USUALUSDC+ last answer", answer); + } + + { + address MCwETHVault = 0x9a8bC3B04b7f3D87cfC09ba407dCED575f2d61D8; + address wethToUsd = 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419; + AggregatorV3Interface wethFeed = + AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(wethToUsd, MCwETHVault)); + (, int256 answer,,,) = wethFeed.latestRoundData(); + console.log("MCwETH price feed description", wethFeed.description()); + console.log("MCwETH price feed address", address(wethFeed)); + console.log("MCwETH last answer", answer); + } + + { + address PT_pufETH_26JUN2025_market = 0x58612beB0e8a126735b19BB222cbC7fC2C162D2a; + AggregatorV3Interface ptFeed = AggregatorV3Interface( + priceFeedFactory.createPTWithPriceFeed( + pendlePYLpOracle, PT_pufETH_26JUN2025_market, 900, pufferEthOracle + ) + ); + (, int256 answer,,,) = ptFeed.latestRoundData(); + console.log("pt_pufETH_26JUN2025 price feed description", ptFeed.description()); + console.log("pt_pufETH_26JUN2025 price feed address", address(ptFeed)); + console.log("pt_pufETH_26JUN2025 last answer", answer); + } + + { + address eUSDeVault = 0x90D2af7d622ca3141efA4d8f1F24d86E5974Cc8F; + address usdeToUsd = 0xa569d910839Ae8865Da8F8e70FfFb0cBA869F961; + AggregatorV3Interface usdeFeed = + AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdeToUsd, eUSDeVault)); + (, int256 answer,,,) = usdeFeed.latestRoundData(); + console.log("eUSDe price feed description", usdeFeed.description()); + console.log("eUSDe price feed address", address(usdeFeed)); + console.log("eUSDe last answer", answer); + } + + { + address PT_USD0PlusPlus_26JUN2025_market = 0x048680F64d6DFf1748ba6D9a01F578433787e24B; + address usd0PlusPlusToUsd = 0xFC9e30Cf89f8A00dba3D34edf8b65BCDAdeCC1cB; + AggregatorV3Interface usd0PlusPlusFeed = AggregatorV3Interface( + priceFeedFactory.createPTWithPriceFeed( + pendlePYLpOracle, PT_USD0PlusPlus_26JUN2025_market, 900, usd0PlusPlusToUsd + ) + ); + (, int256 answer,,,) = usd0PlusPlusFeed.latestRoundData(); + console.log("PT_USD0PlusPlus_26JUN2025_market price feed description", usd0PlusPlusFeed.description()); + console.log("PT_USD0PlusPlus_26JUN2025_market price feed address", address(usd0PlusPlusFeed)); + console.log("PT_USD0PlusPlus_26JUN2025_market last answer", answer); + } + + { + address upUSDCVault = 0x80E1048eDE66ec4c364b4F22C8768fc657FF6A42; + address usdcToUsd = 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6; + AggregatorV3Interface usdcFeed = + AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usdcToUsd, upUSDCVault)); + (, int256 answer,,,) = usdcFeed.latestRoundData(); + console.log("upUSDC price feed description", usdcFeed.description()); + console.log("upUSDC price feed address", address(usdcFeed)); + console.log("upUSDC last answer", answer); + } + + { + address usualxVault = 0x06B964d96f5dCF7Eae9d7C559B09EDCe244d4B8E; + address usualToUsd = 0x2240AE461B34CC56D654ba5FA5830A243Ca54840; + AggregatorV3Interface usualFeed = + AggregatorV3Interface(priceFeedFactory.createPriceFeedWithERC4626(usualToUsd, usualxVault)); + (, int256 answer,,,) = usualFeed.latestRoundData(); + console.log("usualx price feed description", usualFeed.description()); + console.log("usualx price feed address", address(usualFeed)); + console.log("usualx last answer", answer); + } + } +} diff --git a/test/v2/mainnet-fork/mainnet/ForkVaultV2.t.sol b/test/v2/mainnet-fork/mainnet/ForkVaultV2.t.sol new file mode 100644 index 0000000..6aa6f1f --- /dev/null +++ b/test/v2/mainnet-fork/mainnet/ForkVaultV2.t.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "../VaultBaseTestV2.t.sol"; + +contract ForkVaultV2 is VaultBaseTestV2 { + string MAINNET_RPC_URL = vm.envString("MAINNET_RPC_URL"); + string DATA_PATH = string.concat(vm.projectRoot(), "/test/testdata/fork/mainnet.json"); + + function _getForkRpcUrl() internal view override returns (string memory) { + return MAINNET_RPC_URL; + } + + function _getDataPath() internal view override returns (string memory) { + return DATA_PATH; + } + + function _finishSetup() internal override {} + + function testDeposit() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + VaultTestRes memory res = _initializeVaultTestRes(tokenPair); + _testDeposit(res); + } + } + + function testRedeem() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + VaultTestRes memory res = _initializeVaultTestRes(tokenPair); + _testRedeem(res); + } + } + + function testBadDebt() public { + for (uint256 i = 0; i < tokenPairs.length; i++) { + string memory tokenPair = tokenPairs[i]; + VaultTestRes memory res = _initializeVaultTestRes(tokenPair); + _testBadDebt(res); + } + } +} diff --git a/test/v2/tokenomics/PreTMX.t.sol b/test/v2/tokenomics/PreTMX.t.sol new file mode 100644 index 0000000..82d856c --- /dev/null +++ b/test/v2/tokenomics/PreTMX.t.sol @@ -0,0 +1,698 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.20; + +import {Test, console} from "forge-std/Test.sol"; +import {PreTMX} from "contracts/v2/tokenomics/PreTMX.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {IERC20Errors} from "@openzeppelin/contracts/interfaces/draft-IERC6093.sol"; + +contract PreTMXTest is Test { + PreTMX public preTMX; + address public admin; + address public user1; + address public user2; + uint256 public initialSupply = 1e9 ether; + + function setUp() public { + admin = address(1); + user1 = address(2); + user2 = address(3); + + vm.startPrank(admin); + preTMX = new PreTMX(admin); + vm.stopPrank(); + } + + function test_InitialState() public { + assertEq(preTMX.name(), "Pre TermMax Token"); + assertEq(preTMX.symbol(), "pTMX"); + assertEq(preTMX.totalSupply(), initialSupply); + assertEq(preTMX.balanceOf(admin), initialSupply); + assertTrue(preTMX.transferRestricted()); + assertEq(preTMX.owner(), admin); + (bool isTransferFromWhitelisted, bool isTransferToWhitelisted) = preTMX.whitelistMapping(admin); + assertTrue(isTransferFromWhitelisted); + assertTrue(isTransferToWhitelisted); + } + + function test_EnableTransfer() public { + vm.prank(admin); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferRestricted(false); + + preTMX.enableTransfer(); + assertFalse(preTMX.transferRestricted()); + } + + function test_DisableTransfer() public { + vm.startPrank(admin); + preTMX.enableTransfer(); + assertFalse(preTMX.transferRestricted()); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferRestricted(true); + + preTMX.disableTransfer(); + assertTrue(preTMX.transferRestricted()); + vm.stopPrank(); + } + + function test_EnableTransfer_NotAdmin() public { + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.enableTransfer(); + } + + function test_DisableTransfer_NotAdmin() public { + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.disableTransfer(); + } + + function test_Transfer_WhenRestricted_AdminWhitelisted() public { + // Admin can transfer to another admin (both whitelisted) + vm.prank(admin); + + vm.expectEmit(true, true, false, true); + emit IERC20.Transfer(admin, admin, 1000); + + bool success = preTMX.transfer(admin, 1000); + assertTrue(success); + assertEq(preTMX.balanceOf(admin), initialSupply); // Same balance since transferring to self + } + + function test_Transfer_WhenNotRestricted() public { + vm.startPrank(admin); + preTMX.enableTransfer(); + + vm.expectEmit(true, true, false, true); + emit IERC20.Transfer(admin, user1, 1000); + + bool success = preTMX.transfer(user1, 1000); + assertTrue(success); + assertEq(preTMX.balanceOf(user1), 1000); + assertEq(preTMX.balanceOf(admin), initialSupply - 1000); + vm.stopPrank(); + } + + function test_TransferFrom_WhenNotRestricted() public { + vm.startPrank(admin); + preTMX.enableTransfer(); + preTMX.approve(user1, 1000); + vm.stopPrank(); + + vm.prank(user1); + bool success = preTMX.transferFrom(admin, user2, 1000); + + assertTrue(success); + assertEq(preTMX.balanceOf(user2), 1000); + assertEq(preTMX.balanceOf(admin), initialSupply - 1000); + } + + function test_TransferFrom_WhenRestricted_AdminToAdmin() public { + vm.startPrank(admin); + preTMX.approve(admin, 1000); + + bool success = preTMX.transferFrom(admin, admin, 1000); + assertTrue(success); + assertEq(preTMX.balanceOf(admin), initialSupply); // Same balance since transferring to self + vm.stopPrank(); + } + + function test_Mint_WhenRestricted() public { + // Minting should work even when transfers are restricted + vm.prank(admin); + + vm.expectEmit(true, true, false, true); + emit IERC20.Transfer(address(0), user1, 5000); + + preTMX.mint(user1, 5000); + + assertEq(preTMX.balanceOf(user1), 5000); + assertEq(preTMX.totalSupply(), initialSupply + 5000); + } + + function test_Mint_WhenNotRestricted() public { + vm.startPrank(admin); + preTMX.enableTransfer(); + + vm.expectEmit(true, true, false, true); + emit IERC20.Transfer(address(0), user1, 5000); + + preTMX.mint(user1, 5000); + + assertEq(preTMX.balanceOf(user1), 5000); + assertEq(preTMX.totalSupply(), initialSupply + 5000); + vm.stopPrank(); + } + + function test_Mint_NotAdmin() public { + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.mint(user1, 5000); + } + + function test_Burn_WhenRestricted() public { + // First give some tokens to user1 via minting (bypasses restrictions) + vm.prank(admin); + preTMX.mint(user1, 5000); + + // Only admin (owner) can burn tokens, not user1 + vm.prank(admin); + + vm.expectEmit(true, true, false, true); + emit IERC20.Transfer(admin, address(0), 2000); + emit IERC20.Transfer(admin, address(0), 2000); + + preTMX.burn(2000); + + assertEq(preTMX.balanceOf(admin), initialSupply - 2000); + assertEq(preTMX.balanceOf(admin), initialSupply - 2000); + assertEq(preTMX.totalSupply(), initialSupply + 5000 - 2000); + } + + function test_Burn_WhenNotRestricted() public { + // First transfer some tokens to user1 + // First transfer some tokens to user1 + vm.startPrank(admin); + preTMX.enableTransfer(); + preTMX.transfer(user1, 5000); + + // Only admin (owner) can burn tokens + // Only admin (owner) can burn tokens + vm.expectEmit(true, true, false, true); + emit IERC20.Transfer(admin, address(0), 2000); + emit IERC20.Transfer(admin, address(0), 2000); + + preTMX.burn(2000); + + assertEq(preTMX.balanceOf(admin), initialSupply - 5000 - 2000); + assertEq(preTMX.balanceOf(admin), initialSupply - 5000 - 2000); + assertEq(preTMX.totalSupply(), initialSupply - 2000); + vm.stopPrank(); + vm.stopPrank(); + } + + function test_Burn_InsufficientBalance() public { + // Admin tries to burn more than they have + vm.prank(admin); + vm.expectRevert( + abi.encodeWithSelector( + IERC20Errors.ERC20InsufficientBalance.selector, admin, initialSupply, initialSupply + 1 + ) + ); + preTMX.burn(initialSupply + 1); + } + + function test_Burn_NotOwner() public { + // Give tokens to user1 via minting + vm.prank(admin); + preTMX.mint(user1, 1000); + + // user1 tries to burn but should fail because only owner can burn + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.burn(500); + + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.burn(500); + } + + function test_FuzzTransfer_WhenNotRestricted(uint256 amount) public { + // Bound the amount to a reasonable range to avoid overflow issues + amount = bound(amount, 1, initialSupply); + + vm.startPrank(admin); + preTMX.enableTransfer(); + bool success = preTMX.transfer(user1, amount); + vm.stopPrank(); + + assertTrue(success); + assertEq(preTMX.balanceOf(user1), amount); + assertEq(preTMX.balanceOf(admin), initialSupply - amount); + } + + function test_FuzzMint(address to, uint256 amount) public { + // Avoid minting to zero address and zero amount + vm.assume(to != address(0) && to != admin); + amount = bound(amount, 1, type(uint256).max - initialSupply); + + vm.prank(admin); + preTMX.mint(to, amount); + + assertEq(preTMX.balanceOf(to), amount); + assertEq(preTMX.totalSupply(), initialSupply + amount); + } + + // Additional tests for whitelisting functionality + function test_WhitelistingState() public { + // Admin should be whitelisted by default + (bool isTransferFromWhitelisted, bool isTransferToWhitelisted) = preTMX.whitelistMapping(admin); + assertTrue(isTransferFromWhitelisted); + assertTrue(isTransferToWhitelisted); + + // Other users should not be whitelisted + (isTransferFromWhitelisted, isTransferToWhitelisted) = preTMX.whitelistMapping(user1); + assertFalse(isTransferFromWhitelisted); + assertFalse(isTransferToWhitelisted); + } + + function test_WhitelistTransfer() public { + // Initially user1 is not whitelisted + (bool isTransferFromWhitelisted, bool isTransferToWhitelisted) = preTMX.whitelistMapping(user1); + assertFalse(isTransferFromWhitelisted); + assertFalse(isTransferToWhitelisted); + + // Admin whitelists user1 for sending only + vm.prank(admin); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(user1, true, false); + + preTMX.whitelistTransfer(user1, true, false); + + // Verify user1 is whitelisted for sending but not receiving + (isTransferFromWhitelisted, isTransferToWhitelisted) = preTMX.whitelistMapping(user1); + assertTrue(isTransferFromWhitelisted); + assertFalse(isTransferToWhitelisted); + } + + function test_WhitelistTransfer_BothFlags() public { + // Initially user1 is not whitelisted + (bool isTransferFromWhitelisted, bool isTransferToWhitelisted) = preTMX.whitelistMapping(user1); + assertFalse(isTransferFromWhitelisted); + assertFalse(isTransferToWhitelisted); + + // Admin whitelists user1 for both sending and receiving + vm.prank(admin); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(user1, true, true); + + preTMX.whitelistTransfer(user1, true, true); + + (isTransferFromWhitelisted, isTransferToWhitelisted) = preTMX.whitelistMapping(user1); + assertTrue(isTransferFromWhitelisted); + assertTrue(isTransferToWhitelisted); + } + + function test_WhitelistTransfer_Unwhitelist() public { + // First whitelist user1 for both + vm.startPrank(admin); + preTMX.whitelistTransfer(user1, true, true); + (bool isTransferFromWhitelisted, bool isTransferToWhitelisted) = preTMX.whitelistMapping(user1); + assertTrue(isTransferFromWhitelisted); + assertTrue(isTransferToWhitelisted); + + // Then unwhitelist user1 completely + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(user1, false, false); + + preTMX.whitelistTransfer(user1, false, false); + // Verify user1 is no longer whitelisted + (isTransferFromWhitelisted, isTransferToWhitelisted) = preTMX.whitelistMapping(user1); + assertFalse(isTransferFromWhitelisted); + assertFalse(isTransferToWhitelisted); + vm.stopPrank(); + } + + function test_WhitelistTransfer_NotAdmin() public { + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.whitelistTransfer(user2, true, true); + } + + function test_WhitelistTransfer_EnablesTransfer() public { + // Give tokens to user1 via minting and whitelist user1 to send + vm.startPrank(admin); + preTMX.mint(user1, 1000); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(user1, true, false); + + preTMX.whitelistTransfer(user1, true, false); + vm.stopPrank(); + + // Now user1 can transfer to admin (admin is whitelisted to receive) + vm.prank(user1); + bool success = preTMX.transfer(admin, 500); + assertTrue(success); + assertEq(preTMX.balanceOf(user1), 500); + assertEq(preTMX.balanceOf(admin), initialSupply + 500); + } + + function test_BothWhitelisted_EnablesTransfer() public { + // Whitelist user1 to send and user2 to receive + vm.startPrank(admin); + preTMX.mint(user1, 1000); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(user1, true, false); + + preTMX.whitelistTransfer(user1, true, false); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(user2, false, true); + + preTMX.whitelistTransfer(user2, false, true); + vm.stopPrank(); + + // Now user1 can transfer to user2 + vm.prank(user1); + bool success = preTMX.transfer(user2, 300); + assertTrue(success); + assertEq(preTMX.balanceOf(user1), 700); + assertEq(preTMX.balanceOf(user2), 300); + } + + function test_WhitelistTransfer_WithTransferFrom() public { + // Test whitelisting with transferFrom function + vm.startPrank(admin); + preTMX.mint(user1, 1000); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(user1, true, false); + + preTMX.whitelistTransfer(user1, true, false); + vm.stopPrank(); + + // user1 approves admin to spend tokens + vm.prank(user1); + preTMX.approve(admin, 500); + + // admin can transfer from user1 to admin (admin is whitelisted to receive) + vm.prank(admin); + bool success = preTMX.transferFrom(user1, admin, 500); + assertTrue(success); + assertEq(preTMX.balanceOf(user1), 500); + assertEq(preTMX.balanceOf(admin), initialSupply + 500); + } + + function test_UnwhitelistingBreaksTransfer() public { + // First set up a working scenario + vm.startPrank(admin); + preTMX.mint(user1, 1000); + preTMX.whitelistTransfer(user1, true, false); + vm.stopPrank(); + + // Verify transfer works (user1 can send to admin who is whitelisted to receive) + vm.prank(user1); + preTMX.transfer(admin, 100); + assertEq(preTMX.balanceOf(admin), initialSupply + 100); + + // Now unwhitelist user1 from sending + vm.prank(admin); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(user1, false, false); + + preTMX.whitelistTransfer(user1, false, false); + + // Transfer should now fail + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(PreTMX.TransferNotWhitelisted.selector, user1, user2)); + preTMX.transfer(user2, 100); + } + + function test_RestrictedTransfer_FromNotWhitelisted() public { + // Give tokens to user1 via minting (bypasses restrictions) + vm.prank(admin); + preTMX.mint(user1, 1000); + + // user1 (not whitelisted) tries to transfer - should fail + vm.prank(user1); + preTMX.transfer(admin, 500); + } + + function test_RestrictedTransferFrom_FromNotWhitelisted() public { + // Give tokens to user1 and approve user2 + vm.prank(admin); + preTMX.mint(user1, 1000); + + vm.prank(user1); + preTMX.approve(user2, 500); + + // user2 tries to transfer from user1 (not whitelisted) - should fail + vm.prank(user2); + vm.expectRevert(abi.encodeWithSelector(PreTMX.TransferNotWhitelisted.selector, user1, user2)); + preTMX.transferFrom(user1, user2, 500); + } + + function test_MintAndBurnBypassRestrictions() public { + // Verify that minting and burning work even when transfers are restricted + assertTrue(preTMX.transferRestricted()); + + // Mint to non-whitelisted user should work + vm.prank(admin); + preTMX.mint(user1, 1000); + assertEq(preTMX.balanceOf(user1), 1000); + + // Only owner can burn tokens (admin in this case) + vm.prank(admin); + preTMX.burn(500); + assertEq(preTMX.balanceOf(admin), initialSupply - 500); + assertEq(preTMX.totalSupply(), initialSupply + 1000 - 500); + assertEq(preTMX.balanceOf(admin), initialSupply - 500); + assertEq(preTMX.totalSupply(), initialSupply + 1000 - 500); + } + + function test_FuzzWhitelisting(address user, bool fromWhitelisted, bool toWhitelisted) public { + vm.assume(user != address(0) && user != admin); + + vm.startPrank(admin); + preTMX.whitelistTransfer(user, fromWhitelisted, toWhitelisted); + vm.stopPrank(); + + // Verify the whitelisting state + (bool isTransferFromWhitelisted, bool isTransferToWhitelisted) = preTMX.whitelistMapping(user); + assertEq(isTransferFromWhitelisted, fromWhitelisted); + assertEq(isTransferToWhitelisted, toWhitelisted); + } + + function test_WhitelistSelf() public { + // Test admin whitelisting themselves (should work but redundant since already whitelisted) + vm.startPrank(admin); + + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(admin, false, false); + + preTMX.whitelistTransfer(admin, false, false); + (bool isTransferFromWhitelisted, bool isTransferToWhitelisted) = preTMX.whitelistMapping(admin); + assertFalse(isTransferFromWhitelisted); + assertFalse(isTransferToWhitelisted); + + // Re-whitelist admin + vm.expectEmit(true, true, true, true); + emit PreTMX.TransferWhitelisted(admin, true, true); + + preTMX.whitelistTransfer(admin, true, true); + (isTransferFromWhitelisted, isTransferToWhitelisted) = preTMX.whitelistMapping(admin); + assertTrue(isTransferFromWhitelisted); + assertTrue(isTransferToWhitelisted); + vm.stopPrank(); + } + + // ============ Ownership Transfer Tests ============ + + function test_InitialOwnership() public { + assertEq(preTMX.owner(), admin); + assertEq(preTMX.pendingOwner(), address(0)); + } + + function test_TransferOwnership() public { + vm.prank(admin); + + vm.expectEmit(true, true, true, true); + emit Ownable2Step.OwnershipTransferStarted(admin, user1); + + preTMX.transferOwnership(user1); + + // Ownership should not change until accepted + assertEq(preTMX.owner(), admin); + assertEq(preTMX.pendingOwner(), user1); + } + + function test_TransferOwnership_NotOwner() public { + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.transferOwnership(user2); + } + + function test_AcceptOwnership() public { + // Start ownership transfer + vm.prank(admin); + preTMX.transferOwnership(user1); + + // Accept ownership + vm.prank(user1); + + vm.expectEmit(true, true, true, true); + emit Ownable.OwnershipTransferred(admin, user1); + + preTMX.acceptOwnership(); + + // Verify ownership has changed + assertEq(preTMX.owner(), user1); + assertEq(preTMX.pendingOwner(), address(0)); + } + + function test_AcceptOwnership_NotPendingOwner() public { + // Start ownership transfer to user1 + vm.prank(admin); + preTMX.transferOwnership(user1); + + // user2 tries to accept (should fail) + vm.prank(user2); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user2)); + preTMX.acceptOwnership(); + + // Ownership should remain unchanged + assertEq(preTMX.owner(), admin); + assertEq(preTMX.pendingOwner(), user1); + } + + function test_AcceptOwnership_NoPendingTransfer() public { + // Try to accept ownership when no transfer is pending + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.acceptOwnership(); + } + + function test_TransferOwnership_CancelPending() public { + // Start ownership transfer to user1 + vm.prank(admin); + preTMX.transferOwnership(user1); + assertEq(preTMX.pendingOwner(), user1); + + // Cancel by transferring to zero address + vm.prank(admin); + + vm.expectEmit(true, true, true, true); + emit Ownable2Step.OwnershipTransferStarted(admin, address(0)); + + preTMX.transferOwnership(address(0)); + assertEq(preTMX.pendingOwner(), address(0)); + + // user1 should no longer be able to accept + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.acceptOwnership(); + } + + function test_TransferOwnership_ReplacePending() public { + // Start ownership transfer to user1 + vm.prank(admin); + preTMX.transferOwnership(user1); + assertEq(preTMX.pendingOwner(), user1); + + // Replace with transfer to user2 + vm.prank(admin); + + vm.expectEmit(true, true, true, true); + emit Ownable2Step.OwnershipTransferStarted(admin, user2); + + preTMX.transferOwnership(user2); + assertEq(preTMX.pendingOwner(), user2); + + // user1 should no longer be able to accept + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.acceptOwnership(); + + // user2 should be able to accept + vm.prank(user2); + preTMX.acceptOwnership(); + assertEq(preTMX.owner(), user2); + } + + function test_RenounceOwnership() public { + vm.prank(admin); + + vm.expectEmit(true, true, true, true); + emit Ownable.OwnershipTransferred(admin, address(0)); + + preTMX.renounceOwnership(); + + assertEq(preTMX.owner(), address(0)); + assertEq(preTMX.pendingOwner(), address(0)); + } + + function test_RenounceOwnership_NotOwner() public { + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.renounceOwnership(); + } + + function test_OwnershipTransfer_FunctionalityTransfers() public { + // Transfer ownership to user1 + vm.prank(admin); + preTMX.transferOwnership(user1); + + vm.prank(user1); + preTMX.acceptOwnership(); + + // Verify new owner can use onlyOwner functions + vm.prank(user1); + preTMX.enableTransfer(); + assertFalse(preTMX.transferRestricted()); + + vm.prank(user1); + preTMX.mint(user2, 1000); + assertEq(preTMX.balanceOf(user2), 1000); + + vm.prank(user1); + preTMX.whitelistTransfer(user2, true, true); + (bool isTransferFromWhitelisted, bool isTransferToWhitelisted) = preTMX.whitelistMapping(user2); + assertTrue(isTransferFromWhitelisted); + assertTrue(isTransferToWhitelisted); + + // Verify old owner can no longer use onlyOwner functions + vm.prank(admin); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, admin)); + preTMX.disableTransfer(); + } + + function test_OwnershipTransfer_WithPendingTransfer() public { + // Start ownership transfer to user1 + vm.prank(admin); + preTMX.transferOwnership(user1); + + // Verify admin can still use onlyOwner functions while transfer is pending + vm.prank(admin); + preTMX.enableTransfer(); + assertFalse(preTMX.transferRestricted()); + + // Verify user1 cannot use onlyOwner functions yet + vm.prank(user1); + vm.expectRevert(abi.encodeWithSelector(Ownable.OwnableUnauthorizedAccount.selector, user1)); + preTMX.disableTransfer(); + + // Complete the transfer + vm.prank(user1); + preTMX.acceptOwnership(); + + // Now user1 can use onlyOwner functions + vm.prank(user1); + preTMX.disableTransfer(); + assertTrue(preTMX.transferRestricted()); + } + + function test_FuzzOwnershipTransfer(address newOwner) public { + vm.assume(newOwner != address(0) && newOwner != admin); + + // Transfer ownership + vm.prank(admin); + preTMX.transferOwnership(newOwner); + assertEq(preTMX.pendingOwner(), newOwner); + + // Accept ownership + vm.prank(newOwner); + preTMX.acceptOwnership(); + assertEq(preTMX.owner(), newOwner); + assertEq(preTMX.pendingOwner(), address(0)); + } +} diff --git a/test/v2/utils/DeployUtils.sol b/test/v2/utils/DeployUtils.sol new file mode 100644 index 0000000..d153c4a --- /dev/null +++ b/test/v2/utils/DeployUtils.sol @@ -0,0 +1,346 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {console} from "forge-std/Script.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +import {ITermMaxMarket, ITermMaxMarketV2, TermMaxMarketV2} from "contracts/v2/TermMaxMarketV2.sol"; +import {ITermMaxOrder, ISwapCallback, TermMaxOrderV2} from "contracts/v2/TermMaxOrderV2.sol"; +import {MockERC20, ERC20} from "contracts/v1/test/MockERC20.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {IMintableERC20} from "contracts/v1/tokens/IMintableERC20.sol"; +import {IMintableERC20V2, MintableERC20V2} from "contracts/v2/tokens/MintableERC20V2.sol"; +import {IGearingToken} from "contracts/v1/tokens/IGearingToken.sol"; +import {ITermMaxFactory, TermMaxFactoryV2} from "contracts/v2/factory/TermMaxFactoryV2.sol"; +import {TermMaxRouterV2} from "contracts/v2/router/TermMaxRouterV2.sol"; +import {IOracleV2, OracleAggregatorV2, AggregatorV3Interface} from "contracts/v2/oracle/OracleAggregatorV2.sol"; +import {IOracle} from "contracts/v1/oracle/IOracle.sol"; +import {MockOrderV2} from "contracts/v2/test/MockOrderV2.sol"; +import {VaultFactory, IVaultFactory} from "contracts/v1/factory/VaultFactory.sol"; +import {OrderManagerV2} from "contracts/v2/vault/OrderManagerV2.sol"; +import {TermMaxVaultV2, ITermMaxVault} from "contracts/v2/vault/TermMaxVaultV2.sol"; +import {AccessManager} from "contracts/v2/access/AccessManagerV2.sol"; +import { + VaultInitialParams, + MarketConfig, + MarketInitialParams, + LoanConfig, + OrderConfig, + CurveCut, + CurveCuts +} from "contracts/v1/storage/TermMaxStorage.sol"; +import {VaultInitialParamsV2} from "contracts/v2/storage/TermMaxStorageV2.sol"; +import {TermMaxVaultFactoryV2} from "contracts/v2/factory/TermMaxVaultFactoryV2.sol"; + +library DeployUtils { + bytes32 constant GT_ERC20 = keccak256("GearingTokenWithERC20"); + + struct SwapRange { + uint256 buyFtMax; + uint256 buyXtMax; + uint256 sellFtMax; + uint256 sellXtMax; + uint256 buyExactFtMax; + uint256 buyExactXtMax; + uint256 sellFtForExactTokenMax; + uint256 sellXtForExactTokenMax; + } + + struct Res { + ITermMaxVault vault; + IVaultFactory vaultFactory; + TermMaxFactoryV2 factory; + ITermMaxOrder order; + TermMaxRouterV2 router; + MarketConfig marketConfig; + OrderConfig orderConfig; + ITermMaxMarket market; + IMintableERC20 ft; + IMintableERC20 xt; + IGearingToken gt; + MockPriceFeed debtOracle; + MockPriceFeed collateralOracle; + OracleAggregatorV2 oracle; + MockERC20 collateral; + MockERC20 debt; + SwapRange swapRange; + } + + function deployMarket(address admin, MarketConfig memory marketConfig, uint32 maxLtv, uint32 liquidationLtv) + internal + returns (Res memory res) + { + res.factory = deployFactory(admin); + + res.collateral = new MockERC20("ETH", "ETH", 18); + res.debt = new MockERC20("DAI", "DAI", 8); + + res.debtOracle = new MockPriceFeed(admin); + res.collateralOracle = new MockPriceFeed(admin); + res.oracle = deployOracle(admin, 0); + + res.oracle.submitPendingOracle( + address(res.debt), IOracleV2.Oracle(res.debtOracle, res.debtOracle, 0, 0, 365 days, 0) + ); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 365 days, 0) + ); + + res.oracle.acceptPendingOracle(address(res.debt)); + res.oracle.acceptPendingOracle(address(res.collateral)); + + MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + roundId: 1, + answer: int256(1e1 ** res.collateralOracle.decimals()), + startedAt: 0, + updatedAt: 0, + answeredInRound: 0 + }); + res.collateralOracle.updateRoundData(roundData); + + MarketInitialParams memory initialParams = MarketInitialParams({ + collateral: address(res.collateral), + debtToken: res.debt, + admin: admin, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: LoanConfig({ + oracle: IOracle(address(res.oracle)), + liquidationLtv: liquidationLtv, + maxLtv: maxLtv, + liquidatable: true + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "DAI-ETH", + tokenSymbol: "DAI-ETH" + }); + + res.marketConfig = marketConfig; + res.market = ITermMaxMarket(res.factory.createMarket(GT_ERC20, initialParams, 0)); + + (res.ft, res.xt, res.gt,,) = res.market.tokens(); + } + + function deployMarket( + address admin, + MarketConfig memory marketConfig, + uint32 maxLtv, + uint32 liquidationLtv, + address collateral, + address debt + ) internal returns (Res memory res) { + res.factory = deployFactory(admin); + + res.collateral = MockERC20(collateral); + res.debt = MockERC20(debt); + + res.debtOracle = new MockPriceFeed(admin); + res.collateralOracle = new MockPriceFeed(admin); + res.oracle = deployOracle(admin, 0); + + res.oracle.submitPendingOracle( + address(res.debt), IOracleV2.Oracle(res.debtOracle, res.debtOracle, 0, 0, 365 days, 0) + ); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 365 days, 0) + ); + res.oracle.acceptPendingOracle(address(res.debt)); + res.oracle.acceptPendingOracle(address(res.collateral)); + + MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + roundId: 1, + answer: int256(1e1 ** res.collateralOracle.decimals()), + startedAt: 0, + updatedAt: 0, + answeredInRound: 0 + }); + res.collateralOracle.updateRoundData(roundData); + + MarketInitialParams memory initialParams = MarketInitialParams({ + collateral: address(res.collateral), + debtToken: res.debt, + admin: admin, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: LoanConfig({ + oracle: IOracle(address(res.oracle)), + liquidationLtv: liquidationLtv, + maxLtv: maxLtv, + liquidatable: true + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "DAI-ETH", + tokenSymbol: "DAI-ETH" + }); + + res.marketConfig = marketConfig; + res.market = ITermMaxMarket(res.factory.createMarket(GT_ERC20, initialParams, 0)); + + (res.ft, res.xt, res.gt,,) = res.market.tokens(); + } + + function deployMockMarket2( + address admin, + IERC20 debt, + uint256 duration, + MarketConfig memory mc, + uint32 maxLtv, + uint32 liquidationLtv + ) internal returns (Res memory res) { + res.factory = deployFactoryWithMockOrder(admin); + res.debt = MockERC20(address(debt)); + MarketConfig memory marketConfig = mc; + marketConfig.maturity += uint64(duration * 1 days); + + res.collateral = new MockERC20("ETH", "ETH", 18); + + res.debtOracle = new MockPriceFeed(admin); + res.collateralOracle = new MockPriceFeed(admin); + res.oracle = deployOracle(admin, 0); + + res.oracle.submitPendingOracle( + address(res.debt), IOracleV2.Oracle(res.debtOracle, res.debtOracle, 0, 0, 365 days, 0) + ); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 365 days, 0) + ); + res.oracle.acceptPendingOracle(address(res.debt)); + res.oracle.acceptPendingOracle(address(res.collateral)); + + MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + roundId: 1, + answer: int256(1e1 ** res.collateralOracle.decimals()), + startedAt: 0, + updatedAt: 0, + answeredInRound: 0 + }); + res.collateralOracle.updateRoundData(roundData); + + MarketInitialParams memory initialParams = MarketInitialParams({ + collateral: address(res.collateral), + debtToken: res.debt, + admin: admin, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: LoanConfig({ + oracle: IOracle(address(res.oracle)), + liquidationLtv: liquidationLtv, + maxLtv: maxLtv, + liquidatable: true + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "DAI-ETH", + tokenSymbol: "DAI-ETH" + }); + + res.marketConfig = marketConfig; + res.market = ITermMaxMarket(res.factory.createMarket(GT_ERC20, initialParams, 0)); + + (res.ft, res.xt, res.gt,,) = res.market.tokens(); + } + + function deployMockMarket(address admin, MarketConfig memory marketConfig, uint32 maxLtv, uint32 liquidationLtv) + internal + returns (Res memory res) + { + res.factory = deployFactoryWithMockOrder(admin); + + res.collateral = new MockERC20("ETH", "ETH", 18); + res.debt = new MockERC20("DAI", "DAI", 8); + + res.debtOracle = new MockPriceFeed(admin); + res.collateralOracle = new MockPriceFeed(admin); + res.oracle = deployOracle(admin, 0); + + res.oracle.submitPendingOracle( + address(res.debt), IOracleV2.Oracle(res.debtOracle, res.debtOracle, 0, 0, 365 days, 0) + ); + res.oracle.submitPendingOracle( + address(res.collateral), IOracleV2.Oracle(res.collateralOracle, res.collateralOracle, 0, 0, 365 days, 0) + ); + res.oracle.acceptPendingOracle(address(res.debt)); + res.oracle.acceptPendingOracle(address(res.collateral)); + + MockPriceFeed.RoundData memory roundData = MockPriceFeed.RoundData({ + roundId: 1, + answer: int256(1e1 ** res.collateralOracle.decimals()), + startedAt: 0, + updatedAt: 0, + answeredInRound: 0 + }); + res.collateralOracle.updateRoundData(roundData); + + MarketInitialParams memory initialParams = MarketInitialParams({ + collateral: address(res.collateral), + debtToken: res.debt, + admin: admin, + gtImplementation: address(0), + marketConfig: marketConfig, + loanConfig: LoanConfig({ + oracle: IOracle(address(res.oracle)), + liquidationLtv: liquidationLtv, + maxLtv: maxLtv, + liquidatable: true + }), + gtInitalParams: abi.encode(type(uint256).max), + tokenName: "DAI-ETH", + tokenSymbol: "DAI-ETH" + }); + + res.marketConfig = marketConfig; + res.market = ITermMaxMarket(res.factory.createMarket(GT_ERC20, initialParams, 0)); + + (res.ft, res.xt, res.gt,,) = res.market.tokens(); + } + + function deployOrder( + ITermMaxMarket market, + address maker, + uint256 maxXtReserve, + ISwapCallback swapTrigger, + CurveCuts memory curveCuts + ) public returns (ITermMaxOrder order) { + order = market.createOrder(maker, maxXtReserve, swapTrigger, curveCuts); + } + + function deployFactory(address admin) public returns (TermMaxFactoryV2 factory) { + address tokenImplementation = address(new MintableERC20V2()); + address orderImplementation = address(new TermMaxOrderV2()); + TermMaxMarketV2 m = new TermMaxMarketV2(tokenImplementation, orderImplementation); + factory = new TermMaxFactoryV2(admin, address(m)); + } + + function deployFactoryWithMockOrder(address admin) public returns (TermMaxFactoryV2 factory) { + address tokenImplementation = address(new MintableERC20V2()); + address orderImplementation = address(new MockOrderV2()); + TermMaxMarketV2 m = new TermMaxMarketV2(tokenImplementation, orderImplementation); + factory = new TermMaxFactoryV2(admin, address(m)); + } + + function deployOracle(address admin, uint256 timeLock) public returns (OracleAggregatorV2 oracle) { + oracle = new OracleAggregatorV2(admin, timeLock); + } + + function deployRouter(address admin) public returns (TermMaxRouterV2 router) { + TermMaxRouterV2 implementation = new TermMaxRouterV2(); + bytes memory data = abi.encodeCall(TermMaxRouterV2.initialize, admin); + ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), data); + router = TermMaxRouterV2(address(proxy)); + } + + function deployVault(VaultInitialParamsV2 memory initialParams) public returns (ITermMaxVault vault) { + OrderManagerV2 orderManager = new OrderManagerV2(); + TermMaxVaultV2 implementation = new TermMaxVaultV2(address(orderManager)); + TermMaxVaultFactoryV2 vaultFactory = new TermMaxVaultFactoryV2(address(implementation)); + + vault = ITermMaxVault(vaultFactory.createVault(initialParams, 0)); + } + + function deployAccessManager(address admin) internal returns (AccessManager accessManager) { + AccessManager implementation = new AccessManager(); + bytes memory data = abi.encodeCall(AccessManager.initialize, admin); + ERC1967Proxy proxy = new ERC1967Proxy(address(implementation), data); + accessManager = AccessManager(address(proxy)); + } +} diff --git a/test/v2/utils/JSONLoader.sol b/test/v2/utils/JSONLoader.sol new file mode 100644 index 0000000..8692ca5 --- /dev/null +++ b/test/v2/utils/JSONLoader.sol @@ -0,0 +1,113 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import "forge-std/Test.sol"; +import {StateChecker} from "./StateChecker.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; +import {MockPriceFeed} from "contracts/v1/test/MockPriceFeed.sol"; +import {DeployUtils} from "./DeployUtils.sol"; + +library JSONLoader { + Vm constant vm = Vm(address(uint160(uint256(keccak256("hevm cheat code"))))); + + function getOrderStateFromJson(string memory testdataJSON, string memory key) + internal + pure + returns (StateChecker.OrderState memory state) + { + state.ftReserve = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".ftReserve"))); + state.xtReserve = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".xtReserve"))); + } + + function getMarketConfigFromJson(address treasurer, string memory testdataJSON, string memory key) + internal + pure + returns (MarketConfig memory marketConfig) + { + marketConfig.treasurer = treasurer; + marketConfig.maturity = uint64(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".maturity")))); + marketConfig.feeConfig.mintGtFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".mintGtFeeRatio")))); + marketConfig.feeConfig.mintGtFeeRef = + uint32(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".mintGtFeeRef")))); + marketConfig.feeConfig.lendTakerFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".lendTakerFeeRatio")))); + marketConfig.feeConfig.borrowTakerFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".borrowTakerFeeRatio")))); + marketConfig.feeConfig.lendMakerFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".lendMakerFeeRatio")))); + marketConfig.feeConfig.borrowMakerFeeRatio = + uint32(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".borrowMakerFeeRatio")))); + } + + function getOrderConfigFromJson(string memory testdataJSON, string memory key) + internal + pure + returns (OrderConfig memory orderConfig) + { + orderConfig.maxXtReserve = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".maxXtReserve"))); + orderConfig.gtId = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".gtId"))); + + { + string memory curveCutsPath = string.concat(key, ".borrowCurveCuts"); + uint256 length = + vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".borrowCurveCuts.length"))); + orderConfig.curveCuts.borrowCurveCuts = new CurveCut[](length); + + for (uint256 i = 0; i < length; i++) { + string memory indexPath = string.concat(curveCutsPath, ".", vm.toString(i)); + orderConfig.curveCuts.borrowCurveCuts[i].xtReserve = + vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(indexPath, ".xtReserve"))); + orderConfig.curveCuts.borrowCurveCuts[i].liqSquare = + vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(indexPath, ".liqSquare"))); + orderConfig.curveCuts.borrowCurveCuts[i].offset = + vm.parseInt(vm.parseJsonString(testdataJSON, string.concat(indexPath, ".offset"))); + } + } + { + string memory curveCutsPath = string.concat(key, ".lendCurveCuts"); + uint256 length = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".lendCurveCuts.length"))); + orderConfig.curveCuts.lendCurveCuts = new CurveCut[](length); + + for (uint256 i = 0; i < length; i++) { + string memory indexPath = string.concat(curveCutsPath, ".", vm.toString(i)); + orderConfig.curveCuts.lendCurveCuts[i].xtReserve = + vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(indexPath, ".xtReserve"))); + orderConfig.curveCuts.lendCurveCuts[i].liqSquare = + vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(indexPath, ".liqSquare"))); + orderConfig.curveCuts.lendCurveCuts[i].offset = + vm.parseInt(vm.parseJsonString(testdataJSON, string.concat(indexPath, ".offset"))); + } + } + } + + function getSwapRangeFromJson(string memory testdataJSON, string memory key) + internal + pure + returns (DeployUtils.SwapRange memory swapRange) + { + swapRange.buyFtMax = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".buyFtMax"))); + swapRange.buyXtMax = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".buyXtMax"))); + swapRange.sellFtMax = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".sellFtMax"))); + swapRange.sellXtMax = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".sellXtMax"))); + swapRange.buyExactFtMax = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".buyExactFtMax"))); + swapRange.buyExactXtMax = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".buyExactXtMax"))); + swapRange.sellFtForExactTokenMax = + vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".sellFtForExactTokenMax"))); + swapRange.sellXtForExactTokenMax = + vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".sellXtForExactTokenMax"))); + } + + function getRoundDataFromJson(string memory testdataJSON, string memory key) + internal + pure + returns (MockPriceFeed.RoundData memory priceData) + { + priceData.roundId = uint80(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".roundId")))); + priceData.answer = vm.parseInt(vm.parseJsonString(testdataJSON, string.concat(key, ".answer"))); + priceData.startedAt = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".startedAt"))); + priceData.updatedAt = vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".updatedAt"))); + priceData.answeredInRound = + uint80(vm.parseUint(vm.parseJsonString(testdataJSON, string.concat(key, ".answeredInRound")))); + } +} diff --git a/test/v2/utils/LoanUtils.sol b/test/v2/utils/LoanUtils.sol new file mode 100644 index 0000000..649fb2d --- /dev/null +++ b/test/v2/utils/LoanUtils.sol @@ -0,0 +1,81 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {console} from "forge-std/Script.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import {DeployUtils} from "./DeployUtils.sol"; + +library LoanUtils { + using SafeCast for uint256; + using SafeCast for int256; + + function calcLtv(DeployUtils.Res memory res, uint256 debtAmt, uint256 collateralAmt) + internal + view + returns (uint256 ltv) + { + (, int256 cPrice,,,) = res.collateralOracle.latestRoundData(); + (, int256 uPrice,,,) = res.debtOracle.latestRoundData(); + uint256 cpDecimals = 10 ** res.collateralOracle.decimals(); + uint256 upDecimals = 10 ** res.debtOracle.decimals(); + uint256 cDecimals = 10 ** res.collateral.decimals(); + uint256 uDecimals = 10 ** res.debt.decimals(); + uint256 debtValue = (debtAmt * uPrice.toUint256()) / uDecimals; + uint256 collateralValue = (collateralAmt * cPrice.toUint256()) / (cpDecimals * cDecimals); + if (collateralValue == 0) { + return 2 ** 128 - 1; + } + ltv = (debtValue * Constants.DECIMAL_BASE) / (collateralValue * upDecimals); + } + + function calcLiquidationResult(DeployUtils.Res memory res, uint256 debtAmt, uint256 collateralAmt, uint256 repayAmt) + internal + view + returns (uint256 cToLiquidator, uint256 cToTreasurer, uint256 remainningC) + { + uint256 REWARD_TO_LIQUIDATOR = 0.05e8; + uint256 REWARD_TO_PROTOCOL = 0.05e8; + (, int256 cPrice,,,) = res.collateralOracle.latestRoundData(); + (, int256 uPrice,,,) = res.debtOracle.latestRoundData(); + uint256 cpDecimals = 10 ** res.collateralOracle.decimals(); + uint256 upDecimals = 10 ** res.debtOracle.decimals(); + uint256 cDecimals = 10 ** res.collateral.decimals(); + uint256 uDecimals = 10 ** res.debt.decimals(); + + uint256 udPriceToCdPrice = + (uPrice.toUint256() * cpDecimals * cpDecimals * 10 + cPrice.toUint256() - 1) / (cPrice.toUint256()); + + uint256 cEqualRepayAmt = (repayAmt * udPriceToCdPrice * cDecimals) / (uDecimals * cpDecimals * upDecimals * 10); + + uint256 rewardToLiquidator = (cEqualRepayAmt * REWARD_TO_LIQUIDATOR) / Constants.DECIMAL_BASE; + uint256 rewardToProtocol = (cEqualRepayAmt * REWARD_TO_PROTOCOL) / Constants.DECIMAL_BASE; + + uint256 removedCollateralAmt = cEqualRepayAmt + rewardToLiquidator + rewardToProtocol; + if (removedCollateralAmt > (collateralAmt * repayAmt) / debtAmt) { + removedCollateralAmt = (collateralAmt * repayAmt) / debtAmt; + } + if (cEqualRepayAmt + rewardToLiquidator >= removedCollateralAmt) { + cToLiquidator = removedCollateralAmt; + } else if (cEqualRepayAmt + rewardToLiquidator + rewardToProtocol >= removedCollateralAmt) { + cToLiquidator = cEqualRepayAmt + rewardToLiquidator; + cToTreasurer = removedCollateralAmt - cToLiquidator; + } else { + cToLiquidator = cEqualRepayAmt + rewardToLiquidator; + cToTreasurer = rewardToProtocol; + } + remainningC = collateralAmt - removedCollateralAmt; + } + + function fastMintGt(DeployUtils.Res memory res, address to, uint128 debtAmt, uint256 collateralAmt) + internal + returns (uint256 gtId, uint128 ftOutAmt) + { + res.collateral.mint(to, collateralAmt); + res.collateral.approve(address(res.gt), collateralAmt); + bytes memory collateralData = abi.encode(collateralAmt); + + (gtId, ftOutAmt) = res.market.issueFt(to, debtAmt, collateralData); + } +} diff --git a/test/v2/utils/StateChecker.sol b/test/v2/utils/StateChecker.sol new file mode 100644 index 0000000..d04ec9d --- /dev/null +++ b/test/v2/utils/StateChecker.sol @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {console} from "forge-std/console.sol"; +import {DeployUtils} from "./DeployUtils.sol"; +import "contracts/v1/storage/TermMaxStorage.sol"; + +library StateChecker { + struct MarketState { + uint256 collateralReserve; + uint256 debtReserve; + } + + struct OrderState { + uint256 ftReserve; + uint256 xtReserve; + } + + function checkMarketState(DeployUtils.Res memory res, MarketState memory expect) internal view { + require(res.collateral.balanceOf(address(res.gt)) == expect.collateralReserve, "collateralReserve unexpect"); + require(res.debt.balanceOf(address(res.market)) == expect.debtReserve, "debtReserve unexpect"); + } + + function getMarketState(DeployUtils.Res memory res) internal view returns (MarketState memory state) { + state.collateralReserve = res.collateral.balanceOf(address(res.gt)); + state.debtReserve = res.debt.balanceOf(address(res.market)); + } + + function checkOrderState(DeployUtils.Res memory res, OrderState memory expect) internal view { + address order = address(res.order); + require(res.ft.balanceOf(order) == expect.ftReserve, "ftReserve unexpect"); + require(res.xt.balanceOf(order) == expect.xtReserve, "xtReserve unexpect"); + } + + function getOrderState(DeployUtils.Res memory res) internal view returns (OrderState memory state) { + address order = address(res.order); + state.ftReserve = res.ft.balanceOf(order); + state.xtReserve = res.xt.balanceOf(order); + } + + function getUserBalances(DeployUtils.Res memory res, address user) + internal + view + returns (uint256[6] memory balances) + { + balances[0] = res.ft.balanceOf(user); + balances[1] = res.xt.balanceOf(user); + balances[2] = res.debt.balanceOf(user); + balances[3] = res.collateral.balanceOf(user); + } +} diff --git a/test/v2/utils/SwapUtils.sol b/test/v2/utils/SwapUtils.sol new file mode 100644 index 0000000..80e6ef4 --- /dev/null +++ b/test/v2/utils/SwapUtils.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.27; + +import {console} from "forge-std/Script.sol"; +import {SafeCast} from "@openzeppelin/contracts/utils/math/SafeCast.sol"; +import {Constants} from "contracts/v1/lib/Constants.sol"; +import {DeployUtils} from "./DeployUtils.sol"; + +library SwapUtils { + using SafeCast for uint256; + using SafeCast for int256; + + function getPrice(DeployUtils.Res memory res) internal view returns (uint256 pFt, uint256 pXt) { + (uint256 lendApr_, uint256 borrowApr_) = res.order.apr(); + + uint256 dtm = daysToMaturity(res.market.config().maturity); + pFt = Constants.DECIMAL_BASE_SQ / (Constants.DECIMAL_BASE + (lendApr_ * dtm) / Constants.DAYS_IN_YEAR); + uint256 pFtBorrow = + Constants.DECIMAL_BASE_SQ / (Constants.DECIMAL_BASE + (borrowApr_ * dtm) / Constants.DAYS_IN_YEAR); + pXt = Constants.DECIMAL_BASE - pFtBorrow / Constants.DECIMAL_BASE; + } + + function daysToMaturity(uint256 maturity) internal view returns (uint256) { + return (maturity - block.timestamp + Constants.SECONDS_IN_DAY - 1) / Constants.SECONDS_IN_DAY; + } +}