fix: pathIndex 为0时不该被忽略

This commit is contained in:
陆柯 2023-01-03 18:34:41 +08:00
parent c0e237984a
commit c5b0d40150

View File

@ -481,7 +481,7 @@ class TicCrypto {
// 指定了path 例如 "m/0/2147483647'/1" 则用 path 例如 不存在 pathSeed 时获取的是根路径 "m/44'/0'/0'/0/0" 或 "m/44'/60'/0'/0/0" // 指定了path 例如 "m/0/2147483647'/1" 则用 path 例如 不存在 pathSeed 时获取的是根路径 "m/44'/0'/0'/0/0" 或 "m/44'/60'/0'/0/0"
key = hdmaster.derive(path) key = hdmaster.derive(path)
} else { } else {
// 指定了 pathSeed 则调用 root_to_path() 来获取路径。如果都没有 path/pathSeed/pathIndex就返回标准默认路径和 ethers.Wallet.fromMnemonic(...) 结果保持一致 // 调用 root_to_path() 来获取路径。如果 path/pathSeed/pathIndex 全都不存在,就返回标准默认路径,和 ethers.Wallet.fromMnemonic(...) 结果保持一致
path = this.root_to_path({ pathSeed, pathIndex, coin }) path = this.root_to_path({ pathSeed, pathIndex, coin })
key = hdmaster.derive(path) key = hdmaster.derive(path)
} }
@ -521,8 +521,9 @@ class TicCrypto {
// 本方法也可用来生成默认的第0个路径例如 "m/44'/0'/0'/0/0" // 本方法也可用来生成默认的第0个路径例如 "m/44'/0'/0'/0/0"
path = "0'/0/0" path = "0'/0/0"
} }
// 注意,如果 pathIndex 为 undefinded得出的 path 是不同的! // 注意,如果 pathIndex 为 undefinded 或者非数字,得出的 path 是不同的!
if (parseInt(pathIndex) && 0 <= pathIndex && pathIndex <= 0x7fffffff) { pathIndex = parseInt(pathIndex)
if (0 <= pathIndex && pathIndex <= 0x7fffffff) {
path += `/${pathIndex}` path += `/${pathIndex}`
} }
coin = coin?.toUpperCase?.() coin = coin?.toUpperCase?.()