openchain-sdk-yxl-wx-request
Version:
openchain sd YxL wx request
151 lines (126 loc) • 3.78 kB
Markdown
# 账户管理
账户模块提供了完整的账户管理功能,包括账户创建、查询、权限设置和元数据管理等功能。
## 创建账户
### 基础账户创建
```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. 账户激活
- 确保有足够的初始化余额
- 记录激活操作的交易哈希
- 验证账户激活状态