Search in sources :

Example 1 with TokenInfoQuery

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

the class TokenFeeScheduleUpdateIntegrationTest method canUpdateToken.

@Test
@DisplayName("Can update token fees")
void canUpdateToken() throws Exception {
    var testEnv = new IntegrationTestEnv(1).useThrowawayAccount();
    var response = new TokenCreateTransaction().setTokenName("ffff").setTokenSymbol("F").setDecimals(3).setInitialSupply(1000000).setTreasuryAccountId(testEnv.operatorId).setAdminKey(testEnv.operatorKey).setFreezeKey(testEnv.operatorKey).setWipeKey(testEnv.operatorKey).setKycKey(testEnv.operatorKey).setSupplyKey(testEnv.operatorKey).setFeeScheduleKey(testEnv.operatorKey).setFreezeDefault(false).execute(testEnv.client);
    var tokenId = Objects.requireNonNull(response.getReceipt(testEnv.client).tokenId);
    @Var var info = new TokenInfoQuery().setTokenId(tokenId).execute(testEnv.client);
    assertThat(info.tokenId).isEqualTo(tokenId);
    assertThat(info.name).isEqualTo("ffff");
    assertThat(info.symbol).isEqualTo("F");
    assertThat(info.decimals).isEqualTo(3);
    assertThat(testEnv.operatorId).isEqualTo(info.treasuryAccountId);
    assertThat(info.adminKey).isNotNull();
    assertThat(info.freezeKey).isNotNull();
    assertThat(info.wipeKey).isNotNull();
    assertThat(info.kycKey).isNotNull();
    assertThat(info.supplyKey).isNotNull();
    assertThat(info.adminKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.freezeKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.wipeKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.kycKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.supplyKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.feeScheduleKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.defaultFreezeStatus).isNotNull();
    assertThat(info.defaultFreezeStatus).isFalse();
    assertThat(info.defaultKycStatus).isNotNull();
    assertThat(info.defaultKycStatus).isFalse();
    assertThat(info.customFees.size()).isEqualTo(0);
    var customFees = new ArrayList<CustomFee>();
    customFees.add(new CustomFixedFee().setAmount(10).setFeeCollectorAccountId(testEnv.operatorId));
    customFees.add(new CustomFractionalFee().setNumerator(1).setDenominator(20).setMin(1).setMax(10).setFeeCollectorAccountId(testEnv.operatorId));
    new TokenFeeScheduleUpdateTransaction().setTokenId(tokenId).setCustomFees(customFees).execute(testEnv.client).getReceipt(testEnv.client);
    info = new TokenInfoQuery().setTokenId(tokenId).execute(testEnv.client);
    assertThat(info.tokenId).isEqualTo(tokenId);
    assertThat(info.name).isEqualTo("ffff");
    assertThat(info.symbol).isEqualTo("F");
    assertThat(info.decimals).isEqualTo(3);
    assertThat(info.treasuryAccountId).isEqualTo(testEnv.operatorId);
    assertThat(info.adminKey).isNotNull();
    assertThat(info.freezeKey).isNotNull();
    assertThat(info.wipeKey).isNotNull();
    assertThat(info.kycKey).isNotNull();
    assertThat(info.supplyKey).isNotNull();
    assertThat(info.adminKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.freezeKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.wipeKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.kycKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.supplyKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.feeScheduleKey.toString()).isEqualTo(testEnv.operatorKey.toString());
    assertThat(info.defaultFreezeStatus).isNotNull();
    assertThat(info.defaultFreezeStatus).isFalse();
    assertThat(info.defaultKycStatus).isNotNull();
    assertThat(info.defaultKycStatus).isFalse();
    var fees = info.customFees;
    assertThat(fees.size()).isEqualTo(2);
    @Var int fixedCount = 0;
    @Var int fractionalCount = 0;
    for (var fee : fees) {
        if (fee instanceof CustomFixedFee) {
            fixedCount++;
            var fixed = (CustomFixedFee) fee;
            assertThat(fixed.getAmount()).isEqualTo(10);
            assertThat(fixed.getFeeCollectorAccountId()).isEqualTo(testEnv.operatorId);
            assertThat(fixed.getDenominatingTokenId()).isNull();
        } else if (fee instanceof CustomFractionalFee) {
            fractionalCount++;
            var fractional = (CustomFractionalFee) fee;
            assertThat(fractional.getNumerator()).isEqualTo(1);
            assertThat(fractional.getDenominator()).isEqualTo(20);
            assertThat(fractional.getMin()).isEqualTo(1);
            assertThat(fractional.getMax()).isEqualTo(10);
            assertThat(fractional.getFeeCollectorAccountId()).isEqualTo(testEnv.operatorId);
        }
    }
    assertThat(fixedCount).isEqualTo(1);
    assertThat(fractionalCount).isEqualTo(1);
    testEnv.close(tokenId);
}
Also used : CustomFractionalFee(com.hedera.hashgraph.sdk.CustomFractionalFee) TokenInfoQuery(com.hedera.hashgraph.sdk.TokenInfoQuery) Var(com.google.errorprone.annotations.Var) ArrayList(java.util.ArrayList) CustomFixedFee(com.hedera.hashgraph.sdk.CustomFixedFee) TokenCreateTransaction(com.hedera.hashgraph.sdk.TokenCreateTransaction) TokenFeeScheduleUpdateTransaction(com.hedera.hashgraph.sdk.TokenFeeScheduleUpdateTransaction) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 2 with TokenInfoQuery

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

the class TokenInfoIntegrationTest method getCostSmallMaxTokenInfo.

@Test
@DisplayName("Can query token info when all keys are different")
void getCostSmallMaxTokenInfo() throws Exception {
    var testEnv = new IntegrationTestEnv(1).useThrowawayAccount();
    var response = new TokenCreateTransaction().setTokenName("ffff").setTokenSymbol("F").setTreasuryAccountId(testEnv.operatorId).setAdminKey(testEnv.operatorKey).execute(testEnv.client);
    var tokenId = Objects.requireNonNull(response.getReceipt(testEnv.client).tokenId);
    var infoQuery = new TokenInfoQuery().setTokenId(tokenId).setMaxQueryPayment(Hbar.fromTinybars(1));
    assertThatExceptionOfType(MaxQueryPaymentExceededException.class).isThrownBy(() -> {
        infoQuery.execute(testEnv.client);
    });
    testEnv.close(tokenId);
}
Also used : TokenInfoQuery(com.hedera.hashgraph.sdk.TokenInfoQuery) MaxQueryPaymentExceededException(com.hedera.hashgraph.sdk.MaxQueryPaymentExceededException) TokenCreateTransaction(com.hedera.hashgraph.sdk.TokenCreateTransaction) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 3 with TokenInfoQuery

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

the class TokenInfoIntegrationTest method canQueryNfts.

@Test
@DisplayName("Can query NFT")
void canQueryNfts() throws Exception {
    var testEnv = new IntegrationTestEnv(1).useThrowawayAccount();
    var response = new TokenCreateTransaction().setTokenName("ffff").setTokenSymbol("F").setTokenType(TokenType.NON_FUNGIBLE_UNIQUE).setSupplyType(TokenSupplyType.FINITE).setMaxSupply(5000).setTreasuryAccountId(testEnv.operatorId).setAdminKey(testEnv.operatorKey).setSupplyKey(testEnv.operatorKey).execute(testEnv.client);
    var tokenId = Objects.requireNonNull(response.getReceipt(testEnv.client).tokenId);
    var mintReceipt = new TokenMintTransaction().setTokenId(tokenId).setMetadata(NftMetadataGenerator.generate((byte) 10)).execute(testEnv.client).getReceipt(testEnv.client);
    assertThat(mintReceipt.serials.size()).isEqualTo(10);
    var info = new TokenInfoQuery().setTokenId(tokenId).execute(testEnv.client);
    assertThat(info.tokenId).isEqualTo(tokenId);
    assertThat(info.name).isEqualTo("ffff");
    assertThat(info.symbol).isEqualTo("F");
    assertThat(info.decimals).isEqualTo(0);
    assertThat(info.totalSupply).isEqualTo(10);
    assertThat(testEnv.operatorId).isEqualTo(info.treasuryAccountId);
    assertThat(info.adminKey).isNotNull();
    assertThat(info.freezeKey).isNull();
    assertThat(info.wipeKey).isNull();
    assertThat(info.kycKey).isNull();
    assertThat(info.supplyKey).isNotNull();
    assertThat(info.defaultFreezeStatus).isNull();
    assertThat(info.defaultKycStatus).isNull();
    assertThat(info.tokenType).isEqualTo(TokenType.NON_FUNGIBLE_UNIQUE);
    assertThat(info.supplyType).isEqualTo(TokenSupplyType.FINITE);
    assertThat(info.maxSupply).isEqualTo(5000);
    testEnv.close(tokenId);
}
Also used : TokenMintTransaction(com.hedera.hashgraph.sdk.TokenMintTransaction) TokenInfoQuery(com.hedera.hashgraph.sdk.TokenInfoQuery) TokenCreateTransaction(com.hedera.hashgraph.sdk.TokenCreateTransaction) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 4 with TokenInfoQuery

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

the class TokenInfoIntegrationTest method canQueryTokenInfoWhenTokenIsCreatedWithMinimalProperties.

@Test
@DisplayName("Can query token with minimal properties")
void canQueryTokenInfoWhenTokenIsCreatedWithMinimalProperties() throws Exception {
    var testEnv = new IntegrationTestEnv(1).useThrowawayAccount(new Hbar(10));
    var response = new TokenCreateTransaction().setTokenName("ffff").setTokenSymbol("F").setTreasuryAccountId(testEnv.operatorId).execute(testEnv.client);
    var tokenId = Objects.requireNonNull(response.getReceipt(testEnv.client).tokenId);
    var info = new TokenInfoQuery().setTokenId(tokenId).execute(testEnv.client);
    assertThat(info.tokenId).isEqualTo(tokenId);
    assertThat(info.name).isEqualTo("ffff");
    assertThat(info.symbol).isEqualTo("F");
    assertThat(info.decimals).isEqualTo(0);
    assertThat(info.totalSupply).isEqualTo(0);
    assertThat(info.treasuryAccountId).isEqualTo(testEnv.operatorId);
    assertThat(info.adminKey).isNull();
    assertThat(info.freezeKey).isNull();
    assertThat(info.wipeKey).isNull();
    assertThat(info.kycKey).isNull();
    assertThat(info.supplyKey).isNull();
    assertThat(info.defaultFreezeStatus).isNull();
    assertThat(info.defaultKycStatus).isNull();
    assertThat(info.tokenType).isEqualTo(TokenType.FUNGIBLE_COMMON);
    assertThat(info.supplyType).isEqualTo(TokenSupplyType.INFINITE);
    testEnv.close();
}
Also used : TokenInfoQuery(com.hedera.hashgraph.sdk.TokenInfoQuery) Hbar(com.hedera.hashgraph.sdk.Hbar) TokenCreateTransaction(com.hedera.hashgraph.sdk.TokenCreateTransaction) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 5 with TokenInfoQuery

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

the class TokenInfoIntegrationTest method canQueryTokenInfoWhenAllKeysAreDifferent.

@Test
@DisplayName("Can query token info when all keys are different")
void canQueryTokenInfoWhenAllKeysAreDifferent() throws Exception {
    var testEnv = new IntegrationTestEnv(1).useThrowawayAccount();
    var key1 = PrivateKey.generateED25519();
    var key2 = PrivateKey.generateED25519();
    var key3 = PrivateKey.generateED25519();
    var key4 = PrivateKey.generateED25519();
    var key5 = PrivateKey.generateED25519();
    var response = new TokenCreateTransaction().setTokenName("ffff").setTokenSymbol("F").setDecimals(3).setInitialSupply(1000000).setTreasuryAccountId(testEnv.operatorId).setAdminKey(key1).setFreezeKey(key2).setWipeKey(key3).setKycKey(key4).setSupplyKey(key5).setFreezeDefault(false).freezeWith(testEnv.client).sign(key1).execute(testEnv.client);
    var tokenId = Objects.requireNonNull(response.getReceipt(testEnv.client).tokenId);
    var info = new TokenInfoQuery().setTokenId(tokenId).execute(testEnv.client);
    assertThat(info.tokenId).isEqualTo(tokenId);
    assertThat(info.name).isEqualTo("ffff");
    assertThat(info.symbol).isEqualTo("F");
    assertThat(info.decimals).isEqualTo(3);
    assertThat(info.treasuryAccountId).isEqualTo(testEnv.operatorId);
    assertThat(info.adminKey).isNotNull();
    assertThat(info.freezeKey).isNotNull();
    assertThat(info.wipeKey).isNotNull();
    assertThat(info.kycKey).isNotNull();
    assertThat(info.supplyKey).isNotNull();
    assertThat(info.adminKey.toString()).isEqualTo(key1.getPublicKey().toString());
    assertThat(info.freezeKey.toString()).isEqualTo(key2.getPublicKey().toString());
    assertThat(info.wipeKey.toString()).isEqualTo(key3.getPublicKey().toString());
    assertThat(info.kycKey.toString()).isEqualTo(key4.getPublicKey().toString());
    assertThat(info.supplyKey.toString()).isEqualTo(key5.getPublicKey().toString());
    assertThat(info.defaultFreezeStatus).isNotNull();
    assertThat(info.defaultFreezeStatus).isFalse();
    assertThat(info.defaultKycStatus).isNotNull();
    assertThat(info.defaultKycStatus).isFalse();
    assertThat(info.tokenType).isEqualTo(TokenType.FUNGIBLE_COMMON);
    assertThat(info.supplyType).isEqualTo(TokenSupplyType.INFINITE);
    new TokenDeleteTransaction().setTokenId(tokenId).freezeWith(testEnv.client).sign(key1).execute(testEnv.client).getReceipt(testEnv.client);
    testEnv.close();
}
Also used : TokenInfoQuery(com.hedera.hashgraph.sdk.TokenInfoQuery) TokenDeleteTransaction(com.hedera.hashgraph.sdk.TokenDeleteTransaction) TokenCreateTransaction(com.hedera.hashgraph.sdk.TokenCreateTransaction) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Aggregations

TokenCreateTransaction (com.hedera.hashgraph.sdk.TokenCreateTransaction)10 TokenInfoQuery (com.hedera.hashgraph.sdk.TokenInfoQuery)10 DisplayName (org.junit.jupiter.api.DisplayName)9 Test (org.junit.jupiter.api.Test)9 Hbar (com.hedera.hashgraph.sdk.Hbar)4 Var (com.google.errorprone.annotations.Var)2 CustomFixedFee (com.hedera.hashgraph.sdk.CustomFixedFee)2 CustomFractionalFee (com.hedera.hashgraph.sdk.CustomFractionalFee)2 TokenDeleteTransaction (com.hedera.hashgraph.sdk.TokenDeleteTransaction)2 TokenFeeScheduleUpdateTransaction (com.hedera.hashgraph.sdk.TokenFeeScheduleUpdateTransaction)2 AccountBalanceQuery (com.hedera.hashgraph.sdk.AccountBalanceQuery)1 AccountCreateTransaction (com.hedera.hashgraph.sdk.AccountCreateTransaction)1 AccountDeleteTransaction (com.hedera.hashgraph.sdk.AccountDeleteTransaction)1 AccountId (com.hedera.hashgraph.sdk.AccountId)1 Client (com.hedera.hashgraph.sdk.Client)1 CustomFee (com.hedera.hashgraph.sdk.CustomFee)1 MaxQueryPaymentExceededException (com.hedera.hashgraph.sdk.MaxQueryPaymentExceededException)1 PrivateKey (com.hedera.hashgraph.sdk.PrivateKey)1 TokenAssociateTransaction (com.hedera.hashgraph.sdk.TokenAssociateTransaction)1 TokenId (com.hedera.hashgraph.sdk.TokenId)1