메인 콘텐츠로 건너뛰기
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →

버전 정보

  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • 네트워크: mainnet-beta
  • 라우터 프로그램 ID: routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS
  • 검증 완료: 2026년 4월

예제 1: SDK 기반 라우팅

소스: src/trade/routeSwap.ts Raydium SDK는 라우트 구축을 추상화합니다. SDK의 거래 함수를 사용하여 멀티홉 라우트를 구성하고 라우터를 통해 자동으로 실행하세요.

설정

멀티홉 스왑 구축

@raydium-io/raydium-sdk-v2의 라우팅은 raydium.tradeV2에서 제공됩니다. 풀 데이터 가져오기, 라우트 계산, 출력으로 정렬, 스왑 트랜잭션 구축의 전체 프로세스는 아래와 같으며, 이는 raydium-sdk-V2-demo/src/trade/routeSwap.ts의 정식 예제와 일치합니다.

예상 동작

SDK는 다음을 처리합니다:
  • AMM v4, CPMM, CLMM, Stable AMM 전반의 라우트 검색
  • 계정 파생 (풀 상태, 금고, 옵저베이션 계정, ATA 사전 생성)
  • 라우트가 멀티홉일 때 라우터 프로그램 (Router)에 대한 명령어 패킹, 또는 단일 풀이 이미 최고의 가격을 제공할 때 직접 풀 스왑
  • getAllRouteComputeAmountOutslippage 파라미터를 통한 슬리피지 강제
raydium.tradeV2.swap은 둘 이상의 transaction을 반환할 수 있습니다. 첫 번째는 일반적으로 중간 ATA를 초기화하고 두 번째는 스왑 자체를 수행합니다. execute()에 항상 sequentially: true를 전달하여 순서대로 확인되도록 하세요.

예제 2: 원시 명령어 구축 (Rust 유사 의사코드)

더 세밀한 제어가 필요하거나 라우터로 CPI하는 프로그램을 구축 중인 경우 명령어를 수동으로 구축하세요. 아래 예제는 **태그 8 (SwapBaseIn)**를 사용합니다(권장되는 현재 변형). 사용자 소유의 ATA를 통해 끝에서 끝까지 라우팅합니다.

시나리오: USDC → SOL (CPMM) → mSOL (CPMM)

1단계: 사용자의 ATA 파생

2단계: 각 홉에 대한 계정 수집

홉 1은 CPMM의 USDC/SOL입니다. 홉 2는 CPMM의 SOL/mSOL입니다.

3단계: 명령어 구축

4단계: 트랜잭션 전송


예제 3: 오류 처리

일반적인 오류 및 복구 방법:

ExceededSlippage

출력이 minimum_amount_out보다 작습니다. 더 높은 슬리피지 허용도를 사용하여 다시 시도하거나 라우트를 다시 견적하세요.

SqrtPriceX64 (CLMM)

CLMM 홉의 가격이 limit_prices 경계를 벗어났습니다. 경계를 업데이트하고 다시 시도하세요.

InvalidOwner

중간 또는 출력 ATA가 호출자의 소유가 아닙니다. 라우터는 모든 슬롯에서 소유권을 검증합니다. 전달하는 각 ATA가 사용자의 지갑에서 파생되었는지 확인하세요(다른 권한에서 파생되지 않음).

팁과 모범 사례

중간 ATA 사전 생성

처음 새로운 중간 토큰을 통해 라우팅하기 전에, 사용자의 ATA를 생성하여 라우트가 검증 실패하지 않도록 하세요:
wSOL의 경우, CreateSyncNative (태그 5)를 선호하세요. ATA를 생성하고, SOL을 이전하고, 한 명령어에서 동기화합니다.

실행 전에 견적 조회

명령어를 구축하기 전에 항상 풀을 쿼리하고 예상 출력을 계산하세요:

더 새로운 명령어 변형 사용 (8–9)

태그 8과 9 (SwapBaseInSwapBaseOut)는 limit_prices에 더 관대합니다. CLMM 가격 검증이 필요하지 않은 경우 레거시 변형보다 이들을 선호하세요.

다음 단계

출처: