입금

사용자의 associated token account에서 에스크로의 associated token account로 SPL 토큰을 전송하며, 입금한 사용자의 채널 잔액(또는 선택적 수신자의 잔액)을 증가시킵니다.

계정

계정쓰기 가능서명자설명
payer✓✓트랜잭션 수수료 납부자
user✓입금을 수행하는 토큰 소유자
instance에스크로 인스턴스 PDA
mintSPL 토큰 민트
allowed_mint해당 인스턴스에서 민트가 허용되었는지 검증하는 PDA
user_ata✓사용자의 associated token account (출처)
instance_ata✓에스크로의 associated token account (목적지)
system_programSystem Program
token_programSPL Token Program
associated_token_programAssociated Token Program
event_authorityEmitEvent CPI를 위한 이벤트 권한 PDA
private_channel_escrow_program에스크로 프로그램 (CPI를 위한 자기 참조)

매개변수

매개변수타입설명
amountu64입금할 토큰 수량 (토큰의 최소 단위 기준)
recipientOption<Pubkey>선택적 온체인 수신자; None인 경우 입금한 사용자의 채널 잔액에 적립됩니다

반환값

트랜잭션을 빌드하고 전송하는 데 사용할 수 있는 TransactionBuilder를 반환합니다.

예제

import { getDepositInstructionAsync } from "../private-channel-escrow-program/clients/typescript/src/generated";
// allowedMint and instanceAta are auto-derived from mint and instance
const depositIx = await getDepositInstructionAsync({
payer: payerSigner,
user: userSigner,
instance: instancePda,
mint: mintAddress,
userAta: userAtaAddress,
amount: 1_000_000n,
recipient: null
});

중요 사항

  • 프로그램 ID: 9tgHa1DcnaSSUtmMsst8ovKTe1Gfxzezn27KnH9xXYeU
  • Token-2022 민트의 경우, 기본값이 표준 SPL Token Program으로 설정되어 있으므로 tokenProgram: TOKEN_2022_PROGRAM_ADDRESS를 명시적으로 전달해야 합니다
  • allowed_mint PDA가 존재해야 합니다 (AllowMint에 의해 생성됨); 목록에 없는 민트를 입금하면 InvalidAllowedMint 오류가 발생합니다
  • recipient가 None이면 입금한 사용자의 채널 잔액이 적립되고, 값이 제공된 경우에는 지정된 지갑의 잔액이 대신 적립됩니다
  • payer와 user 모두 트랜잭션에 서명해야 합니다
  • instance_ata는 이미 존재해야 합니다 (해당 민트에 대해 AllowMint에 의해 생성됨)

Is this page helpful?

목차

페이지 편집