Passer au contenu principal

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.

Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Les instructions AMM v4 attendent uniformément à la fois un côté pool (comptes du programme AMM v4) et un côté marché (comptes OpenBook pour le marché lié). Omettre ou mal faire correspondre l’un ou l’autre ensemble revient. Les listes de comptes ci-dessous utilisent les noms de champs du SDK Raydium pour la clarté ; l’IDL sous-jacent utilise parfois les préfixes serum_*.

Inventaire des instructions

GroupeInstructionNotes
Cycle de vie du poolInitialize2Instruction actuelle de création de pool (toujours fonctionnelle ; l’UI utilise par défaut CPMM pour les nouveaux pools).
LiquiditéDepositAjouter de la liquidité, recevoir des LP.
LiquiditéWithdrawBrûler des LP, recevoir les deux côtés au prorata.
SwapSwapBaseInSwap à intrant exact (chemin complet : coffres + OpenBook).
SwapSwapBaseOutSwap à produit exact (chemin complet).
SwapSwapBaseInV2Swap à intrant exact qui contourne OpenBook — coffres uniquement, moins de comptes.
SwapSwapBaseOutV2Swap à produit exact qui contourne OpenBook.
MaintenanceSetParamsAdmin : modifier les paramètres du pool.
MaintenanceWithdrawPnlBalayer le PnL du protocole accumulé dans les comptes propriétaires du PnL.
MaintenanceCreateConfigAccountAdmin : initialiser le PDA AmmConfig au niveau du programme.
MaintenanceUpdateConfigAccountAdmin : modifier les paramètres de config au niveau du programme.
Le SDK expose des builders pour les instructions à destination des utilisateurs uniquement. Les instructions de maintenance sont généralement invoquées par le keeper Raydium.

Initialize2

Amorcer un nouveau pool AMM v4 lié à un marché OpenBook existant. Arguments
nonce:        u8
open_time:    u64
init_pc_amount:   u64
init_coin_amount: u64
Comptes (modifiable W, signataire S)
#NomWSNotes
1token_programSPL Token.
2system_program
3rent
4ammWCompte AmmInfo (clé semée).
5amm_authorityPDA du programme.
6amm_open_ordersWOpenBook OpenOrders (semé).
7lp_mintW
8coin_mint
9pc_mint
10pool_coin_token_accountW
11pool_pc_token_accountW
12pool_withdraw_queueW
13pool_target_orders_accountW
14pool_lp_token_accountWATA LP du créateur.
15pool_temp_lp_token_accountWCompte de travail.
16market_programProgramme OpenBook.
17marketMarché OpenBook.
18user_walletWSCréateur. Paie la rente et finance le dépôt initial.
19user_token_coinW
20user_token_pcW
Postconditions
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, où INIT_BURN ≈ 100 unités de LP sont retirées de la circulation.
  • Les ordres OpenBook n’ont pas encore été publiés ; le premier MonitorStep publie la grille initiale.
Erreurs courantesInvalidInput (décimales mal appariées, non triées), NotApproved, côté OpenBook InvalidMarketState.

Deposit

Ajouter de la liquidité. Arguments
max_coin_amount: u64
max_pc_amount:   u64
base_side:       u64    // 0 = base sur coin, 1 = base sur pc
// (certaines variantes du SDK acceptent aussi other_amount_min)
Comptes (abrégé)
#NomWS
1token_program
2ammW
3amm_authority
4amm_open_orders
5amm_target_ordersW
6lp_mintW
7pool_coin_token_accountW
8pool_pc_token_accountW
9market
10user_coin_token_accountW
11user_pc_token_accountW
12user_lp_token_accountW
13user_ownerS
Mathématiques — au prorata standard. Utilisant les réserves effectives du pool (coffres + en carnet), le SDK calcule la paire coin/pc qui produit le montant de LP donné et la vérifie contre max_*. Revient avec ExceededSlippage si l’un ou l’autre côté dépasse le plafond.

Withdraw

Brûler des LP, recevoir les deux côtés. Arguments
amount: u64    // LP à brûler
Comptes — comme Deposit avec la direction inversée ; lp_mint est modifiable pour brûler, les ATA de l’utilisateur sont des destinataires. Une étape de règlement similaire à MonitorStep à partir d’OpenBook se produit en interne avant les mathématiques au prorata, de sorte que la rédemption utilise des réserves fraîches.

SwapBaseIn

Swap à intrant exact. Toujours un swap chemin AMM (ne s’achemine pas via l’appairage OpenBook).
Utilisez les variantes V2 pour le nouveau code. Puisque AMM v4 ne partage plus de liquidité avec OpenBook, les points d’entrée V1 (SwapBaseIn, SwapBaseOut) — qui nécessitent toujours l’ensemble complet des comptes OpenBook pour la validation — sont fonctionnellement redondants. Les nouvelles intégrations doivent utiliser SwapBaseInV2 / SwapBaseOutV2, qui prennent une liste de comptes beaucoup plus petite et représentent le chemin d’exécution canonique aujourd’hui. Les formes V1 sont documentées ici par exhaustivité et pour lire les transactions on-chain existantes.
Arguments
amount_in:            u64
minimum_amount_out:   u64
Comptes (abrégé)
#NomWS
1token_program
2ammW
3amm_authority
4amm_open_ordersW
5amm_target_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8market_program
9marketW
10market_bidsW
11market_asksW
12market_event_queueW
13market_coin_vaultW
14market_pc_vaultW
15market_vault_signer
16user_source_token_accountW
17user_dest_token_accountW
18user_ownerS
Mathématiques — voir products/amm-v4/math. Préconditions
  • amm.status autorise le swap (bit 0 du masque de bits de statut non défini).
  • amm.state_data.pool_open_time <= now.
  • amount_in > 0.
  • user_source_token_account détient au moins amount_in.
Postconditions
  • L’utilisateur perd amount_in du jeton source, gagne amount_out ≥ minimum_amount_out du jeton destinataire.
  • state_data.swap_*_in_amount et swap_*_out_amount incrémentés (pour l’analyse).
  • need_take_pnl_* incrémenté par la part des frais de protocole.
Erreurs courantesExceededSlippage, InvalidInput, InvalidStatus, InvalidMarket.

SwapBaseOut

Exact-output, inverse de SwapBaseIn. Mêmes comptes. Arguments
max_amount_in: u64
amount_out:    u64

SwapBaseInV2 / SwapBaseOutV2

Variantes de points d’entrée de swap qui ignorent entièrement les comptes OpenBook. Les mathématiques sont identiques au chemin V1, mais la liste des comptes se réduit au côté AMM uniquement :
#NomWS
1token_program
2ammW
3amm_authority
4amm_open_orders
5pool_coin_token_accountW
6pool_pc_token_accountW
7user_source_token_accountW
8user_dest_token_accountW
9user_ownerS
Les réserves effectives du pool tiennent toujours compte des jetons publiés sur OpenBook, de sorte que les mathématiques de cotation restent inchangées. Utilisez V2 pour économiser du calcul et éviter de transmettre les comptes de marché lorsque vous n’avez pas besoin d’une manivelle OpenBook dans la même transaction. Le routeur Raydium utilise toujours la forme V2 lors du routage via AMM v4. Les arguments sont les mêmes que les formes V1 (amount_in / minimum_amount_out pour SwapBaseInV2 ; max_amount_in / amount_out pour SwapBaseOutV2).

MonitorStep (hérité / inerte)

Plus cranké. AMM v4 ne partage plus de liquidité avec OpenBook, donc MonitorStep n’a rien à faire — le pool n’a aucun ordre posté à régler, annuler ou remplacer. L’instruction reste dans le programme on-chain pour la compatibilité rétroactive mais le keeper Raydium ne l’appelle plus. L’appeler manuellement est effectivement un no-op (autre que rafraîchir l’état mis à zéro) et ne devrait pas être nécessaire pour les intégrateurs.
À l’origine, cette instruction cranait l’interaction du pool avec OpenBook. Arguments
plan_order_limit:   u16
place_order_limit:  u16
cancel_order_limit: u16
Comptes — tout ce qui précède pour un swap, plus des comptes administratifs OpenBook. Effet original (plus pertinent en pratique) :
  • Réglé tous les ordres remplis (leurs produits déplacés de market_coin_vault/market_pc_vault dans les coffres du pool via OpenBook CPI).
  • Annulé les ordres obsolètes dont les prix ou tailles ne correspondaient plus à target_orders.
  • Publié les nouveaux ordres pour fermer l’écart entre target_orders et amm_open_orders.
Sans permission. Tout compte pouvait l’appeler ; historiquement le keeper Raydium le faisait régulièrement.

WithdrawPnl / TakePnl

Balayage administratif des frais de protocole accumulés. Arguments
  • WithdrawPnl ne prend aucun argument ; il lit need_take_pnl_* et déplace ces montants exacts.
Comptes (abrégé)
#NomWS
1token_program
2ammW
3amm_authority
4amm_config
5amm_open_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8pnl_coin_token_accountWDestinataire, stocké sur AmmConfig.
9pnl_pc_token_accountW
10pnl_ownerSMultisig admin.
11market_program
12marketW
13market_event_queueW
14market_coin_vaultW
15market_pc_vaultW
16market_vault_signer
Effet
  • Transfère need_take_pnl_coin de pool_coin_token_account à pnl_coin_token_account.
  • Idem pour pc.
  • Met à zéro need_take_pnl_coin et need_take_pnl_pc.
Aucun changement aux réserves puisque le PnL accumulé a déjà été exclu de l’invariant.

SetParams

Changements de paramètres admin : masque de bits de statut, profondeur de grille de commande, vagues de montant, frais (rarement), etc. Appelé par le multisig Raydium. Les arguments sont une étiquette param: u8 + charge utile, analogue au UpdateAmmConfig de CPMM.

Matrice de changement d’état

Instructionapprovisionnement lp_mintCoffresCompteurs PnLOpenBook
Initialize2approvisionnement initial frappé au créateur+ init_coin_amount, + init_pc_amount0OpenOrders créé
Deposit++ les deuxrégler les remplissages
Withdraw− les deuxrégler les remplissages
SwapBaseIn+ in, − out+ part pnlpeut-être re-poster grille
SwapBaseOut+ in, − out+ part pnlpeut-être re-poster grille
MonitorSteprégler remplissagesannuler / poster
WithdrawPnl− (pnl balayé)0
SetParams

Où aller ensuite

Sources :