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

ブロックチェーンからの読み取り

ブロックチェーンからの読み取りは、Sequence Indexer のUnityネイティブ実装を利用して行います。 ChainIndexer クラス のインスタンスを作成することを推奨します。これにより、IIndexer インターフェース が提供するすべての機能を利用できます。
指定したチェーンのインデクサAPIが稼働しているかどうかは、Ping 非同期Taskで確認できます。リクエストが失敗する場合に役立ちます。開発中は、ステータスページ でもインデクサの稼働状況を確認できます。

残高の取得

ユーザーのEther(またはネットワークのデフォルトガス通貨)の残高を確認するには、GetEtherBalance 非同期Taskを使用します。

トークン残高の取得

ユーザーのトークン残高を取得するには、GetTokenBalances 非同期Taskを利用します。
この方法で取得した場合、各スマートコントラクトごとに1つのトークンインスタンスのみが返されます。アドレスを指定せずに取得することで、プレイヤーがどのコントラクトからトークンを所有しているか、ウォレットにどのERC20があるかを把握できます。 ERC721やERC1155トークンの個別残高を取得したい場合は、GetTokenBalancesArgs でコントラクトを指定してください。
プレイヤーが特定のコントラクトで多くのtokenIdを持っている場合(または多くのコントラクトからトークンを所有している場合)、ページネーション処理が必要になります。この場合、GetTokenBalancesReturn で受け取る Page を確認し、続きがあればPageを含めて再度リクエストしてください。
この操作を簡単にするために、GetTokenBalancesOrganizedInDictionary というラッパーを用意しています。これにより、指定したcontractAddressとuserAccountAddressのすべてのTokenBalanceを取得し、tokenID(BigInteger)からTokenBalanceへのDictionaryとして整理します。通常はこちらを利用するのが便利です。
これにより、各token idの残高確認も非常に簡単になります。

トークン供給量の取得

特定のスマートコントラクトのトークン総供給量を取得したい場合は、GetTokenSupplies 非同期Taskを利用できます。
この操作はあまり一般的ではないと考えていますが、必要な場合のために公開しています。

トークン供給量マップの取得

GetTokenSupplies を頻繁に利用する方向けに、複数のトークンコントラクトやトークンIDの供給量をマップ形式で取得できる GetTokenSuppliesMap 非同期Taskも提供しています。
ここでは、suppliesMap[usdcAddress].Length = 1 となり、TokenSupplyオブジェクトはERC20トークンの供給量に対応します。 同様に、suppliesMap[skyweaverAddress].Length = 3 となり、TokenSupplyオブジェクトは指定したトークンIDの供給量に対応します。

トランザクション履歴の取得

特定アカウントのトランザクション履歴を取得するには、GetTransactionHistory メソッドを利用します。
TransactionHistoryFilter オブジェクトを使うことで、アカウントアドレスやコントラクトアドレスなど、トランザクション履歴の絞り込み条件を指定できます。詳細はこちらをご覧ください。