multisig-wallet
Functions
<dl> <dt><a href="#deployMultisigWallet">deployMultisigWallet()</a></dt> <dd><p>Deploy a new multi-sig wallet contract</p> </dd> <dt><a href="#getMultisigWallet">getMultisigWallet()</a></dt> <dd><p>Get multi-sig wallet info</p> </dd> <dt><a href="#listMultisigWallets">listMultisigWallets()</a></dt> <dd><p>List all multi-sig wallets</p> </dd> <dt><a href="#updateMultisigSettings">updateMultisigSettings()</a></dt> <dd><p>Update multi-sig wallet settings</p> </dd> <dt><a href="#submitTransaction">submitTransaction()</a></dt> <dd><p>Submit a new transaction to the multi-sig wallet</p> </dd> <dt><a href="#submitTransactionBatch">submitTransactionBatch()</a></dt> <dd><p>Submit multiple transactions as a batch</p> </dd> <dt><a href="#confirmTransaction">confirmTransaction()</a></dt> <dd><p>Confirm a transaction (sign) SECURITY: Verifies signature before accepting confirmation</p> </dd> <dt><a href="#recoverSigner">recoverSigner(tx, signature)</a> ⇒ <code>string</code> | <code>null</code></dt> <dd><p>Recover signer address from signature using EIP-191 signed message format</p> </dd> <dt><a href="#executeTransaction">executeTransaction(txId, executorAddress, tenantId, context)</a> ⇒ <code>Promise.<object></code></dt> <dd><p>Execute a confirmed multi-sig transaction.</p> <p>IMPORTANT: On-chain execution requires MULTISIG_DEMO_MODE=false (default). Without proper on-chain multi-sig contract integration, this will throw. Set MULTISIG_DEMO_MODE=true to use demo-only mode (no blockchain transactions).</p> <p>Security: This function explicitly fails instead of silently falling back to demo mode behavior when on-chain execution fails. This prevents incorrect transaction status updates that could lead to fund loss.</p> </dd> <dt><a href="#executeMultisigOnChain">executeMultisigOnChain(params)</a> ⇒ <code>Promise.<string></code></dt> <dd><p>Execute a multi-sig transaction on the blockchain.</p> <p>TODO: Implement actual on-chain multi-sig contract interaction.</p> <p>Current behavior: Throws an error to prevent silent failures. This is a security measure - previously the code would silently fall back to demo mode on failure, incorrectly marking transactions as executed.</p> <p>Implementation needed:</p> <ul> <li>Deploy multi-sig smart contract</li> <li>Implement executeTransaction on the contract</li> <li>Handle chain-specific transaction signing and submission</li> <li>Add proper error handling for blockchain failures</li> </ul> </dd> <dt><a href="#getTransaction">getTransaction()</a></dt> <dd><p>Get transaction details</p> </dd> <dt><a href="#getTransactions">getTransactions()</a></dt> <dd><p>Get all transactions for a multi-sig wallet</p> </dd> <dt><a href="#cancelTransaction">cancelTransaction()</a></dt> <dd><p>Cancel a pending transaction</p> </dd> <dt><a href="#signWithHardwareWallet">signWithHardwareWallet()</a></dt> <dd><p>Sign transaction with hardware wallet (Ledger/Trezor) This is a stub - actual implementation requires hardware wallet SDKs</p> </dd> <dt><a href="#generateMultisigAddress">generateMultisigAddress()</a></dt> <dd><p>Generate a deterministic multi-sig wallet address In production, this would be the deployed contract address</p> </dd> <dt><a href="#getDefaultRoles">getDefaultRoles()</a></dt> <dd><p>Get default roles for owners</p> </dd> <dt><a href="#validateMultisigTransaction">validateMultisigTransaction()</a></dt> <dd><p>Validate multi-sig transaction data</p> </dd> <dt><a href="#getExecutableTransactions">getExecutableTransactions()</a></dt> <dd><p>Get pending transactions that can be executed</p> </dd> </dl>
<a name="deployMultisigWallet"></a>
deployMultisigWallet()
Deploy a new multi-sig wallet contract
Kind: global function
<a name="getMultisigWallet"></a>
getMultisigWallet()
Get multi-sig wallet info
Kind: global function
<a name="listMultisigWallets"></a>
listMultisigWallets()
List all multi-sig wallets
Kind: global function
<a name="updateMultisigSettings"></a>
updateMultisigSettings()
Update multi-sig wallet settings
Kind: global function
<a name="submitTransaction"></a>
submitTransaction()
Submit a new transaction to the multi-sig wallet
Kind: global function
<a name="submitTransactionBatch"></a>
submitTransactionBatch()
Submit multiple transactions as a batch
Kind: global function
<a name="confirmTransaction"></a>
confirmTransaction()
Confirm a transaction (sign) SECURITY: Verifies signature before accepting confirmation
Kind: global function
<a name="recoverSigner"></a>
recoverSigner(tx, signature) ⇒ <code>string</code> | <code>null</code>
Recover signer address from signature using EIP-191 signed message format
Kind: global function
Returns: <code>string</code> | <code>null</code> - - Recovered signer address or null if verification fails
| Param | Type | Description |
|---|---|---|
| tx | <code>Object</code> | Transaction object containing details |
| signature | <code>string</code> | The signature to verify |
<a name="executeTransaction"></a>
executeTransaction(txId, executorAddress, tenantId, context) ⇒ <code>Promise.<object></code>
Execute a confirmed multi-sig transaction.
IMPORTANT: On-chain execution requires MULTISIG_DEMO_MODE=false (default). Without proper on-chain multi-sig contract integration, this will throw. Set MULTISIG_DEMO_MODE=true to use demo-only mode (no blockchain transactions).
Security: This function explicitly fails instead of silently falling back to demo mode behavior when on-chain execution fails. This prevents incorrect transaction status updates that could lead to fund loss.
Kind: global function
Returns: <code>Promise.<object></code> - Executed transaction details
Throws:
- <code>Error</code> If transaction not found, not confirmed, or execution fails
| Param | Type | Description |
|---|---|---|
| txId | <code>string</code> | The transaction ID to execute |
| executorAddress | <code>string</code> | Address executing the transaction |
| tenantId | <code>string</code> | Tenant identifier |
| context | <code>object</code> | Additional context |
<a name="executeMultisigOnChain"></a>
executeMultisigOnChain(params) ⇒ <code>Promise.<string></code>
Execute a multi-sig transaction on the blockchain.
TODO: Implement actual on-chain multi-sig contract interaction.
Current behavior: Throws an error to prevent silent failures. This is a security measure - previously the code would silently fall back to demo mode on failure, incorrectly marking transactions as executed.
Implementation needed:
- Deploy multi-sig smart contract
- Implement executeTransaction on the contract
- Handle chain-specific transaction signing and submission
- Add proper error handling for blockchain failures
Kind: global function
Returns: <code>Promise.<string></code> - Transaction hash
Throws:
- <code>Error</code> Always throws - on-chain execution not yet implemented
| Param | Type | Description |
|---|---|---|
| params | <code>object</code> | Execution parameters |
| params.wallet | <code>object</code> | Multi-sig wallet object |
| params.tx | <code>object</code> | Transaction object |
<a name="getTransaction"></a>
getTransaction()
Get transaction details
Kind: global function
<a name="getTransactions"></a>
getTransactions()
Get all transactions for a multi-sig wallet
Kind: global function
<a name="cancelTransaction"></a>
cancelTransaction()
Cancel a pending transaction
Kind: global function
<a name="signWithHardwareWallet"></a>
signWithHardwareWallet()
Sign transaction with hardware wallet (Ledger/Trezor) This is a stub - actual implementation requires hardware wallet SDKs
Kind: global function
<a name="generateMultisigAddress"></a>
generateMultisigAddress()
Generate a deterministic multi-sig wallet address In production, this would be the deployed contract address
Kind: global function
<a name="getDefaultRoles"></a>
getDefaultRoles()
Get default roles for owners
Kind: global function
<a name="validateMultisigTransaction"></a>
validateMultisigTransaction()
Validate multi-sig transaction data
Kind: global function
<a name="getExecutableTransactions"></a>
getExecutableTransactions()
Get pending transactions that can be executed
Kind: global function