Skip to content

Commit 0e2d26b

Browse files
committed
replace shard() and realm() with spec
Signed-off-by: Zhivko Kelchev <[email protected]>
1 parent d41653d commit 0e2d26b

16 files changed

+72
-111
lines changed

hedera-node/test-clients/src/main/java/com/hedera/services/bdd/spec/HapiPropertySource.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,18 @@ static AccountID asAccount(long shard, long realm, long num) {
286286
.build();
287287
}
288288

289+
static AccountID asAccount(final HapiSpec spec, long num) {
290+
return asAccount(spec.shard(), spec.realm(), num);
291+
}
292+
293+
static AccountID asAccount(final HapiSpec spec, ByteString alias) {
294+
return AccountID.newBuilder()
295+
.setShardNum(spec.shard())
296+
.setRealmNum(spec.realm())
297+
.setAlias(alias)
298+
.build();
299+
}
300+
289301
static ContractID asContract(String shard, String realm, String num) {
290302
return asContract(Long.parseLong(shard), Long.parseLong(realm), Long.parseLong(num));
291303
}

hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/Utils.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,10 @@ public static byte[] asSolidityAddress(final int shard, final long realm, final
123123
return solidityAddress;
124124
}
125125

126+
public static byte[] asSolidityAddress(final HapiSpec spec, final long num) {
127+
return asSolidityAddress((int) spec.shard(), spec.realm(), num);
128+
}
129+
126130
public static byte[] asAddressInTopic(final byte[] solidityAddress) {
127131
final byte[] topicAddress = new byte[32];
128132

@@ -429,8 +433,8 @@ public static Address headlongFromHexed(final String addr) {
429433
}
430434

431435
public static Address mirrorAddrWith(HapiSpec spec, final long num) {
432-
return Address.wrap(toChecksumAddress(
433-
new BigInteger(1, HapiPropertySource.asSolidityAddress((int) spec.shard(), spec.realm(), num))));
436+
return Address.wrap(
437+
toChecksumAddress(new BigInteger(1, asSolidityAddress((int) spec.shard(), spec.realm(), num))));
434438
}
435439

436440
public static Function<HapiSpec, Object[]> mirrorAddrParamFunction(final long contractNum) {
@@ -442,8 +446,7 @@ public static Address nonMirrorAddrWith(final long num) {
442446
}
443447

444448
public static Address nonMirrorAddrWith(final long seed, final long num) {
445-
return Address.wrap(
446-
toChecksumAddress(new BigInteger(1, HapiPropertySource.asSolidityAddress((int) seed, seed, num))));
449+
return Address.wrap(toChecksumAddress(new BigInteger(1, asSolidityAddress((int) seed, seed, num))));
447450
}
448451

449452
public static long expectedPrecompileGasFor(

hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/ethereum/HelloWorldEthereumSuite.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import static com.hedera.services.bdd.junit.TestTags.SMART_CONTRACT;
55
import static com.hedera.services.bdd.spec.HapiPropertySource.asAccountString;
66
import static com.hedera.services.bdd.spec.HapiPropertySource.asHexedSolidityAddress;
7-
import static com.hedera.services.bdd.spec.HapiPropertySource.asSolidityAddress;
87
import static com.hedera.services.bdd.spec.HapiPropertySource.asToken;
98
import static com.hedera.services.bdd.spec.HapiSpec.hapiTest;
109
import static com.hedera.services.bdd.spec.assertions.AccountInfoAsserts.accountWith;
@@ -58,6 +57,7 @@
5857
import static com.hedera.services.bdd.suites.HapiSuite.SECP_256K1_SOURCE_KEY;
5958
import static com.hedera.services.bdd.suites.HapiSuite.THOUSAND_HBAR;
6059
import static com.hedera.services.bdd.suites.contract.Utils.FunctionType.CONSTRUCTOR;
60+
import static com.hedera.services.bdd.suites.contract.Utils.asSolidityAddress;
6161
import static com.hedera.services.bdd.suites.contract.Utils.eventSignatureOf;
6262
import static com.hedera.services.bdd.suites.contract.Utils.getABIFor;
6363
import static com.hedera.services.bdd.suites.crypto.AutoCreateUtils.updateSpecFor;
@@ -76,6 +76,7 @@
7676
import com.google.protobuf.ByteString;
7777
import com.hedera.node.app.hapi.utils.ethereum.EthTxData;
7878
import com.hedera.services.bdd.junit.HapiTest;
79+
import com.hedera.services.bdd.spec.HapiPropertySource;
7980
import com.hedera.services.bdd.spec.queries.meta.AccountCreationDetails;
8081
import com.hederahashgraph.api.proto.java.ResponseCodeEnum;
8182
import java.math.BigInteger;
@@ -634,8 +635,7 @@ final Stream<DynamicTest> topLevelLazyCreateOfMirrorAddressReverts() {
634635
newKeyNamed(SECP_256K1_SOURCE_KEY).shape(SECP_256K1_SHAPE),
635636
cryptoCreate(RELAYER).balance(123 * ONE_HUNDRED_HBARS),
636637
cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HUNDRED_HBARS)),
637-
withOpContext((spec, opLog) -> ethereumCryptoTransferToExplicit(
638-
asSolidityAddress((int) spec.shard(), spec.realm(), 666_666), 123)
638+
withOpContext((spec, opLog) -> ethereumCryptoTransferToExplicit(asSolidityAddress(spec, 666_666), 123)
639639
.type(EthTxData.EthTransactionType.EIP1559)
640640
.signingWith(SECP_256K1_SOURCE_KEY)
641641
.payingWith(RELAYER)
@@ -657,7 +657,7 @@ final Stream<DynamicTest> topLevelSendToReceiverSigRequiredAccountReverts() {
657657
cryptoTransfer(tinyBarsFromAccountToAlias(GENESIS, SECP_256K1_SOURCE_KEY, ONE_HUNDRED_HBARS)),
658658
cryptoCreate(receiverSigAccount)
659659
.receiverSigRequired(true)
660-
.exposingCreatedIdTo(id -> receiverMirrorAddr.set(asSolidityAddress(id))),
660+
.exposingCreatedIdTo(id -> receiverMirrorAddr.set(HapiPropertySource.asSolidityAddress(id))),
661661
uploadInitCode(JUST_SEND_CONTRACT),
662662
contractCreate(JUST_SEND_CONTRACT),
663663
balanceSnapshot(preCallBalance, receiverSigAccount),

hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/evm/Evm46ValidationSuite.java

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33

44
import static com.hedera.node.app.hapi.utils.EthSigsUtils.recoverAddressFromPubKey;
55
import static com.hedera.services.bdd.junit.TestTags.SMART_CONTRACT;
6+
import static com.hedera.services.bdd.spec.HapiPropertySource.asAccount;
67
import static com.hedera.services.bdd.spec.HapiPropertySource.asAccountString;
78
import static com.hedera.services.bdd.spec.HapiPropertySource.asContract;
89
import static com.hedera.services.bdd.spec.HapiPropertySource.asContractIdWithEvmAddress;
9-
import static com.hedera.services.bdd.spec.HapiPropertySource.asSolidityAddress;
1010
import static com.hedera.services.bdd.spec.HapiPropertySource.idAsHeadlongAddress;
1111
import static com.hedera.services.bdd.spec.HapiSpec.defaultHapiSpec;
1212
import static com.hedera.services.bdd.spec.HapiSpec.hapiTest;
@@ -42,6 +42,7 @@
4242
import static com.hedera.services.bdd.suites.HapiSuite.flattened;
4343
import static com.hedera.services.bdd.suites.contract.Utils.FunctionType.FUNCTION;
4444
import static com.hedera.services.bdd.suites.contract.Utils.asAddress;
45+
import static com.hedera.services.bdd.suites.contract.Utils.asSolidityAddress;
4546
import static com.hedera.services.bdd.suites.contract.Utils.getABIFor;
4647
import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrParamFunction;
4748
import static com.hedera.services.bdd.suites.contract.Utils.mirrorAddrWith;
@@ -1129,11 +1130,7 @@ final Stream<DynamicTest> internalCallsAgainstSystemAccountsWithValue() {
11291130
contractCreate(MAKE_CALLS_CONTRACT).gas(400_000L),
11301131
balanceSnapshot("initialBalance", MAKE_CALLS_CONTRACT),
11311132
contractCall(MAKE_CALLS_CONTRACT, withAmount, (spec) -> List.of(
1132-
idAsHeadlongAddress(AccountID.newBuilder()
1133-
.setShardNum(spec.shard())
1134-
.setRealmNum(spec.realm())
1135-
.setAccountNum(357)
1136-
.build()),
1133+
idAsHeadlongAddress(asAccount(spec, 357)),
11371134
new byte[] {"system account".getBytes()[0]})
11381135
.toArray())
11391136
.gas(GAS_LIMIT_FOR_CALL * 4)
@@ -1382,8 +1379,7 @@ final Stream<DynamicTest> directCallToSystemAccountResultsInSuccessfulNoOp() {
13821379
withOpContext((spec, opLog) -> spec.registry()
13831380
.saveContractId(
13841381
"contract",
1385-
asContractIdWithEvmAddress(ByteString.copyFrom(
1386-
asSolidityAddress((int) spec.shard(), spec.realm(), 629))))),
1382+
asContractIdWithEvmAddress(ByteString.copyFrom(asSolidityAddress(spec, 629))))),
13871383
withOpContext((spec, ctxLog) -> allRunFor(
13881384
spec,
13891385
contractCallWithFunctionAbi("contract", getABIFor(FUNCTION, NAME, ERC_721_ABI))

hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hapi/ContractCreateSuite.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
import static com.hedera.services.bdd.suites.HapiSuite.TOKEN_TREASURY;
6767
import static com.hedera.services.bdd.suites.HapiSuite.ZERO_BYTE_MEMO;
6868
import static com.hedera.services.bdd.suites.contract.Utils.FunctionType.FUNCTION;
69+
import static com.hedera.services.bdd.suites.contract.Utils.asSolidityAddress;
6970
import static com.hedera.services.bdd.suites.contract.Utils.getABIFor;
7071
import static com.hedera.services.bdd.suites.contract.hapi.ContractUpdateSuite.ADMIN_KEY;
7172
import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.BUSY;
@@ -100,7 +101,6 @@
100101
import com.hedera.pbj.runtime.OneOf;
101102
import com.hedera.services.bdd.junit.HapiTest;
102103
import com.hedera.services.bdd.junit.LeakyHapiTest;
103-
import com.hedera.services.bdd.spec.HapiPropertySource;
104104
import com.hedera.services.bdd.spec.HapiSpec;
105105
import com.hedera.services.bdd.spec.assertions.ContractInfoAsserts;
106106
import com.hedera.services.bdd.spec.keys.KeyShape;
@@ -264,10 +264,7 @@ final Stream<DynamicTest> cannotSendToNonExistentAccount() {
264264
final var contract = "Multipurpose";
265265

266266
return hapiTest(uploadInitCode(contract), contractCreate(contract).balance(666), withOpContext((spec, log) -> {
267-
Object[] donationArgs = new Object[] {
268-
new BigInteger(HapiPropertySource.asSolidityAddress((int) spec.shard(), spec.realm(), 666666L)),
269-
"Hey, Ma!"
270-
};
267+
Object[] donationArgs = new Object[] {new BigInteger(asSolidityAddress(spec, 666666L)), "Hey, Ma!"};
271268
final var callOp = contractCall(contract, "donate", donationArgs).hasKnownStatus(CONTRACT_REVERT_EXECUTED);
272269
allRunFor(spec, callOp);
273270
}));
@@ -594,10 +591,8 @@ final Stream<DynamicTest> delegateContractIdRequiredForTransferInDelegateCall()
594591
final var callOP = contractCall(
595592
sendInternalAndDelegateContract,
596593
"sendRepeatedlyTo",
597-
new BigInteger(HapiPropertySource.asSolidityAddress(
598-
(int) spec.shard(), spec.realm(), justSendContractNum.get())),
599-
new BigInteger(HapiPropertySource.asSolidityAddress(
600-
(int) spec.shard(), spec.realm(), beneficiaryAccountNum.get())),
594+
new BigInteger(asSolidityAddress(spec, justSendContractNum.get())),
595+
new BigInteger(asSolidityAddress(spec, beneficiaryAccountNum.get())),
601596
BigInteger.valueOf(totalToSend / 2));
602597
allRunFor(spec, callOP);
603598
}),
@@ -609,10 +604,8 @@ final Stream<DynamicTest> delegateContractIdRequiredForTransferInDelegateCall()
609604
final var callOp = contractCall(
610605
sendInternalAndDelegateContract,
611606
"sendRepeatedlyTo",
612-
new BigInteger(HapiPropertySource.asSolidityAddress(
613-
(int) spec.shard(), spec.realm(), justSendContractNum.get())),
614-
new BigInteger(HapiPropertySource.asSolidityAddress(
615-
(int) spec.shard(), spec.realm(), beneficiaryAccountNum.get())),
607+
new BigInteger(asSolidityAddress(spec, justSendContractNum.get())),
608+
new BigInteger(asSolidityAddress(spec, beneficiaryAccountNum.get())),
616609
BigInteger.valueOf(totalToSend / 2));
617610
allRunFor(spec, callOp);
618611
}),

hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/hips/hip583/CreateWithAliasDisabledTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import static com.hedera.services.bdd.suites.HapiSuite.SECP_256K1_SHAPE;
2323
import static com.hedera.services.bdd.suites.HapiSuite.SECP_256K1_SOURCE_KEY;
2424
import static com.hedera.services.bdd.suites.contract.Utils.asAddress;
25+
import static com.hedera.services.bdd.suites.contract.Utils.asSolidityAddress;
2526
import static com.hedera.services.bdd.suites.contract.ethereum.EthereumSuite.GAS_LIMIT;
2627
import static com.hedera.services.bdd.suites.contract.hapi.ContractCallSuite.PAY_RECEIVABLE_CONTRACT;
2728
import static com.hedera.services.bdd.suites.contract.leaky.LeakyContractTestsSuite.GAS_TO_OFFER;
@@ -44,7 +45,6 @@
4445
import com.hedera.services.bdd.spec.assertions.ContractFnResultAsserts;
4546
import com.hedera.services.bdd.spec.assertions.TransactionRecordAsserts;
4647
import com.hedera.services.bdd.spec.transactions.contract.HapiParserUtil;
47-
import com.hedera.services.bdd.suites.contract.Utils;
4848
import edu.umd.cs.findbugs.annotations.NonNull;
4949
import java.util.Map;
5050
import java.util.stream.Stream;
@@ -96,8 +96,8 @@ final Stream<DynamicTest> createTokenWithInvalidFeeCollector() {
9696
.getKey(ECDSA_KEY)
9797
.getECDSASecp256K1()
9898
.toByteArray(),
99-
HapiParserUtil.asHeadlongAddress((byte[]) ArrayUtils.toPrimitive(
100-
Utils.asSolidityAddress((int) spec.shard(), spec.realm(), 15252L))),
99+
HapiParserUtil.asHeadlongAddress(
100+
(byte[]) ArrayUtils.toPrimitive(asSolidityAddress(spec, 15252L))),
101101
HapiParserUtil.asHeadlongAddress(
102102
asAddress(spec.registry().getTokenID(EXISTING_TOKEN))),
103103
HapiParserUtil.asHeadlongAddress(

hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/ContractHTSSuite.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import static com.hedera.services.bdd.spec.transactions.TxnVerbs.tokenCreate;
1919
import static com.hedera.services.bdd.spec.transactions.TxnVerbs.uploadInitCode;
2020
import static com.hedera.services.bdd.spec.transactions.contract.HapiParserUtil.asHeadlongAddress;
21-
import static com.hedera.services.bdd.spec.transactions.contract.HapiParserUtil.toAddressStringWithShardAndRealm;
2221
import static com.hedera.services.bdd.spec.transactions.token.TokenMovement.moving;
2322
import static com.hedera.services.bdd.spec.transactions.token.TokenMovement.movingUnique;
2423
import static com.hedera.services.bdd.spec.utilops.CustomSpecAssert.allRunFor;
@@ -31,6 +30,7 @@
3130
import static com.hedera.services.bdd.suites.HapiSuite.ONE_HBAR;
3231
import static com.hedera.services.bdd.suites.HapiSuite.ONE_HUNDRED_HBARS;
3332
import static com.hedera.services.bdd.suites.contract.Utils.asAddress;
33+
import static com.hedera.services.bdd.suites.contract.Utils.asSolidityAddress;
3434
import static com.hedera.services.bdd.suites.contract.Utils.asToken;
3535
import static com.hedera.services.bdd.suites.contract.Utils.getNestedContractAddress;
3636
import static com.hedera.services.bdd.suites.contract.hapi.ContractCallSuite.RECEIVER_2;
@@ -781,8 +781,7 @@ final Stream<DynamicTest> shouldFailOnInvalidNFTTransferParametersAndConditions(
781781
HapiParserUtil.asHeadlongAddress(
782782
asAddress(spec.registry().getTokenID(NON_FUNGIBLE_TOKEN))),
783783
sender,
784-
asHeadlongAddress(toAddressStringWithShardAndRealm(
785-
(int) spec.shard(), spec.realm(), "0")),
784+
asHeadlongAddress(asSolidityAddress(spec, 0)),
786785
1L)
787786
.payingWith(GENESIS)
788787
.gas(GAS_TO_OFFER)

hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/contract/precompile/CreatePrecompileSuite.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import static com.hedera.services.bdd.suites.HapiSuite.ONE_HUNDRED_HBARS;
3838
import static com.hedera.services.bdd.suites.HapiSuite.ONE_MILLION_HBARS;
3939
import static com.hedera.services.bdd.suites.contract.Utils.asAddress;
40+
import static com.hedera.services.bdd.suites.contract.Utils.asSolidityAddress;
4041
import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.ACCOUNT_IS_TREASURY;
4142
import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.CONTRACT_REVERT_EXECUTED;
4243
import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.INSUFFICIENT_TX_FEE;
@@ -54,7 +55,6 @@
5455
import com.hedera.services.bdd.spec.transactions.contract.HapiEthereumCall;
5556
import com.hedera.services.bdd.spec.transactions.contract.HapiParserUtil;
5657
import com.hedera.services.bdd.spec.transactions.token.TokenMovement;
57-
import com.hedera.services.bdd.suites.contract.Utils;
5858
import com.hederahashgraph.api.proto.java.ResponseCodeEnum;
5959
import com.hederahashgraph.api.proto.java.TokenFreezeStatus;
6060
import com.hederahashgraph.api.proto.java.TokenPauseStatus;
@@ -835,9 +835,8 @@ final Stream<DynamicTest> createTokenWithInvalidTreasury() {
835835
contractCall(
836836
TOKEN_CREATE_CONTRACT,
837837
CREATE_NFT_WITH_KEYS_AND_EXPIRY_FUNCTION,
838-
HapiParserUtil.asHeadlongAddress((byte[]) ArrayUtils.toPrimitive(
839-
Utils.asSolidityAddress(
840-
(int) spec.shard(), spec.realm(), 999_999_999L))),
838+
HapiParserUtil.asHeadlongAddress(
839+
(byte[]) ArrayUtils.toPrimitive(asSolidityAddress(spec, 999_999_999L))),
841840
spec.registry()
842841
.getKey(ED25519KEY)
843842
.getEd25519()

0 commit comments

Comments
 (0)