playground

The world is a playground.

JavaScript

Web3.js でノードに接続している peer の数を取得

web3.eth.net.getPeerCount() .then(console.log);

Web3.js 1.0 で Infura を使用する

Web3.js 1.0 では、HTTP provider が deprecated - 非推奨 - となっており、Websocket provider を使用する必要があります。 Infura の HTTP provide URL は https://mainnet.infura.io ですが、Websocket では wss://mainnet.infura.io/ws を使用します。 …

Ethereum スマートコントラクトのエンコードされた関数シグネチャを得る

Ethereum スマートコントラクトのエンコードされた関数シグネチャを得る方法のメモです。 エンコードされた関数シグネチャとは スマートコントラクトの関数を call するコードをローレベルで書いたり、マルチシグウォレットからスマートコントラクトの関数を…

Web3.js で ERC20 トークンの残高を取得

この記事のサンプルで使用している Web3.js のバージョンは 0.20.6 です。 Contract を扱うための ABI を用意 ABI は、スマートコントラクトがどのような関数や状態変数を持っているかといった情報をもったインタフェースです。 Web3.js のプログラムからス…

Ethereum のアドレスが適切かどうかチェックする

Ethereum のアドレスが適切(valid)なアドレスかどうかをチェックする方法です。 Web3 1.0.0 を使用します。 サンプルコード const isValidAddress = Web3.utils.isAddress(address); デモ https://piyolab.github.io/playground/ethereum/isValidEthereumA…

MetaMask のアカウント(アドレス)切り替えを検知

MetaMask は複数アカウント(アドレス)を管理できる web3 に MetaMask が inject しているとき、ユーザがアカウントを切り替えたことを検知したいことがある いろいろ方法しらべてみたけど、次のような原始的な方法を使う感じになりそう。 サンプルコード w…

Ethereum の適切な Gas Price を取得する

Web3.js の eth.getGasPrice メソッドを使用することで、過去数ブロックの GasPrice の中央値を取得することができる ドキュメント 以下の例は web3 version 0.20.x サンプルコード var web3 = new Web3(new Web3.providers.HttpProvider('https://mainnet.i…

JavaScript で曜日を取得

var week = 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'; var dow = week.split(',')[new Date().getDay()];

Ethereum のトランザクションハッシュからトランザクション詳細を取得

Install Web3 (version 1.0) $ npm install web3 サンプルコード const Web3 = require('web3'); console.log(Web3.version); // => 1.0.0-beta.34 var web3 = new Web3('wss://mainnet.infura.io/ws'); const transactionHash = '0x6d365aa4dda50738ae9b63d…

Ripple (XRP) のアドレスを作成

ripple-lib をインストール $ npm install ripple-lib サンプルコード オフラインでも動作します。 const RippleAPI = require('ripple-lib').RippleAPI; const api = new RippleAPI(); const address = api.generateAddress(); console.log('address', addr…

Ripple (XRP) の残高を取得 (JavaScript)

Ripple (XRP) の残高を取得する方法のメモです。 Ripple 公式のライブラリを使用します。 Ripple 公式ライブラリ ripple-lib: https://github.com/ripple/ripple-lib ripple-lib のインストール 公式では、yarn を推奨しているけど、以下は npm でインストー…

ローカル環境で 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…