Siirtää SPL-tokeneita käyttäjän associated token account -tililtä escrow'n associated token account -tilille, hyvittäen tallettavan käyttäjän kanavaсалdon (tai valinnaisen vastaanottajan saldon).
Tilit
| Tili | Kirjoitettava | Allekirjoittaja | Kuvaus |
|---|---|---|---|
payer | ✓ | ✓ | Transaktion maksaja |
user | ✓ | Talletuksen tekevä tokenin omistaja | |
instance | Escrow-instanssin PDA | ||
mint | SPL-tokenin mint | ||
allowed_mint | PDA, joka varmistaa, että mint on sallittu tässä instanssissa | ||
user_ata | ✓ | Käyttäjän associated token account (lähde) | |
instance_ata | ✓ | Escrow'n associated token account (kohde) | |
system_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | Tapahtuman auktoriteetti-PDA EmitEvent-CPI:tä varten | ||
private_channel_escrow_program | Escrow-ohjelma (itsensä viittaus CPI:tä varten) |
Parametrit
| Parametri | Tyyppi | Kuvaus |
|---|---|---|
amount | u64 | Talletettavien tokenien määrä pienimmässä yksikössä |
recipient | Option<Pubkey> | Valinnainen ketjussa oleva vastaanottaja; jos None, hyvitetään tallettavan käyttäjän kanavaсaldo |
Palautusarvo
Palauttaa TransactionBuilder-olion, jota voidaan käyttää transaktion rakentamiseen ja lähettämiseen.
Esimerkki
import { getDepositInstructionAsync } from "../private-channel-escrow-program/clients/typescript/src/generated";// allowedMint and instanceAta are auto-derived from mint and instanceconst depositIx = await getDepositInstructionAsync({payer: payerSigner,user: userSigner,instance: instancePda,mint: mintAddress,userAta: userAtaAddress,amount: 1_000_000n,recipient: null});
Tärkeät huomiot
- Ohjelma-ID:
9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU - Token-2022-minteille välitä
tokenProgram: TOKEN_2022_PROGRAM_ADDRESSeksplisiittisesti, sillä oletusarvona käytetään tavallista SPL Token Program -ohjelmaa allowed_mint-PDA:n täytyy olla olemassa (luotuAllowMint-komennolla); listaamattoman mintin tallettaminen aiheuttaaInvalidAllowedMint-virheen- Kun
recipientonNone, tallettavan käyttäjän kanavaсaldo hyvitetään; kun se on annettu, hyvitetään määritetyn lompakon saldo - Sekä
payerettäusertäytyy allekirjoittaa transaktio instance_ata:n täytyy olla jo olemassa (luotuAllowMint-komennolla tälle mintille)
Is this page helpful?