UpdateCustodianMultisigWallet.abi.json

Overview

This file defines the Application Binary Interface (ABI) for a multisignature wallet smart contract focused on managing custodians and multisig transactions. The wallet supports multiple owners (custodians), transaction submissions requiring multiple confirmations, and data update proposals with confirmation mechanisms. It is designed to securely manage transactions and updates through a threshold of confirmations from the custodians.

The contract ABI version is 2.4 and includes definitions of functions, events, and state fields. The wallet supports features such as sending transactions, confirming transactions, updating custodian data, querying stored transactions and custodians, and adjusting operational parameters.


Functionality Details

Constructor

constructor(
  owners_pubkey: uint256[],
  owners_address: address[],
  reqConfirms: uint8,
  reqConfirmsData: uint8,
  value: uint64
)

setMaxCleanupOperations

setMaxCleanupOperations(value: uint256)

sendTransaction

sendTransaction(
  dest: address,
  value: uint128,
  cc: map(uint32, varuint32),
  bounce: bool,
  flags: uint8,
  payload: cell
) -> address

submitTransaction

submitTransaction(
  dest: address,
  value: uint128,
  cc: map(uint32, varuint32),
  bounce: bool,
  flag: uint8,
  payload: cell
) -> uint64

confirmTransaction

confirmTransaction(transactionId: uint64)

submitDataUpdate

submitDataUpdate(
  owners_pubkey: uint256[],
  owners_address: address[],
  reqConfirms: uint8,
  reqConfirmsData: uint8
) -> uint64

confirmDataUpdate

confirmDataUpdate(dataUpdateId: uint64)

isConfirmed

isConfirmed(mask: uint32, index: uint8) -> bool

getParameters

getParameters() -> {
  maxQueuedTransactions: uint8,
  maxCustodianCount: uint8,
  expirationTime: uint64,
  requiredTxnConfirms: uint8,
  requiredDataConfirms: uint8
}

getTransaction

getTransaction(transactionId: uint64) -> trans: tuple

getUpdateData

getUpdateData(updateDataId: uint64) -> data: tuple

getTransactions

getTransactions() -> transactions: tuple[]

getUpdateDatas

getUpdateDatas() -> data: tuple[]

getTransactionIds

getTransactionIds() -> ids: uint64[]

getUpdateCodeIds

getUpdateCodeIds() -> ids: uint64[]

getCustodians

getCustodians() -> custodians: tuple[]

getVersion

getVersion() -> (string, string)

Events

TransferAccepted

event TransferAccepted(payload: bytes)

State Fields


Implementation Details and Algorithms


Interaction with Other System Components


Visual Diagram

classDiagram
class MultisigWallet {
+constructor()
+setMaxCleanupOperations()
+sendTransaction()
+submitTransaction()
+confirmTransaction()
+submitDataUpdate()
+confirmDataUpdate()
+isConfirmed()
+getParameters()
+getTransaction()
+getUpdateData()
+getTransactions()
+getUpdateDatas()
+getTransactionIds()
+getUpdateCodeIds()
+getCustodians()
+getVersion()
-_pubkey
-_timestamp
-_constructorFlag
-m_ownerKey
-m_ownerAddress
-m_requestsMask
-m_requestsMaskData
-m_transactions
-m_data
-m_custodians
-m_custodianCount
-m_defaultRequiredConfirmations
-m_defaultRequiredConfirmationsData
-_max_cleanup_operations
}