Closed seolaoh closed 3 months ago
This update introduces new functionalities and modifications across various files, including the addition of multiple test cases for KromaVestingWallet
, updates to deployment logic for governance token proxies, and changes to the deploy
utility functions. It also adds deployment scripts for investor and team vesting wallets while updating the configuration and storage layout of the KromaVestingWallet
contract.
Files / Path | Change Summary |
---|---|
packages/contracts/.gas-snapshot |
Added test cases covering initialization, token migration, releasing tokens, setting beneficiaries, and ownership checks. |
packages/contracts/.storage-layout |
Added new storage variables for KromaVestingWallet contract to manage vesting and ownership details more effectively. |
.../contracts/test/KromaVestingWallet.t.sol |
Introduced new test cases for the KromaVestingWallet contract to ensure full coverage of its functionality. |
packages/contracts/contracts/universal/KromaVestingWallet.sol |
Added specifications for handling fund vesting over time, with new vesting and beneficiary functionalities. |
.../deploy/L1/017-L1GovernanceTokenProxy.ts |
Updated deployment logic to use the deployer as the proxy admin instead of a configuration parameter. |
.../deploy/L1/019-L1GovernanceToken.ts |
Replaced deploy function with deployAndUpgradeByDeployer , added initArgs , and updated admin settings for deployment. |
.../deploy/L2/011-GovernanceTokenProxy.ts |
Modified deployment logic to assign deployer as the admin instead of a configured owner. |
.../deploy/L2/013-GovernanceToken.ts |
Updated deployment functions to handle new deployment and upgrading logic, ensuring correct contract initialization. |
packages/contracts/deploy/L2/104-InvestorVestingWallet.ts |
Added new deployment script to deploy and configure the Investor Vesting Wallet contract. |
packages/contracts/deploy/L2/105-TeamVestingWallet.ts |
Added a new deployment script for the Team Vesting Wallet contract, with associated initialization and verification steps. |
packages/contracts/src/deploy-config.ts |
Updated configuration interface to include new properties related to investor and team vesting wallets. |
packages/contracts/src/deploy-utils.ts |
Split deploy function into two separate functions (deploy and deployAndUpgradeByDeployer ) for clearer deployment logic. |
sequenceDiagram
participant User
participant ContractOwner
participant KromaVestingWallet
participant ERC20Token
participant ETHVault
User->>ContractOwner: Set up vesting wallet
ContractOwner->>KromaVestingWallet: Initialize with start, duration, cliffDivider, vestingCycle
KromaVestingWallet->>ERC20Token: Request token approval
ERC20Token-->>KromaVestingWallet: Approve tokens
User->>KromaVestingWallet: Check balance and vesting status
alt Token Vesting
KromaVestingWallet->>ERC20Token: Release vested tokens
ERC20Token-->>User: Transferred vested tokens
end
alt ETH Vesting
KromaVestingWallet->>ETHVault: Release vested ETH
ETHVault-->>User: Transferred vested ETH
end
ContractOwner->>KromaVestingWallet: Set new beneficiary
KromaVestingWallet->>User: Update beneficiary status
sequenceDiagram
participant Deployer
participant DeploymentScript
participant ProxyAdmin
participant ContractInstance
participant ContractVariables
Deployer->>DeploymentScript: Run deployment script
DeploymentScript->>ProxyAdmin: Deploy ProxyAdmin
DeploymentScript->>ContractInstance: Deploy implementation contract
DeploymentScript->>ContractVariables: Initialize variables (beneficiary, start, duration, etc.)
DeploymentScript->>ProxyAdmin: Assign ProxyAdmin to contract
ProxyAdmin-->>DeploymentScript: Confirm assignment
DeploymentScript-->>Deployer: Deployment completed
[!TIP]
Early access features: enabled
We are currently testing the following features in early access: - **OpenAI `gpt-4o` model for code reviews and chat**: OpenAI claims that this model is better at understanding and generating code than the previous models. We seek your feedback over the next few weeks before making it generally available. Note: - You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file. - Please join our [Discord Community](https://discord.com/invite/GsXnASn26c) to provide feedback and report issues. - OSS projects are currently opted into early access features by default.
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Description
Implemented
KromaVestingWallet
contract.