UNPKG

openchain-sdk-yxl-wx-request

Version:

openchain sd YxL wx request

151 lines (126 loc) 3.78 kB
# 账户管理 账户模块提供了完整的账户管理功能,包括账户创建、查询、权限设置和元数据管理等功能。 ## 创建账户 ### 基础账户创建 ```javascript // 创建新账户 const newAccount = sdk.account.create(); console.log('地址:', newAccount.address); console.log('公钥:', newAccount.publicKey); console.log('私钥:', newAccount.privateKey); // 创建带密码的账户 const encryptedAccount = sdk.account.create({ password: 'your-password' // 可选,用于加密私钥 }); ``` ### 激活账户 ```javascript // 激活新账户 const activateOperation = { sourceAddress: sourceAddress, // 支付激活费用的账户地址 destAddress: newAccount.address, // 要激活的新账户地址 initBalance: '1000000', // 初始化余额 metadata: 'activate account' // 可选,激活说明 }; const response = yield sdk.operation.account.activate(activateOperation); ``` ## 查询账户信息 ### 基本信息查询 ```javascript // 查询账户基本信息 const accountInfo = yield sdk.account.getInfo(address); // 返回结果示例 { errorCode: 0, result: { address: "did:bid:efqkw1dKHHuWtupG6k1tCu4PNfoRs7us", balance: "1000000", nonce: "1", priv: { masterWeight: "1", thresholds: { txThreshold: "1" } } } } // 查询账户余额 const accountBalance = yield sdk.account.getBalance(address); ``` ### 元数据查询 ```javascript // 查询账户元数据 const accountMetadata = yield sdk.account.getMetadata({ address: address, key: 'metadata-key' }); // 查询账户所有元数据 const allMetadata = yield sdk.account.getMetadatas(address); ``` ## 设置账户权限 ### 权限结构说明 账户权限包括以下几个主要部分: - masterWeight: 账户自身权重 - signers: 其他签名者列表及其权重 - txThreshold: 交易门限 - typeThresholds: 不同操作类型的门限 ### 设置权限示例 ```javascript // 设置账户权限 const setPrivilegeOperation = { sourceAddress: address, masterWeight: '1', // 账户自身权重 signers: [{ // 其他签名者 address: 'signer-address', weight: 1 }], txThreshold: '1', // 交易门限 typeThresholds: [{ // 不同操作类型的门限 type: 1, threshold: '1' }] }; const response = yield sdk.operation.account.setPrivilege(setPrivilegeOperation); ``` ## 管理账户元数据 ### 设置元数据 ```javascript // 设置账户元数据 const setMetadataOperation = { sourceAddress: address, key: 'myKey', // 元数据键名 value: 'myValue', // 元数据值 version: '1', // 可选,元数据版本号 deleteFlag: false, // 可选,是否删除该元数据 metadata: 'set metadata' // 可选,操作说明 }; const response = yield sdk.operation.account.setMetadata(setMetadataOperation); ``` ### 删除元数据 ```javascript // 删除账户元数据 const deleteMetadataOperation = { sourceAddress: address, key: 'myKey', version: '1', // 当前版本号 deleteFlag: true // 设置为true表示删除 }; const response = yield sdk.operation.account.setMetadata(deleteMetadataOperation); ``` ## 最佳实践 1. 私钥安全 - 使用加密方式存储私钥 - 避免在代码中硬编码私钥 - 定期更换私钥 2. 权限管理 - 合理设置权限阈值 - 使用多重签名增加安全性 - 定期检查和更新权限设置 3. 元数据使用 - 使用规范的键名命名方式 - 及时清理无用的元数据 - 保持元数据内容简洁 4. 账户激活 - 确保有足够的初始化余额 - 记录激活操作的交易哈希 - 验证账户激活状态