Μεταφέρει SPL tokens από το associated token account ενός χρήστη στο associated token account του escrow, πιστώνοντας το υπόλοιπο καναλιού του χρήστη που πραγματοποιεί την κατάθεση (ή το υπόλοιπο ενός προαιρετικού παραλήπτη).
Λογαριασμοί
| Λογαριασμός | Εγγράψιμο | Υπογράφων | Περιγραφή |
|---|---|---|---|
payer | ✓ | ✓ | Πληρωτής τελών συναλλαγής |
user | ✓ | Ιδιοκτήτης token που πραγματοποιεί την κατάθεση | |
instance | PDA παρουσίας escrow | ||
mint | SPL token mint | ||
allowed_mint | PDA που επαληθεύει ότι το mint επιτρέπεται σε αυτή την παρουσία | ||
user_ata | ✓ | Associated token account χρήστη (πηγή) | |
instance_ata | ✓ | Associated token account του escrow (προορισμός) | |
system_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | PDA αρχής συμβάντων για EmitEvent CPI | ||
private_channel_escrow_program | Πρόγραμμα Escrow (αυτο-αναφορά για CPI) |
Παράμετροι
| Παράμετρος | Τύπος | Περιγραφή |
|---|---|---|
amount | u64 | Ποσό tokens προς κατάθεση, στη μικρότερη μονάδα του token |
recipient | Option<Pubkey> | Προαιρετικός on-chain παραλήπτης· αν είναι None, πιστώνεται το υπόλοιπο καναλιού του χρήστη που καταθέτει |
Επιστρεφόμενη Τιμή
Επιστρέφει ένα TransactionBuilder που μπορεί να χρησιμοποιηθεί για τη δημιουργία και αποστολή της συναλλαγής.
Παράδειγμα
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});
Σημαντικές Σημειώσεις
- Program ID:
9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU - Για mint Token-2022, περάστε
tokenProgram: TOKEN_2022_PROGRAM_ADDRESSρητά, καθώς η προεπιλογή είναι το τυπικό SPL Token Program - Το PDA
allowed_mintπρέπει να υπάρχει (δημιουργείται από τοAllowMint)· η κατάθεση με μη καταχωρημένο mint εκπέμπειInvalidAllowedMint - Όταν το
recipientείναιNone, πιστώνεται το υπόλοιπο καναλιού του χρήστη που καταθέτει· όταν παρέχεται, πιστώνεται το υπόλοιπο του καθορισμένου πορτοφολιού - Και το
payerκαι τοuserπρέπει να υπογράψουν τη συναλλαγή - Το
instance_ataπρέπει να υπάρχει ήδη (δημιουργείται από τοAllowMintγια αυτό το mint)
Is this page helpful?