スクリーンショット_2018-12-05_21

XRPのトランザクションをのぞいてみる(詳細)

そもそもTX_jsonとはなんぞやですが、署名された完全なトランザクションのJSON仕様のこと。JSONは軽量のデータ記述フォーマットだそうです。(詳しくはRFC8259にまとめられているようなので機会があれば目を通したい)。JSON形式で書かれたトランザクション定義と認識しておこ。そして、このデータ自体は、RippleAPI for JavaScriptのgetTransaction関数で得られているみたいですね。(こういうの取得できるようにいずれコーディングしたいなぁ)

さて、JSON仕様のトランザクションの生データを見ていきましょう。

{
    "type": "payment",
    "address": "rwgvfze315jjAAxT2TyyDqAPzL68HpAp6v",
    "sequence": 38,
    "id": "05F882561327F0CD9F46A3B57DA5382D708379BDEA4D60F5A539E14F01EECF13",
    "specification": {
        "source": {
            "address": "rwgvfze315jjAAxT2TyyDqAPzL68HpAp6v",
            "maxAmount": {
                "currency": "XRP",
                "value": "12000000"
            }
        },
        "destination": {
            "address": "rNQEMJA4PsoSrZRn9J6RajAYhcDzzhf8ok",
            "tag": 1000000004
        }
    },
    "outcome": {
        "result": "tesSUCCESS",
        "timestamp": "2018-11-26T10:26:30.000Z",
        "fee": "0.01",
        "balanceChanges": {
            "rwgvfze315jjAAxT2TyyDqAPzL68HpAp6v": [
                {
                    "currency": "XRP",
                    "value": "-12000000.01"
                }
            ],
            "rNQEMJA4PsoSrZRn9J6RajAYhcDzzhf8ok": [
                {
                    "currency": "XRP",
                    "value": "12000000"
                }
            ]
        },
        "orderbookChanges": [],
        "ledgerVersion": 43260779,
        "indexInLedger": 10,
        "deliveredAmount": {
            "currency": "XRP",
            "value": "12000000"
        }
    }
}

"type":
トランザクションの種類。”payment"は、あるアカウントから別のアカウントに価値を転送する処理を示しています。他にも、エスクロー作成する"escrowCreation"、アカウント設定の"settings、取引2つのアカウント間の信頼のライン作成・変更の"trustline"など色々あるようです。

”address":
トランザクションの開始側の、アカウントのアドレス。送金元ですね。

"sequence":
トランザクション開始側のアカウントのトランザクション数。この値が、処理前の開始側アカウントのトランザクション数 + 1 でなかったら、不正なトランザクションと認識するようです。いずれ、自分のアドレスのシーケンス数が競われる未来が来るかも(来ない)

"specification":
このPaymentトランザクションの内容です。
・source.addressが送信元アドレス
・source.maxAmount.currencyは送金単位
・source.maxAmount.amountは送金量
・destination.address/destination.tagが受信側のアドレスとタグ

"outcome":
トランザクションの結果です。
・resultは、トランザクションの結果コードです。成功しているので、"tesSUCCESS"となっています。
・timestampはトランザクション完了時間。
・feeはトランザクション手数料です。0.01XRPですね。送金成功有無にかかわらずこの手数料は発生します。
・balanceChangesは各アドレスの残高を更新している情報です。
・orderbookChangesは注文変更の際に設定されるようですが、今回は無し。
・ledgerVersionはトランザクションが承認された台帳のバージョン。
・indexInLedgerは台帳でのトランザクションの順序インデックス。
・deliveredAmountはトランザクションで指定された量。

後半端折ってしまいましたが、トランザクションの内容がこんな感じでまとめられているようですね。

Bithompで見れるXRPのトランザクションは、getTransactionで得られるJSON形式の情報でした。また、トランザクションタイプとその結果がまとめてられてました。次は、送金失敗した場合の記載でもまとめてみようかな。

いいなと思ったら応援しよう!