連載1 - 資産送金
これは、sendAssetメソッドを使用してアセットを送金するための基本的なチュートリアルです。

quras-jsアセットの送金、ガスのクレーム、スマートコントラクトの呼び出しのためのすぐに使える関数を提供します。このチュートリアルでは、高レベルの関数を使用していくつかのネイティブアセットを送金する方法を示します。

明確にするために、アセットについて話す時は、XQCやXQGなどのネイティブアセットを指します。QEP1トークンはスマートコントラクト内のレコードであるため、アセットとは見なされません。したがって、これはそれらのトークンの送金には適用されません。

インテントの作成
アセットを送金するには、まずインテントを作成する必要があります。このインテントは、アセットを特定のアドレスに送金するための指示を表しています。
 import QurasLib, {api} from 'quras-js'

  // We want to send 1 XQC and 1 XQG to DdMKz4NPardpaUqNVG7tfj9PgDNoD9zr9c
  const intent = api.makeIntent({XQC:1, XQG:1}, 'DdMKz4NPardpaUqNVG7tfj9PgDNoD9zr9c')
  console.log(intent) // This is an array of 2 Intent objects, one for each asset
インテントをさらに追加するには、api.makeIntentを使用してインテントを作成し、単一の配列に連結します。
configuratin オブジェクトの設定

sendAsset はトランザクションの構成に必要な全ての詳細情報を含むconfigurationオブジェクトを入力してもらってトランザクションを生成する。

const config = {
  net: 'TestNet', // The network to perform the action, MainNet or TestNet.
  address: 'DdMKz4NPardpaUqNVG7tfj9PgDNoD9zr9c',  // This is the address which the assets come from.
  privateKey: '8acd21064619fb4a8f309ef5eb9f85d913b81bd3b0894962e2974ba3bf821ca6',
  intents: intent
}
ここでprivatekeyとaddressは互いにマッチングされなければならない。このconfigurationオブジェクトはqurasDBのような3rd party APIサーバと連動して当該アドレスの残高を得てからトランザクションを生成して署名することに利用される。
送金
QurasLib.sendAsset(config)
.then(config => {
  console.log(config.response)
})
.catch(config => {
  console.log(config)
})

sendAssetは、残高の取得、トランザクションの構築、署名、および最適なノードへの送金のすべてのことを自動的に実行します。これが行われると、promiseはconfigオブジェクトを返します。オブジェクトは、最初に渡されたものと同じオブジェクトであり、プロセスで使用されるすべての追加情報が追加されています。 たとえば、urlフィールドは、トランザクションを送金したQURASノードです。

ここでは、トランザクションの送金時にRPCエンドポイントからの応答を含むresponseプロパティに関心があります。

{
  result: true,
  txid: '48b83901a827fa343bf0e4d2ea00f4e7bd352ca28285f21e4bad9509f6460348'
}
トランザクションが成功すると、txidがresponseに添付されます。このstringを取得し、ブロックエクスプローラーで使用して、トランザクションをチェックアウトします。
ノート
  • sendAssetメソッドは、名前付きインポートのapiモジュールの下にあります。
  • このメソッドは、送金元のアセットの1つのソースのみを受け入れます。これは、複数の送信元またはマルチシグアドレスの使用をサポートしていません。
  • これは、addressフィールドをコントラクトのアドレスに設定し、秘密鍵を使用して署名し、また構成オブジェクトでsendingFromSmartContractをtrueに設定して、コントラクトからの送金が許可されている。