Skip to content

@lelantos-org/sdk / advanced / ViemChainReader

Class: ViemChainReader ​

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:32

Everything a chain can answer without a signing key, which is all the spend path uses.

fetchAsset is required because every amount the wallet formats, every fee it quotes and every asset it names resolves through the registry.

Implementations must be deterministic w.r.t. constructor inputs (no hidden global state).

Extended by ​

Implements ​

Constructors ​

Constructor ​

ts
new ViemChainReader(opts): ViemChainReader;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:40

Parameters ​

ParameterType
optsViemChainReaderOpts

Returns ​

ViemChainReader

Properties ​

_maspAddress ​

ts
protected readonly _maspAddress: EvmAddress;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:35


_nativeAdapterAddress? ​

ts
protected readonly optional _nativeAdapterAddress?: EvmAddress;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:37


_permit2Address ​

ts
protected readonly _permit2Address: EvmAddress;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:36


publicClient ​

ts
readonly publicClient: object;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:33

viem's PublicClient. Its members are viem's own and are documented there, not here.


readCtx ​

ts
protected readonly readCtx: ViemReadCtx;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:34

Methods ​

blockNumber() ​

ts
blockNumber(): Promise<number>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:42

Current chain tip. Feeds SelectOpts.tipBlock, without which the selector's spend cooldown is inert. The request names no address and no topic. Optional.

Returns ​

Promise<number>

Implementation of ​

ChainReader.blockNumber


cancelDelay() ​

ts
cancelDelay(): Promise<number>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:47

Blocks, in the EVM's block.number, after submittedAt before cancelDeposit is allowed. Optional.

Returns ​

Promise<number>

Implementation of ​

ChainReader.cancelDelay


chainId() ​

ts
chainId(): Promise<bigint>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:41

Returns ​

Promise<bigint>

Implementation of ​

ChainReader.chainId


fetchAsset() ​

ts
fetchAsset(id): Promise<AssetEntry>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:44

The registry entry with its yield fields.

Parameters ​

ParameterType
idAssetId

Returns ​

Promise<AssetEntry>

Implementation of ​

ChainReader.fetchAsset


fetchDepositEscrowed() ​

ts
fetchDepositEscrowed(id, fromBlock?): Promise<
  | DepositEscrowedRecord
| null>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:46

The decoded DepositEscrowed log for escrow id, or null when none is found from fromBlock (default: an adapter-chosen recent window) to the tip. cancelDeposit({ depositId }) rebuilds its cancel inputs from it. Optional.

Parameters ​

ParameterType
idbigint
fromBlock?bigint

Returns ​

Promise< | DepositEscrowedRecord | null>

Implementation of ​

ChainReader.fetchDepositEscrowed


fetchNotePayload() ​

ts
fetchNotePayload(txHash, cm): Promise<PublishedNote | null>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:57

The decoded NotePayload the pool emitted for commitment cm in mined transaction txHash, or null when that transaction carries none from the pool. A payment proof needs the output's published clue, ephPub and ciphertext. Optional.

A transaction the node holds no receipt for (unknown, or not yet mined) is "not found": resolve null without waiting for it. verifyPaymentProof passes a hash from a proof it has not checked, and reports null as not-published. Reject only when the node could not be asked, so an RPC failure is not read as "no such payment".

Parameters ​

ParameterType
txHashHex32
cmHex32

Returns ​

Promise<PublishedNote | null>

Implementation of ​

ChainReader.fetchNotePayload


getEscrowed() ​

ts
getEscrowed(id): Promise<EscrowedDepositView | null>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:45

MASP.escrowed(id); null if flushed or cancelled. Optional.

Parameters ​

ParameterType
idbigint

Returns ​

Promise<EscrowedDepositView | null>

Implementation of ​

ChainReader.getEscrowed


isKnownRoot() ​

ts
isKnownRoot(root): Promise<boolean>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:48

Whether the pool would accept a proof against root, from the ring of recent roots it keeps. Authoritative; the commitment mirror approximates it. Optional: without it the mirror decides.

Parameters ​

ParameterType
rootbigint

Returns ​

Promise<boolean>

Implementation of ​

ts
ChainReader.isKnownRoot

maspAddress() ​

ts
maspAddress(): Promise<EvmAddress>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:67

Used as the Permit2 spender.

Returns ​

Promise<EvmAddress>

Implementation of ​

ChainReader.maspAddress


nameAvailable() ​

ts
nameAvailable(registrar, label): Promise<boolean>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:71

Whether label is valid and unregistered.

Parameters ​

ParameterType
registrarEvmAddress
labelstring

Returns ​

Promise<boolean>

Implementation of ​

ChainReader.nameAvailable


nameFee() ​

ts
nameFee(registrar): Promise<NameFee>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:72

Parameters ​

ParameterType
registrarEvmAddress

Returns ​

Promise<NameFee>

Implementation of ​

ChainReader.nameFee


nameRecord() ​

ts
nameRecord(registrar, label): Promise<NameRecord>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:70

Parameters ​

ParameterType
registrarEvmAddress
labelstring

Returns ​

Promise<NameRecord>

Implementation of ​

ChainReader.nameRecord


nativeAdapterAddress() ​

ts
nativeAdapterAddress(): EvmAddress | undefined;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:69

undefined when no NativeAdapter is configured for this chain.

Returns ​

EvmAddress | undefined

Implementation of ​

ChainReader.nativeAdapterAddress


nativeBalance() ​

ts
nativeBalance(account): Promise<bigint>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:58

Wei. Optional.

Parameters ​

ParameterType
accountEvmAddress

Returns ​

Promise<bigint>

Implementation of ​

ChainReader.nativeBalance


permit2Address() ​

ts
permit2Address(): EvmAddress;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:66

Optional: omitted by adapters that do not use Permit2.

Returns ​

EvmAddress

Implementation of ​

ChainReader.permit2Address


permit2Allowance() ​

ts
permit2Allowance(
   tok, 
   owner, 
   spender
): Promise<{
  amount: TokenAmount;
  expiration: number;
  nonce: number;
}>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:59

IAllowanceTransfer.allowance: cap, expiry, nonce. Optional.

Parameters ​

ParameterType
tokEvmAddress
ownerEvmAddress
spenderEvmAddress

Returns ​

Promise<{ amount: TokenAmount; expiration: number; nonce: number; }>

Implementation of ​

ChainReader.permit2Allowance


permit2Nonce() ​

ts
permit2Nonce(): Promise<bigint>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:65

Permit2 nonces are caller-chosen and unordered, so a random u256 suffices.

Returns ​

Promise<bigint>

Implementation of ​

ChainReader.permit2Nonce


tokenAllowance() ​

ts
tokenAllowance(
   a, 
   owner, 
   spender
): Promise<TokenAmount>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:51

Parameters ​

ParameterType
aEvmAddress
ownerEvmAddress
spenderEvmAddress

Returns ​

Promise<TokenAmount>

Implementation of ​

ChainReader.tokenAllowance


tokenBalanceOf() ​

ts
tokenBalanceOf(a, account): Promise<TokenAmount>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:50

Parameters ​

ParameterType
aEvmAddress
accountEvmAddress

Returns ​

Promise<TokenAmount>

Implementation of ​

ChainReader.tokenBalanceOf


tokenMeta() ​

ts
tokenMeta(a): Promise<TokenMeta>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:49

Optional; callers feature-check before calling.

Parameters ​

ParameterType
aEvmAddress

Returns ​

Promise<TokenMeta>

Implementation of ​

ChainReader.tokenMeta


txReceiptLogs() ​

ts
txReceiptLogs(txHash): Promise<readonly TxLog[]>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:56

Every log of a mined transaction's receipt, in receipt order.

Read after a relayed spend to find the wallet's own operation in a transaction the relayer may have bundled with others', and by a payment proof to find an output's slot. Only the hash is sent; matching against the wallet's commitments happens locally. Optional: without it a spend result carries no operation and paymentProof is unsupported.

Its callers pass a hash they have reason to believe mined, so an implementation may wait briefly for a node that lags, and rejects when no receipt arrives. A transaction the node does not know is not an empty list.

Parameters ​

ParameterType
txHashHex32

Returns ​

Promise<readonly TxLog[]>

Implementation of ​

ChainReader.txReceiptLogs


waitTxReceipt() ​

ts
waitTxReceipt(txHash, confirmations?): Promise<{
  blockNumber: number;
  status: number;
}>;

Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:52

Block number and receipt status (1 = success, 0 = revert).

Parameters ​

ParameterType
txHashHex32
confirmations?number

Returns ​

Promise<{ blockNumber: number; status: number; }>

Implementation of ​

ChainReader.waitTxReceipt