This smart contract implements a Multisig wallet. It allows a group of addresses to approve and execute fund transfers from the wallet.
- Multisignature: Requires approval from multiple addresses before executing a transfer.
- Configurable Quorum: The minimum number of approvals required to execute a transfer is configurable.
- Secure: Transfers cannot be executed until the required quorum is reached.
-
Initial setup: Specify the list of addresses that can approve transfers and the required quorum into ignition/modules.Wallets.
-
Deploy the contract: Deploy the contract on the network of your choice using the provided script:
npx hardhat ignition deploy ignition/modules/Wallets.js --network <your-network>
-
Deposit funds: Funds can be deposited into the Multisig wallet by sending directly to the contract address.
-
Create transfers: Wallet owners can create transfers by specifying the recipient, amount, and a description.
-
Approve transfers: Owners can approve transfers created by other owners.
-
Execute transfers: Once a transfer has been approved by the required number of owners, it can be executed to send the funds to the specified recipient.
npx hardhat run --network <your-network> scripts/deploy.js
npx hardhat ignition deploy ignition/modules/Wallets.js --network <your-network>
npx hardhat verify --network mumbai --constructor-args arguments.js <address>
This project includes automated tests using Hardhat and coverage to ensure the integrity of the smart contract.
To run the tests, make sure you have Hardhat installed and run the following command:
npx hardhat test
npx hardhat coverage
This project is licensed under the MIT License.