Walletは、IWalletインターフェースで定義されます。このSDKには現在、2つのIWalletインターフェース実装があります。
1. EOAWallet
EOAWalletは、EVMチェーン向けの標準的なEOAウォレットです。
EOAWalletは簡単に作成できます。
2. SequenceWalletToEOAWalletAdapter
SequenceWalletToEOAWalletAdapterは、SequenceWalletをEOAWalletと同じIWalletインターフェースで利用できるようにするアダプターで、SequenceEthereumライブラリ全体でEOAウォレットと同様に扱えます。
SequenceWalletToEOAWalletAdapterは、SequenceWalletがあれば簡単に作成できます。
メソッド一覧
IWalletインターフェースでは、いくつかのメソッドが利用できます。特に重要なのは以下の通りです。
GetAddress
ウォレットのAddressを返します。
SendTransaction
指定したEthTransactionに署名し、指定したクライアント経由で送信します。
SendTransactionAndWaitForReceipt
指定したEthTransactionに署名し、指定したクライアント経由で送信した後、TransactionReceiptを待ちます。
SendTransactionBatch
指定したEthTransaction[]に署名し、指定したクライアント経由でまとめて送信します。
ウォレットがEOAWalletの場合、各トランザクションは順番に送信され、それぞれ成功または失敗します。ウォレットがSequenceWalletToEOAWalletAdapterの場合、すべてのトランザクションが1つにまとめられ、一括で送信され、全体として成功または失敗します。
また、EOAWalletの場合は受け取るstring[](トランザクションハッシュ)の長さは送信したEthTransaction[]と同じですが、SequenceWalletToEOAWalletAdapterの場合は1つのトランザクションハッシュ(長さ1のstring[])のみが返されます。
SendTransactionBatchAndWaitForReceipts
指定されたEthTransaction[] を署名し、指定されたクライアント経由で送信した後、TransactionReceipt[] を待機します。
ウォレットが EOAWallet の場合、トランザクションは順番に送信され、それぞれ成功または失敗する可能性があります。ウォレットが SequenceWalletToEOAWalletAdapter の場合、トランザクションはまとめて一つのトランザクションとして送信され、全体が一度に成功または失敗します。
同様に、ウォレットが EOAWallet の場合、受け取る TransactionReceipt[] の長さは送信した EthTransaction[] と同じになります。一方、ウォレットが SequenceWalletToEOAWalletAdapter の場合、トランザクションレシートは1件のみ(TransactionReceipt[] の長さが1)受け取ります。
SignMessage
メッセージとオプションのチェーンIDを指定して、ウォレットでメッセージに署名します。チェーンIDが指定されていない場合は、署名からチェーンIDを省略します。Chain オブジェクト(推奨)を使っている場合は、AsString メソッドでチェーンIDの16進数表記を取得できます。