From 5a378f4daac07b8b6bbbe1189ca5016f6612fcdf Mon Sep 17 00:00:00 2001 From: Luk Lu Date: Thu, 12 Dec 2019 15:14:47 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A0=94=E7=A9=B6=E4=BA=86=20BIP44=EF=BC=8C?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E6=B3=A8=E8=A7=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 6d6d192..b3a27bc 100644 --- a/index.js +++ b/index.js @@ -152,7 +152,18 @@ module.exports = { return null } , - secword2keypair: function(secword, option){ // option.coin 币种;option.passphase 密码,默认为空;option.path==='master' 生成 HD master key,不定义则默认为相应币种的第一对公私钥。 + secword2keypair: function(secword, option){ + // option.coin 币种; + // option.passphase 密码,默认为空; + // option.path==='master' 生成 HD master key,不定义则默认为相应币种的第一对公私钥。 + // path 规范为 m/Purpose'/CoinType'/Account'/Change/Index (https://learnblockchain.cn/2018/09/28/hdwallet/), 其中 + // Purpose===44 for BIP44, + // CoinType===0 for BTC, 60 for ETH. (https://github.com/satoshilabs/slips/blob/master/slip-0044.md) + // Change===常量 0 用于外部链,常量 1 用于内部链(也称为更改地址)。外部链用于在钱包外可见的地址(例如,用于接收付款)。内部链用于在钱包外部不可见的地址,用于返回交易变更。 (所以一般使用 0) + // Index 地址索引,从 0 开始,代表生成第几个地址,官方建议,每个 account 下的 address_index 不要超过 20。 + // 据测试, Purpose和CoinType都可以任意其他值,不必要如规范所示;' 引号可有可无,导致的密钥不一样; + // Account 最大为 0x7FFFFFFF, Change/Index 最大均为 0xFFFFFFFF(=4294967295) + // 但可以不断延伸下去:/xxx/xxx/xxx/xxx/... if (Secword.isValid(secword)){ option=option||{} option.coin=my.COIN_LIST.indexOf(option.coin)>=0?option.coin:my.COIN