Wrapped INJ (wINJ)
ラップされた暗号通貨とは?
Injectiveでは、INJはネットワーク上のトランザクション手数料の支払いに使用される暗号通貨です。 しかし、一部のdApp(DEXを含む)はインターフェースでERC20トークンのみを受け付けるため、INJはそれらでは動作しません。 解決策は、INJをラップするERC20トークンを作成することです。これを「wrapped INJ」と呼びます。 そのトークンシンボルはwINJです。 したがって、ERC20トークンを受け付けるdAppはwINJも受け付けます。 wINJトークンの動作メカニズムは簡単です:- Mint: INJを入金する際にトータルサプライを増加させます。
- Burn: INJを引き出す際にトータルサプライを減少させます。
wINJはwETHと同じですか?
Ethereumに詳しい方は、これがwrapped Ether (wETH) と同じように聞こえると思われるかもしれません。 その通りで、ここまではwINJはwETHと同じように動作します。 しかし、InjectiveネットワークはMultiVMテクニカルアーキテクチャで設計されていることに注意してください。 これは、wINJがwETHのように標準的なERC20実装を使用して実装された場合、 wINJはInjectiveネットワークのEVM以外の部分(例:Cosmosトランザクション)とインタラクションする際にアクセスできないことを意味します。 これはまさに、Injectiveの MultiVM Token Standard (MTS) が設計された制限のタイプです。 具体的には、 この行に注目してください:uint256値として残高を保存する代わりに、
wINJスマートコントラクトはBank precompileを使用します。
マジックは
BankERC20の_update関数で起こり、
Bankモジュールのmint、burn、またはtransfer関数が
EVM precompileを介して呼び出されます。
これらの残高はBank precompileから保存/取得されるため、
InjectiveのMultiVMアーキテクチャの他の場所からアクセスできます。
例えば、Cosmos SDKを使用してwINJ残高をクエリできます。
EVMトランザクションを通じて更新した後でも、またその逆も同様です。
これを「ネイティブチェーン残高」と呼びます。
wINJの完全なデモをご覧ください。
wINJをプログラムで使用する方法
- Injective Mainnetのアドレス:
0x0000000088827d2d103ee2d9A6b781773AE03FfB - Injective Testnetのアドレス:
0x0000000088827d2d103ee2d9A6b781773AE03FfB
deposit関数を呼び出します:
- 関数シグネチャ:
deposit() public payable - パラメータとして金額を指定する必要はありません。トランザクションに
valueを設定すると、payableがmsg.valueとして取得します。
withdraw関数を呼び出します:
- 関数シグネチャ:
withdraw(uint256 wad) public - 受け取りたいINJの金額を
wadパラメータとして設定します。
ネットワークエクスプローラーでwINJを使用する方法
- Injective MainnetのエクスプローラーURL:
0x0000000088827d2d103ee2d9A6b781773AE03FfB - Injective TestnetのエクスプローラーURL:
0x0000000088827d2d103ee2d9A6b781773AE03FfB
deposit関数を呼び出します:
- エクスプローラーページのwINJトークンの「Contract」タブ、次に「Read/Write contract」サブタブに移動します。
deposit()関数を見つけ、>シンボルをクリックして展開します。- 「Send native INJ (uint256)」フィールドに変換したいINJの金額を入力します。
- この数値は自動的に
10^18が乗算されるため、手動で変換する必要はありません。
- この数値は自動的に
- 「Write」ボタンを押します。
- ウォレットでトランザクションを確認し、署名して送信します。
- ウォレットに、選択した金額のINJ減少とwINJ増加が反映されるはずです。
- INJの減少はわずかに多くなります。トランザクション手数料の支払いに使用されるためです。
withdraw関数を呼び出します:
- エクスプローラーページのwINJトークンの「Contract」タブ、次に「Read/Write contract」サブタブに移動します。
withdraw()関数を見つけ、>シンボルをクリックして展開します。- 「wad (uint256)」フィールドに変換したいwINJの金額を入力します。
- この数値は自動的に
10^18が乗算されるため、手動で変換する必要はありません。
- この数値は自動的に
- 「Write」ボタンを押します。
- ウォレットでトランザクションを確認し、署名して送信します。
- ウォレットに、選択した金額のINJ増加とwINJ減少が反映されるはずです。
- INJの増加はわずかに少なくなります。トランザクション手数料の支払いに使用されるためです。
Injective DoでwINJを使用する方法
- Injective Doにアクセスします。
- 右上の「Connect」ボタンを押します。
- ウォレットを選択します。
- ウォレットで「Allow」を選択し、Injective Do dAppへの接続を許可します。
- 右上(以前「Connect」ボタンがあった場所)にウォレットアドレスが表示されるはずです。
- 上部のナビゲーションバーで「EVM」を選択します。
- ドロップダウンメニューで「Wrap/Unwrap」を選択します。
- INJをwINJに変換する場合
- 上部の「Wrap」タブを押します。
- 「Amount」フィールドに変換したい金額を入力します。
- 下部の「Wrap」ボタンを押します。
- トランザクションが完了したら、ウォレットのINJおよびwINJ残高を確認します。
- wINJをINJに変換する場合
- 上部の「Unwrap」タブを押します。
- 「Amount」フィールドに変換したい金額を入力します。
- 下部の「Unwrap」ボタンを押します。
- トランザクションが完了したら、ウォレットのINJおよびwINJ残高を確認します。
