Skip to main content

Module wallet

Module wallet 

Source
Expand description

A blockchain wallet account holding unleveraged native and ERC-20 token balances.

The account is multi-currency with no base currency, no margin entries, and no borrowing: every reported total is the observed on-chain balance and negative totals are rejected. ERC-20 allowances are spender authorizations and are not represented as balances or locked funds.

§Balance locking

Locked balances track local pending-order reservations per (InstrumentId, Currency), without changing the reported on-chain totals: free = total - locked. Account state events contribute totals only; locked and free balances are always derived from local reservations. Rebuilding an instrument reservation clears its prior currency locks before applying the new exact set. Computed BUY notionals for non-inverse, non-quanto instruments round up to the observed currency’s smallest unit so the reservation never understates the possible spend.

§Graceful degradation

When total locked exceeds total balance (e.g., due to on-chain state latency), the account clamps locked to total rather than raising an error. This yields zero free balance, preventing new orders while avoiding crashes in live trading.

Structs§

WalletAccount
Represents a blockchain wallet account holding native and ERC-20 token balances.