メインコンテンツへスキップ

Wrapped INJ (wINJ)

ラップされた暗号通貨とは?

Injectiveでは、INJはネットワーク上のトランザクション手数料の支払いに使用される暗号通貨です。 しかし、一部のdApps(DEXを含む)はインターフェースでERC20トークンのみを受け付けるため、INJはそれらと互換性がありません 解決策は、INJをラップするERC20トークンを作成することです。これを「wrapped INJ」と呼びます。 そのトークンシンボルはwINJです。 したがって、ERC20トークンを受け付けるすべてのdAppはwINJも受け付けます。 wINJトークンの仕組みはシンプルです:
  • Mint:INJを預け入れるたびに総供給量を増加させます。
  • Burn:INJを引き出すたびに総供給量を減少させます。
wINJは、INJと1対1で担保されたERC20トークンと考えることができ、同等の価値を持ちながら技術的なインターフェースが異なるものとして扱うことができます。

wINJはwETHと同じですか?

Ethereumに馴染みのある方は、 これがwrapper Ether(wETH)と同じように聞こえると思われるかもしれません。 その通りです。ここまではwINJはwETHと同じように動作します。 ただし、InjectiveネットワークはMultiVM技術アーキテクチャで設計されていることに注意してください。 これは、wINJがwETHのように標準的なERC20実装で実装された場合、 Injectiveネットワークの非EVM部分(例:Cosmosトランザクション)との やり取り時にwINJにアクセスできないことを意味します。 これはまさに、Injectiveの MultiVM Token Standard (MTS) が設計された目的そのものです。 具体的には、 この行に注目してください:
contract WINJ9 is BankERC20, IWINJ9 {
一般的なERC20実装のようにsmart contract内にuint256値として残高を保存する代わりに、 wINJ smart contractはBank precompileを使用しています。 魔法は BankERC20_update関数 で起こります。ここでは、Bank moduleのmintburn、またはtransfer関数が、 そのEVM precompileを介して呼び出されます。 これらの残高はBank precompileから保存・取得されるため、 InjectiveのMultiVMアーキテクチャ内の他の場所からアクセス可能です。 例えば、Cosmos SDKを使用してwINJ残高をクエリできます。 EVMトランザクションを通じて更新した後でも同様です。 また、その逆も可能です。 これを「ネイティブチェーン残高」と呼んでいます。 wINJの完全なデモをご覧ください。

wINJをプログラムで使用する方法

  • Injective Mainnetでのアドレス:0x0000000088827d2d103ee2d9A6b781773AE03FfB
  • Injective Testnetでのアドレス:0x0000000088827d2d103ee2d9A6b781773AE03FfB
INJをwINJに変換するには、このsmart contractのdeposit関数を呼び出します:
  • 関数シグネチャ:deposit() public payable
  • パラメータとして金額を指定する必要はないことに注意してください。 代わりにトランザクションにvalueを設定すると、payableがそれをmsg.valueとして取得します。
wINJをINJに変換するには、このsmart contractのwithdraw関数を呼び出します:
  • 関数シグネチャ:withdraw(uint256 wad) public
  • 受け取りたいINJの金額をwadパラメータとして設定します。
その他の関数(例:転送)は、標準的なERC20と同じです。

ネットワークエクスプローラーを使用してwINJを使用する方法

INJをwINJに変換するには、このsmart contractのdeposit関数を呼び出します:
  • wINJトークンのエクスプローラーページで「Contract」タブ、次に「Read/Write contract」サブタブに移動します。
  • deposit()関数を見つけ、>シンボルをクリックして展開します。
  • 「Send native INJ (uint256)」フィールドに変換したいINJの金額を入力します。
    • この数値は自動的に10^18が掛けられるため、手動で変換する必要はありません。
  • 「Write」ボタンを押します。
  • ウォレットでトランザクションを確認して署名・送信します。
  • ウォレットには、選択した金額分のINJの減少とwINJの増加が反映されるはずです。
    • INJの減少はわずかに多くなります。トランザクション手数料の支払いに使用されるためです。
wINJをINJに変換するには、このsmart contractの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の残高を確認します。