Closed RnkSngh closed 3 months ago
The recent updates significantly enhance the project's multi-signature wallet functionalities, introducing new scripts for deployment and transaction management. Key features include the deployment of multi-signature wallets, transaction proposals, and execution capabilities, along with improved handling of YAML files. These changes collectively streamline development and integration with the Safe Global ecosystem, ensuring robust management of smart contracts on Ethereum.
File | Change Summary |
---|---|
package.json |
Added a script for deploying multisig contracts and included dependencies related to the Safe Global ecosystem, along with a development dependency for improved YAML type safety. |
src/deploy.ts , src/tx.ts |
Updated nonce handling logic in the updateNoncesForSender function and redefined the sendTx function to distinguish between single account and multisig wallet transactions. |
src/multisig/safe.ts |
Introduced functionalities for creating and managing multi-signature wallets, including initialization, transaction proposals, execution, and nonce retrieval. |
src/utils/io.ts |
Added functions for writing YAML files, parsing command-line arguments for multisig initialization, and updating account specifications with new safe addresses, along with minor formatting adjustments for readability. |
tsup.config.ts |
Updated the build configuration to include deploy-multisig.ts and execute-multisig-tx.ts scripts, ensuring they are part of the build process. |
sequenceDiagram
participant User
participant DeployScript
participant MultiSigWallet
participant SafeAPI
User->>DeployScript: Provide parameters (RPC URL, owners, etc.)
DeployScript->>MultiSigWallet: Initialize new multi-signature wallet
MultiSigWallet->>DeployScript: Return new wallet address
DeployScript->>SafeAPI: Save wallet address to specifications
SafeAPI-->>DeployScript: Confirm save
DeployScript-->>User: Deployment complete
🐇 In the meadow where code does play,
New wallets bloom, bright as the day.
With functions to dance and scripts that sway,
In Safe Global’s realm, we hop and stay.
YAML flows like a gentle stream,
In this world of code, we live the dream! 🌟
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?
PR to add a
npx vibc-core-deploy-multisig
command which: 1.) deploys a new multisig using Gnosis safe's sdk to a given rpc url, accounts spec, owners list, and account name (which references a private key from accounts spec) 2.)appends the account spec to presist multisig accounts between multisig calls & contract deploys so that they can be used in subsequent txs, e.g. a created multisig account looks like this:name: MULTISIG_OWNER_1_MULTISIG privateKey: "{{ PROD_DEPLOYER_KEY }}" safeAddress: "0xD92B5185C924f92034aB49d6004B1fa7551D951F" chainId: 84532
note: the safeAddress is automatically generated so it is not hard coded
Summary by CodeRabbit
New Features
Bug Fixes