Skip to main content
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
Stable AMM은 자체 프로그램 ID를 가진 독립적인 프로그램입니다. AMM v4 프로그램의 모드가 아니며, AMM v4를 “통해” 거래되지 않습니다. 별도로 배포, 업그레이드, 호출됩니다. AMM v4와는 수수료 및 계정 레이아웃 규칙에서만 유사합니다.
2026-06-22 업그레이드 — 사용되지 않는 OpenBook(마켓) 코드 제거. Stable AMM은 오래전부터 OpenBook에 주문을 게시하지 않았습니다. 오더북 마켓 메이킹 경로는 수년간 휴면 상태였습니다. 이 업그레이드는 남은 마켓 관련 계정과 코드를 삭제합니다. 라이브 거래 동작은 변경하지 않습니다.통합자를 위한 두 가지 결과:
  1. 더 작은 계정 레이아웃. SwapBaseIn / SwapBaseOut (18 → 9), Deposit (14 → 12), Withdraw (21/22 → 12)는 사용되지 않는 Serum/마켓 계정을 제거합니다. 이전 레이아웃은 하위 호환성을 위해 여전히 파싱됩니다. WithdrawPnl (16 → 10)은 호환성 경로가 없는 하드 브레이킹 변경입니다(관리자 전용).
  2. 대부분의 명령어가 제거됩니다. SwapBaseIn, SwapBaseOut, Deposit, Withdraw, WithdrawPnl만 호출 가능합니다. 다른 모든 명령어는 더 이상 호출할 수 없습니다.
변경 로그: reference/changelog.

명령어 목록

호출 가능

제거됨(더 이상 호출 불가)

2026-06-22 업그레이드에서 제거되었으며 더 이상 호출할 수 없습니다. 제거된 명령어를 참조하세요.

Deposit

유동성을 추가하고 LP 토큰을 수령합니다. 인자
계정 — 새로운 레이아웃, 12개 계정 (쓰기 가능 W, 서명자 S) 호환성: amm_open_orders (이전 #3)와 serum_market (이전 #9)이 제거되었습니다. 14개 계정이 전달되면 명령어는 이전 14계정 레이아웃으로 파싱되며, Serum 계정은 무시됩니다. 수학 — 조회 테이블을 사용한 표준 비례 계산으로 비율을 계산합니다. SDK는 원하는 LP 양에 대한 코인/pc 쌍을 계산하고 최대 한도에 대해 확인합니다.

Withdraw

LP를 소각하고 양쪽을 비례적으로 수령합니다. 인자
계정 — 새로운 레이아웃, 12개 계정 (쓰기 가능 W, 서명자 S) 호환성: 9개의 Serum 계정(amm_open_orders, serum_program, serum_market, serum_coin_vault, serum_pc_vault, serum_vault_signer, serum_event_q, serum_bids, serum_asks)이 제거되었습니다. 이전 21- 또는 22계정 레이아웃은 여전히 허용됩니다. 다만 22번째 선택적 referrer_pc_wallet 계정에 대한 리페럴 수수료 로직이 제거되었습니다 — 여전히 전달할 수 있지만 더 이상 적용되지 않습니다. 전제 조건
  • user_source_lp는 최소 amount를 보유합니다.
사후 조건
  • amount LP 토큰이 소각됩니다.
  • 사용자는 현재 비례에 따라 코인 및 pc 양을 수령하며, 누적된 수수료로 조정됩니다.

SwapBaseIn

조회 테이블을 사용한 정확한 입력 스왑으로 가격을 책정합니다. 인자
계정 — 새로운 레이아웃, 9개 계정 (쓰기 가능 W, 서명자 S) 호환성: 9개의 OpenBook 계정(amm_open_orders, serum_program, serum_market, serum_bids, serum_asks, serum_event_queue, serum_coin_vault, serum_pc_vault, serum_vault_signer)이 제거되었습니다. 전달된 계정 수가 9가 아니면 명령어는 이전 18계정 레이아웃으로 파싱됩니다. Serum 계정은 여전히 해당 위치를 차지해야 하지만 더 이상 검증되거나 사용되지 않습니다. 전제 조건
  • amm.status가 스왑을 허용합니다.
  • user_source_token은 ≥ amount_in을 보유합니다.
사후 조건
  • 사용자는 amount_in을 잃고, amount_out ≥ minimum_amount_out을 얻습니다.
  • 풀 수수료는 need_take_pnl_* 카운터를 증가시킵니다.
수학products/stable/math에 설명된 조회 테이블 보간.

SwapBaseOut

정확한 출력 스왑(SwapBaseIn의 역). 동일한 9계정 레이아웃, 다른 수학 방향. 인자

WithdrawPnl

관리자 전용. need_take_pnl_*에서 누적된 프로토콜 수수료를 지정된 PnL 계정으로 회수합니다.
하드 브레이킹 변경 — 호환성 경로 없음. 이 명령어는 이전 레이아웃에 대한 파싱이 없습니다. 이전 레이아웃을 보내면 계정 정렬 오류로 인해 InvalidTokenCoin과 같은 검증 오류로 실패합니다(이전 #3은 open_orders였음). WithdrawPnl을 호출하는 관리자 도구는 반드시 새로운 10계정 레이아웃으로 업데이트되어야 합니다.
인자 — 없음(상태 기반). 계정 — 새로운 레이아웃, 고정 10개 계정, 관리자 전용 (쓰기 가능 W, 서명자 S) 로직 변경: 풀의 사용 가능한 자금이 누적된 PnL을 인출하기에 부족할 때, 풀은 더 이상 CancelAllOrdersState / Disabled로 전환되지 않습니다. 명령어는 TakePnlError를 직접 반환합니다. 선택적 referrer_pc_wallet도 제거되었습니다. 전제 조건
  • amm_admin이 인증되어야 합니다.
사후 조건
  • need_take_pnl_coinneed_take_pnl_pc가 관리자의 계정으로 전송됩니다.
  • 카운터가 0으로 설정됩니다.

제거된 명령어

다음 명령어들은 2026-06-22 업그레이드에서 제거되었으며 더 이상 호출할 수 없습니다. 통합자가 과거 트랜잭션 및 SDK에서 이들을 인식할 수 있도록 여기에 문서화되어 있습니다.
  • Initialize — 이전에는 새로운 Stable AMM 풀을 부트스트랩했습니다. 제거됨.
  • PreInitialize — 레거시 사전 할당 헬퍼. 제거됨.
  • InitModelData — 이전에는 ModelDataInfo 조회 테이블을 생성하고 초기화했습니다. 제거됨.
  • UpdateModelData — 이전에는 호출당 최대 5개의 조회 테이블 요소를 채웠습니다. 제거됨.
  • MonitorStep — 체결을 정산하고 주문 그리드를 재게시한 OpenBook 크랭크. 풀이 OpenBook에 게시를 중단한 후 이미 오래 휴면 상태였으며, 이제 제거됨.
  • SetParams — 관리자 파라미터 변경(상태, 수수료, 소유자, 모델 데이터 키 등). 제거됨.
  • WithdrawSrm — 초기 Serum 시대 풀에서 SRM 수수료 할인 리베이트를 회수했습니다. 제거됨.
  • SimulateInfo — 읽기 전용 견적 헬퍼. 제거됨. 견적을 위해 SDK의 오프체인 stable-curve 헬퍼를 사용하세요(코드 데모 참조).

다음 단계

  • 계정 — 계정 필드 레이아웃 및 크기.
  • 수학 — 조회 테이블 보간 로직.
  • 코드 데모 — SDK에서 이들을 호출하는 방법.
출처:
  • raydium-stable/program/src/instruction.rs (enum 및 pack/unpack)
  • raydium-stable/program/src/processor.rs (실행 로직)