Skip to content

@lelantos-org/sdk / advanced / ChainAdapter

Interface: ChainAdapter ​

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:248

A reader that also holds a signing key.

Every member added here either signs as the user's EOA or spends its gas: shielding moves public tokens out of an address that must both custody them and pay for the transaction. Narrow with supportsSigning before using any of them.

Extends ​

Properties ​

isKnownRoot? ​

ts
optional isKnownRoot?: IsKnownRoot;

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

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.

Inherited from ​

ChainReader.isKnownRoot

Methods ​

blockNumber()? ​

ts
optional blockNumber(): Promise<number>;

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

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>

Inherited from ​

ChainReader.blockNumber


cancelDelay()? ​

ts
optional cancelDelay(): Promise<number>;

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

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

Returns ​

Promise<number>

Inherited from ​

ChainReader.cancelDelay


cancelDeposit()? ​

ts
optional cancelDeposit(id, inputs): Promise<CancelDepositReceipt>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:174

MASP.cancelDeposit. The on-chain digest check rejects tampered preimages. Resolves once mined, with the refund split read off DepositCanceled. Optional.

Parameters ​

ParameterType
idbigint
inputsCancelDepositInputs

Returns ​

Promise<CancelDepositReceipt>

Inherited from ​

ts
DepositWrites.cancelDeposit

cancelDepositNative()? ​

ts
optional cancelDepositNative(id, inputs): Promise<CancelDepositReceipt>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:234

NativeAdapter.cancelNative: the only way to settle an adapter-owned escrow by refund, since the pool would return the coin to the adapter. No payer: the adapter supplies its own. Optional.

Parameters ​

ParameterType
idbigint
inputsOmit<CancelDepositInputs, "payer">

Returns ​

Promise<CancelDepositReceipt>

Inherited from ​

ts
NativeWrites.cancelDepositNative

chainId() ​

ts
chainId(): Promise<bigint>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:7

Returns ​

Promise<bigint>

Inherited from ​

ChainReader.chainId


fetchAsset() ​

ts
fetchAsset(id): Promise<AssetEntry>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:20

The registry entry, including the asset's protocol fee rates, which are per-asset and per-leg. 0 bps disables a leg's fee.

Parameters ​

ParameterType
idAssetId

Returns ​

Promise<AssetEntry>

Inherited from ​

ChainReader.fetchAsset


fetchDepositEscrowed()? ​

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

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:29

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>

Inherited from ​

ChainReader.fetchDepositEscrowed


fetchNotePayload()? ​

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

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:117

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>

Inherited from ​

ChainReader.fetchNotePayload


getEscrowed()? ​

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

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:22

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

Parameters ​

ParameterType
idbigint

Returns ​

Promise<EscrowedDepositView | null>

Inherited from ​

ChainReader.getEscrowed


maspAddress() ​

ts
maspAddress(): Promise<EvmAddress>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:9

Used as the Permit2 spender.

Returns ​

Promise<EvmAddress>

Inherited from ​

ChainReader.maspAddress


nameAvailable()? ​

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

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:80

Whether label is valid and unregistered.

Parameters ​

ParameterType
registrarEvmAddress
labelstring

Returns ​

Promise<boolean>

Inherited from ​

ChainReader.nameAvailable


nameFee()? ​

ts
optional nameFee(registrar): Promise<NameFee>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:81

Parameters ​

ParameterType
registrarEvmAddress

Returns ​

Promise<NameFee>

Inherited from ​

ChainReader.nameFee


nameRecord()? ​

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

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:78

Parameters ​

ParameterType
registrarEvmAddress
labelstring

Returns ​

Promise<NameRecord>

Inherited from ​

ChainReader.nameRecord


nativeAdapterAddress()? ​

ts
optional nativeAdapterAddress(): EvmAddress | undefined;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:15

NativeAdapter address, or undefined where none is deployed: the payer a native deposit names. Also read by withdraw({ native }). Optional.

Returns ​

EvmAddress | undefined

Inherited from ​

ChainReader.nativeAdapterAddress


nativeBalance()? ​

ts
optional nativeBalance(account): Promise<bigint>;

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

Wei. Optional.

Parameters ​

ParameterType
accountEvmAddress

Returns ​

Promise<bigint>

Inherited from ​

ChainReader.nativeBalance


payerAddress() ​

ts
payerAddress(): Promise<EvmAddress>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:134

The signer's address; pi.payer for a deposit.

Returns ​

Promise<EvmAddress>

Inherited from ​

ts
DepositWrites.payerAddress

permit2Address()? ​

ts
optional permit2Address(): EvmAddress;

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

Optional: omitted by adapters that do not use Permit2.

Returns ​

EvmAddress

Inherited from ​

ChainReader.permit2Address


permit2Allowance()? ​

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

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

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

Parameters ​

ParameterType
tokenEvmAddress
ownerEvmAddress
spenderEvmAddress

Returns ​

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

Inherited from ​

ChainReader.permit2Allowance


permit2Nonce()? ​

ts
optional permit2Nonce(): Promise<bigint>;

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

Free slot in Permit2's unordered nonce bitmap. Optional: omitted by adapters returning a deterministic nonce.

Returns ​

Promise<bigint>

Inherited from ​

ChainReader.permit2Nonce


permit2PermitAllowance()? ​

ts
optional permit2PermitAllowance(args, onTxHash?): Promise<{
  txHash: Hex32;
}>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:182

Submit pre-signed PermitSingle via IAllowanceTransfer.permit. Anyone can submit; relayer-gasless variants may override. Optional.

Parameters ​

ParameterType
args{ owner: EvmAddress; permit: PermitSingle; signature: string; }
args.ownerEvmAddress
args.permit?PermitSingle
args.signature?string
onTxHash?(hash) => void

Returns ​

Promise<{ txHash: Hex32; }>

Inherited from ​

ts
Permit2Writes.permit2PermitAllowance

permit2PermitAllowanceBatch()? ​

ts
optional permit2PermitAllowanceBatch(args, onTxHash?): Promise<{
  txHash: Hex32;
}>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:197

Submit a pre-signed PermitBatch via the permit overload taking an array; one tx establishes N token windows. Optional.

Parameters ​

ParameterType
args{ owner: EvmAddress; permit: PermitBatch; signature: string; }
args.ownerEvmAddress
args.permit?PermitBatch
args.signature?string
onTxHash?(hash) => void

Returns ​

Promise<{ txHash: Hex32; }>

Inherited from ​

ts
Permit2Writes.permit2PermitAllowanceBatch

signPermit2() ​

ts
signPermit2(args): Promise<Permit2Sig>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:143

Sign a Permit2 witness transfer bound to piHash = keccak256(abi.encode(DepositRequest, aux, feeAux)).

PermitWitnessTransferFrom over token alone, or, when args.feeToken is set, PermitBatchWitnessTransferFrom over [token, feeToken]. The returned maxFee is 0n for the former.

Parameters ​

ParameterType
argsPermit2SignArgs

Returns ​

Promise<Permit2Sig>

Inherited from ​

ts
DepositWrites.signPermit2

signPermit2Allowance()? ​

ts
optional signPermit2Allowance(permit): Promise<{
  signature: string;
}>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:190

Sign PermitSingle for AllowanceTransfer-mode deposits. Optional.

Parameters ​

ParameterType
permitPermitSingle

Returns ​

Promise<{ signature: string; }>

Inherited from ​

ts
Permit2Writes.signPermit2Allowance

signPermit2AllowanceBatch()? ​

ts
optional signPermit2AllowanceBatch(permit): Promise<{
  signature: string;
}>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:205

Sign one PermitBatch covering N tokens. Optional.

Parameters ​

ParameterType
permitPermitBatch

Returns ​

Promise<{ signature: string; }>

Inherited from ​

ts
Permit2Writes.signPermit2AllowanceBatch

submitDeposit()? ​

ts
optional submitDeposit(args): Promise<DepositSubmitted>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:149

MASP.deposit(d, sig, aux, feeAux). Resolves once mined, with the hash, block and DepositEscrowed payload from the receipt. Optional: omitted by relayer-broadcast adapters.

Parameters ​

ParameterTypeDescription
args{ aux: AuxOutput; deposit: DepositRequest; feeAux: AuxOutput; onSent?: (txHash) => void; permit2: Permit2Sig; }-
args.auxAuxOutput-
args.depositDepositRequest-
args.feeAuxAuxOutputThe relayer fee note payload; a deposit mints two leaves.
args.onSent?(txHash) => voidFired once the wallet has signed and the tx hash is known, before the receipt wait.
args.permit2Permit2Sig-

Returns ​

Promise<DepositSubmitted>

Inherited from ​

ts
DepositWrites.submitDeposit

submitDepositAuthorized()? ​

ts
optional submitDepositAuthorized(args): Promise<DepositSubmitted>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:162

MASP.depositAuthorized. Pulls via Permit2 AllowanceTransfer against an already-signed window; no per-deposit sig. Optional.

Parameters ​

ParameterTypeDescription
args{ aux: AuxOutput; deposit: DepositRequest; feeAux: AuxOutput; onSent?: (txHash) => void; }-
args.auxAuxOutput-
args.depositDepositRequest-
args.feeAuxAuxOutputThe relayer fee note payload.
args.onSent?(txHash) => void-

Returns ​

Promise<DepositSubmitted>

Inherited from ​

ts
DepositWrites.submitDepositAuthorized

submitDepositNative()? ​

ts
optional submitDepositNative(args): Promise<DepositSubmitted>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:221

NativeAdapter.depositNative with msg.value = value. The pool is ERC-20 only, so the adapter wraps the coin, escrows it under its own name and returns the excess; deposit.payer must therefore be the adapter, not the sender. Asset id must be WETH-registered. Optional, and unavailable on a chain with no adapter deployed.

Parameters ​

ParameterTypeDescription
args{ aux: AuxOutput; deposit: DepositRequest; feeAux: AuxOutput; onSent?: (txHash) => void; value: bigint; }-
args.auxAuxOutput-
args.depositDepositRequest-
args.feeAuxAuxOutputThe relayer fee note payload.
args.onSent?(txHash) => void-
args.valuebigint-

Returns ​

Promise<DepositSubmitted>

Inherited from ​

ts
NativeWrites.submitDepositNative

tokenAllowance()? ​

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

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

Parameters ​

ParameterType
tokenAddrEvmAddress
ownerEvmAddress
spenderEvmAddress

Returns ​

Promise<TokenAmount>

Inherited from ​

ChainReader.tokenAllowance


tokenApprove()? ​

ts
optional tokenApprove(
   tokenAddr, 
   spender, 
   amount, 
   onTxHash?
): Promise<{
  txHash: Hex32;
}>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:208

Parameters ​

ParameterType
tokenAddrEvmAddress
spenderEvmAddress
amountTokenAmount
onTxHash?(hash) => void

Returns ​

Promise<{ txHash: Hex32; }>

Inherited from ​

ts
Permit2Writes.tokenApprove

tokenBalanceOf()? ​

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

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:68

Parameters ​

ParameterType
tokenAddrEvmAddress
accountEvmAddress

Returns ​

Promise<TokenAmount>

Inherited from ​

ChainReader.tokenBalanceOf


tokenMeta()? ​

ts
optional tokenMeta(tokenAddr): Promise<TokenMeta>;

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

Optional; callers feature-check before calling.

Parameters ​

ParameterType
tokenAddrEvmAddress

Returns ​

Promise<TokenMeta>

Inherited from ​

ChainReader.tokenMeta


txReceiptLogs()? ​

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

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:104

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[]>

Inherited from ​

ChainReader.txReceiptLogs


waitTxReceipt()? ​

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

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:86

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

Parameters ​

ParameterType
txHashHex32
confirmations?number

Returns ​

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

Inherited from ​

ChainReader.waitTxReceipt


wrapNative()? ​

ts
optional wrapNative(wethAddr, value): Promise<{
  txHash: Hex32;
}>;

Defined in: @lelantos-org/sdk/dist/chain/port.d.ts:236

WETH9.deposit{value}. Optional.

Parameters ​

ParameterType
wethAddrEvmAddress
valuebigint

Returns ​

Promise<{ txHash: Hex32; }>

Inherited from ​

ts
NativeWrites.wrapNative