動作確認環境
- Xcode 9.3
- Geth 1.8.6
Geth フレームワークの導入
- Geth は Ethereum の go による実装です。
- 今回は iOS 向けにビルドされた Geth を使用します。
- Geth フレームワークの導入には、Cocoapods を使用します。
- まだ、Podfile がない場合は、
$ pod init
で Podfile を作成します。 - Podfile には次の行を追記します。
- バージョンは適宜適切なものを使用してください。
Podfile
pod 'Geth', '1.8.6'
- Podfile を更新したら、
$ pod install
で Geth フレームワークをインストールします。
Geth フレームワークの import
- 上記の手順が完了すると、
import Geth
で Geth フレームワークをインポートできるようになります。
Ethereum アカウントの作成とアドレスの取得
- 次のコードで、Ethereum アカウントの作成とアドレスの取得ができます。
// keystore ファイルを保存するディレクトリのパスを取得
let dataDir = NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask,
true)[0]
let keyStorePath = dataDir + "/keystore"
print("keyStorePath: \(keyStorePath)")
// keystore を管理してくれるやつのインスタンスを取得
let keyStoreManager = GethNewKeyStore(keyStorePath, GethLightScryptN, GethLightScryptP)
// パスワードを指定してアカウントを作成
let account = try! keyStoreManager?.newAccount("password")
// 16進数表記のアカウントのアドレスを取得
let address = account?.getAddress().getHex()
print("address: \(address!)")
// keystore ファイルの URL (パス) を表示
let url = account?.getURL()
print("url: \(url!)")
参考
- http://blog.playground.io/entry/2018/04/30/152006
- https://scrapbox.io/playground/iOS_%E3%81%A7_Ethereum_%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90
- https://github.com/ethereum/go-ethereum/wiki/Mobile:-Introduction
- https://github.com/ethereum/go-ethereum/wiki/Mobile:-Account-management
sushiether
- Ethereum 関連の情報は https://scrapbox.io/sushiether/ に集約することにしました。
- この記事の内容に変更・更新がある場合は、iOS で Ethereum のアカウント(アドレス)を作成 - sushiether を更新します。