阿里云首页 区块链服务 BaaS

账户接口

本节主要介绍在操作账户时所涉及的一些接口参数。

创建账户

createAccount

创建账户,同步方式调用。

  • 函数原型

public MychainBase<ReplyTransactionReceipt> createAccount(CreateAccountRequest request)
  • 请求参数

参数

必选

类型

说明

request

true

CreateAccountRequest

创建账户的请求

  • 返回字段

返回字段

字段类型

说明

result

MychainBase< ReplyTransactionReceipt>

MychainBaseResult持有所有 response 类型。

  • 示例

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

MychainBaseResult 持有所有 response 类型。

  • 示例

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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

MychainBase<ReplyTransactionReceipt>

MychainBaseResult 持有所有 response类型。

  • 示例

// 准备参数 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

MychainBaseResult 持有所有 response 类型。

  • 示例

// 准备参数 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

通用参数