playground

The world is a playground.

Ether の単位一覧を取得

Web3.js 1.0 を使用しています var Web3 = require('web3'); console.log(Web3.utils.unitMap);

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…

Solidity 0.4.22 以上でのコンストラクタの書き方

Solidity 0.4.21 までのコンストラクタの書き方 Solidity 0.4.21 までは、コントラクトと同じ名前の関数がコンストラクタでした。 ただ、この仕様だと、コントラクト名を変更したときに、コンストラクタだけ変更されずに、意図した初期化処理が行われない可…

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

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