このページは AI による自動翻訳です。すべての内容は英語版を正とします。英語版を表示 →
このエントリは、今後の AMM v4 プログラム更新をカバーしています。デプロイ前にローカルリリースブランチに対して検証されました。新しい命令に依存する前に、デプロイされたプログラムを確認してください。
solana-program =2.1.0 にピン留めされており、このピン留めがブロッキングになっていました。システムプログラムのヘルパーは Solana 3.0 で独自の solana-system-interface クレートに移動され、spl-token は 9.0 に到達し、spl-associated-token-account は 8.0 に到達しました。このリリースはこれら 3 つすべてを採用します。
2 つ目はプロトコルが受け取るべきお金です。SIMD-0437 はレント免除最小値を 5 段階で 90% 削減しており、ステップ 1 は 2026 年 9 月 3 日にメインネットに到着しました。その前に AMM v4 が作成したすべてのアカウント(数百のプールボルト、LP ミント、AmmInfo および TargetOrders アカウント)は現在過剰資金化されており、プログラム所有アカウント内のラムポートはそのプログラムによってのみ移動できます。したがって新しい命令が必要です。
インテグレーター向け TL;DR
- トレーダーまたは LP が呼び出すものは何も変更されていません。
Initialize2、Deposit、Withdraw、SwapBaseIn、SwapBaseOut、SwapBaseInV2、SwapBaseOutV2、WithdrawPnl、SetParamsはアカウントリスト、引数レイアウト、数学を保持します。アカウントレイアウトは変更されていません。既存のエラーコードは移動していません。 - 1 つの命令が追加されます:
WithdrawExcessLamports、タグ18。 管理者専用、引数なし、可変長アカウントリスト。AMM v4 制御アカウントからレント免除最小値を超えるラムポートを返し、他には何も触れません。products/amm-v4/instructionsを参照してください。 - 1 つのエラーコードが追加されます:
60LamportsCalculateError。AmmErrorは Anchor 番号付けではなく、0から始まるため、これはcustom program error: 0x3cです。コード0–59は変更されていません。 CreateConfigAccount(タグ 14)はレント sysvar の読み込みを停止しました。現在は 4 アカウント命令として文書化されています。このリリースの何も破損していません。これが含まれます:アカウントはリストの最後にあり、ハンドラーは長さチェックなしで位置的に読み込むため、それでも渡す管理者ツールは機能し続けます。- IDL リフレッシュが必要です(クライアントを生成する場合)。1 つの新しい命令、1 つの新しいエラーバリアント、1 つの変更されたアカウントリスト。
WithdrawExcessLamports
命令は唯一の署名者および宛先としてラムポート収集ウォレット、AMM v4 権限 PDA、SPL Token プログラム、その後任意の数のソースアカウントを取ります。各ソースアカウントの所有者に基づいてディスパッチします:
wSOL ブランチが興味深いものです。ラップされた SOL アカウントのラムポート残高はそのトークン残高であるため、トークンプログラムはそれに対して
WithdrawExcessLamports を完全に拒否します。SyncNative を通じた往復と差分サイズの UnwrapLamports は寄付された過剰分のみを抽出し、ラップされた残高をまったく同じ場所に残します。これは後で確認され、算術が一致しない場合は LamportsCalculateError が発生します。SOL 側プールボルトはスイープを通じて完全な流動性を保持し、LP は流動性の価格変更を見ません。
署名者は、既存の AMM 所有者およびプール作成手数料アドレスと同じ config_feature モジュール下でハードコードされたクラスタごとの専用キーです。CPMM および LaunchLab とは異なり、AMM v4 はそのウォレットのみを受け入れます。管理者フォールバックはありません。アドレスは reference/program-addresses にあります。
CreateConfigAccount はレント sysvar の読み込みを停止しました
Solana 3.0 は Rent::get() をレントパラメータを読み込む自然な方法にするものであるため、リリースはプログラム内のすべての 4 つの Rent::from_account_info(...) 呼び出しを置き換えました。3 つの場合(Initialize2 中にプールのトークンアカウント、LP ミント、PDA アカウントを作成するヘルパー)では、sysvar アカウントはまだ渡され、トークンプログラム CPI に転送されるため、そのアカウントリストについて何も変わりません。CreateConfigAccount では sysvar に他の目的がなく、リストの最後のアカウントであったため、文書化されたリストから削除されました:
古い 5 アカウントリストを送信することはまだ機能します。 削除されたアカウントは最後にあり、
process_create_config は next_account_info を通じて 4 つのアカウントを位置的に読み込み、合計数をチェックするものがないため、末尾のレントアカウントは見られません。管理者ツールは明確性のために更新する必要がありますが、緊急ではありません。ユーザー向けビルダーはこの命令をまったく構築しません。
Initialize2 は過剰読み込みしない場合です:また Rent::from_account_info の呼び出しを停止しましたが、そのレントアカウントは位置 3 に留まり、まだ本当に使用されています。プログラムはそれをプールのボルトと LP ミントを作成する spl_token::initialize_account および initialize_mint CPI に転送します。そのアカウントリストから削除するとプール作成が破損します。
依存関係の変更
プログラムが使用するシステムプログラムの部分(
system_instruction::create_account、transfer、allocate、assign、およびプログラム ID 自体)は、solana_program::system_program および solana_program::system_instruction ではなく solana-system-interface から来るようになりました。プログラム ID はバイト同一であるため、これはオンチェーン結果を持たないコンパイル時の移動です。これに対して比較する InvalidSysProgramAddress チェックを含みます。
2 つの不要なモジュールも削除されました:srm_token および msrm_token、OpenBook 削除から残された Serum/MSRM ミント宣言。何も参照していませんでした。
変更されなかったもの
- すべてのアカウントレイアウト。
AmmInfo、StateData、TargetOrders、AmmConfig— 同じサイズ、同じフィールドオフセット。インデクサーまたはデコーダーの変更はありません。 - エラーコード
0–59。LamportsCalculateErrorは60で追加されるため、何もシフトしません。 - AMM 権限 PDA。 プログラム全体で 1 つの PDA、シード
["amm authority"]、ノンス254。 - 手数料、PnL 会計、および曲線。 変更されていません。
WithdrawExcessLamportsはプールの準備金の一部ではなかったラムポートを移動します。 - Token-2022。 まだサポートされていません。新しい命令はレガシー SPL Token プログラムのみと通信します。
- プログラム ID。 変更されていません。
reference/program-addressesを参照してください。
更新されたページ
products/amm-v4/instructions—WithdrawExcessLamportsがアカウントリストと所有者ごとのディスパッチテーブルで追加されました。レント sysvar 削除をカバーする新しいCreateConfigAccount/UpdateConfigAccountセクション。インベントリテーブルと状態変更マトリックス行が追加されました。products/amm-v4/overview— リリースバナー。reference/error-codes— コード60と0ベースの番号付けを文書化する新しい「AMM v4:AmmErrorは Anchor 番号付けではない」セクション。reference/program-addresses— 新しい「過剰ラムポート収集ウォレット」セクション。solana-fundamentals/rent-and-reclaimable-rent— 新しい「Raydium プログラムが自分たちの側でスイープするもの」セクション。ラップされた SOL ノートが両方のトークンプログラムがUnwrapLamportsを公開することを言うように修正されました。solana-fundamentals/toolchain— Agave 3.1.10、release.anza.xyz、Rust 1.91.0。

