メインコンテンツへスキップ
この例では、InjectiveブロックチェーンでCW20トークンをBankトークンに変換するためのメッセージの作成方法を説明します。CW20トークンを保有しており、マーケットオーダーなどの操作を行うためにBank相当のトークンに変換する必要がある場合に特に便利です。このフローはCW20トークンとそれに対応するFactoryトークンのみに対応しています。 このガイドでは以下の手順を説明します:
  • ユーザーのCW20トークン残高の取得
  • ConvertCw20ToBankServiceを使用したCW20トークンからBankトークンへの変換メッセージの作成
  • 変換後のBank残高と既存のBank残高を使用したマーケットオーダーの実行

ユーザーのCW20残高を取得する

Explorer Indexerクエリを使用して取得できます。
  • 結果セットからBank Factoryトークンに変換したいCW20アドレスと残高を見つけます

CW20からBankへの変換メッセージの作成

  • CW20トークンをBank Factoryトークンに変換するために、こちらの手順に従ってconvertMsgを作成します。まだトランザクションは送信しません。

MsgCreateSpotMarketOrderメッセージの作成

  • MsgCreateSpotMarketOrderの手順に従ってmsgを作成します。まだトランザクションは送信しません。
  • 作成する買い注文は、変換されたCW20残高と既存のBank残高の合計にアクセスできます。例:
const order = {
  price: 1,
  quantity: 10,
}
  • 価格$1で5つのCW20トークンと5つのBankトークンを保有している場合、マーケットオーダー実行前にCW20がBankに変換されるため、上記の注文は成功します。次のステップでより詳しく説明します。

変換後のCW20残高と既存のBank残高を使用してマーケットオーダーを発行する

両方のメッセージのフォーマットが完了したら、CW20トークンをBank Factoryトークンに変換し、合算残高を使用してマーケットオーダーを発行する処理を1トランザクションで実行できます。
import { Network } from '@injectivelabs/networks'
import { MsgBroadcasterWithPk } from '@injectivelabs/sdk-ts/core/tx'

const privateKey = '0x...'
const injectiveAddress = 'inj1...'

const txHash = await new MsgBroadcasterWithPk({
  privateKey,
  network: Network.MainnetSentry,
}).broadcast({
  msgs: [convertMsg, msg], // Bank変換メッセージが最初に実行され、その後追加された残高を使用してマーケットオーダーが実行されます
})

console.log(txHash)
Last modified on April 3, 2026