本节主要介绍在操作账户时所涉及的一些接口参数。
创建账户
createAccount
创建账户,同步方式调用。
函数原型
public MychainBase<ReplyTransactionReceipt> createAccount(CreateAccountRequest request)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | CreateAccountRequest  | 创建账户的请求  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | 
  | 
  | 
示例
MychainBase<ReplyTransactionReceipt> result = sdk.getAccountService().createAccount(
    CreateAccountRequest.build(
            adminAccount.getIdentity(), testAccount1, params
    )
);asyncCreateAccount
创建账户,异步方式调用。
函数原型
public MychainBase<Response> asyncCreateAccount(CreateAccountRequest request, ICallback callback)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | CreateAccountRequest  | 创建账户的请求  | 
callback  | true  | ICallback  | 回调函数  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBaseResult  | 
  | 
示例
MychainBase<Response> result = sdk.getAccountService().asyncCreateAccount(
            CreateAccountRequest.build(adminAccount.getIdentity(), testAccount3, params),
            new ICallback() {
                @Override
                public void onResponse(String txHash, Response response) {
                    System.out.println("async create account, txHash:" + txHash + ", result: " + response.getErrorCode());
                }
            });CreateAccountRequest
创建账户所需要的参数:
参数  | 类型  | 说明  | 
|---|---|---|
account  | Account  | 待创建者账户  | 
fromAccountId  | Identity  | 创建者账户 ID  | 
mychainParams  | MychainParams  | 接口通用扩展参数  | 
转账
transferBalance
交易转账,同步方式调用。
函数原型
public MychainBase<ReplyTransactionReceipt> transferBalance(TransferBalanceRequest request)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | TransferBalanceRequest  | 交易转账的请求  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBaseResult  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
//转移余额
MychainBase<ReplyTransactionReceipt> result = sdk.getAccountService().transferBalance(
    TransferBalanceRequest.build(testAccount1.getIdentity(),
        testAccount2.getIdentity(),
        new BigInteger(transferAmount+""),
        params
    )
);asyncTransferBalance
交易转账,异步方式调用。
函数原型
public MychainBase<Response> asyncTransferBalance(TransferBalanceRequest request, ICallback callback)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | TransferBalanceRequest  | 交易转账的请求  | 
callback  | true  | ICallback  | 回调函数  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBaseResult  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 异步传输余额
MychainBase<Response> result = sdk.getAccountService().asyncTransferBalance(
    TransferBalanceRequest.build(testAccount2.getIdentity(),
        testAccount1.getIdentity(),
        new BigInteger(transferAmount+""),
        params),
    (txHash, response) -> {
        System.out.println("async transfer balance, txHash:"+txHash+", result: "+ response.getErrorCode());
    }
);TransferBalanceRequest
转账所需要的参数:
参数  | 类型  | 说明  | 
|---|---|---|
fromAcctId  | Identity  | 转出账户  | 
toAcctId  | Identity  | 转入账户  | 
amount  | BigInteger  | 转账金额  | 
mychainParams  | MychainParams  | 通用参数  | 
设置恢复公钥
setRecoverKey
设置恢复公钥,同步方式调用。
函数原型
public MychainBase<ReplyTransactionReceipt> setRecoverKey(SetRecoverKeyRequest request)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | SetRecoverKeyRequest  | 恢复公钥的请求  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBaseResult  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
MychainBase<ReplyTransactionReceipt> result = sdk.getAccountService().setRecoverKey(
            SetRecoverKeyRequest.build(testAccount1.getIdentity(), newRecoverKey, params));asyncSetRecoverKey
设置恢复公钥,异步方式调用。
函数原型
public MychainBase<Response> asyncSetRecoverKey(SetRecoverKeyRequest request, ICallback callback)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | SetRecoverKeyRequest  | 恢复公钥的请求  | 
callback  | true  | ICallback  | 回调函数  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
MychainBase<Response> result = sdk.getAccountService().asyncSetRecoverKey(
    SetRecoverKeyRequest.build(testAccount1.getIdentity(), newRecoverKey, params),
    new ICallback() {
        @Override
        public void onResponse(String txHash, Response response) {
            System.out.println("async set recover key, txHash:" + txHash + ", result: "
                               + response.getErrorCode());
        }
    });SetRecoverKeyRequest
重置恢复公钥所需要的参数:
参数  | 类型  | 说明  | 
|---|---|---|
acctId  | Identity  | 要设置的账户 ID  | 
recoverPubKey  | String  | 新的恢复公钥  | 
mychainParams  | MychainParams  | 通用参数  | 
预重置公钥
preResetPubKey
预重置公钥,同步方式调用。
函数原型
public MychainBase<ReplyTransactionReceipt> preResetPubKey(PreResetPubKeyRequest request)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | PreResetPubKeyRequest  | 预重置公钥的请求  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 预重置
MychainBase<ReplyTransactionReceipt> result = sdk.getAccountService().preResetPubKey(PreResetPubKeyRequest.build( acctId, params));asyncPreResetPubKey
预重置公钥,异步方式调用。
函数原型
public MychainBase<Response> asyncPreResetPubKey(PreResetPubKeyRequest request, ICallback callback)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | PreResetPubKeyRequest  | 预重置公钥的请求  | 
callback  | true  | ICallback  | 回调函数  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
MychainBase<Response> response = sdk.getAccountService().asyncPreResetPubKey(
    PreResetPubKeyRequest.build(accId, params), new ICallback() {
        @Override
        public void onResponse(String txHash, Response response) {
        }
    });PreResetPubKeyRequest
预重置公钥所需要的参数:
参数  | 类型  | 说明  | 
|---|---|---|
acctId  | Identity  | 要预重置的账户 ID  | 
mychainParams  | MychainParams  | 通用参数  | 
重置公钥
resetPubKey
重置公钥,同步方式调用。
函数原型
public MychainBase<ReplyTransactionReceipt> resetPubKey(ResetPubKeyRequest request)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | ResetPubKeyTransaction  | 重置公钥的请求  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 重置公钥
MychainBase<Response> response = sdk.getAccountService().resetPubKey(
    ResetPubKeyRequest.build(testAccount1.getIdentity(), authMap, params));asyncResetPubKey
重置公钥,异步方式调用。
函数原型
 public MychainBase<Response> asyncResetPubKey(ResetPubKeyRequest request,ICallback callback)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | ResetPubKeyRequest  | 重置公钥的请求  | 
callback  | true  | ICallback  | 回调函数  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 重置公钥
MychainBase<Response> response = sdk.getAccountService().asyncResetPubKey(
    ResetPubKeyRequest.build(testAccount1.getIdentity(), beforeAuthMap, params),
    new ICallback() {
        @Override
        public void onResponse(String txHash, Response response) {
            System.out.println("async reset pubkey, txHash:" + txHash + ", result: " + response.getErrorCode());
        }
    });ResetPubKeyRequest
重置公钥所需要的参数:
参数  | 类型  | 说明  | 
|---|---|---|
acctId  | Identity  | 要重置的账户 ID  | 
mychainParams  | MychainParams  | 通用参数  | 
更新权重
updateAuthMap
更新权重,同步方式调用。
函数原型
public MychainBase<ReplyTransactionReceipt> updateAuthMap(UpdateAuthMapRequest request)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | UpdateAuthMapRequest  | 更新权重的请求  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 更新认证图
MychainBase<ReplyTransactionReceipt> response = sdk.getAccountService().updateAuthMap(
    UpdateAuthMapRequest.build(testAccount1.getIdentity(), beforeAuthMap, params));asyncUpdateAuthMap
更新权重,异步方式调用。
函数原型
 public MychainBase<Response> asyncUpdateAuthMap(UpdateAuthMapRequest request,ICallback callback)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | UpdateAuthMapRequest  | 更新权重的请求  | 
callback  | true  | ICallback  | 回调函数  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
AuthMap beforeAuthMap = sdk.getQueryService()
 .queryAccount(testAccount1.getIdentity().hexStrValue()).getData().getAccount().getAuthMap();
for (Map.Entry<String, Integer> entry : beforeAuthMap.getAuthMap().entrySet()) {
    beforeAuthMap.updateAuth(entry.getKey(), entry.getValue() + 10);
}
MychainBase<Response> result = sdk.getAccountService().asyncUpdateAuthMap(
    UpdateAuthMapRequest.build(testAccount1.getIdentity(), beforeAuthMap, params),
    new ICallback() {
        @Override
        public void onResponse(String txHash, Response response) {
            System.out.println("async update auth map, txHash:" + txHash + ", result: "  + response.getErrorCode());
        }
    });UpdateAuthMapRequest
更新权重所需要的参数:
参数  | 类型  | 说明  | 
|---|---|---|
acctId  | Identity  | 要设置的账户 ID  | 
authMap  | AuthMap  | 新的权重  | 
mychainParams  | MychainParams  | 通用参数  | 
冻结账户
freezeAccount
冻结账户,同步方式调用。
函数原型
public MychainBase<ReplyTransactionReceipt> freezeAccount(FreezeAccountRequest request)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | FreezeAccountRequest  | 冻结账户的请求  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 冻结账户
MychainBase<ReplyTransactionReceipt> result = sdk.getAccountService().freezeAccount(
    FreezeAccountRequest.build(adminAccount.getIdentity(), testAccount1.getIdentity(),
        params))asyncFreezeAccount
冻结账户,异步方式调用。
函数原型
public MychainBase<Response> asyncFreezeAccount(FreezeAccountRequest request,ICallback callback)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | FreezeAccountRequest  | 冻结账户的请求  | 
callback  | true  | ICallback  | 回调函数  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 异步冻结账户
MychainBase<Response> result = sdk.getAccountService().asyncFreezeAccount(
    FreezeAccountRequest.build(adminAccount.getIdentity(), testAccount1.getIdentity(),
        params), new ICallback() {
        @Override
        public void onResponse(String txHash, Response response) {
            assertNotNull(txHash);
            assertTrue(response.getErrorCode().isSuccess());
        }
    });FreezeAccountRequest
冻结账户请求所需要的参数:
参数  | 类型  | 说明  | 
|---|---|---|
from  | Identity  | 冻结账户的操作者 ID  | 
to  | Identity  | 待冻结的账户 ID  | 
mychainParams  | MychainParams  | 通用参数  | 
解冻账户
unFreezeAccount
解除冻结账户,同步方式调用。
函数原型
public MychainBase<ReplyTransactionReceipt> unFreezeAccount(UnfreezeAccountRequest request)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | UnfreezeAccountRequest  | 解除冻结账户的请求  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | 
  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 解除冻结账户
MychainBase<ReplyTransactionReceipt> result2 = sdk.getAccountService()
    .unFreezeAccount(
        UnfreezeAccountRequest.build(adminAccount.getIdentity(),
            testAccount1.getIdentity(), params));asyncUnFreezeAccount
解除冻结账户,异步方式调用。
函数原型
public MychainBase<Response> asyncUnFreezeAccount(UnfreezeAccountRequest request,ICallback callback)请求参数
参数  | 必选  | 类型  | 说明  | 
|---|---|---|---|
request  | true  | UnfreezeAccountRequest  | 解除冻结账户的请求  | 
callback  | true  | ICallback  | 回调函数  | 
返回字段
返回字段  | 字段类型  | 说明  | 
|---|---|---|
result  | MychainBase  | 
  | 
示例
// 准备参数 params
MychainParams params = new MychainParams.Builder()
  .gas(BigInteger.valueOf(40000))
  .privateKeyList(adminPrivateKeys)
  .build();
// 异步解除冻结账户
MychainBase<Response> result2 = sdk.getAccountService().asyncUnFreezeAccount(
    UnfreezeAccountRequest.build(adminAccount.getIdentity(), testAccount1.getIdentity(),
        params), new ICallback() {
        @Override
        public void onResponse(String txHash, Response response) {
            assertNotNull(txHash);
            assertTrue(response.getErrorCode().isSuccess());
        }
    });UnfreezeAccountRequest
解冻账户请求所需要的参数:
参数  | 类型  | 说明  | 
|---|---|---|
from  | Identity  | 解冻账户的操作者 ID  | 
to  | Identity  | 待解冻的账户 ID  | 
mychainParams  | MychainParams  | 通用参数  |