Instantly share code, notes, and snippets.

View gist:35b8471fce2d7a0e2d2f646e8b4aba43
network_id network_name chain_id note
1 Mainnet 1 Ethereum 本番環境ネットワーク
3 Ropsten 3 Ethereum テストネットワーク (PoW)
4 Rinkeby 4 Ethereum テストネットワーク (PoA)
42 Kovan 42 Ethereum テストネットワーク (PoA)
1 Geth private chain (default) 1337 Geth の初期値
1 Ethereum Classic Mainnet 61 Ethereum Classic 本番ネットワーク
2 Morden 62 Ethereum Classic テストネットワーク
View eth_account_creation.swift
// Get a path to save keystore files
let dataDir = NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask,
true)[0]
let keyStorePath = dataDir + "/keystore"
print("keyStorePath: \(keyStorePath)")
// Get an instance which manages keystore files
let keyStoreManager = GethNewKeyStore(keyStorePath, GethLightScryptN, GethLightScryptP)
View example.swift
import Geth
// keystore ファイルを保存するディレクトリのパスを取得
let dataDir = NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask,
true)[0]
let keyStorePath = dataDir + "/keystore"
print("keyStorePath: \(keyStorePath)")
View Podfile
pod 'Geth', '1.8.6' 
View tip_eth.html
<a href="#" id="eth_tip_button" onclick="onEthTipButtonClick();">
TIP $ETH
</a>
<script type="text/javascript">
// set your Ethereum wallet address.
var ETH_ADDRESS = '0x96e530a7a5fdAf3b041BdB8c3ABF30EeD1621eA9';
// set ETH amount that you want to receive
var ETH_VALUE = '0.01';
View tip_eth2.html
<input id="eth_tip_value" type="number" value="0.01" step="0.01" min="0">
<a href="#" id="eth_tip_button" onclick="onEthTipButtonClick();">
ETH を送ってこのサイトを応援!
</a>
<script type="text/javascript">
// 必ず自分の Ethereum ウォレットのアドレスを指定してください。
var ETH_ADDRESS = '0x96e530a7a5fdAf3b041BdB8c3ABF30EeD1621eA9';
// 投げ銭または寄付で受け入れたい Ether のデフォルト値です(ETH 送信時に変更可能です)
var ETH_VALUE = '0.01';
View tip_eth.html
<a href="#" id="eth_tip_button" onclick="onEthTipButtonClick();">
ETH を送ってこのサイトを応援!
</a>
<script type="text/javascript">
// 必ず自分の Ethereum ウォレットのアドレスを指定してください。
var ETH_ADDRESS = '0x96e530a7a5fdAf3b041BdB8c3ABF30EeD1621eA9';
// 投げ銭・寄付として受け入れたい Ether の量です。
var ETH_VALUE = '0.01';
View batchOverflow.sol
function batchTransfer(address[] _receivers, uint256 _value) public whenNotPaused returns (bool) {
uint cnt = _receivers.length;
// _value に大きな値を渡せば、オーバーフローさせることができる
// ここで SafeMath を使っていないのが問題(桁溢れの対処ができていない)
uint256 amount = uint256(cnt) * _value;
// cnt が 1以上 かつ 20以下 であれば通る
require(cnt > 0 && cnt <= 20);
View gist:a7575be15e95b34afaccaea3bc33b4b3
truffle migrate --network ropsten --reset --dry-run
truffle migrate --network ropsten --reset
View gist:3e15122cbd79b5e8dc3bc3518b9be0ec
export MNEMONIC="Ethereum Walletのニーモニック"
export INFURA_ACCESS_TOKEN="infura.ioのアクセストークン"