diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/HederaApp.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/HederaApp.java index cead06cae185..102b2d0a555e 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/HederaApp.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/HederaApp.java @@ -49,6 +49,7 @@ import com.hedera.node.app.service.mono.throttling.ThrottlingModule; import com.hedera.node.app.service.mono.txns.TransactionsModule; import com.hedera.node.app.service.mono.txns.submission.SubmissionModule; +import com.hedera.node.app.service.token.impl.components.TokenServiceModule; import com.hedera.node.app.services.ServiceModule; import com.hedera.node.app.solvency.SolvencyModule; import com.hedera.node.app.state.HederaStateModule; @@ -70,10 +71,9 @@ import javax.inject.Singleton; /** - * The infrastructure used to implement the platform contract for a Hedera Services node. - * This is needed for adding dagger subcomponents. - * Currently, it extends {@link com.hedera.node.app.service.mono.ServicesApp}. But, - * in the future this class will be cleaned up to not have multiple module dependencies + * The infrastructure used to implement the platform contract for a Hedera Services node. This is needed for adding + * dagger subcomponents. Currently, it extends {@link com.hedera.node.app.service.mono.ServicesApp}. But, in the future + * this class will be cleaned up to not have multiple module dependencies */ @Singleton @Component( @@ -110,7 +110,8 @@ AuthorizerDaggerModule.class, InfoDaggerModule.class, ThrottleModule.class, - SolvencyModule.class + SolvencyModule.class, + TokenServiceModule.class }) public interface HederaApp extends ServicesApp { /* Needed by ServicesState */ diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/services/ServiceModule.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/services/ServiceModule.java index 6eb5e5789588..6348298128bd 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/services/ServiceModule.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/services/ServiceModule.java @@ -28,8 +28,6 @@ import com.hedera.node.app.service.network.impl.components.NetworkComponent; import com.hedera.node.app.service.schedule.impl.components.DaggerScheduleComponent; import com.hedera.node.app.service.schedule.impl.components.ScheduleComponent; -import com.hedera.node.app.service.token.impl.components.DaggerTokenComponent; -import com.hedera.node.app.service.token.impl.components.TokenComponent; import com.hedera.node.app.service.util.impl.components.DaggerUtilComponent; import com.hedera.node.app.service.util.impl.components.UtilComponent; import dagger.Module; @@ -79,10 +77,4 @@ static ContractComponent provideContractComponent() { static ScheduleComponent provideScheduleComponent() { return DaggerScheduleComponent.create(); } - - @Provides - @Singleton - static TokenComponent provideTokenComponent() { - return DaggerTokenComponent.create(); - } } diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandlersModule.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandlersModule.java index d30aedd161ee..b3cb4f6178da 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandlersModule.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/handle/HandlersModule.java @@ -22,7 +22,7 @@ import com.hedera.node.app.service.file.impl.components.FileComponent; import com.hedera.node.app.service.network.impl.components.NetworkComponent; import com.hedera.node.app.service.schedule.impl.components.ScheduleComponent; -import com.hedera.node.app.service.token.impl.components.TokenComponent; +import com.hedera.node.app.service.token.impl.handlers.TokenComponent; import com.hedera.node.app.service.util.impl.components.UtilComponent; import com.hedera.node.app.workflows.dispatcher.TransactionHandlers; import dagger.Module; @@ -35,14 +35,14 @@ public interface HandlersModule { @Provides @Singleton static TransactionHandlers provideTransactionHandlers( - @NonNull AdminComponent adminComponent, - @NonNull ConsensusComponent consensusComponent, - @NonNull FileComponent fileComponent, - @NonNull NetworkComponent networkComponent, - @NonNull ContractComponent contractComponent, - @NonNull ScheduleComponent scheduleComponent, - @NonNull TokenComponent tokenComponent, - @NonNull UtilComponent utilComponent) { + @NonNull final AdminComponent adminComponent, + @NonNull final ConsensusComponent consensusComponent, + @NonNull final FileComponent fileComponent, + @NonNull final NetworkComponent networkComponent, + @NonNull final ContractComponent contractComponent, + @NonNull final ScheduleComponent scheduleComponent, + @NonNull final TokenComponent tokenComponent, + @NonNull final UtilComponent utilComponent) { return new TransactionHandlers( consensusComponent.consensusCreateTopicHandler(), consensusComponent.consensusUpdateTopicHandler(), diff --git a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryWorkflowModule.java b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryWorkflowModule.java index ed505778a7b5..e3e0681e32bd 100644 --- a/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryWorkflowModule.java +++ b/hedera-node/hedera-app/src/main/java/com/hedera/node/app/workflows/query/QueryWorkflowModule.java @@ -26,7 +26,7 @@ import com.hedera.node.app.service.file.impl.components.FileComponent; import com.hedera.node.app.service.network.impl.components.NetworkComponent; import com.hedera.node.app.service.schedule.impl.components.ScheduleComponent; -import com.hedera.node.app.service.token.impl.components.TokenComponent; +import com.hedera.node.app.service.token.impl.handlers.TokenComponent; import com.hedera.node.app.state.HederaState; import com.hedera.pbj.runtime.Codec; import com.swirlds.common.system.Platform; @@ -62,12 +62,12 @@ static Function> provideStateAcc @Provides static QueryHandlers provideQueryHandlers( - @NonNull ConsensusComponent consensusComponent, - @NonNull FileComponent fileComponent, - @NonNull NetworkComponent networkComponent, - @NonNull ContractComponent contractComponent, - @NonNull ScheduleComponent scheduleComponent, - @NonNull TokenComponent tokenComponent) { + @NonNull final ConsensusComponent consensusComponent, + @NonNull final FileComponent fileComponent, + @NonNull final NetworkComponent networkComponent, + @NonNull final ContractComponent contractComponent, + @NonNull final ScheduleComponent scheduleComponent, + @NonNull final TokenComponent tokenComponent) { return new QueryHandlers( consensusComponent.consensusGetTopicInfoHandler(), contractComponent.contractGetBySolidityIDHandler(), diff --git a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowModuleTest.java b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowModuleTest.java index e6dd90410c86..6b07157c5523 100644 --- a/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowModuleTest.java +++ b/hedera-node/hedera-app/src/test/java/com/hedera/node/app/workflows/handle/HandleWorkflowModuleTest.java @@ -16,7 +16,7 @@ package com.hedera.node.app.workflows.handle; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.mockito.BDDMockito.given; import com.hedera.node.app.service.admin.impl.components.AdminComponent; @@ -47,7 +47,6 @@ import com.hedera.node.app.service.schedule.impl.handlers.ScheduleCreateHandler; import com.hedera.node.app.service.schedule.impl.handlers.ScheduleDeleteHandler; import com.hedera.node.app.service.schedule.impl.handlers.ScheduleSignHandler; -import com.hedera.node.app.service.token.impl.components.TokenComponent; import com.hedera.node.app.service.token.impl.handlers.CryptoAddLiveHashHandler; import com.hedera.node.app.service.token.impl.handlers.CryptoApproveAllowanceHandler; import com.hedera.node.app.service.token.impl.handlers.CryptoCreateHandler; @@ -59,6 +58,7 @@ import com.hedera.node.app.service.token.impl.handlers.TokenAccountWipeHandler; import com.hedera.node.app.service.token.impl.handlers.TokenAssociateToAccountHandler; import com.hedera.node.app.service.token.impl.handlers.TokenBurnHandler; +import com.hedera.node.app.service.token.impl.handlers.TokenComponent; import com.hedera.node.app.service.token.impl.handlers.TokenCreateHandler; import com.hedera.node.app.service.token.impl.handlers.TokenDeleteHandler; import com.hedera.node.app.service.token.impl.handlers.TokenDissociateFromAccountHandler; diff --git a/hedera-node/hedera-token-service-impl/build.gradle.kts b/hedera-node/hedera-token-service-impl/build.gradle.kts index 6a2ff1eacd2b..97ee02032355 100644 --- a/hedera-node/hedera-token-service-impl/build.gradle.kts +++ b/hedera-node/hedera-token-service-impl/build.gradle.kts @@ -28,15 +28,15 @@ configurations.all { } dependencies { - implementation(project(":hedera-node:hapi")) annotationProcessor(libs.dagger.compiler) api(project(":hedera-node:hedera-token-service")) + implementation(project(":hedera-node:hapi")) implementation(project(":hedera-node:hedera-mono-service")) implementation(libs.bundles.di) implementation(libs.pbj.runtime) - implementation(libs.swirlds.virtualmap) implementation(libs.swirlds.jasperdb) + testImplementation(testLibs.bundles.testing) testImplementation(testFixtures(project(":hedera-node:hedera-mono-service"))) testImplementation(testFixtures(project(":hedera-node:hedera-app-spi"))) diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/CryptoSignatureWaiversImpl.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/CryptoSignatureWaiversImpl.java index 792ca4f28bed..f6e31e7e982b 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/CryptoSignatureWaiversImpl.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/CryptoSignatureWaiversImpl.java @@ -24,13 +24,18 @@ import com.hedera.node.app.service.token.TokenService; import com.hedera.node.app.spi.numbers.HederaAccountNumbers; import edu.umd.cs.findbugs.annotations.NonNull; +import javax.inject.Inject; +import javax.inject.Singleton; import org.apache.commons.lang3.NotImplementedException; /** - * A Singleton implementation of signature waivers needed for transactions in {@link TokenService}. - * NOTE: FUTURE - These will be implemented in the coming PR and this class should be a singleton. + * A Singleton implementation of signature waivers needed for transactions in {@link TokenService}. NOTE: FUTURE - These + * will be implemented in the coming PR and this class should be a singleton. */ +@Singleton public class CryptoSignatureWaiversImpl implements CryptoSignatureWaivers { + + @Inject public CryptoSignatureWaiversImpl(@NonNull final HederaAccountNumbers accountNumbers) { requireNonNull(accountNumbers); } diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/components/TokenComponent.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/components/TokenServiceModule.java similarity index 91% rename from hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/components/TokenComponent.java rename to hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/components/TokenServiceModule.java index 1957dfa1abc0..cec8f161c0cf 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/components/TokenComponent.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/components/TokenServiceModule.java @@ -16,6 +16,8 @@ package com.hedera.node.app.service.token.impl.components; +import com.hedera.node.app.service.token.CryptoSignatureWaivers; +import com.hedera.node.app.service.token.impl.CryptoSignatureWaiversImpl; import com.hedera.node.app.service.token.impl.handlers.CryptoAddLiveHashHandler; import com.hedera.node.app.service.token.impl.handlers.CryptoApproveAllowanceHandler; import com.hedera.node.app.service.token.impl.handlers.CryptoCreateHandler; @@ -32,6 +34,7 @@ import com.hedera.node.app.service.token.impl.handlers.TokenAccountWipeHandler; import com.hedera.node.app.service.token.impl.handlers.TokenAssociateToAccountHandler; import com.hedera.node.app.service.token.impl.handlers.TokenBurnHandler; +import com.hedera.node.app.service.token.impl.handlers.TokenComponent; import com.hedera.node.app.service.token.impl.handlers.TokenCreateHandler; import com.hedera.node.app.service.token.impl.handlers.TokenDeleteHandler; import com.hedera.node.app.service.token.impl.handlers.TokenDissociateFromAccountHandler; @@ -48,16 +51,17 @@ import com.hedera.node.app.service.token.impl.handlers.TokenUnfreezeAccountHandler; import com.hedera.node.app.service.token.impl.handlers.TokenUnpauseHandler; import com.hedera.node.app.service.token.impl.handlers.TokenUpdateHandler; -import dagger.Component; -import javax.inject.Singleton; +import dagger.Binds; +import dagger.Module; -@Singleton -@Component -public interface TokenComponent { - @Component.Factory - interface Factory { - TokenComponent create(); - } +/** + * Dagger module of the token service + */ +@Module +public interface TokenServiceModule { + + @Binds + CryptoSignatureWaivers cryptoSignatureWaivers(CryptoSignatureWaiversImpl impl); CryptoAddLiveHashHandler cryptoAddLiveHashHandler(); @@ -122,4 +126,6 @@ interface Factory { TokenUnpauseHandler tokenUnpauseHandler(); TokenUpdateHandler tokenUpdateHandler(); + + TokenComponent tokenComponent(); } diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoUpdateHandler.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoUpdateHandler.java index 41dfa404cb2e..d299611262b5 100644 --- a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoUpdateHandler.java +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/CryptoUpdateHandler.java @@ -37,15 +37,7 @@ public class CryptoUpdateHandler implements TransactionHandler { private final CryptoSignatureWaivers waivers; - /** - * @deprecated Exists until I figured out how to configure Dagger to inject the waivers - */ @Inject - @Deprecated(forRemoval = true) - public CryptoUpdateHandler() { - this.waivers = null; - } - public CryptoUpdateHandler(@NonNull final CryptoSignatureWaivers waivers) { this.waivers = requireNonNull(waivers, "The supplied argument 'waivers' must not be null"); } diff --git a/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenComponent.java b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenComponent.java new file mode 100644 index 000000000000..fee6db5c5776 --- /dev/null +++ b/hedera-node/hedera-token-service-impl/src/main/java/com/hedera/node/app/service/token/impl/handlers/TokenComponent.java @@ -0,0 +1,452 @@ +/* + * Copyright (C) 2023 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.node.app.service.token.impl.handlers; + +import edu.umd.cs.findbugs.annotations.NonNull; +import javax.inject.Inject; +import javax.inject.Singleton; + +/** + * Wrapper class for all handlers of the token service. This should be a {@code record} but it looks like Dagger does + * not support Java records + */ +@Singleton +public class TokenComponent { + + private final CryptoCreateHandler cryptoCreateHandler; + private final CryptoUpdateHandler cryptoUpdateHandler; + private final CryptoTransferHandler cryptoTransferHandler; + private final CryptoDeleteHandler cryptoDeleteHandler; + private final CryptoApproveAllowanceHandler cryptoApproveAllowanceHandler; + private final CryptoDeleteAllowanceHandler cryptoDeleteAllowanceHandler; + private final CryptoAddLiveHashHandler cryptoAddLiveHashHandler; + private final CryptoDeleteLiveHashHandler cryptoDeleteLiveHashHandler; + private final TokenCreateHandler tokenCreateHandler; + private final TokenUpdateHandler tokenUpdateHandler; + private final TokenMintHandler tokenMintHandler; + private final TokenBurnHandler tokenBurnHandler; + private final TokenDeleteHandler tokenDeleteHandler; + private final TokenAccountWipeHandler tokenAccountWipeHandler; + private final TokenFreezeAccountHandler tokenFreezeAccountHandler; + private final TokenUnfreezeAccountHandler tokenUnfreezeAccountHandler; + private final TokenGrantKycToAccountHandler tokenGrantKycToAccountHandler; + private final TokenRevokeKycFromAccountHandler tokenRevokeKycFromAccountHandler; + private final TokenAssociateToAccountHandler tokenAssociateToAccountHandler; + private final TokenDissociateFromAccountHandler tokenDissociateFromAccountHandler; + private final TokenFeeScheduleUpdateHandler tokenFeeScheduleUpdateHandler; + private final TokenPauseHandler tokenPauseHandler; + private final TokenUnpauseHandler tokenUnpauseHandler; + private final CryptoGetAccountBalanceHandler cryptoGetAccountBalanceHandler; + private final CryptoGetAccountInfoHandler cryptoGetAccountInfoHandler; + private final CryptoGetAccountRecordsHandler cryptoGetAccountRecordsHandler; + private final CryptoGetLiveHashHandler cryptoGetLiveHashHandler; + private final CryptoGetStakersHandler cryptoGetStakersHandler; + private final TokenGetInfoHandler tokenGetInfoHandler; + private final TokenGetAccountNftInfosHandler tokenGetAccountNftInfosHandler; + private final TokenGetNftInfoHandler tokenGetNftInfoHandler; + private final TokenGetNftInfosHandler tokenGetNftInfosHandler; + + /** + * @param cryptoCreateHandler the cryptoCreateHandler + * @param cryptoUpdateHandler the cryptoUpdateHandler + * @param cryptoTransferHandler the cryptoTransferHandler + * @param cryptoDeleteHandler the cryptoDeleteHandler + * @param cryptoApproveAllowanceHandler the cryptoApproveAllowanceHandler + * @param cryptoDeleteAllowanceHandler the cryptoDeleteAllowanceHandler + * @param cryptoAddLiveHashHandler the cryptoAddLiveHashHandler + * @param cryptoDeleteLiveHashHandler the cryptoDeleteLiveHashHandler + * @param tokenCreateHandler the tokenCreateHandler + * @param tokenUpdateHandler the tokenUpdateHandler + * @param tokenMintHandler the tokenMintHandler + * @param tokenBurnHandler the tokenBurnHandler + * @param tokenDeleteHandler the tokenDeleteHandler + * @param tokenAccountWipeHandler the tokenAccountWipeHandler + * @param tokenFreezeAccountHandler the tokenFreezeAccountHandler + * @param tokenUnfreezeAccountHandler the tokenUnfreezeAccountHandler + * @param tokenGrantKycToAccountHandler the tokenGrantKycToAccountHandler + * @param tokenRevokeKycFromAccountHandler the tokenRevokeKycFromAccountHandler + * @param tokenAssociateToAccountHandler the tokenAssociateToAccountHandler + * @param tokenDissociateFromAccountHandler the tokenDissociateFromAccountHandler + * @param tokenFeeScheduleUpdateHandler the tokenFeeScheduleUpdateHandler + * @param tokenPauseHandler the tokenPauseHandler + * @param tokenUnpauseHandler the tokenUnpauseHandler + * @param cryptoGetAccountBalanceHandler the cryptoGetAccountBalanceHandler + * @param cryptoGetAccountInfoHandler the cryptoGetAccountInfoHandler + * @param cryptoGetAccountRecordsHandler the cryptoGetAccountRecordsHandler + * @param cryptoGetLiveHashHandler the cryptoGetLiveHashHandler + * @param cryptoGetStakersHandler the cryptoGetStakersHandler + * @param tokenGetInfoHandler the tokenGetInfoHandler + * @param tokenGetAccountNftInfosHandler the tokenGetAccountNftInfosHandler + * @param tokenGetNftInfoHandler the tokenGetNftInfoHandler + * @param tokenGetNftInfosHandler the tokenGetNftInfosHandler + */ + @Inject + public TokenComponent( + @NonNull final CryptoCreateHandler cryptoCreateHandler, + @NonNull final CryptoUpdateHandler cryptoUpdateHandler, + @NonNull final CryptoTransferHandler cryptoTransferHandler, + @NonNull final CryptoDeleteHandler cryptoDeleteHandler, + @NonNull final CryptoApproveAllowanceHandler cryptoApproveAllowanceHandler, + @NonNull final CryptoDeleteAllowanceHandler cryptoDeleteAllowanceHandler, + @NonNull final CryptoAddLiveHashHandler cryptoAddLiveHashHandler, + @NonNull final CryptoDeleteLiveHashHandler cryptoDeleteLiveHashHandler, + @NonNull final TokenCreateHandler tokenCreateHandler, + @NonNull final TokenUpdateHandler tokenUpdateHandler, + @NonNull final TokenMintHandler tokenMintHandler, + @NonNull final TokenBurnHandler tokenBurnHandler, + @NonNull final TokenDeleteHandler tokenDeleteHandler, + @NonNull final TokenAccountWipeHandler tokenAccountWipeHandler, + @NonNull final TokenFreezeAccountHandler tokenFreezeAccountHandler, + @NonNull final TokenUnfreezeAccountHandler tokenUnfreezeAccountHandler, + @NonNull final TokenGrantKycToAccountHandler tokenGrantKycToAccountHandler, + @NonNull final TokenRevokeKycFromAccountHandler tokenRevokeKycFromAccountHandler, + @NonNull final TokenAssociateToAccountHandler tokenAssociateToAccountHandler, + @NonNull final TokenDissociateFromAccountHandler tokenDissociateFromAccountHandler, + @NonNull final TokenFeeScheduleUpdateHandler tokenFeeScheduleUpdateHandler, + @NonNull final TokenPauseHandler tokenPauseHandler, + @NonNull final TokenUnpauseHandler tokenUnpauseHandler, + @NonNull final CryptoGetAccountBalanceHandler cryptoGetAccountBalanceHandler, + @NonNull final CryptoGetAccountInfoHandler cryptoGetAccountInfoHandler, + @NonNull final CryptoGetAccountRecordsHandler cryptoGetAccountRecordsHandler, + @NonNull final CryptoGetLiveHashHandler cryptoGetLiveHashHandler, + @NonNull final CryptoGetStakersHandler cryptoGetStakersHandler, + @NonNull final TokenGetInfoHandler tokenGetInfoHandler, + @NonNull final TokenGetAccountNftInfosHandler tokenGetAccountNftInfosHandler, + @NonNull final TokenGetNftInfoHandler tokenGetNftInfoHandler, + @NonNull final TokenGetNftInfosHandler tokenGetNftInfosHandler) { + this.cryptoCreateHandler = cryptoCreateHandler; + this.cryptoUpdateHandler = cryptoUpdateHandler; + this.cryptoTransferHandler = cryptoTransferHandler; + this.cryptoDeleteHandler = cryptoDeleteHandler; + this.cryptoApproveAllowanceHandler = cryptoApproveAllowanceHandler; + this.cryptoDeleteAllowanceHandler = cryptoDeleteAllowanceHandler; + this.cryptoAddLiveHashHandler = cryptoAddLiveHashHandler; + this.cryptoDeleteLiveHashHandler = cryptoDeleteLiveHashHandler; + this.tokenCreateHandler = tokenCreateHandler; + this.tokenUpdateHandler = tokenUpdateHandler; + this.tokenMintHandler = tokenMintHandler; + this.tokenBurnHandler = tokenBurnHandler; + this.tokenDeleteHandler = tokenDeleteHandler; + this.tokenAccountWipeHandler = tokenAccountWipeHandler; + this.tokenFreezeAccountHandler = tokenFreezeAccountHandler; + this.tokenUnfreezeAccountHandler = tokenUnfreezeAccountHandler; + this.tokenGrantKycToAccountHandler = tokenGrantKycToAccountHandler; + this.tokenRevokeKycFromAccountHandler = tokenRevokeKycFromAccountHandler; + this.tokenAssociateToAccountHandler = tokenAssociateToAccountHandler; + this.tokenDissociateFromAccountHandler = tokenDissociateFromAccountHandler; + this.tokenFeeScheduleUpdateHandler = tokenFeeScheduleUpdateHandler; + this.tokenPauseHandler = tokenPauseHandler; + this.tokenUnpauseHandler = tokenUnpauseHandler; + this.cryptoGetAccountBalanceHandler = cryptoGetAccountBalanceHandler; + this.cryptoGetAccountInfoHandler = cryptoGetAccountInfoHandler; + this.cryptoGetAccountRecordsHandler = cryptoGetAccountRecordsHandler; + this.cryptoGetLiveHashHandler = cryptoGetLiveHashHandler; + this.cryptoGetStakersHandler = cryptoGetStakersHandler; + this.tokenGetInfoHandler = tokenGetInfoHandler; + this.tokenGetAccountNftInfosHandler = tokenGetAccountNftInfosHandler; + this.tokenGetNftInfoHandler = tokenGetNftInfoHandler; + this.tokenGetNftInfosHandler = tokenGetNftInfosHandler; + } + + /** + * Gets the cryptoCreateHandler. + * + * @return the cryptoCreateHandler + */ + public CryptoCreateHandler cryptoCreateHandler() { + return cryptoCreateHandler; + } + + /** + * Gets the cryptoUpdateHandler. + * + * @return the cryptoUpdateHandler + */ + public CryptoUpdateHandler cryptoUpdateHandler() { + return cryptoUpdateHandler; + } + + /** + * Gets the cryptoTransferHandler. + * + * @return the cryptoTransferHandler + */ + public CryptoTransferHandler cryptoTransferHandler() { + return cryptoTransferHandler; + } + + /** + * Gets the cryptoDeleteHandler. + * + * @return the cryptoDeleteHandler + */ + public CryptoDeleteHandler cryptoDeleteHandler() { + return cryptoDeleteHandler; + } + + /** + * Gets the cryptoApproveAllowanceHandler. + * + * @return the cryptoApproveAllowanceHandler + */ + public CryptoApproveAllowanceHandler cryptoApproveAllowanceHandler() { + return cryptoApproveAllowanceHandler; + } + + /** + * Gets the cryptoDeleteAllowanceHandler. + * + * @return the cryptoDeleteAllowanceHandler + */ + public CryptoDeleteAllowanceHandler cryptoDeleteAllowanceHandler() { + return cryptoDeleteAllowanceHandler; + } + + /** + * Gets the cryptoAddLiveHashHandler. + * + * @return the cryptoAddLiveHashHandler + */ + public CryptoAddLiveHashHandler cryptoAddLiveHashHandler() { + return cryptoAddLiveHashHandler; + } + + /** + * Gets the cryptoDeleteLiveHashHandler. + * + * @return the cryptoDeleteLiveHashHandler + */ + public CryptoDeleteLiveHashHandler cryptoDeleteLiveHashHandler() { + return cryptoDeleteLiveHashHandler; + } + + /** + * Gets the tokenCreateHandler. + * + * @return the tokenCreateHandler + */ + public TokenCreateHandler tokenCreateHandler() { + return tokenCreateHandler; + } + + /** + * Gets the tokenUpdateHandler. + * + * @return the tokenUpdateHandler + */ + public TokenUpdateHandler tokenUpdateHandler() { + return tokenUpdateHandler; + } + + /** + * Gets the tokenMintHandler. + * + * @return the tokenMintHandler + */ + public TokenMintHandler tokenMintHandler() { + return tokenMintHandler; + } + + /** + * Gets the tokenBurnHandler. + * + * @return the tokenBurnHandler + */ + public TokenBurnHandler tokenBurnHandler() { + return tokenBurnHandler; + } + + /** + * Gets the tokenDeleteHandler. + * + * @return the tokenDeleteHandler + */ + public TokenDeleteHandler tokenDeleteHandler() { + return tokenDeleteHandler; + } + + /** + * Gets the tokenAccountWipeHandler. + * + * @return the tokenAccountWipeHandler + */ + public TokenAccountWipeHandler tokenAccountWipeHandler() { + return tokenAccountWipeHandler; + } + + /** + * Gets the tokenFreezeAccountHandler. + * + * @return the tokenFreezeAccountHandler + */ + public TokenFreezeAccountHandler tokenFreezeAccountHandler() { + return tokenFreezeAccountHandler; + } + + /** + * Gets the tokenUnfreezeAccountHandler. + * + * @return the tokenUnfreezeAccountHandler + */ + public TokenUnfreezeAccountHandler tokenUnfreezeAccountHandler() { + return tokenUnfreezeAccountHandler; + } + + /** + * Gets the tokenGrantKycToAccountHandler. + * + * @return the tokenGrantKycToAccountHandler + */ + public TokenGrantKycToAccountHandler tokenGrantKycToAccountHandler() { + return tokenGrantKycToAccountHandler; + } + + /** + * Gets the tokenRevokeKycFromAccountHandler. + * + * @return the tokenRevokeKycFromAccountHandler + */ + public TokenRevokeKycFromAccountHandler tokenRevokeKycFromAccountHandler() { + return tokenRevokeKycFromAccountHandler; + } + + /** + * Gets the tokenAssociateToAccountHandler. + * + * @return the tokenAssociateToAccountHandler + */ + public TokenAssociateToAccountHandler tokenAssociateToAccountHandler() { + return tokenAssociateToAccountHandler; + } + + /** + * Gets the tokenDissociateFromAccountHandler. + * + * @return the tokenDissociateFromAccountHandler + */ + public TokenDissociateFromAccountHandler tokenDissociateFromAccountHandler() { + return tokenDissociateFromAccountHandler; + } + + /** + * Gets the tokenFeeScheduleUpdateHandler. + * + * @return the tokenFeeScheduleUpdateHandler + */ + public TokenFeeScheduleUpdateHandler tokenFeeScheduleUpdateHandler() { + return tokenFeeScheduleUpdateHandler; + } + + /** + * Gets the tokenFeeScheduleUpdateHandler. + * + * @return the tokenFeeScheduleUpdateHandler + */ + public TokenPauseHandler tokenPauseHandler() { + return tokenPauseHandler; + } + + /** + * Gets the tokenFeeScheduleUpdateHandler. + * + * @return the tokenFeeScheduleUpdateHandler + */ + public TokenUnpauseHandler tokenUnpauseHandler() { + return tokenUnpauseHandler; + } + + /** + * Gets the tokenFeeScheduleUpdateHandler. + * + * @return the tokenFeeScheduleUpdateHandler + */ + public CryptoGetAccountBalanceHandler cryptoGetAccountBalanceHandler() { + return cryptoGetAccountBalanceHandler; + } + + /** + * Gets the cryptoGetAccountRecordsHandler. + * + * @return the cryptoGetAccountRecordsHandler + */ + public CryptoGetAccountInfoHandler cryptoGetAccountInfoHandler() { + return cryptoGetAccountInfoHandler; + } + + /** + * Gets the cryptoGetAccountRecordsHandler. + * + * @return the cryptoGetAccountRecordsHandler + */ + public CryptoGetAccountRecordsHandler cryptoGetAccountRecordsHandler() { + return cryptoGetAccountRecordsHandler; + } + + /** + * Gets the cryptoGetAccountRecordsHandler. + * + * @return the cryptoGetAccountRecordsHandler + */ + public CryptoGetLiveHashHandler cryptoGetLiveHashHandler() { + return cryptoGetLiveHashHandler; + } + + /** + * Gets the cryptoGetAccountRecordsHandler. + * + * @return the cryptoGetAccountRecordsHandler + */ + public CryptoGetStakersHandler cryptoGetStakersHandler() { + return cryptoGetStakersHandler; + } + + /** + * Gets the cryptoGetAccountRecordsHandler. + * + * @return the cryptoGetAccountRecordsHandler + */ + public TokenGetInfoHandler tokenGetInfoHandler() { + return tokenGetInfoHandler; + } + + /** + * Gets the cryptoGetAccountRecordsHandler. + * + * @return the cryptoGetAccountRecordsHandler + */ + public TokenGetAccountNftInfosHandler tokenGetAccountNftInfosHandler() { + return tokenGetAccountNftInfosHandler; + } + + /** + * Gets the cryptoGetAccountRecordsHandler. + * + * @return the cryptoGetAccountRecordsHandler + */ + public TokenGetNftInfoHandler tokenGetNftInfoHandler() { + return tokenGetNftInfoHandler; + } + + /** + * Gets the cryptoGetAccountRecordsHandler. + * + * @return the cryptoGetAccountRecordsHandler + */ + public TokenGetNftInfosHandler tokenGetNftInfosHandler() { + return tokenGetNftInfosHandler; + } +} diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/TokenComponentTest.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/TokenComponentTest.java deleted file mode 100644 index bd8430d2fc95..000000000000 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/TokenComponentTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2023 Hedera Hashgraph, LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hedera.node.app.service.token.impl.test; - -import static org.junit.jupiter.api.Assertions.*; - -import com.hedera.node.app.service.token.impl.components.DaggerTokenComponent; -import com.hedera.node.app.service.token.impl.components.TokenComponent; -import org.junit.jupiter.api.Test; - -class TokenComponentTest { - @Test - void objectGraphRootsAreAvailable() { - // given: - TokenComponent subject = DaggerTokenComponent.factory().create(); - - // expect: - assertNotNull(subject.cryptoAddLiveHashHandler()); - assertNotNull(subject.cryptoApproveAllowanceHandler()); - assertNotNull(subject.cryptoCreateHandler()); - assertNotNull(subject.cryptoDeleteAllowanceHandler()); - assertNotNull(subject.cryptoDeleteHandler()); - assertNotNull(subject.cryptoDeleteLiveHashHandler()); - assertNotNull(subject.cryptoGetAccountBalanceHandler()); - assertNotNull(subject.cryptoGetAccountInfoHandler()); - assertNotNull(subject.cryptoGetAccountRecordsHandler()); - assertNotNull(subject.cryptoGetLiveHashHandler()); - assertNotNull(subject.cryptoGetStakersHandler()); - assertNotNull(subject.cryptoTransferHandler()); - assertNotNull(subject.cryptoUpdateHandler()); - assertNotNull(subject.tokenAccountWipeHandler()); - assertNotNull(subject.tokenAssociateToAccountHandler()); - assertNotNull(subject.tokenBurnHandler()); - assertNotNull(subject.tokenCreateHandler()); - assertNotNull(subject.tokenDeleteHandler()); - assertNotNull(subject.tokenDissociateFromAccountHandler()); - assertNotNull(subject.tokenFeeScheduleUpdateHandler()); - assertNotNull(subject.tokenFreezeAccountHandler()); - assertNotNull(subject.tokenGetAccountNftInfosHandler()); - assertNotNull(subject.tokenGetInfoHandler()); - assertNotNull(subject.tokenGetNftInfoHandler()); - assertNotNull(subject.tokenGetNftInfosHandler()); - assertNotNull(subject.tokenGrantKycToAccountHandler()); - assertNotNull(subject.tokenMintHandler()); - assertNotNull(subject.tokenPauseHandler()); - assertNotNull(subject.tokenRevokeKycFromAccountHandler()); - assertNotNull(subject.tokenUnfreezeAccountHandler()); - assertNotNull(subject.tokenUnpauseHandler()); - assertNotNull(subject.tokenUpdateHandler()); - } -} diff --git a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/CryptoCreateHandlerTest.java b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/CryptoCreateHandlerTest.java index fe022ef2e128..415555d62c6e 100644 --- a/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/CryptoCreateHandlerTest.java +++ b/hedera-node/hedera-token-service-impl/src/test/java/com/hedera/node/app/service/token/impl/test/handlers/CryptoCreateHandlerTest.java @@ -34,7 +34,7 @@ import org.junit.jupiter.api.Test; class CryptoCreateHandlerTest extends CryptoHandlerTestBase { - private CryptoCreateHandler subject = new CryptoCreateHandler(); + private final CryptoCreateHandler subject = new CryptoCreateHandler(); @BeforeEach public void setUp() {