今回はrippledサーバに接続して、XRP Ledger上のトランザクションの詳細を取得する方法を解説します。
トランザクションの詳細は、以下のような方法で取得できます。
トランザクションIDを指定して取得する
『【RippleAPI】④ 送金受領通知』で行ったトランザクションの詳細を見てみましょう。
const RippleAPI = require('ripple-lib').RippleAPI; const api = new RippleAPI({ // TestNet server: 'wss://s.altnet.rippletest.net:51233' }); (async ()=>{ // トランザクションID let transactionId = 'EA887B8046F0E9BE06A2CF29AF0900AA485D70D80F484093AE7FF29CEABD029D'; try { await api.connect(); const transaction = await api.getTransaction(transactionId); console.log(JSON.stringify(transaction, null, 2)); await api.disconnect(); } catch (e) { console.error(e); } })();
実行結果例
{ "type": "payment", "address": "rc8qCurPUeXBjE4DGqg3YQX3N6F5r7cog", "sequence": 3, "id": "EA887B8046F0E9BE06A2CF29AF0900AA485D70D80F484093AE7FF29CEABD029D", "specification": { "source": { "address": "rc8qCurPUeXBjE4DGqg3YQX3N6F5r7cog", "maxAmount": { "currency": "XRP", "value": "500" } }, "destination": { "address": "rM6ToyvCmTavh4zPjJSsTVgCbabZ6Harup" } }, "outcome": { "result": "tesSUCCESS", "timestamp": "2019-05-04T14:40:10.000Z", "fee": "0.000012", "balanceChanges": { "rM6ToyvCmTavh4zPjJSsTVgCbabZ6Harup": [ { "currency": "XRP", "value": "500" } ], "rc8qCurPUeXBjE4DGqg3YQX3N6F5r7cog": [ { "currency": "XRP", "value": "-500.000012" } ] }, "orderbookChanges": {}, "ledgerVersion": 19120610, "indexInLedger": 0, "deliveredAmount": { "currency": "XRP", "value": "500" } } }
アドレスを指定してトランザクション一覧を取得する
const RippleAPI = require('ripple-lib').RippleAPI; const api = new RippleAPI({ // TestNet server: 'wss://s.altnet.rippletest.net:51233' }); (async ()=>{ // 送信元 let address = 'rc8qCurPUeXBjE4DGqg3YQX3N6F5r7cog'; try { await api.connect(); const serverInfo = await api.getServerInfo(); let [minLedgerVersion, maxLedgerVersion] = serverInfo.completeLedgers.split('-'); const transactions = await api.getTransactions(address, { minLedgerVersion: Number(minLedgerVersion), maxLedgerVersion: Number(maxLedgerVersion) }); for (let transaction of transactions) { console.log(`id: ${transaction.id}`); console.log(`sequence: ${transaction.sequence}`); console.log(`type: ${transaction.type}`); console.log(`timestamp: ${transaction.outcome.timestamp}`); console.log(`result: ${transaction.outcome.result}`); } await api.disconnect(); } catch (e) { console.error(e); } })();
実行結果例
id: CC0D36E5FD6BBF420DACAE3D4104EFBF52D125B947D3B780742F17F2CE557A16 sequence: 15 type: payment timestamp: 2019-05-06T14:35:32.000Z result: tesSUCCESS id: E2D8B0CF839B24810DBCDB55920729487E3DEDD115B778065C7452EF490BF46F sequence: 14 type: settings timestamp: 2019-05-06T14:33:41.000Z result: tesSUCCESS id: CA0720851DEEE1259449979AE6523D59FBB68A81B73F6ECA87398A9539FD902E ⋮ sequence: 1 type: payment timestamp: 2019-04-13T11:30:41.000Z result: tesSUCCESS