IMultiSigWallet
Interface for multi-signature wallet governance
Functions
submitTransaction
Submit a transaction for approval
function submitTransaction(address destination, uint256 value, bytes calldata data)
external
returns (uint256 transactionId);
Parameters
destination
address
The target address
value
uint256
The ether value
data
bytes
The call data
Returns
transactionId
uint256
The ID of the submitted transaction
confirmTransaction
Confirm a transaction
function confirmTransaction(uint256 transactionId) external;
Parameters
transactionId
uint256
The transaction ID to confirm
revokeConfirmation
Revoke confirmation for a transaction
function revokeConfirmation(uint256 transactionId) external;
Parameters
transactionId
uint256
The transaction ID to revoke confirmation for
executeTransaction
Execute a confirmed transaction
function executeTransaction(uint256 transactionId) external;
Parameters
transactionId
uint256
The transaction ID to execute
cancelTransaction
Cancel a pending transaction
function cancelTransaction(uint256 transactionId) external;
Parameters
transactionId
uint256
The transaction ID to cancel
addSigner
Add a new signer
function addSigner(address signer) external;
Parameters
signer
address
The signer address to add
removeSigner
Remove a signer
function removeSigner(address signer) external;
Parameters
signer
address
The signer address to remove
changeRequiredSignatures
Change the required number of signatures
function changeRequiredSignatures(uint256 required) external;
Parameters
required
uint256
New required signature count
getTransaction
Get transaction details
function getTransaction(uint256 transactionId) external view returns (Transaction memory transaction);
Parameters
transactionId
uint256
The transaction ID
Returns
transaction
Transaction
The transaction details
getPendingTransactions
Get pending transactions
function getPendingTransactions() external view returns (uint256[] memory transactionIds);
Returns
transactionIds
uint256[]
Array of pending transaction IDs
getConfirmations
Get transaction confirmations
function getConfirmations(uint256 transactionId) external view returns (address[] memory signers);
Parameters
transactionId
uint256
The transaction ID
Returns
signers
address[]
Array of addresses that confirmed the transaction
isConfirmed
Check if transaction is confirmed
function isConfirmed(uint256 transactionId) external view returns (bool confirmed);
Parameters
transactionId
uint256
The transaction ID
Returns
confirmed
bool
True if transaction has enough confirmations
getSigners
Get all signers
function getSigners() external view returns (address[] memory signers);
Returns
signers
address[]
Array of signer addresses
getRequiredSignatures
Get required signature count
function getRequiredSignatures() external view returns (uint256 required);
Returns
required
uint256
The required number of signatures
isSigner
Check if an address is a signer
function isSigner(address signer) external view returns (bool isSigner);
Parameters
signer
address
The address to check
Returns
isSigner
bool
True if the address is a signer
Events
TransactionSubmitted
event TransactionSubmitted(uint256 indexed transactionId, address indexed submitter);
TransactionConfirmed
event TransactionConfirmed(uint256 indexed transactionId, address indexed signer);
TransactionRevoked
event TransactionRevoked(uint256 indexed transactionId, address indexed signer);
TransactionExecuted
event TransactionExecuted(uint256 indexed transactionId);
TransactionCancelled
event TransactionCancelled(uint256 indexed transactionId);
SignerAdded
event SignerAdded(address indexed signer);
SignerRemoved
event SignerRemoved(address indexed signer);
RequiredSignaturesChanged
event RequiredSignaturesChanged(uint256 oldRequired, uint256 newRequired);
Structs
Transaction
struct Transaction {
uint256 id;
address destination;
uint256 value;
bytes data;
bool executed;
uint256 confirmationCount;
uint256 timestamp;
TransactionStatus status;
}
Enums
TransactionStatus
enum TransactionStatus {
Pending,
Executed,
Cancelled
}
Last updated
Was this helpful?