@thalalabs/multisig-utils
v0.1.4
Published
Utility functions for managing multisig transactions on Aptos
Downloads
4
Readme
@thalalabs/multisig-utils
A TypeScript utility library for managing multisig transactions on Aptos blockchain. This library provides tools for fetching, decoding, encoding, and analyzing multisig transactions.
Installation
npm install @thalalabs/multisig-utilsUsage
import {
fetchPendingTxns,
numPendingTxns,
decode,
encode,
getCoinBalance,
getCoinDecimals,
getCoinSymbol,
getFABalance,
getFaDecimals,
getFaSymbol,
getBalanceChangesData
} from '@thalalabs/multisig-utils';
import { Aptos } from '@aptos-labs/ts-sdk';
// Initialize Aptos client
const aptos = new Aptos();
// Fetch pending transactions
const pendingTxns = await fetchPendingTxns(aptos, multisigAddress);
// Get number of pending transactions
const count = await numPendingTxns(aptos, multisigAddress);
// Decode a transaction payload
const decoded = await decode(aptos, hexPayload);
// Encode a transaction payload
const encoded = await encode(aptos, functionId, typeArgs, args);
// Get balance changes from simulation
const balanceChanges = await getBalanceChangesData(aptos, simulationChanges);
// Get coin information
const balance = await getCoinBalance(aptos, coinType, accountAddress);
const decimals = await getCoinDecimals(aptos, coinType);
const symbol = await getCoinSymbol(aptos, coinType);
// Get fungible asset information
const faBalance = await getFABalance(aptos, faMetadata, accountAddress);
const faDecimals = await getFaDecimals(aptos, assetType);
const faSymbol = await getFaSymbol(aptos, assetType);API Reference
Transaction Management
fetchPendingTxns(aptos, multisig, sequence_number?)
Fetches pending transactions for a multisig account.
Parameters:
aptos: Aptos client instancemultisig: Multisig account addresssequence_number(optional): Specific sequence number to fetch
Returns: Array of decoded multisig transactions with simulation results
numPendingTxns(aptos, multisig)
Gets the number of pending transactions for a multisig account.
Parameters:
aptos: Aptos client instancemultisig: Multisig account address
Returns: Number of pending transactions
Payload Encoding/Decoding
decode(aptos, hexStrWithPrefix)
Decodes a hex transaction payload into a structured format.
Parameters:
aptos: Aptos client instancehexStrWithPrefix: Hex string with 0x prefix
Returns: Decoded transaction data with function ID, type arguments, and function arguments
encode(aptos, functionId, typeArgs, args)
Encodes transaction arguments into a payload.
Parameters:
aptos: Aptos client instancefunctionId: Function identifier (e.g., "0x1::coin::transfer")typeArgs: Type arguments arrayargs: Function arguments array
Returns: Encoded transaction payload
Transaction Analysis
getBalanceChangesData(aptos, changes)
Extracts balance change data from transaction simulation results.
Parameters:
aptos: Aptos client instancechanges: Write set changes from simulation
Returns: Array of BalanceChange objects with address, asset, symbol, and before/after balances
Coin Utilities
getCoinBalance(aptos, assetType, accountAddress)
Gets the balance of a specific coin for an account.
Parameters:
aptos: Aptos client instanceassetType: Coin type (e.g., "0x1::aptos_coin::AptosCoin")accountAddress: Account address
Returns: Coin balance as a number
getCoinDecimals(aptos, assetType)
Gets the decimal places for a coin type.
Parameters:
aptos: Aptos client instanceassetType: Coin type
Returns: Number of decimal places
getCoinSymbol(aptos, assetType)
Gets the symbol for a coin type.
Parameters:
aptos: Aptos client instanceassetType: Coin type
Returns: Coin symbol as string
Fungible Asset Utilities
getFABalance(aptos, faMetadata, accountAddress)
Gets the balance of a fungible asset for an account.
Parameters:
aptos: Aptos client instancefaMetadata: Fungible asset metadata addressaccountAddress: Account address
Returns: Fungible asset balance as a number
getFaDecimals(aptos, assetType)
Gets the decimal places for a fungible asset type.
Parameters:
aptos: Aptos client instanceassetType: Fungible asset type
Returns: Number of decimal places
getFaSymbol(aptos, assetType)
Gets the symbol for a fungible asset type.
Parameters:
aptos: Aptos client instanceassetType: Fungible asset type
Returns: Fungible asset symbol as string
Validation Utilities
The library also includes validation functions for CLI applications:
validateAddress(value): Validates and returns an Aptos addressvalidateAddresses(value): Validates a comma-separated list of addressesvalidateUInt(value): Validates a non-negative integervalidateBool(value): Validates a boolean valuevalidateAsset(value): Validates and categorizes asset types
Requirements
- Node.js >= 20
- TypeScript support
Dependencies
@aptos-labs/ts-sdk: Aptos TypeScript SDKchalk: Terminal styling
License
MIT
