はじめに
- Monacoinのtestnet4に、とあるコインベーストランザクションがあります
- 以下、抜粋です

-
coinbase
のところの"coinbase": "03e9bc0a42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e00000000"
これはなんと書いてあるのかなー? と- 先頭のほうの
03e9bc0a
と00000000
を外した"42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e"
を以下読んでみます - 先頭のほうはたしかブロック高(だった気がする)
- うしろのほうのやつは0だからいいでしょう
- 16進文字列(上位ニブルが先)の形式になっています
- 先頭のほうの
-
Monacoin testnet4 Faucet
|>
これ動かしているの私です- 2017/10月か11月くらいから動かしています
Rubyなら
irb(main):002:0> ['42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e'].pack('H*')
=> "Believe in your spirit. Go forth."
Elixirなら
- 最近はElixirにハマっていまして、Elixirならどうやるんやろうなあーとおもってiexと戯れてみました
- Enum.chunk_every/2 がステキです!
iex(8)> (
...(8)> "42656c6965766520696e20796f7572207370697269742e20476f20666f7274682e"
...(8)> |> String.codepoints
...(8)> |> Enum.chunk_every(2)
...(8)> |> Enum.map(fn [a,b] -> "#{a}#{b}" end)
...(8)> |> Enum.map(&String.to_integer(&1, 16))
...(8)> |> List.to_string
...(8)> )
"Believe in your spirit. Go forth."
- もっと短くできるかもしれませんが愚直にやってみました
- Thanks Elixir!
- できた、できた