何気ない発言で師匠を傷付けるスマートコントラクトを実装してみた
はじめに
コインチェックの例の騒動を受け、なんだか僕もブロックチェーンネットワーク上で何かワチャワチャしたくなってみました。 ちょうど Ethereum が気になっていたこともあり、ちまたには傑作アニメの発言が流行っていることも助けて、試しに発言ボット的なスマートコントラクトを実装してみることにしました。
ツール群
geth という Go 製 Ethereum CLI が有名っぽいのでこれを利用してみます。
--dev
オプションを付与することで開発用の一時ネットワークを構築できるようです。
またスマートコントラクトの実装には Ethereum VM のコードを書くのに一番使われているらしい、 JavaScript っぽい構文にも見える Solidity を使ってみます。
ハマったこと
着手してみたのですが、Solidity 固有の?独特な attribute 指定とかがあってつらい感じでした。また文字列結合が +
演算子でサクッとできたりもしないようでつらみを覚えます。
とりあえず今回は solidity-stringutils でお茶を濁します。
成果物
以下になります。
不用意なメソッドをコールするといろいろな師匠を傷つけてしまいます。
> BBNM.mambo.call() "Your casual \"mambo\" hurt a samba master." > BBNM.ole.call() "Your casual \"ole\" hurt a flamenco master."
ご注意ください。