import { NttTokenDef, SolanaChain } from '@galacticcouncil/xc-core'; import { SolanaCall } from './types'; export declare class SolanaClaim { #private; constructor(chain: SolanaChain); /** * Redeem NTT transfer on Solana. * * Posts the signed VAA to the core bridge & delivers it to the token * NTT program (receive + redeem + release). Yields multiple calls, * sign & send in order. * * @param from - payer address * @param vaaRaw - base64 encoded signed VAA (wormholescan raw format) * @param ntt - NTT token deployment on Solana * @returns claim program calls */ redeem(from: string, vaaRaw: string, ntt: NttTokenDef): Promise; /** * Release queued NTT transfer on Solana. * * Delivers the release for a transfer redeemed over the inbound rate * limit. Mints into the recipient ata once the queue timestamp is up, * no-op success before that (revertWhenNotReady is off). * * @param from - payer address * @param vaaRaw - base64 encoded signed VAA (wormholescan raw format) * @param ntt - NTT token deployment on Solana * @returns release program call */ release(from: string, vaaRaw: string, ntt: NttTokenDef): Promise; /** * Open the recipient's token account. * * `release_inbound_mint` mints into the recipient ata and the program * never initializes it, while the reference sdk only opens one for the * payer - so relaying somebody else's transfer fails at release. Opening * an ata is permissionless, the payer just covers the rent. * * Emitted unconditionally: the idempotent variant is a no-op when the * account already exists, which is cheaper than the round-trip it would * take to find out - and safer, since the account can be closed between * the check and the release. * * @param ntt - NTT token deployment on Solana * @param vaa - deserialized transfer, carries the recipient * @param payer - claim payer, pays the rent * @returns create instruction */ private getOpenRecipient; /** * Unwrap the released wSOL back into native sol. * * The manager only ever releases the spl token, so a native sol claim * leaves the recipient holding wSOL instead. Mirrors the token bridge * redeem: move the released amount into a throwaway wSOL account and * close it, which credits the lamports to its owner. * * Self redeem only - the wSOL lands in the recipient ata and nobody * else can move it out. * * @param ntt - NTT token deployment on Solana * @param vaa - deserialized transfer, carries the recipient & amount * @param payer - claim payer * @returns unwrap instructions & the throwaway account signer */ private getUnwrap; private getInstructions; }