アーキテクチャとコードベース
リポジトリには Solidity コントラクト、React/Vite dapp、二つの Node サービスがあります。GitBook は gitbook/ 内で独立し、ビルドは非公開設定やプロトコルのネットワークデータを読みません。
ここで説明するバージョンは
redesign/tide-lp-autowalls-vaultブランチにあります。
ディレクトリ
| ディレクトリ | 役割 |
|---|---|
contracts/src |
トークン、フック、ライブラリ、インターフェース、周辺コントラクト |
contracts/test |
旧 API を使う過去の Foundry テスト。新バージョンのテストは test/redesign |
contracts/audit |
補助検証ハーネス・検証実行 |
contracts/script |
Foundry のデプロイスクリプトと、ローカルノードで再実行できるシナリオ |
contracts/scripts |
ABI 出力、検査、デプロイ手順 |
contracts/deployments |
公開版マニフェストと履歴 |
dapp/src/chain |
設定、ABI、読取り、見積もり、取引 |
dapp/src/pages |
Swap、Proof、Staking、ロードマップ、V2 モジュール |
services/shared |
共有設定、クライアント、ABI、実行追跡 |
services/keeper |
旧メンテナンス用のサービス。新バージョンでは用途なし |
services/floor-bot |
イベント読取りと投稿準備 |
audit/reports |
日付・改訂に紐付く報告と証拠 |
gitbook/docs |
本文書のフランス語原稿 |
中核コントラクト
| 構成要素 | 役割 |
|---|---|
CubitToken |
2,100万を一度だけ発行する ERC-20。バーンはフックのみ |
CubitHook |
税、流動性バンド、買い壁の配置と空にする処理、チーム会計、V2 接続 |
BandLib |
価格、換算と tick 丸め、買い壁の目標 |
WallLib |
tick ごとの買い壁:永続 ID、有効買い壁の索引、資金供給と通過された買い壁を空にする処理 |
PoolManager v4 |
プール状態、流動性ポジション、スワップ、決済 |
フックは CUBIT プールの唯一の流動性提供者であり、それ以外の流動性追加はすべて拒否されます。資金はポジションと PoolManager の ERC-6909 claims で追跡するため、フックアドレスのネイティブ ETH 残高だけでは準備金を測れません。
バンドは BAND_SALT で識別される単一のポジションです。各買い壁は独自の salt のもとで tickSpacing 1 区画を占めます。WallLib はフックのストレージで動作し、claims とポジションはフックに帰属したままです。
周辺コントラクト
| 構成要素 | 役割 |
|---|---|
CubitRouter |
exact-input/output スワップ、スリッページ制限、期限、決済、各売却後の吸収 CUBIT の送付 |
CubitLens |
派生ビュー:市場、バンド、買い壁、会計、流通供給量、保有 CUBIT、最良の買い壁 |
CubitV2 |
安定したモジュールレジストリ、改訂、Vault の履歴 |
CubitVault |
CUBIT 預入れ、24 時間ロック、準備金から支払われる CUBIT 報酬 |
CubitGovernanceVault |
ローンチパッドのガバナンス Vault:ETH のローンチ手数料と子市場の買い壁のトークン。預入れごとに 30 日間、延長があればその分もロック。請求と延長は恒久的にデプロイヤーのみ |
CubitForge |
ローンチ後に追加される、独立子市場の公開ローンチパッド。0.005 ETH のローンチ手数料は、構築時にアドレスが固定されたガバナンス Vault に支払われる |
CubitLaunch |
一つのトランザクションでのローンチ:供給量の 80 % をバンドへ、20 % を Vault の準備金へ入れ、デプロイヤーの購入まで実行 |
チームアドレスはレジストリで Router、Lens、Vault、Forge をいつでも遅延なく交換してから有効化でき、これらの権限は恒久的です。交換のたびに、該当する機能は再び有効化されるまで無効になります。トークン、フック、プール識別子、レジストリアンカーはこの交換の仕組みの対象外で、フックには管理者がいません。誰もスワップや買い壁の仕組みを一時停止できません。
読取りの経路
画面またはサービス
→ 公開マニフェスト:ネットワーク、中核、レジストリ
→ 指定ブロックのレジストリ:モジュール + 改訂
→ モジュール接続の検証
→ 同ブロックの Lens と hook ビュー
→ 操作の表示または模擬実行
画面では releases.ts がモジュールを解決し、vault.ts が旧 Vault 読取りを維持します。RPC 無応答で署名を許可してはいけません。dapp のデータ層は稼働中のバージョンの ABI を読んでいます。
スワップの経路
画面は見積もりを取得してから模擬実行します。ルーターが PoolManager の決済コンテキストを開き、フックが ETH 部分に税を適用し、スワップはバンドの曲線と通過する買い壁に従います。その後、ルーターが delta を決済します。
売却のたびに、フックは afterSwap の中で完全に通過された買い壁を空にし、次に待機中の ETH を売却後の価格で計算した目標の買い壁に配置します。ローンチ価格以下のようにその目標が市場より下にない場合は、現在価格の 1 % 下に配置します。売却の最後に CUBIT ルーターが deliverAbsorbed() を呼び出し、吸収された CUBIT を Vault の準備金へ送ります。この送付が失敗しても売却は妨げられません。
境界が重要です。ルーター callback は想定操作中に PoolManager のみアクセスでき、payer は認証済みのルーター呼び出し元から得ます。
新バージョンで変わったこと
バンドがラダーに代わり、rebalance、raiseFloor、sweep、報奨金は削除されました。買い壁は売却の処理中に配置され空にされ、通過された買い壁の CUBIT はバーンされずに Vault の準備金に移ります。
過去のテストスイート contracts/test は旧 API を使っており、新バージョンではコンパイルできません。新バージョンのテストは test/redesign にあります。今後のステップはロードマップに、テスト済みの構成要素はバージョンの状況に記載しています。
出典:記載したリポジトリ内ファイル、特に CubitHook, BandLib, WallLib.Book, periphery/CubitRouter.sol, periphery/CubitGovernanceVault.sol, releases.ts, contracts/docs/REDESIGN_HANDOFF.md と各サービスの README。