Skip to content

Commit

Permalink
Merge branch 'woof-software/collateral-extension' of github.com:woof-…
Browse files Browse the repository at this point in the history
…software/comet into woof-software/add-teth-to-weth-and-wsteth-on-mainnet
  • Loading branch information
MishaShWoof committed Jan 29, 2025
2 parents 6b35ee5 + 4351754 commit f8afea6
Show file tree
Hide file tree
Showing 21 changed files with 589 additions and 193 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export default migration('1735299634_update_comet_to_support_more_collaterals',
'function name() external view returns (string)',
'function symbol() external view returns (string)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);
const name = await extensionDelegate.name();
const symbol = await extensionDelegate.symbol();
Expand All @@ -46,7 +46,8 @@ export default migration('1735299634_update_comet_to_support_more_collaterals',
symbol32: ethers.utils.formatBytes32String(symbol)
},
_assetListFactory.address
]
],
true
);
return {
cometFactoryWithExtendedAssetList: cometFactoryWithExtendedAssetList.address,
Expand Down Expand Up @@ -158,7 +159,7 @@ export default migration('1735299634_update_comet_to_support_more_collaterals',
[
'function assetList() external view returns (address)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);

const assetListAddress = await cometNew.assetList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,17 @@ import { Contract } from 'ethers';
import { utils } from 'ethers';
import { applyL1ToL2Alias, estimateL2Transaction } from '../../../../scenario/utils/arbitrumUtils';

let newCometExtAddress: string;
let newCometExtAddressUSDC: string;
let newCometExtAddressUSDT: string;
let newCometExtAddressWETH: string;
let newCometExtAddressUSDCE: string;

const USDCE_COMET = '0xA5EDBDD9646f8dFF606d7448e414884C7d905dCA';
const USDCE_EXT = '0x1B2E88cC7365d90e7E81392432482925BD8437E9';
const USDT_COMET = '0xd98Be00b5D27fc98112BdE293e487f8D4cA57d07';
const USDT_EXT = '0x698A949f3b4f7a5DdE236106F25Fa0eAcA0FcEF1';
const WETH_COMET = '0x6f7D514bbD4aFf3BcD1140B7344b32f063dEe486';
const WETH_EXT = '0x5404872d8f2e24b230EC9B9eC64E3855F637FB93';

export default migration('1735299626_update_comet_to_support_more_collaterals', {
async prepare(deploymentManager: DeploymentManager) {
Expand All @@ -30,37 +36,117 @@ export default migration('1735299626_update_comet_to_support_more_collaterals',
comet
} = await deploymentManager.getContracts();

const extensionDelegate = new Contract(
const extensionDelegateUSDC = new Contract(
await comet.extensionDelegate(),
[
'function name() external view returns (string)',
'function symbol() external view returns (string)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);
const name = await extensionDelegate.name();
const symbol = await extensionDelegate.symbol();
const nameUSDC = await extensionDelegateUSDC.name();
const symbolUSDC = await extensionDelegateUSDC.symbol();

const _newCometExt = await deploymentManager.deploy(
const _newCometExtUSDC = await deploymentManager.deploy(
'CometExtAssetList',
'CometExtAssetList.sol',
[
{
name32: ethers.utils.formatBytes32String(name),
symbol32: ethers.utils.formatBytes32String(symbol)
name32: ethers.utils.formatBytes32String(nameUSDC),
symbol32: ethers.utils.formatBytes32String(symbolUSDC)
},
_assetListFactory.address
]
],
true
);

const extensionDelegateUSDT = new Contract(
USDT_EXT,
[
'function name() external view returns (string)',
'function symbol() external view returns (string)',
],
await deploymentManager.getSigner()
);
const nameUSDT = await extensionDelegateUSDT.name();
const symbolUSDT = await extensionDelegateUSDT.symbol();

const _newCometExtUSDT = await deploymentManager.deploy(
'CometExtAssetList',
'CometExtAssetList.sol',
[
{
name32: ethers.utils.formatBytes32String(nameUSDT),
symbol32: ethers.utils.formatBytes32String(symbolUSDT)
},
_assetListFactory.address
],
true
);

const extensionDelegateWETH = new Contract(
WETH_EXT,
[
'function name() external view returns (string)',
'function symbol() external view returns (string)',
],
await deploymentManager.getSigner()
);
const nameWETH = await extensionDelegateWETH.name();
const symbolWETH = await extensionDelegateWETH.symbol();

const _newCometExtWETH = await deploymentManager.deploy(
'CometExtAssetList',
'CometExtAssetList.sol',
[
{
name32: ethers.utils.formatBytes32String(nameWETH),
symbol32: ethers.utils.formatBytes32String(symbolWETH)
},
_assetListFactory.address
],
true
);

const extensionDelegateUSDCE = new Contract(
USDCE_EXT,
[
'function name() external view returns (string)',
'function symbol() external view returns (string)',
],
await deploymentManager.getSigner()
);
const nameUSDCE = await extensionDelegateUSDCE.name();
const symbolUSDCE = await extensionDelegateUSDCE.symbol();

const _newCometExtUSDCE = await deploymentManager.deploy(
'CometExtAssetList',
'CometExtAssetList.sol',
[
{
name32: ethers.utils.formatBytes32String(nameUSDCE),
symbol32: ethers.utils.formatBytes32String(symbolUSDCE)
},
_assetListFactory.address
],
true
);

return {
cometFactoryWithExtendedAssetList: cometFactoryWithExtendedAssetList.address,
newCometExt: _newCometExt.address
newCometExtUSDC: _newCometExtUSDC.address,
newCometExtUSDT: _newCometExtUSDT.address,
newCometExtWETH: _newCometExtWETH.address,
newCometExtUSDCE: _newCometExtUSDCE.address,
};
},

async enact(deploymentManager: DeploymentManager, govDeploymentManager, {
cometFactoryWithExtendedAssetList,
newCometExt,
newCometExtUSDC,
newCometExtUSDT,
newCometExtWETH,
newCometExtUSDCE,
}) {

const trace = deploymentManager.tracer();
Expand All @@ -78,13 +164,16 @@ export default migration('1735299626_update_comet_to_support_more_collaterals',
governor
} = await govDeploymentManager.getContracts();

newCometExtAddress = newCometExt;
newCometExtAddressUSDC = newCometExtUSDC;
newCometExtAddressUSDT = newCometExtUSDT;
newCometExtAddressWETH = newCometExtWETH;
newCometExtAddressUSDCE = newCometExtUSDCE;

const setFactoryCalldata = await calldata(
configurator.populateTransaction.setFactory(comet.address, cometFactoryWithExtendedAssetList)
);
const setExtensionDelegateCalldata = await calldata(
configurator.populateTransaction.setExtensionDelegate(comet.address, newCometExt)
configurator.populateTransaction.setExtensionDelegate(comet.address, newCometExtUSDC)
);
const deployAndUpgradeToCalldata = utils.defaultAbiCoder.encode(
['address', 'address'],
Expand All @@ -95,7 +184,7 @@ export default migration('1735299626_update_comet_to_support_more_collaterals',
configurator.populateTransaction.setFactory(USDCE_COMET, cometFactoryWithExtendedAssetList)
);
const setExtensionDelegateCalldataUSDCE = await calldata(
configurator.populateTransaction.setExtensionDelegate(USDCE_COMET, newCometExt)
configurator.populateTransaction.setExtensionDelegate(USDCE_COMET, newCometExtUSDCE)
);
const deployAndUpgradeToCalldataUSDCE = utils.defaultAbiCoder.encode(
['address', 'address'],
Expand All @@ -106,7 +195,7 @@ export default migration('1735299626_update_comet_to_support_more_collaterals',
configurator.populateTransaction.setFactory(USDT_COMET, cometFactoryWithExtendedAssetList)
);
const setExtensionDelegateCalldataUSDT = await calldata(
configurator.populateTransaction.setExtensionDelegate(USDT_COMET, newCometExt)
configurator.populateTransaction.setExtensionDelegate(USDT_COMET, newCometExtUSDT)
);
const deployAndUpgradeToCalldataUSDT = utils.defaultAbiCoder.encode(
['address', 'address'],
Expand All @@ -117,7 +206,7 @@ export default migration('1735299626_update_comet_to_support_more_collaterals',
configurator.populateTransaction.setFactory(WETH_COMET, cometFactoryWithExtendedAssetList)
);
const setExtensionDelegateCalldataWETH = await calldata(
configurator.populateTransaction.setExtensionDelegate(WETH_COMET, newCometExt)
configurator.populateTransaction.setExtensionDelegate(WETH_COMET, newCometExtWETH)
);
const deployAndUpgradeToCalldataWETH = utils.defaultAbiCoder.encode(
['address', 'address'],
Expand Down Expand Up @@ -218,51 +307,54 @@ export default migration('1735299626_update_comet_to_support_more_collaterals',
[
'function assetList() external view returns (address)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);

const assetListAddress = await cometNew.assetList();

expect(assetListAddress).to.not.be.equal(ethers.constants.AddressZero);
expect(await comet.extensionDelegate()).to.be.equal(newCometExtAddress);
expect(await comet.extensionDelegate()).to.be.equal(newCometExtAddressUSDC);

const cometNewUSDCE = new Contract(
USDCE_COMET,
[
'function assetList() external view returns (address)',
'function extensionDelegate() external view returns (address)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);

const assetListAddressUSDCE = await cometNewUSDCE.assetList();

expect(assetListAddressUSDCE).to.not.be.equal(ethers.constants.AddressZero);
expect(await comet.extensionDelegate()).to.be.equal(newCometExtAddress);
expect(await cometNewUSDCE.extensionDelegate()).to.be.equal(newCometExtAddressUSDCE);

const cometNewUSDT = new Contract(
USDT_COMET,
[
'function assetList() external view returns (address)',
'function extensionDelegate() external view returns (address)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);

const assetListAddressUSDT = await cometNewUSDT.assetList();

expect(assetListAddressUSDT).to.not.be.equal(ethers.constants.AddressZero);
expect(await comet.extensionDelegate()).to.be.equal(newCometExtAddress);
expect(await cometNewUSDT.extensionDelegate()).to.be.equal(newCometExtAddressUSDT);

const cometNewWETH = new Contract(
WETH_COMET,
[
'function assetList() external view returns (address)',
'function extensionDelegate() external view returns (address)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);

const assetListAddressWETH = await cometNewWETH.assetList();

expect(assetListAddressWETH).to.not.be.equal(ethers.constants.AddressZero);
expect(await comet.extensionDelegate()).to.be.equal(newCometExtAddress);
expect(await cometNewWETH.extensionDelegate()).to.be.equal(newCometExtAddressWETH);
},
});
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export default migration('1735299656_update_comet_to_support_more_collaterals',
'function name() external view returns (string)',
'function symbol() external view returns (string)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);
const name = await extensionDelegate.name();
const symbol = await extensionDelegate.symbol();
Expand All @@ -46,7 +46,8 @@ export default migration('1735299656_update_comet_to_support_more_collaterals',
symbol32: ethers.utils.formatBytes32String(symbol)
},
_assetListFactory.address
]
],
true
);
return {
cometFactoryWithExtendedAssetList: cometFactoryWithExtendedAssetList.address,
Expand Down Expand Up @@ -158,7 +159,7 @@ export default migration('1735299656_update_comet_to_support_more_collaterals',
[
'function assetList() external view returns (address)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);

const assetListAddress = await cometNew.assetList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export default migration('1735299663_update_comet_to_support_more_collaterals',
'function name() external view returns (string)',
'function symbol() external view returns (string)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);
const name = await extensionDelegate.name();
const symbol = await extensionDelegate.symbol();
Expand All @@ -46,7 +46,8 @@ export default migration('1735299663_update_comet_to_support_more_collaterals',
symbol32: ethers.utils.formatBytes32String(symbol)
},
_assetListFactory.address
]
],
true
);
return {
cometFactoryWithExtendedAssetList: cometFactoryWithExtendedAssetList.address,
Expand Down Expand Up @@ -158,7 +159,7 @@ export default migration('1735299663_update_comet_to_support_more_collaterals',
[
'function assetList() external view returns (address)',
],
deploymentManager.hre.ethers.provider
await deploymentManager.getSigner()
);

const assetListAddress = await cometNew.assetList();
Expand Down
Loading

0 comments on commit f8afea6

Please sign in to comment.