背景
CW-20はCosmWasmにおけるfungibleトークンの仕様で、ERC-20仕様を緩やかに参考にしています。CosmWasm内で任意のfungibleトークンを作成・管理することを可能にし、これらのトークンの作成、ミント、バーン、およびアカウント間の転送のメソッドを規定します。adapter contractは、認可されたソースのCW-20コントラクトのみがトークンをミントできるように保証します(「偽造」トークンの作成を防ぐため)。 CW-20標準は比較的成熟し完成されている一方、トークンはCosmWasmのコンテキスト内のみに存在し、発行側のコントラクトによって完全に管理されます(アカウント残高の追跡を含む)。つまり、これらのトークンはInjectiveのネイティブモジュールと直接相互作用できません(例えば、Injective exchange moduleでの取引や、発行コントラクトを介さずに転送することはできません)。 上記を踏まえると、CW20とInjective bank moduleの橋渡しとして機能するソリューションを提供する必要があります。 コントラクトのワークフローは以下のとおりです:- 新しいCW-20トークンを登録する
- X個のCW-20トークンをY個のTokenFactoryトークンと交換する(元のCW-20トークンはコントラクトが保持)
- Y個のTFトークンをX個のCW-20トークンに戻す(CW-20トークンが解放され、TokenFactoryトークンはバーンされる)
Messages
RegisterCw20Contract { addr: Addr }
adapterで処理される新しいCW-20コントラクト(addr)を登録し、factory/{adapter_contract}/{cw20_contract}形式の新しいTokenFactoryトークンを作成します。
Receive { sender: String, amount: Uint128, msg: Binary }
Receiver CW-20インターフェースの実装。
CW-20コントラクトからのみ呼び出される必要があります。
