- 地址:
address: string
// isEthAddress core: packages/keyring-controller/src/KeyringControllers
- KeyringObject // 展示
- accounts: string[]
- type:string;
- metadata:KeyringMetadata
- id:string; // Keyring ID
- name:string;// Keyring name
- EthKeyring
- HdKeyring
- #wallets: HDKey[] = []; //钱包
- getAccounts // 遍历钱包 从publicKey中生成地址
- AppKeyAddress 根据Dapp生成的address
- addAccounts 根据第四层的HDKey添加账号
- generateRandomMnemonic
生成随机数,生成mnemonic,生成root,生成第四层的HDKey
- #getWalletForAccount
根据账户(地址)找钱包(私钥)
- HDKey Hierarchical Deterministic Key
- opt 只有 xpri或者xpub
- scure-bip3/index.ts/ HDKey
- privateKey
- publicKey
- privateExtendedKey
- 0x00(首字节标记) + 32 字节私钥数据(共 33 字节)
- publicExtendedKey
- 0x02 或 0x03 + 32 字节 x 坐标
- 当 y 坐标为偶数时,首字节为0x02;
- 当 y 坐标为奇数时,首字节为0x03。
- depth
- index
- chainCode
- fromMasterSeed // 种子生成master HDKey
- fromExtendedKey // 从扩展秘钥生成 HDKey
- derive
路径的 “相对性”:BIP-32 规范中,派生路径既可以是 “绝对路径”(从根密钥开始,如 m/44’/0’/0),
也可以是 “相对路径”(从任意密钥开始,如当前是子密钥时,m/1 表示 “以当前密钥为起点派生第 1 个子密钥”)。
代码中路径以 m 开头,仅表示 “以当前实例为起点”,而非 “必须是根密钥”。例如:
若当前是根密钥(depth: 0),m/44’ 表示从根派生第 44 号强化子密钥(depth: 1)。
若当前是 depth: 1 的子密钥,m/0 表示从该子密钥再派生第 0 号子密钥(depth: 2)
- deriveChild
- sign(返回:r + s)
- verify
- Keyring
- type
- getAccounts
- getAppKeyAddress
- signTransaction
- signMessage
- signEip7702Authorization
- signPersonalMessage
- signTypedData
- decryptMessage