이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
문서 변경 로그 항목입니다. 모든 업데이트의 색인은
reference/changelog를 참고하세요. 프로토콜의 역사적 타임라인은 introduction/history-and-milestones를 참고하세요.x·y=k) AMM으로 만듭니다. 라이브 거래 동작은 변경되지 않습니다 — 남아있는 OpenBook 주문이 없었기 때문입니다.
통합자를 위한 요약
- Swap / Deposit / Withdraw는 변경 없이 계속 작동합니다. 기존 계정 레이아웃으로 구성된 트랜잭션은 여전히 실행됩니다 — 제거된 Serum/마켓 계정은 단순히 무시됩니다(검증 없음, CPI 없음).
SwapBaseIn/SwapBaseOut은 여전히 17개(+1개 선택) 계정을 예상합니다.Deposit과Withdraw레이아웃은 변경되지 않습니다. 기존 흐름을 유지하기 위해 클라이언트 업데이트를 배포할 필요가 없습니다. - V2 스왑 엔드포인트로 마이그레이션하세요.
SwapBaseInV2/SwapBaseOutV2는 마켓 계정과amm_open_orders를 포함하지 않습니다(총 8개 계정). 따라서 트랜잭션이 더 작고 저렴합니다. 라우터/애그리게이터는 V2를 통해 라우팅해야 합니다. WithdrawPnl은 하드 브레이킹 변경입니다(관리자 전용). 17개(+1개 선택) → 10개 계정으로 축소되며 호환성 파싱이 없습니다. 기존 레이아웃이 정렬되지 않아(기존 #5는amm_open_orders) 검증에 실패합니다. 관리자 도구를 업데이트해야 합니다.SetParams는 하드 브레이킹 변경입니다(관리자 전용). 계정이[amm, admin]으로 축소되고,param열거형이 재번호화됩니다(Fees9 → 2,SetOpenTime11 → 3).AmmOwner,LastOrderDistance,UpdateOpenOrder및 그리드 매개변수는 제거됩니다.- 여러 명령어는 더 이상 호출할 수 없습니다.
Initialize,PreInitialize,MonitorStep,MigrateToOpenBook,WithdrawSrm,SimulateInfo,AdminCancelOrders는 이제 되돌립니다. 풀을 생성하려면Initialize2를 사용하세요. - 온체인 계정 레이아웃은 바이트 안정적이고 오류 코드는 변경되지 않습니다.
AmmInfo/StateData는 레이아웃을 유지합니다(기존 OpenBook 필드는 유지되지만 더 이상 사용되지 않음/고정).AmmError번호는 보존되며, 새로운NotAllowed만 추가됩니다.
이것이 중요한 이유(거래자, LP, 통합자)
- 거래자는 스왑 동작이나 가격 책정에 변화를 보지 않습니다 — 상수곱 곡선은 변경되지 않습니다. V2 레이아웃 스왑은 약 8개 적은 계정을 포함하므로 더 저렴합니다.
- LP는 동일한 예치/인출 경제학을 유지합니다. 유동성은 오래전부터 풀 금고에만 있었으므로 풀 가치는 완전히 온풀입니다. 이 업그레이드는 오래된 마켓 배관만 삭제합니다.
- 통합자는 더 작고 간단한 트랜잭션과 금고에서 직접 읽는 견적 모델을 얻습니다. 기존 통합은 손상되지 않습니다(관리자
WithdrawPnl/SetParams제외). 하지만 v1 스왑 호환성 shim은 임시적입니다 — 편의에 따라 V2로 마이그레이션하세요.
명령어 수준 변경
여전히 호출 가능, 레이아웃 변경 없음(하위 호환)
Initialize2, Deposit, Withdraw, SwapBaseIn, SwapBaseOut, CreateConfigAccount, UpdateConfigAccount는 기존 계정 목록을 유지합니다. SwapBaseIn / SwapBaseOut, Deposit, Withdraw에서 OpenBook/마켓 계정은 여전히 위치적으로 허용되지만 더 이상 검증되거나 사용되지 않습니다 — CPI가 발행되지 않고 풀 준비금은 금고만으로 계산됩니다. 계정 개수는 여전히 일치해야 하므로 기존 트랜잭션은 변경 없이 계속 실행됩니다.
SwapBaseInV2 / SwapBaseOutV2 — 권장 경로
마켓 계정과 amm_open_orders를 완전히 생략합니다(8개 계정, 태그 16 / 17). 견적 수학은 v1과 동일합니다. 새로운 통합과 라우터는 V2를 사용해야 합니다.
WithdrawPnl — 17개(+1개 선택) → 10개 계정(⚠️ 하드 브레이킹, 호환성 경로 없음)
amm_open_orders와 6개의 모든 마켓 계정이 제거됩니다. 새로운 고정 10개 계정 관리자 전용 레이아웃은 호환성 파싱이 없습니다. 기존 레이아웃이 정렬되지 않아 InvalidCoinVault 같은 오류로 실패합니다.
SetParams — [amm, admin]으로 축소(⚠️ 하드 브레이킹) + 재번호화된 매개변수
권한, 오픈 오더, 타겟 오더, 금고, 모든 마켓 계정이 제거됩니다. param 열거형이 재번호화되고 축소됩니다:
| 매개변수 | 이전 값 | 새 값 |
|---|---|---|
Status | 0 | 0 |
State | 1 | 1 |
Fees | 9 | 2 |
SetOpenTime | 11 | 3 |
OrderNum, Depth, AmountWave, MinPriceMultiplier, MaxPriceMultiplier, MinSize, VolMaxCutRatio, InitOrderDepth, SetSwitchTime, ClearOpenTime, Seperate) 및 AmmOwner, LastOrderDistance, UpdateOpenOrder는 제거됩니다. SetParamsInstruction 구조체는 new_pubkey와 last_order_distance를 제거합니다.
더 이상 호출 불가능(런타임에 되돌림, 빌더 제거)
| 명령어 | 태그 | 대체 |
|---|---|---|
Initialize | 0 | Initialize2 |
MonitorStep | 2 | 없음(오더북 크랭크, 폐기) |
MigrateToOpenBook | 5 | 없음 |
WithdrawSrm | 8 | 없음(SRM 수수료 할인, 폐기) |
PreInitialize | 10 | Initialize2 |
SimulateInfo | 12 | 오프체인 / SDK 견적 |
AdminCancelOrders | 13 | 없음 |
준비금 / 상태 변경
- 풀 자산 공식. 총 풀 자산은 이제
금고 잔액 − 미결제 PnL(need_take_pnl)입니다. OpenBook 오픈 오더 항목 — 실제로는 이미 0 — 은 제거됩니다. 견적 코드는 금고 잔액에서 직접 읽을 수 있습니다. - 더 이상 사용되지 않는 상태 필드.
StateData.total_pnl_pc,total_pnl_coin,orderbook_to_init_time,swap_coin_in_amount,swap_pc_out_amount,swap_acc_pc_fee,swap_pc_in_amount,swap_coin_out_amount,swap_acc_coin_fee는 레이아웃 호환성을 위해 유지되지만 더 이상 업데이트되지 않습니다.swap_*거래량 카운터에 의존하는 소비자는 거래 로그로 전환해야 합니다. AmmInfo초기화.coin_lot_size,pc_lot_size,min_size는 이제0으로 초기화됩니다.- 제거된 의존성 및 CPI.
serum_dex크레이트는Cargo.toml에서 제거됩니다. 모든 Serum DEX CPI(invoke_dex_new_order_v3,invoke_dex_cancel_order_v2,invoke_dex_settle_funds,invoke_dex_init_open_orders, …)는invokers.rs에서 제거됩니다. 제거된 데이터 구조:LastOrderDistance,SimulateParams,RunCrankData,GetPoolData,GetSwapBaseInData,GetSwapBaseOutData.

