메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.raydium.io/llms.txt

Use this file to discover all available pages before exploring further.

이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →

계정 레이아웃: 처음부터 끝까지 사용자 ATA

모든 활성화된 스왑 변형은 사용자 관리 ATA를 통해 중간 토큰을 라우팅합니다. 사용자가 입력 ATA, 모든 중간 ATA, 최종 출력 ATA를 소유합니다. 활성 표면에는 공유된 라우터 소유 중간 토큰 계정이 없습니다. 속성:
  • 사용자가 중간 토큰마다 하나의 ATA를 소유합니다.
  • 사용자가 계정 목록의 모든 ATA를 제공합니다.
  • 각 중간 ATA는 이미 존재해야 합니다 (라우팅 전에 wSOL의 경우 CreateSyncNative로 초기화하거나, 다른 민트의 경우 SPL Associated Token Account 프로그램을 통해).
  • 라우터는 각 홉에서 한 ATA 밖으로 이전 풀의 금고로 전송합니다.
  • 각 중간 ATA는 경로의 끝에 시작할 때와 같은 잔액으로 끝납니다 — 경로는 이전 홉이 생산한 것을 소비합니다.
경로 USDC → SOL → STEP의 예시 흐름:
Accounts list:
  [
    USDC_input_ata (user, signer),
    SOL_intermediate_ata (user),
    STEP_output_ata (user),
    token_program,

    amm_program_1, *amm1_accounts,    // hop 1: USDC → SOL
    amm_program_2, *amm2_accounts,    // hop 2: SOL → STEP
  ]

Hop 1: USDC_input_ata → AMM1 → SOL_intermediate_ata
Hop 2: SOL_intermediate_ata → AMM2 → STEP_output_ata

홉별 계정 레이아웃

각 홉의 계정들은 연속으로 전달됩니다. 라우터는 각 홉의 블록의 첫 번째 계정(프로그램 ID)을 읽어 자식 프로그램을 식별한 다음 올바른 핸들러로 전달합니다. 각 홉마다 라우터는 다음과 같이 그룹화된 계정들을 예상합니다:
[
  program_id,         // Identifies which pool program (AMM v4, CPMM, CLMM, Stable)
  *child_accounts,    // All accounts required by that pool's swap instruction
]
자식 계정은 풀 유형에 따라 다릅니다:

AMM v4 홉

대략 18개 계정: 풀, 권한, 금고, 민트, OpenBook 마켓 계정(AMM v4의 OpenBook 통합이 더 이상 활성화되지 않았지만 하위 호환성을 위해 계정 목록에 유지됨), 토큰 프로그램. 전체 목록은 products/amm-v4/accounts를 참조하세요.

CPMM 홉

대략 11–13개 계정: 풀 상태, 권한, 금고(2개), 민트(2개), 토큰 프로그램, 시스템 프로그램, 연결된 토큰 프로그램. products/cpmm/accounts를 참조하세요.

CLMM 홉

대략 15개 이상 계정: 풀, 틱 배열, 금고, 민트, 관찰 상태, 서명자, 토큰 프로그램. products/clmm/accounts를 참조하세요.

Stable 홉

AMM v4와 유사합니다. products/stable/accounts를 참조하세요.

토큰 흐름 및 ATA 소유권

  • 호출자는 user_input_ata로 서명합니다.
  • 호출자는 모든 입력, 중간 및 출력 ATA를 소유해야 합니다. 라우터는 어떤 중간 ATA의 소유자가 서명자가 아니면 트랜잭션을 거부합니다.
  • 호출자의 user_input_ata 잔액은 첫 번째 홉의 입력(태그 0 / 8의 경우 amount_in, 태그 1 / 9의 경우 maximum_amount_in)에 충분해야 합니다.
  • 각 중간 ATA는 이미 온체인에 존재해야 합니다. 존재하지 않으면 미리 생성하세요 — 보통 SPL Associated Token Account 프로그램을 통해 또는 wSOL ATA의 경우 CreateSyncNative(태그 5)로.

CreateSyncNative 지시

래핑된 SOL을 통해 라우팅해야 하고 수동으로 wSOL ATA를 생성하고 동기화하기를 원하지 않으면 CreateSyncNative(태그 5)를 사용하세요:
CreateSyncNative(amount)
이것은 호출자의 지갑 아래에 wSOL ATA를 생성하고, System Program을 통해 amount의 SOL을 전송하며, 하나의 지시에서 동기화합니다. 라우팅 전에 새로운 wSOL ATA를 초기화하는 데 유용합니다.

CloseTokenAccount 지시

경로가 완료된 후 중간 ATA — 가장 일반적으로 wSOL ATA — 를 닫아서 렌트를 회수할 수 있습니다. CloseTokenAccount(태그 6)를 사용하세요:
CloseTokenAccount
토큰 계정은 닫기 전에 0의 토큰 잔액을 가져야 합니다; 라우터는 자동으로 비우지 않습니다.

다음으로 볼 내용