Skip to content

Commit 27320b9

Browse files
committed
feat: add ReceiveRecordInterceptor support to MicroProfile and implement UINT64 support
1 parent 60da625 commit 27320b9

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

hiero-enterprise-base/src/main/java/org/hiero/base/implementation/data/BigIntegerBasedNumericDatatypes.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@ public enum BigIntegerBasedNumericDatatypes implements ParamSupplier<BigInteger>
128128
BigInteger.valueOf(2).pow(255).negate(),
129129
BigInteger.valueOf(2).pow(255).subtract(BigInteger.ONE)),
130130

131+
UINT64(
132+
"uint64",
133+
(v, params) -> params.addUint64(v.longValue()),
134+
BigInteger.ZERO,
135+
BigInteger.valueOf(2).pow(64).subtract(BigInteger.ONE)),
131136
UINT72(
132137
"uint72",
133138
(v, params) -> params.addUint72(v),

hiero-enterprise-base/src/main/java/org/hiero/base/implementation/data/LongBasedNumericDatatypes.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ public enum LongBasedNumericDatatypes implements ParamSupplier<Long> {
2020
INT56("int56", (v, params) -> params.addInt56(v), -72057594037927936L, 72057594037927935L),
2121
UINT56("uint56", (v, params) -> params.addUint56(v), 0L, 144115188075855871L),
2222
INT64("int64", (v, params) -> params.addInt64(v), Long.MIN_VALUE, Long.MAX_VALUE);
23-
// TODO; UINT64 but max value is > long max value
2423

2524
private final BiConsumer<Long, ContractFunctionParameters> addParam;
2625

hiero-enterprise-microprofile/src/main/java/org/hiero/microprofile/ClientProvider.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.hiero.microprofile;
22

33
import jakarta.enterprise.context.ApplicationScoped;
4+
import jakarta.enterprise.inject.Instance;
45
import jakarta.enterprise.inject.Produces;
56
import jakarta.inject.Inject;
67
import org.eclipse.microprofile.config.inject.ConfigProperties;
@@ -30,6 +31,7 @@
3031
import org.hiero.base.mirrornode.NftRepository;
3132
import org.hiero.base.mirrornode.TokenRepository;
3233
import org.hiero.base.mirrornode.TransactionRepository;
34+
import org.hiero.base.interceptors.ReceiveRecordInterceptor;
3335
import org.hiero.base.protocol.ProtocolLayerClient;
3436
import org.hiero.base.verification.ContractVerificationClient;
3537
import org.hiero.microprofile.implementation.ContractVerificationClientImpl;
@@ -45,6 +47,8 @@ public class ClientProvider {
4547

4648
@Inject @ConfigProperties private HieroNetworkConfiguration networkConfiguration;
4749

50+
@Inject private Instance<ReceiveRecordInterceptor> interceptors;
51+
4852
@NonNull
4953
@Produces
5054
@ApplicationScoped
@@ -63,7 +67,9 @@ HieroContext createHieroContext(@NonNull final HieroConfig hieroConfig) {
6367
@Produces
6468
@ApplicationScoped
6569
ProtocolLayerClient createProtocolLayerClient(@NonNull final HieroContext hieroContext) {
66-
return new ProtocolLayerClientImpl(hieroContext);
70+
final ProtocolLayerClientImpl client = new ProtocolLayerClientImpl(hieroContext);
71+
interceptors.stream().findFirst().ifPresent(client::setRecordInterceptor);
72+
return client;
6773
}
6874

6975
@NonNull

0 commit comments

Comments
 (0)