这是因为在Hedera网络中,一个账户可以有多个公钥,每个公钥都可以进行交易。如果使用不同的公钥查询交易记录,将会返回不同的结果。要解决这个问题,可以通过查询指定公钥的交易历史记录来获得正确的结果。下面提供一个Java代码示例:
import com.hedera.hashgraph.sdk.*;
import io.github.cdimascio.dotenv.Dotenv;
public class GetAccountTransactions {
public static void main(String[] args) {
// Load the Hedera network configuration from the .env file
Dotenv dotenv = Dotenv.load();
// Grab the account ID and public key from the .env file
AccountId accountId = AccountId.fromString(dotenv.get("ACCOUNT_ID"));
Ed25519PublicKey publicKey = Ed25519PublicKey.fromString(dotenv.get("PUBLIC_KEY"));
// Create the Hedera client and get the account transactions using the specified public key
Client client = Client.forTestnet();
AccountRecordsQuery accountRecordsQuery = new AccountRecordsQuery().setAccountId(accountId).setPublicKey(publicKey);
try {
AccountRecordsQueryResponse response = accountRecordsQuery.execute(client);
// Iterate over the transaction records and do something with them
for (TransactionRecord record : response.getRecords()) {
// Do something with the transaction record
}
} catch (HederaStatusException e) {
System.out.println("Error getting account transactions: " + e.getMessage());
} finally {
client.close();
}
}
}