以太坊助記詞PHP開發包簡介
阿新 • • 發佈:2019-06-18
以太坊助記詞PHP開發包用來為PHP以太坊應用增加助記詞和層級確定金鑰支援能力。下載地址:以太坊助記詞php開發包 。
1、開發包概述
以太坊助記詞PHP開發包主要包括以下特性:
- 生成符合BIP39標準的助記詞
- 將BIP39助記詞轉換為符合BIP32標準的層級確定金鑰
- 支援BIP44多幣種層級確定性錢包規範
- 相容imtoken、metamask等常見錢包的助記詞與金鑰/地址轉換
以太坊助記詞PHP開發包執行在**Php 7.1+**環境下,當前版本1.0.0,主要程式碼檔案清單參見:http://sc.hubwiz.com/codebag/eth-mnemonic-lib/
2、核心類使用說明
Mnemonic類是以太坊助記詞PHP開發包的入口類,用於生成符合BIP39標準的助記詞,或者將已有的助記詞轉化為對應的隨機熵值,以便用於私鑰的生成。
Mnemonic類提供以下靜態方法來進行例項化:
- new():建立新的Mnemonic物件
- fromWords():使用已有的助記詞例項化Mnemonic物件
- fromEntropy():使用已有的隨機熵例項化Mnemonic物件
Mnemonic例項提供以下方法獲取其表徵的隨機熵和助記詞:
- getEntropy():獲取隨機熵
- getWords():獲取助記詞
HDKey類用來建立支援BIP32/BIP44標準的層級確定金鑰,提供以下靜態方法例項化:
- fromMnemonic():使用助記詞建立層級確定主金鑰
- fromSeed():使用種子資料建立層級確定主金鑰
HDKey例項物件提供以下方法派生後代HDKey:
- deriveChild():派生指定序號的子金鑰
- derivePath():派生指定層級路徑的後代金鑰
3、示例程式碼:生成新的助記詞
下面的程式碼使用Mnemonic類的靜態方法new()
生成新的助記詞,然後輸出顯示所生成的助記詞及其對應的隨機熵:
use EthTool\Mnemonic; $mnemonic = Mnemonic::new(); /*建立新的助記詞*/ echo 'mnemonic => ' . $mnemonic->getWords() . PHP_EOL; /*顯示助記詞*/ echo 'entropy => ' . $mnemonic->getEntropy() . PHP_EOL; /*顯示對應的隨機熵*/
使用助記詞生成層級主金鑰並按照BIP44約定生成層級確定錢包的第一個以太坊金鑰及地址:
$master = HDKey::fromMnemonic($mnemonic->getWords()); /*利用助記詞生成BIP32層級主金鑰*/
$key0 = $master->derive("m/44'/60'/0'/0/0"); /*生成BIP44約定的第一個以太坊金鑰路徑對應的層級金鑰*/
echo 'private key => ' . $key0->privateKey . PHP_EOL; /*顯示層級金鑰對應的私鑰,16進位制字串*/
echo 'address => ' . $key0->address . PHP_EOL; /*顯示層級金鑰對應的以太坊地址*/
4、示例程式碼:匯入已有的助記詞
下面的程式碼使用Menmonic類的靜態方法fromWords()
匯入已有的助記詞,然後利用助記詞生成對應的層級金鑰及BIP44以太坊錢包地址:
use EthTool\HDKey;
//助記詞
$words = 'moral predict wash pledge hybrid box virtual length clap volcano shadow notice';
$master = HDKey::fromMnemonic($words); /*利用助記詞生成BIP32層級主金鑰*/
$key0 = $master->derive("m/44'/60'/0'/0/0"); /*生成BIP44約定的第一個以太坊金鑰路徑對應的層級金鑰*/
echo 'private key => ' . $key0->privateKey . PHP_EOL; /*顯示層級金鑰對應的私鑰,16進位制字串*/
echo 'address => ' . $key0->address . PHP_EOL; /*顯示層級金鑰對應的以太