Search in sources :

Example 6 with FileContentsQuery

use of com.hedera.hashgraph.sdk.FileContentsQuery in project hedera-sdk-java by hashgraph.

the class FileContentsIntegrationTest method getCostInsufficientTxFeeQueryFileContents.

@Test
@DisplayName("Insufficient tx fee error.")
void getCostInsufficientTxFeeQueryFileContents() throws Exception {
    var testEnv = new IntegrationTestEnv(1);
    var response = new FileCreateTransaction().setKeys(testEnv.operatorKey).setContents("[e2e::FileCreateTransaction]").execute(testEnv.client);
    var fileId = Objects.requireNonNull(response.getReceipt(testEnv.client).fileId);
    var contentsQuery = new FileContentsQuery().setFileId(fileId).setMaxQueryPayment(new Hbar(100));
    assertThatExceptionOfType(PrecheckStatusException.class).isThrownBy(() -> {
        contentsQuery.setQueryPayment(Hbar.fromTinybars(1)).execute(testEnv.client);
    }).satisfies(error -> assertThat(error.status.toString()).isEqualTo("INSUFFICIENT_TX_FEE"));
    new FileDeleteTransaction().setFileId(fileId).execute(testEnv.client).getReceipt(testEnv.client);
    testEnv.close();
}
Also used : FileContentsQuery(com.hedera.hashgraph.sdk.FileContentsQuery) FileCreateTransaction(com.hedera.hashgraph.sdk.FileCreateTransaction) FileDeleteTransaction(com.hedera.hashgraph.sdk.FileDeleteTransaction) Hbar(com.hedera.hashgraph.sdk.Hbar) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 7 with FileContentsQuery

use of com.hedera.hashgraph.sdk.FileContentsQuery in project hedera-mirror-node by hashgraph.

the class SDKClient method getAddressBookFromNetwork.

private NodeAddressBook getAddressBookFromNetwork(Client client) throws TimeoutException, PrecheckStatusException, InvalidProtocolBufferException {
    ByteString contents = new FileContentsQuery().setFileId(ADDRESS_BOOK_ID).setMaxQueryPayment(new Hbar(1)).execute(client);
    log.debug("Retrieved address book with content size: {} b", contents.size());
    return NodeAddressBook.parseFrom(contents.toByteArray());
}
Also used : FileContentsQuery(com.hedera.hashgraph.sdk.FileContentsQuery) ByteString(com.google.protobuf.ByteString) Hbar(com.hedera.hashgraph.sdk.Hbar)

Example 8 with FileContentsQuery

use of com.hedera.hashgraph.sdk.FileContentsQuery in project hedera-sdk-java by hashgraph.

the class FileAppendIntegrationTest method canAppendLargeContentsToFile.

@Test
@DisplayName("Can append large contents to file")
void canAppendLargeContentsToFile() throws Exception {
    // There are potential bugs in FileAppendTransaction which require more than one node to trigger.
    var testEnv = new IntegrationTestEnv(2);
    var response = new FileCreateTransaction().setKeys(testEnv.operatorKey).setContents("[e2e::FileCreateTransaction]").execute(testEnv.client);
    var fileId = Objects.requireNonNull(response.getReceipt(testEnv.client).fileId);
    Thread.sleep(5000);
    @Var var info = new FileInfoQuery().setFileId(fileId).execute(testEnv.client);
    assertThat(info.fileId).isEqualTo(fileId);
    assertThat(info.size).isEqualTo(28);
    assertThat(info.isDeleted).isFalse();
    assertThat(info.keys).isNotNull();
    assertThat(info.keys.getThreshold()).isNull();
    assertThat(info.keys).isEqualTo(KeyList.of(testEnv.operatorKey));
    new FileAppendTransaction().setFileId(fileId).setContents(Contents.BIG_CONTENTS).execute(testEnv.client).getReceipt(testEnv.client);
    var contents = new FileContentsQuery().setFileId(fileId).execute(testEnv.client);
    assertThat(contents.toStringUtf8()).isEqualTo("[e2e::FileCreateTransaction]" + Contents.BIG_CONTENTS);
    info = new FileInfoQuery().setFileId(fileId).execute(testEnv.client);
    assertThat(info.fileId).isEqualTo(fileId);
    assertThat(info.size).isEqualTo(13522);
    assertThat(info.isDeleted).isFalse();
    assertThat(info.keys).isNotNull();
    assertThat(info.keys.getThreshold()).isNull();
    assertThat(info.keys).isEqualTo(KeyList.of(testEnv.operatorKey));
    new FileDeleteTransaction().setFileId(fileId).execute(testEnv.client).getReceipt(testEnv.client);
    testEnv.close();
}
Also used : FileContentsQuery(com.hedera.hashgraph.sdk.FileContentsQuery) FileCreateTransaction(com.hedera.hashgraph.sdk.FileCreateTransaction) FileInfoQuery(com.hedera.hashgraph.sdk.FileInfoQuery) Var(com.google.errorprone.annotations.Var) FileDeleteTransaction(com.hedera.hashgraph.sdk.FileDeleteTransaction) FileAppendTransaction(com.hedera.hashgraph.sdk.FileAppendTransaction) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 9 with FileContentsQuery

use of com.hedera.hashgraph.sdk.FileContentsQuery in project hedera-sdk-java by hashgraph.

the class FileContentsIntegrationTest method canQueryFileContents.

@Test
@DisplayName("Can query file contents")
void canQueryFileContents() throws Exception {
    var testEnv = new IntegrationTestEnv(1);
    var response = new FileCreateTransaction().setKeys(testEnv.operatorKey).setContents("[e2e::FileCreateTransaction]").execute(testEnv.client);
    var fileId = Objects.requireNonNull(response.getReceipt(testEnv.client).fileId);
    var contents = new FileContentsQuery().setFileId(fileId).execute(testEnv.client);
    assertThat(contents.toStringUtf8()).isEqualTo("[e2e::FileCreateTransaction]");
    new FileDeleteTransaction().setFileId(fileId).execute(testEnv.client).getReceipt(testEnv.client);
    testEnv.close();
}
Also used : FileContentsQuery(com.hedera.hashgraph.sdk.FileContentsQuery) FileCreateTransaction(com.hedera.hashgraph.sdk.FileCreateTransaction) FileDeleteTransaction(com.hedera.hashgraph.sdk.FileDeleteTransaction) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 10 with FileContentsQuery

use of com.hedera.hashgraph.sdk.FileContentsQuery in project hedera-sdk-java by hashgraph.

the class FileContentsIntegrationTest method getCostSmallMaxQueryFileContents.

@Test
@DisplayName("Error, max is smaller than set payment.")
void getCostSmallMaxQueryFileContents() throws Exception {
    var testEnv = new IntegrationTestEnv(1);
    var response = new FileCreateTransaction().setKeys(testEnv.operatorKey).setContents("[e2e::FileCreateTransaction]").execute(testEnv.client);
    var fileId = Objects.requireNonNull(response.getReceipt(testEnv.client).fileId);
    var contentsQuery = new FileContentsQuery().setFileId(fileId).setMaxQueryPayment(Hbar.fromTinybars(1));
    assertThatExceptionOfType(MaxQueryPaymentExceededException.class).isThrownBy(() -> {
        contentsQuery.execute(testEnv.client);
    });
    new FileDeleteTransaction().setFileId(fileId).execute(testEnv.client).getReceipt(testEnv.client);
    testEnv.close();
}
Also used : FileContentsQuery(com.hedera.hashgraph.sdk.FileContentsQuery) FileCreateTransaction(com.hedera.hashgraph.sdk.FileCreateTransaction) MaxQueryPaymentExceededException(com.hedera.hashgraph.sdk.MaxQueryPaymentExceededException) FileDeleteTransaction(com.hedera.hashgraph.sdk.FileDeleteTransaction) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Aggregations

FileContentsQuery (com.hedera.hashgraph.sdk.FileContentsQuery)12 FileCreateTransaction (com.hedera.hashgraph.sdk.FileCreateTransaction)8 DisplayName (org.junit.jupiter.api.DisplayName)8 Test (org.junit.jupiter.api.Test)8 FileDeleteTransaction (com.hedera.hashgraph.sdk.FileDeleteTransaction)7 ByteString (com.google.protobuf.ByteString)5 Hbar (com.hedera.hashgraph.sdk.Hbar)5 Client (com.hedera.hashgraph.sdk.Client)3 Var (com.google.errorprone.annotations.Var)2 FileAppendTransaction (com.hedera.hashgraph.sdk.FileAppendTransaction)2 FileId (com.hedera.hashgraph.sdk.FileId)2 FileInfoQuery (com.hedera.hashgraph.sdk.FileInfoQuery)2 AddressBookQuery (com.hedera.hashgraph.sdk.AddressBookQuery)1 ExchangeRates (com.hedera.hashgraph.sdk.ExchangeRates)1 FeeSchedules (com.hedera.hashgraph.sdk.FeeSchedules)1 MaxQueryPaymentExceededException (com.hedera.hashgraph.sdk.MaxQueryPaymentExceededException)1 NodeAddressBook (com.hedera.hashgraph.sdk.NodeAddressBook)1 TransactionResponse (com.hedera.hashgraph.sdk.TransactionResponse)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1