account xxx not found

问题描述

  • 错误描述:account xxx not found (链账户地址找不到)

  • 该问题一般常见于 SDK 创建离线链账户后,用该链账户发起交易提示 account xxx not found 。

创建离线账户:
        KeyManager km=KeyManagerFactory.createDefault();
        String mnemonic=km.add();
        System.out.println("助记词:"+mnemonic);
        System.out.println("地址:"+km.getCurrentKeyInfo().getAddress());

报错示例

io.grpc.StatusRuntimeException: NOT_FOUND: account xxx  not found

解决方案:

1、对该链账户进行充值;

2、对该链账户进行代付授权;

3、满足以上任意一点,即可使用该链账户作为交易发起者发起交易。

  • 正确操作流程举例:
    1. 创建一个测试网的链账户地址。

    2. 申请 issueDenom 授权和能量值充值。

    3. 使用该测试网的链账户地址进行交易。

产生错误场景

  1. 使用 opb-sdk 离线创建链账户后,直接使用该链账户进行操作。如:
    地址1 发行 nft1 到地址2,地址2 转让 nft1 给地址3 时,提示NOT_FOUND: account 地址2 not found。

    原因:该问题产生可能是未进行代付授权,地址2 转让 地址3 需要支付 gas 可以用 地址1 给 地址2 进行代付授权,这样 地址2 转让的时候可以指定 地址1 进行支付。