playground

The world is a playground.

Ethereum

Ruby で Ethereum の秘密鍵・アドレスを生成

require 'openssl' require 'base16' require 'digest/sha3' def eth_address(public_key) s = public_key[2, 128] s.downcase! s = Base16.decode16(s) h = Digest::SHA3.hexdigest(s, 256) a = '0x' + h[-40..-1] return a end ec = OpenSSL::PKey::EC.new…

Ethereum の function call データフォーマット

マルチシグウォレットを使用して他のスマートコントラクトのメソッドを実行したりするのに必要なので調べたよ Solidity で書かれたスマートコントラクトに次のようなメソッドがある場合で説明します 以下の countUp() とか countDown() を実行するためにはど…

OpenZeppelin の Crowdsale コントラクトのデプロイ手順

最新の OpenZeppelin (1.9.0) をみたら、これまでとかなり Crowdsale コントラクトのデプロイ手順が異なっていたのでメモ。 これまでは、Crowdsale Contract の中で Token Contract のインスタンスを生成していたが、どうやら Gas 消費量が大きすぎるらしく…

Linux (Ubuntu 16.04 LTS) に geth をインストール

Linux (Ubuntu 16.04 LTS) に geth をインストールするには、次のコマンドを実行します。 $ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa:ethereum/ethereum $ sudo apt-get update $ sudo apt-get install ethereum …

Truffle でコントラクトの ABI を取得

Truffle でビルド済みのコントラクトの ABI を取得する方法を紹介します。 一番簡単なのは、./build/contracts ディレクトリにビルド済みのコントラクト ABI や bytecode が記録されている JSON ファイルがあるので、そこから取得する方法です。 たとえば、E…

Ethereum の Block Gas Limit を取得

この記事では Ethereum のブロックごとの Gas Limit を取得する方法をいくつか紹介します。 ちなみに Privatenet, Ropsten 上での Smart Contract のデプロイ時に Exceeds block gas limit というエラーが出てかなり困っていたのですが、原因はネットワーク…

ローカル環境で Ethereum の秘密鍵生成・アドレス取得

開発用に Ethereum の秘密鍵とアドレスをいくつか生成したいときがあったので、そのときに使用した方法のメモです。 ethereumjs-wallet を使用すると、とても簡単に Ethereum の秘密鍵を生成したりアドレスを取得したりすることができます。 もちろんローカ…

Ethereum の秘密鍵から公開鍵を取得 (JavaScript)

今回使用するライブラリ ethereumjs-util ethereumjs-wallet ライブラリのインストール $ npm install ethereumjs-wallet --save $ npm install ethereumjs-util --save 公開鍵から秘密鍵を取得するコード var Wallet = require('ethereumjs-wallet'); var E…

Infura の JSON RPC API で Ethereum アドレスの残高を取得

はじめに Geth と呼ばれる Ethreum クライアントは、JSON RPC API を提供することができます。 JSON RPC API を使用することで、Geth を実行せずに、外部のサーバ(ノード)を使用して、Ether の残高を取得したり、トランザクションを投げたりすることができ…

iOS で Ethereum アカウントを作成・アドレス取得

Geth のライブラリを Cocoapods でインストールしていることが前提 blog.playground.io 次のようなコードで、Ethereum のアカウント作成・アドレス取得ができる // gist.github.com Ethereum 関連の情報は https://scrapbox.io/sushiether/ に集約することに…

iOS で Geth を使用する

iOS 用の Geth ライブラリは、CocoaPods でインストール可能です。 Podfile に以下の行を追記(バージョンは適宜アップデートします) // gist.github.com $ pod install でインストールします。 使用する時は、 import Geth とすれば ok です。 参考 https:…

ETH Tip Button Example

By adding the code snippet in this article, anyone who uses MetaMask can easily tip you by just pushing a button. If you find this article is useful, please push the button below and tip $ETH TIP $ETH // // You can add the same button to y…

Truffle と Infura と MetaMask で Ropsten にデプロイ

Truffle と Infura と MetaMask で Ropsten にデプロイする方法のメモです。 MetaMask じゃなくても、Ethereum Wallet のニーモニックがあればそれを使えます。 truffle-hdwallet-provider をインストール 次のコマンドを実行して、truffle-hdwallet-provide…

crypto 系ライブラリの中に出てくる iv ってなんぞや

iv は initialization vector のことらしい。 Wikipedia 先生 によると 初期化ベクトル(英: initialization vector、IV)はビット列であり、ストリーム暗号またはブロック暗号を任意の暗号利用モードで実行するとき、同じ暗号鍵でストリームを生成しても毎…

ethereumjs-wallet で既存の秘密鍵からウォレットを生成

ethereumjs-wallet で既存の秘密鍵からウォレットを生成する方法のメモです。 インストール // gist.github.com サンプルコード // gist.github.com Scrapbox scrapbox.io

ethereumjs-wallet を使用したウォレットの生成・公開鍵や秘密鍵の取得

ethereumjs-wallet を使用すると、Ethereum ウォレットの作成して、次のような情報を非常に簡単に取得できる。 秘密鍵 公開鍵 アドレス keystore ファイル ethereumjs-wallet の導入 // gist.github.com サンプルコード // gist.github.com Scrapbox scrapbo…

Ethereum の秘密鍵でメッセージを復号

Ethereum の秘密鍵でメッセージを復号する方法のメモ。 // gist.github.com 暗号化する方法はこちら blog.playground.io 原理的なところは理解していないので、このやり方が正しいかどうかを評価できず。ちゃんと勉強しなきゃ。

Ethereum の公開鍵でメッセージを暗号化

https://github.com/pubkey/eth-crypto を使うと素晴らしく簡単に実現できる。 // gist.github.com 出力結果 // gist.github.com これを使って Ethereum の Wallet で簡単な公開鍵認証をしたい。

Ethereum の生トランザクションを作って Etherscan から push

Ethereum の生のトランザクションを作って、 Etherscan から push したときのメモです。 Web3 でアドレス A から アドレス B に 0.001 Ether を送るトランザクションを作り、トランザクション自体は、Etherscan の pushTx からブロードキャストします。 node…

Web3.js を使用して Ether を送る方法

ウェブサイトに Web3.js を導入して、Ethereum アドレスA から アドレスB に Ether を送る方法のメモです。 環境 ブラウザ: MetaMask がインストールされているブラウザ MetaMask は file:// だと動かないので、Webサーバを用意Mac だと、任意のディレクトリ…