Überträgt SPL-Token vom associated token account eines Benutzers in den associated token account des Escrows und schreibt dem einzahlenden Benutzer sein Kanalguthaben gut (oder optional dem Guthaben eines Empfängers).
Konten
| Konten | Schreibbar | Signer | Beschreibung |
|---|---|---|---|
payer | ✓ | ✓ | Gebührenzahler für die Transaktion |
user | ✓ | Token-Eigentümer, der die Einzahlung vornimmt | |
instance | Escrow-Instanz-PDA | ||
mint | SPL-Token-Mint | ||
allowed_mint | PDA, der verifiziert, dass der Mint für diese Instanz zulässig ist | ||
user_ata | ✓ | Associated token account des Benutzers (Quelle) | |
instance_ata | ✓ | Associated token account des Escrows (Ziel) | |
system_program | System Program | ||
token_program | SPL Token Program | ||
associated_token_program | Associated Token Program | ||
event_authority | Event-Authority-PDA für EmitEvent-CPI | ||
private_channel_escrow_program | Escrow-Programm (Selbstreferenz für CPI) |
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
amount | u64 | Anzahl der einzuzahlenden Token in der kleinsten Einheit des Tokens |
recipient | Option<Pubkey> | Optionaler On-Chain-Empfänger; wenn None, wird das Kanalguthaben des einzahlenden Benutzers gutgeschrieben |
Rückgabewert
Gibt einen TransactionBuilder zurück, der zum Erstellen und Senden der
transaktion verwendet werden kann.
Beispiel
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});
Wichtige Hinweise
- Programm-ID:
9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU - Für Token-2022-Mints muss
tokenProgram: TOKEN_2022_PROGRAM_ADDRESSexplizit angegeben werden, da standardmäßig das SPL Token Program verwendet wird - Die
allowed_mint-PDA muss vorhanden sein (erstellt durchAllowMint); das Einzahlen eines nicht gelisteten Mints wirftInvalidAllowedMint - Wenn
recipientgleichNoneist, wird das Kanalguthaben des einzahlenden Benutzers gutgeschrieben; andernfalls wird das Guthaben der angegebenen Wallet gutgeschrieben - Sowohl
payerals auchusermüssen die Transaktion signieren - Der
instance_atamuss bereits existieren (erstellt durchAllowMintfür diesen Mint)
Is this page helpful?