Skip to main content

BaseWallet

atlas.js v0.2.0


atlas.js / BaseWallet

Abstract Class: BaseWallet

Defined in: src/wallets/base-wallet.ts:23

Abstract base class for wallet implementations.

Manages the lifecycle of a Cosmos-compatible wallet connection: connecting to an RPC endpoint, initialising query and signing clients, and providing transaction signing, simulation, and balance-querying primitives.

Subclasses must implement connect, disconnect, getWalletType, and signArbitrary.

Constructors​

Constructor​

new BaseWallet(config): BaseWallet

Defined in: src/wallets/base-wallet.ts:45

Parameters​

config​

AtlasConfig

Configuration object containing endpoint, gas price, and any subclass-specific options.

Returns​

BaseWallet

Properties​

_address​

protected _address: string = ""

Defined in: src/wallets/base-wallet.ts:28

Active wallet address


config​

protected config: AtlasConfig

Defined in: src/wallets/base-wallet.ts:25

Wallet-level configuration (RPC endpoint, gas price, etc.).


queryClient​

protected queryClient: StargateClient = null

Defined in: src/wallets/base-wallet.ts:34

Read-only Stargate client for queries (balance, account info).


signingClient​

protected signingClient: SigningStargateClient = null

Defined in: src/wallets/base-wallet.ts:37

Signing Stargate client for broadcasting transactions.

Accessors​

address​

Get Signature​

get address(): string

Defined in: src/wallets/base-wallet.ts:29

Returns​

string

Methods​

connect()​

abstract connect(): Promise<void>

Defined in: src/wallets/base-wallet.ts:56

Establish a wallet connection.

Subclasses should initialize the signer, connect to the RPC endpoint (via initializeClients), and return the resulting connection metadata.

Returns​

Promise<void>


disconnect()​

abstract disconnect(): Promise<void>

Defined in: src/wallets/base-wallet.ts:59

Tear down the wallet connection and release any held resources.

Returns​

Promise<void>


getAccountBalance()​

getAccountBalance(): Promise<readonly Coin[]>

Defined in: src/wallets/base-wallet.ts:110

Fetch all non-zero balance coins for the connected wallet address.

Returns​

Promise<readonly Coin[]>

Throws​

If the wallet is not connected.


getAccountInfo()​

getAccountInfo(): Promise<Account>

Defined in: src/wallets/base-wallet.ts:100

Fetch the on-chain account information for the connected wallet address.

Returns​

Promise<Account>

Throws​

If the wallet is not connected.


getQueryClient()​

getQueryClient(): StargateClient

Defined in: src/wallets/base-wallet.ts:91

Return the active query client, or null if not connected.

Returns​

StargateClient


getSigningClient()​

getSigningClient(): SigningStargateClient

Defined in: src/wallets/base-wallet.ts:84

Return the active signing client, or null if not connected.

Returns​

SigningStargateClient


getWalletType()​

abstract getWalletType(): WalletType

Defined in: src/wallets/base-wallet.ts:62

Return the concrete wallet type for this implementation.

Returns​

WalletType


initializeClients()​

protected initializeClients(offlineSigner, address): Promise<void>

Defined in: src/wallets/base-wallet.ts:188

Initialize the query and signing Stargate clients.

Connects a read-only StargateClient to the configured RPC endpoint, then creates a SigningStargateClient using the provided offline signer. The Atlas protobuf type registry (from GlobalDecoderRegistry) is registered so that the signing client can encode/decode custom message types.

Parameters​

offlineSigner​

OfflineSigner

The offline signer (Amino-compatible) to attach.

address​

string

The on-chain address corresponding to the signer.

Returns​

Promise<void>

Throws​

If either client fails to initialize.


isConnected()​

isConnected(): boolean

Defined in: src/wallets/base-wallet.ts:77

Check whether the wallet is currently connected and ready for use.

Returns true when a wallet handle, signingClient, and queryClient are all not null.

Returns​

boolean


refreshClients()​

refreshClients(): Promise<void>

Defined in: src/wallets/base-wallet.ts:226

Re-initialize the query and signing clients using the existing wallet connection.

Useful after a network interruption or endpoint rotation.

Returns​

Promise<void>

Throws​

If no wallet connection has been established.


signAndBroadcastTransaction()​

signAndBroadcastTransaction(txBody, options?): Promise<DeliverTxResponse>

Defined in: src/wallets/base-wallet.ts:131

Sign and broadcast a transaction constructed from a TxBody.

Fee resolution order:

  1. options.fee if explicitly provided.
  2. Auto-calculated from options.gas + config.gasPrice if both are finite.
  3. Fall back to options.gasAdjustment or config.gasAdjustment, or the literal string 'auto' as a last resort.

Parameters​

txBody​

TxBody

The transaction body containing messages.

options?​

TxOptions

Optional overrides for gas, fee, memo, and gas adjustment.

Returns​

Promise<DeliverTxResponse>

The on-chain delivery response after broadcast.

Throws​

If the wallet is not connected or the transaction fails.


signArbitrary()​

abstract signArbitrary(data): Promise<string>

Defined in: src/wallets/base-wallet.ts:69

Sign an arbitrary piece of data (string or bytes) using the wallet's key.

Parameters​

data​

string | Uint8Array<ArrayBufferLike>

The data to sign, as a string or Uint8Array.

Returns​

Promise<string>


simulateTransaction()​

simulateTransaction(messages, options?): Promise<number>

Defined in: src/wallets/base-wallet.ts:168

Simulate a transaction without broadcasting it.

Uses the signing client's simulate method to dry-run the given messages and return the estimated gas units.

Parameters​

messages​

any[]

The array of protobuf messages to simulate.

options?​

TxOptions

Optional overrides (currently only memo is used).

Returns​

Promise<number>

The estimated gas cost in gas units.

Throws​

If the wallet is not connected.