2017-01-01から1年間の記事一覧
前回の詐欺みたいな記事を詐欺じゃなくするべく、abiとaddressを入れるとRemixみたいにEthereumのContractを操作できるようになるReact Componentを作りましたー。前回と同じくデモページはこちら https://nakajo2011.github.io/react-ethereum-sample/
Reactでアプリを生成している時に、とあるComponentが内部で参照しているObjectの状態を変更したけど、renderで表示されているものにはその変更が反映されなくて非常に困ったという内容です。
Solidityでいろいろトリッキーなことを試す時にassemblyコードを書くのですが、毎回あれってどう書くんだっけ?ってなるので自分がよく使うassemblyコードをまとめておきます。
EthereumのByzantiumからrevert使うとエラーメッセージをよしなにできるらしいですよ?っていうのが内輪で話題になったので実際にどういう風に利用できるのかを調べてみました。byzantiumのリリースノートはこちら。 blog.ethereum.org
今回はSolidityで書いたContractのドキュメントを自動生成するツールの紹介とその使い方のまとめです。 実業務を考えるとやっぱり、作ったプログラムのAPIリファレンスは自動生成できるようにしておいたほうが何かと便利ですよね。今回利用したツールはこち…
とあるEthereumグループでちょっと話題になったERC223Tokenを実際に試してみました。 ERC223Tokenについてはこちらの方がわかりやすく説明されているので参照ください。 qiita.comERC223のリポジトリはこちら。 GitHub - Dexaran/ERC223-token-standard
タイトル詐欺です。すいません。実際にはEthereumのaccount addressとbalanceを取得するだけのコンポーネントです。reactの勉強がてら作ってみました。 こちらに公開してます。 https://nakajo2011.github.io/react-ethereum-sample/リポジトリはこちら gith…
前回の記事 に早速コメントでparcelおすすめされたのと、最近社内でもparcel便利だよーっていう声を聞いたので早速webpackから乗り換えてみました。 まずはReactアプリを準備 まずはいつものhello worldなreactアプリを作ります。 ディレクトリ構造 react-sa…
ChromeにMetaMaskを入れると直接web3.js呼べるようになるらしいので、ReactでSPAでも作ってためしてみようかなーと思ったところ、httpでのアクセスじゃないとMetaMaskさんが起動してくれなかった。ということでhttpでReactアプリにアクセスするべくサーバを…
意外に情報が少なくて、解決するのに時間かかったので自分用メモのつもりでブログに残しておきます。 Ropstenのガスリミットは4700000 Ropstenのガスリミットは4700000だそうです。truffle(に限らないのかな?)でgas limitを指定しなかった時のデフォルト…
node.jsで実行可能なコマンドを持ったModuleをインストールする時はだいたいグローバルインストールを勧められます。 npm install -g truffleグローバルインストールすると普通にそのModuleのコマンドが叩けます。 truffle --versionでもなんでもかんでもグ…
ContractのEventの仕組み - アルゴリズムとかオーダーとかに引き続きContractのEvent関連のお話です。 Eventを定義する時にparameterにindexedというmodifierを付与する事ができます。今回はこのindexedの仕組みについてまとめてみました。
今回はContractのEventをテストする時の注意点や思いついたtipsなどをまとめました。 結局は非同期で動いていることを意識してなかったのが原因ではあるのですが、node動かしながら試してたことをそのままテストに書いてもうまくいかないといういい例の一つ…
Ethereum Advent Calendar 2017 の 7 日目の記事です。 ContractにEventを定義すると、Contractの状態が変更された時などに必要な人が通知を受け取れるようになります。 しかし、getter系のfunctionにはEventが設定できなかったりします。 今回はこのEventの…
更新 この記事の内容は古いため、20180417現在では使えません。最新での導入方法についてはこちらにまとめています。 y-nakajo.hatenablog.com OpenZeppelin(zeppelin-solidity)はEthereumのContract作るなら使わないと損だよ!ってぐらい便利なContractのラ…
ethereumの勉強をやってるととにかくnpmでいろいろ入れたり消したりするんだけど、npmでローカルインストールした時に自分の意図しないプロジェクトにまで影響出ることがあって、なんだかめんどくさくなったので今更ながらにdockerで開発環境を分ける事にし…
EthereumでContractを作って運用を考えるとやっぱり頭を悩ませるのが、コードの変更が不可能な事。 基本的にContractであまり複雑な事をすべきではないとは思うけど、それでもやっぱりサービスの成長とともにコードのアップデートも必要となる。 libraryやde…
Solidityのlibraryのメソッドはだいたいこんな形の定義になる。 function (StructHoge storage self, uint _val) {最初の引数にstorageキーワードをつけないとコンパイルエラーになっちゃうから必須のキーワードのようだ。 で、このstorageが何のために必要…
Solidityで用意されている外部のcontractのメソッドを呼び出すdelegatecallのtipsみたいなものをまとめてみました。 思いついた使い方は以下の4通り。A. library定義を利用して呼び出す B. 外部Contractのaddressをあらかじめ準備してdelegatecallメソッド…
例えば、task/hoge.jsをTruffleのConsoleで読み込みたい場合は truffle(develop) > .load task/hoge.jsで読み込めます。 最初ファイルへのパスを""で囲んで実行しててエラーにしかならなくて焦りました。requireにしろimportにしろ""で囲むものが多いから間…
Libraryを利用したContractをデプロイする時はLibraryのアドレスをリンカーに教えないとContractがデプロイできません。(できても正常に動きません)TruffleでLibraryとContractをlinkしてデプロイする方法はTruffleの公式ドキュメントにさらーっと書いてる…
結論:使いづらい。。。。。。 現状はbrowser-solidityの方がいいかも。step実行の時のstepの単位がよくわからない(opcode単位でも行数単位でもないっぽい?)し、途中でlineナンバーが拾えないようでエラー吐くし。。一応、truffle debuggerを簡単に試すや…
Solidityでdelegatecallのサンプルを試していた時に、通常の呼び出しだとuint[]やstringなどのいわゆる可変長な型を引数にとるメソッドのdelegatecallが思った通りに動いてくれなくて、その原因や実装方法について調べました。具体的には以下のstackexchange…
Truffleを用いたContractの作成〜単体テストの実行までの流れをまとめます。 今回ははメッセージを誰でも保存、閲覧できるだけの簡単なContractを作成して、また簡単なテストを書いて実行してみます。Truffleのインストールについては過去の記事をご覧くださ…
TruffleでContractを修正&デプロイを繰り返してるとたまに、ABIがおかしくなります。(引数が必要ないgetメソッドに引数もとめられたりとか。。。)その場合は、./build/contracts/以下のファイルを全て削除すると治ります。./build/contracts/以下にはコン…
Ethereum界隈の動向を調べたり何たりするときによくお世話になる(orなりそう)便利なサイトを紹介します。Ethereum BlockChain Explorer and Search 言わずと知れた、Ethereumのメインネット上のトランザクションやコントラクトなどを確認できるサイトethga…
今回はetherの送金を受け付ける事ができるContractの作成方法をまとめます。 当たり前すぎな事なのか、意外に記事がなかったので。。。Solidityの公式ドキュメントで記述のある箇所はこちら Function Modifiers 結論を先にいうと、etherを受け取りたいメソッ…
今回はTruffle(読み方はトリュフ)を使った開発環境の構築手順をまとめてみます。truffleframework.com
2017/11/08にParityチームが告知したセキュリティーアラートについて興味があったのでちょっと調べてみました。 こちらのブログの記事の内容を読んだことをまとめています。 medium.com
今回はEthereumで簡単なコントラクトを作って実行してみます。qiita.com とか inon29.hateblo.jp を参考にしてます。内容もほとんど一緒です。