遷移與外盤 AMM
說明最後一筆內盤買入的原子遷移、USDC精度轉換、LP鎖定、捐贈邊界及外盤恆定乘積定價。
內盤可售 Token 歸零後,BigShortProtocol-EVM 使用預留 Token + 曲線實際淨 USDC 儲備建立外盤流動性,同時啟動該 Token 的獨立 Short Engine。遷移不使用虛擬 USDC,不混入其他 Token 曲線的資金,也不把借貸儲備當作外盤初始流動性。
1. 觸發條件與執行順序
| 順序 | 動作 | 業務結果 |
|---|---|---|
| 1 | 執行最終買入結算 | 可售 Token 餘額歸零,狀態設為 Complete |
| 2 | 發放本次 Token、退回超額付款 | 退款接收者為交易發起者 |
| 3 | 發出內盤成交與完成事件 | 記錄最終內盤儲備快照 |
| 4 | 複核該 Token 的設定快照和 Engine 預期位址 | 不改用後來設定的新預設 Profile |
| 5 | 狀態設為 Migrating,驗證主 Pair | 檢查 Pair 身分、執行程式碼、儲備及餘額 |
| 6 | 轉入 206,900,000 Token 和可表示的真實 USDC | 形成真實外盤流動性 |
| 7 | 將遷移 LP 鑄造給零位址並驗證 | 檢查初始 LP 全部由零位址持有 |
| 8 | 部署並初始化 Short Engine | 綁定實際 Pair 儲備及已有借貸庫存 |
| 9 | 校驗綁定並開放主 Pair 交易 | externalTradingEnabled 變為真 |
| 10 | 清零該曲線真實 USDC 餘額並記錄遷移結果 | 狀態最終為 Migrated |
2. 從 native18 到 ERC-20 USDC 六位精度
Arc 原生 USDC 餘額與外盤 USDC ERC-20 介面對應同一報價資產,但精度不同。目前程式碼使用:
| 情境 | 精度 | 一單位 USDC |
|---|---|---|
| 內盤支付、Factory 帳本、Engine 內部記帳 | native18 | 10¹⁸ |
| 外盤 Pair 的 USDC ERC-20 介面 | external6 | 10⁶ |
| 兩者換算比例 | — | 10¹² |
設待遷移真實 USDC 儲備為
其中
遷移餘數的歸屬
遷移從所有未遷移曲線的總負債中移除本曲線完整的
3. 完整規模清盤算例與三種估值
算例 D:初始狀態一次性買完,無稅、無捐贈
買完 793,100,000 Token,淨入曲線為:
| 項目 | 精確結果 |
|---|---|
| 淨入曲線 USDC | 12,161.433369060378706681 |
| 加入 Pair 的 Token | 206,900,000 Token |
| 加入 Pair 的 USDC | 12,161.433369 USDC |
| external6 USDC 整數 | 12,161,433,369 |
| 遷移餘數 | 0.000000060378706681 USDC |
以上是明確初始基線的一次性算例,不承諾所有多次買賣路徑累計得到完全相同的最小單位結果;逐筆整數捨入和精確預算入口會產生差異。
內盤終點、外盤實值與理想錨點不能混用
| 指標 | 本例數值 | 用途 |
|---|---|---|
| 最後一筆後的內盤虛擬 USDC | 16,453.433369060378706681 | 內盤結束時的虛擬儲備記錄 |
| 內盤終點虛擬 Token | 279,900,000 | 內盤結束時的虛擬儲備記錄 |
| 內盤終點協議市值 | 58,783.256052377201524405 USDC | 由內盤虛擬儲備計算 |
| 實際外盤初始 USDC | 12,161.433369 | 真實 Pair 資金 |
| 實際外盤初始 Token | 206,900,000 | 真實 Pair 資金 |
| 實際外盤初始協議市值 | 58,779.281628806186563557 USDC | actualStartMarketCap |
| 固定理想遷移 USDC 參數 | 12,161.433370 | 風險模型參數,不是強制轉帳金額 |
| 固定理想遷移市值 | 58,779.281633639439342677 USDC | startMarketCap,用於風險/保證金曲線錨點 |
實際外盤初始價格約為 0.000058779281628806186564 USDC/Token。目前參數並不強制「遷移前後邊際價格逐最小單位完全連續」;內盤虛擬儲備與遷移真實儲備是兩套不同數值。
固定理想錨點提供可重複的風險模型基線;真實 Pair 儲備決定現貨價格、債務回購成本以及每一筆實際交換。不要把 12,161.433370 USDC 的模型參數寫成每次遷移必然到帳的資金。
4. Pair 預先建立、捐贈與污染防護
哪些預先狀態可以接受?
遷移開始要求:
- Pair 的 Token 儲備為 0。
- Pair 的實際 Token 餘額為 0。
- Pair 的 LP 總供給為 0,不能已經存在他人持有的舊 LP。
- Pair 的 USDC 儲備不得大於其真實 USDC 餘額。
- Pair 位址、代幣組成、關聯交易場所及程式碼身分通過 Profile 驗證。
遷移轉帳後還會檢查實際新增 USDC 數量;LP 鑄造後驗證 Token 儲備等於遷移額度,USDC 儲備等於遷移前實際 USDC 餘額 + 本次入池 USDC。不匹配會觸發 PairContaminated 或相應校驗錯誤並回滾。
設定快照不是只核對一個版本編號。遷移會重新驗證 Engine 部署器、Engine 實作、交易場所 Factory/Router 的程式碼雜湊及關聯關係,檢查 Engine 參數雜湊和 Oracle 設定,並透過 Pair 初始化程式碼雜湊推導預期位址、透過執行階段程式碼雜湊驗證實際 Pair。部署器或實作的執行程式碼偏離登記值時,最終買單會原子回滾,而不是靜默使用變化後的實作。
上述規則不是承諾任意規模的捐贈都能被接納;Pair 的整數儲備範圍、LP 鑄造和其他執行約束仍然成立。未計入儲備的捐贈也可能在遷移前被 Pair 的正常操作移走,因此應以遷移執行時餘額為準。
捐贈去了哪裡?
設遷移時已有 USDC 餘額為
本曲線加入的 Token 仍為固定的 206,900,000。遷移保留的 USDC 捐贈進入真實池子,不返給捐贈人,也不返給最後買家;它會抬高真實初始價格與 actualStartMarketCap,不會改寫固定理想遷移錨點。容量的時間加權釋放也不會僅因遷移瞬間的高價捐贈立即完成。
算例 E:在算例 D 的主 Pair 中額外保留 170 USDC
| 項目 | 無捐贈 | 增加 170 USDC 捐贈 |
|---|---|---|
| 外盤 Token 儲備 | 206,900,000 | 206,900,000 |
| 外盤 USDC 儲備 | 12,161.433369 | 12,331.433369 |
| 實際初始協議市值 | 58,779.281628806186563557 | 59,600.934601256645722571 |
| 固定理想遷移市值 | 58,779.281633639439342677 | 58,779.281633639439342677 |
直接把 USDC 轉給 Factory 是另一回事:它不會自動增加某個 Token 的 realNativeReserves,因而不會自動成為該 Token 的遷移資金。曲線記帳餘額、Factory 總餘額、Pair 實際餘額必須分開理解。
5. LP 與借貸庫存的最終去向
初始 LP 全部不可由普通持有人贖回
同時要求本次鑄造的 LP 大於 0、總 LP 大於本次傳回的流動性數量,以涵蓋 V2 初始最小流動性結構。建立者、營運、協議錢包和最終買家都不會收到本次遷移 LP。
這裡「銷毀 LP」指 LP 由零位址持有、無法由普通帳戶拿出贖回,不是 ERC-20 總供應量 變為 0;Pair 內的 Token 也沒有因此被銷毀。遷移檢查針對初始時刻,不能據此聲稱外部 AMM 以後永遠不會新增流動性或鑄造其他 LP。
借貸儲備保持獨立
199,861,071 Token 早已持有於預先計算 Engine 位址,遷移只部署並初始化 Engine,不重複鑄幣、不把這批本金轉進 Pair。Engine 初始化讀取實際 Pair 儲備,並以獨立帳本追蹤可用借貸本金。