@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
new ViemChainReader(opts): ViemChainReader;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:40
Parameters
| Parameter | Type |
|---|---|
opts | ViemChainReaderOpts |
Returns
ViemChainReader
Properties
_maspAddress
protected readonly _maspAddress: EvmAddress;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:35
_nativeAdapterAddress?
protected readonly optional _nativeAdapterAddress?: EvmAddress;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:37
_permit2Address
protected readonly _permit2Address: EvmAddress;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:36
publicClient
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
protected readonly readCtx: ViemReadCtx;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:34
Methods
blockNumber()
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
cancelDelay()
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
chainId()
chainId(): Promise<bigint>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:41
Returns
Promise<bigint>
Implementation of
fetchAsset()
fetchAsset(id): Promise<AssetEntry>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:44
The registry entry with its yield fields.
Parameters
| Parameter | Type |
|---|---|
id | AssetId |
Returns
Promise<AssetEntry>
Implementation of
fetchDepositEscrowed()
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
| Parameter | Type |
|---|---|
id | bigint |
fromBlock? | bigint |
Returns
Promise< | DepositEscrowedRecord | null>
Implementation of
ChainReader.fetchDepositEscrowed
fetchNotePayload()
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
| Parameter | Type |
|---|---|
txHash | Hex32 |
cm | Hex32 |
Returns
Promise<PublishedNote | null>
Implementation of
getEscrowed()
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
| Parameter | Type |
|---|---|
id | bigint |
Returns
Promise<EscrowedDepositView | null>
Implementation of
isKnownRoot()
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
| Parameter | Type |
|---|---|
root | bigint |
Returns
Promise<boolean>
Implementation of
ChainReader.isKnownRootmaspAddress()
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
nameAvailable()
nameAvailable(registrar, label): Promise<boolean>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:71
Whether label is valid and unregistered.
Parameters
| Parameter | Type |
|---|---|
registrar | EvmAddress |
label | string |
Returns
Promise<boolean>
Implementation of
nameFee()
nameFee(registrar): Promise<NameFee>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:72
Parameters
| Parameter | Type |
|---|---|
registrar | EvmAddress |
Returns
Promise<NameFee>
Implementation of
nameRecord()
nameRecord(registrar, label): Promise<NameRecord>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:70
Parameters
| Parameter | Type |
|---|---|
registrar | EvmAddress |
label | string |
Returns
Promise<NameRecord>
Implementation of
nativeAdapterAddress()
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()
nativeBalance(account): Promise<bigint>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:58
Wei. Optional.
Parameters
| Parameter | Type |
|---|---|
account | EvmAddress |
Returns
Promise<bigint>
Implementation of
permit2Address()
permit2Address(): EvmAddress;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:66
Optional: omitted by adapters that do not use Permit2.
Returns
Implementation of
permit2Allowance()
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
| Parameter | Type |
|---|---|
tok | EvmAddress |
owner | EvmAddress |
spender | EvmAddress |
Returns
Promise<{ amount: TokenAmount; expiration: number; nonce: number; }>
Implementation of
permit2Nonce()
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
tokenAllowance()
tokenAllowance(
a,
owner,
spender
): Promise<TokenAmount>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:51
Parameters
| Parameter | Type |
|---|---|
a | EvmAddress |
owner | EvmAddress |
spender | EvmAddress |
Returns
Promise<TokenAmount>
Implementation of
tokenBalanceOf()
tokenBalanceOf(a, account): Promise<TokenAmount>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:50
Parameters
| Parameter | Type |
|---|---|
a | EvmAddress |
account | EvmAddress |
Returns
Promise<TokenAmount>
Implementation of
tokenMeta()
tokenMeta(a): Promise<TokenMeta>;Defined in: @lelantos-org/sdk/dist/chain/viem/reader.d.ts:49
Optional; callers feature-check before calling.
Parameters
| Parameter | Type |
|---|---|
a | EvmAddress |
Returns
Promise<TokenMeta>
Implementation of
txReceiptLogs()
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
| Parameter | Type |
|---|---|
txHash | Hex32 |
Returns
Promise<readonly TxLog[]>
Implementation of
waitTxReceipt()
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
| Parameter | Type |
|---|---|
txHash | Hex32 |
confirmations? | number |
Returns
Promise<{ blockNumber: number; status: number; }>