Bitshares Account History Exporter 使ってみた

in #japanese7 years ago (edited)

Bitshares Account History Exporter の約定内容はJSONなのでCSVに変換した件

今までのBTS関連記事

Monappy


Bitshares Account History Exporter

前置き

前回Openledgerの取引履歴を取得したのですが、時間の情報がなく時価を出せませんでした。一応ブロックナンバーをcryptofreshなどに投入すれば分かりますが、一件づつの手作業は大変すぎます。

検索すると、自分と同じ要望を持っている人たちがいるみたいですがまだ未解決?なようでした。

Fuller featured API for get_relative_account_history
How can I view the complete transaction history or order history?

しょうがないのでbitsharestalkで質問してみたりもしたのですが何も分からないままでした。(さすがに0レスなのは自分の英語が意味不明だったからかもしれない)

https://i.imgur.com/BdhGHrq.jpg

上述のFuller featured API for get_relative_account_history にある類似項目へのリンク。全部にoxarbitrageさんが登場する

これらをざっと見るとどうもoxarbitrageさんが必要だと感じ開発してくださっているみたいだから、待つしかないのかな(何らかの方法でできるなら開発しないだろうから)などと思っていたところ、見事素晴らしいサービスを作ってくださいました。

Bitshares Account History Exporter(excel出力は準備中)

さっそく一年の約定履歴を指定してCSVファイルをダウンロードしてみたのですが、肝心の約定内容がよく分かりません。

ちなみに項目は全部で”Account History - ID Account History - Next Account History - Operation ID Account History - Sequence Additional Data - Fee Data - Amount Additional Data - Fee Data -Asset Additional Data - Transfer Data - Amount Additional Data - Transfer Data - Asset Block Data - Block Number Block Data - Block Time Block Data - Transaction ID Operation History - Raw Operation Operation History - Operation in Transaction Operation History - Operation Result Operation History - Transaction in Block Operation Data - Virtual Operation” となっています。

調べるとその中の”Operation History - Raw Operation” という項目にJSON形式で入っているようです。fee amount という項目はトークン固有の手数料分だと思います。virtual operation はさっぱり分かりませんなんだか規則的に増減していますが何でしょう。openledger エクスプローラーでは表示されない項目がcryptofresh上ではvirtualと表示されますが関係があるのでしょうか?

openledgerエクスプローラー cryptofresh
https://i.imgur.com/BRXouIp.jpg?1https://i.imgur.com/FnxSS3j.jpg?1

ともかくJSON形式を分かりやすくすれば見やすくなってなんとかなりそうです。以下javaとjavascriptの違いも分からない筆者が思いついた解決策を記します。より良い方法がきっとあると思うのでご存知の方は是非コメント下さい。

手順

まず“Operation History - Raw Operation” を全て選択し、テキストエディタにコピーします。1行1JSONという形になると思います。

https://i.imgur.com/OzgsV2G.jpg?1

次に正規表現を用いて置換をして、行末全てにコンマを打ちます。

https://i.imgur.com/8uxdIDt.png

一番下の行のコンマを消し、“]” を置きます。そして一行目先頭に“[” を置き、全体をカッコで括ります。これで全てが一つのJSONファイルになりました(よくわからんけど多分そうなってる)

[4,{"fee": (中略) "is_maker":true}]
               (中略)
[4,{"fee": (中略) "is_maker":true}]

↓(行末にコンマ)

[4,{"fee": (中略) "is_maker":true}],
               (中略)
[4,{"fee": (中略) "is_maker":true}],

↓(一番下のコンマを消し、全体をカッコで括る)

[[4,{"fee": (中略) "is_maker":true}],
               (中略)
[4,{"fee": (中略) "is_maker":true}]]

最後に適当なCSV変換サービスを使ってCSVに変換します。自分はConvert JSON to CSVを使いました。

https://i.imgur.com/aGKysdP.jpg

変換されました。

あとはクリエイトオーダーやキャンセルオーダーの手数料をまとめて、必要経費に計算したらいいのかな?という感じです。cryptact用に上手い事変換したいです。

最後に

改めて素晴らしいツールを開発してくださったoxarbitrageさんに感謝!

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.029
BTC 62135.43
ETH 2418.50
USDT 1.00
SBD 2.58