【发布时间】:2019-09-10 08:45:17
【问题描述】:
我正在使用 Polkadot-js api,想知道是否有一个 API 可以从给定的种子生成分层确定性钱包地址?
我看到在 Substrate 的 subkey documentation 中提到了软和硬派生路径,但不知道这是否已移植到 Polkadot-js 或如何调用它。
【问题讨论】:
标签: substrate polkadot-js
我正在使用 Polkadot-js api,想知道是否有一个 API 可以从给定的种子生成分层确定性钱包地址?
我看到在 Substrate 的 subkey documentation 中提到了软和硬派生路径,但不知道这是否已移植到 Polkadot-js 或如何调用它。
【问题讨论】:
标签: substrate polkadot-js
Polkadot-js 支持 SURI,使用 createFromUri 或 addFromUri 创建或添加新帐户到您的密钥环。
你可以import keyring from '@polkadot/ui-keyring'然后使用它:
keyring.createFromUri(`${phrase.trim()}${derivePath}`, {}, pairType)
编辑:派生路径可以是/[soft]、//[hard] 的任意组合,可以重复且不必按此顺序,除此之外,您还可以有一个额外的///[password]。
因此您可以将参数作为参数传递给createFromUri 函数,例如:[mnemonic phrase]//Kusama//DAO/1 或[mnemonic phrase]//MyMainFunds/0///ThisIsMyPassword。
【讨论】:
m/44'/0'/0'/0/0,但这“可能”不会像那样工作。正确的语法是什么?
m//44//0//0/0/0。此外,在使用软派生路径的底层中,您可以与根公共地址共享此派生路径,也允许第三方代表您生成有效的付款地址,而无需您请求。但是,除非种子已受密码保护(通过将 ///yourpassword 附加到种子,否则您不应共享根地址。这样您将获得无法单独从种子中检索的根地址,但也需要密码。