https://github.com/signor1/multi-sig-wallet
A multi signed wallet contract that allows the execution of transaction only when a quorum is reached. Owner assigns those to sign the transaction. Built with solidity and hardhat
https://github.com/signor1/multi-sig-wallet
Last synced: 21 days ago
JSON representation
A multi signed wallet contract that allows the execution of transaction only when a quorum is reached. Owner assigns those to sign the transaction. Built with solidity and hardhat
- Host: GitHub
- URL: https://github.com/signor1/multi-sig-wallet
- Owner: Signor1
- Created: 2024-02-19T19:49:06.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-20T17:17:28.000Z (over 2 years ago)
- Last Synced: 2025-02-24T04:41:54.351Z (over 1 year ago)
- Language: Solidity
- Homepage:
- Size: 77.1 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MultiSigWallet Contract
This Solidity smart contract implements a multi-signature wallet, allowing multiple authorized signers to collectively approve and execute transactions.
## Overview
The MultiSigWallet contract requires a specified quorum of signers to approve a transaction before it can be executed. It supports functionalities like initiating transactions, approving transactions, adding valid signers, and transferring ownership.
## Features
- **Initiate Transaction:** Allows any valid signer to propose a transaction by specifying the amount and receiver address.
- **Approve Transaction:** Valid signers can approve a proposed transaction, and once the quorum is reached, the transaction is executed, transferring the specified amount to the designated receiver.
- **Add Valid Signer:** The owner can add new valid signers to the contract.
- **Transfer Ownership:** The owner can transfer ownership of the contract to another address, and the new owner must claim ownership to finalize the transfer.
## Contract Functions
- `initiateTransaction(uint256 _amount, address _receiver)`: Initiates a transaction proposal.
- `approveTransaction(uint256 _txId)`: Approves a transaction if the signer is valid and the quorum is not reached.
- `addValidSigner(address _newSigner)`: Allows the owner to add a new valid signer.
- `getAllTransactions()`: Retrieves all transactions initiated.
- `transferOwnership(address _newOwner)`: Initiates the transfer of ownership to a new address.
- `claimOwnership()`: Finalizes the transfer of ownership.
## Usage
To use this contract, deploy it on the Ethereum network with a list of initial valid signers and a specified quorum. After deployment, authorized signers can initiate and approve transactions according to the contract rules.