use of com.hederahashgraph.api.proto.java.Key in project hedera-services by hashgraph.
the class FeeBuilderTest method assertCalculateKeysMetadata.
@Test
void assertCalculateKeysMetadata() {
int[] countKeyMetatData = { 0, 0 };
Key validKey = Key.newBuilder().setEd25519(ByteString.copyFromUtf8("a479462fba67674b5a41acfb16cb6828626b61d3f389fa611005a45754130e5c749073c0b1b791596430f4a54649cc8a3f6d28147dd4099070a5c3c4811d1771")).build();
Key validKey1 = Key.newBuilder().setEd25519(ByteString.copyFromUtf8("a479462fba67674b5a41acfb16cb6828626b61d3f389fa611005a45754130e5c749073c0b1b791596430f4a54649cc8a3f6d28147dd4099070a5c3c4811d1771")).build();
Key validED25519Keys = Key.newBuilder().setKeyList(KeyList.newBuilder().addKeys(validKey).addKeys(validKey1).build()).build();
assertEquals(countKeyMetatData.length, FeeBuilder.calculateKeysMetadata(validED25519Keys, countKeyMetatData).length);
assertEquals(4, FeeBuilder.calculateKeysMetadata(validED25519Keys, countKeyMetatData)[0]);
}
use of com.hederahashgraph.api.proto.java.Key in project hedera-services by hashgraph.
the class ImpliedTransfersMarshalTest method hasAliasInChanges.
@Test
void hasAliasInChanges() {
Key aliasA = KeyFactory.getDefaultInstance().newEd25519();
Key aliasB = KeyFactory.getDefaultInstance().newEd25519();
AccountID a = AccountID.newBuilder().setShardNum(0).setRealmNum(0).setAccountNum(9_999L).setAlias(aliasA.toByteString()).build();
AccountID validAliasAccount = AccountID.newBuilder().setAlias(aliasB.toByteString()).build();
setupProps();
final var builder = CryptoTransferTransactionBody.newBuilder().setTransfers(TransferList.newBuilder().addAccountAmounts(adjustFrom(a, -100)).addAccountAmounts(adjustFrom(validAliasAccount, 100)).build());
op = builder.build();
final List<BalanceChange> expectedChanges = new ArrayList<>();
expectedChanges.add(changingHbar(adjustFrom(a, -100), payer));
expectedChanges.add(changingHbar(adjustFrom(validAliasAccount, +100), payer));
final var expectedMeta = new ImpliedTransfersMeta(propsWithAutoCreation, OK, Collections.emptyList(), NO_ALIASES);
givenValidity(OK);
final var result = subject.unmarshalFromGrpc(op, payer);
assertEquals(expectedChanges, result.getAllBalanceChanges());
assertEquals(aliasA.toByteString(), result.getAllBalanceChanges().get(0).alias());
assertEquals(aliasB.toByteString(), result.getAllBalanceChanges().get(1).alias());
assertEquals(result.getMeta(), expectedMeta);
assertTrue(result.getAssessedCustomFees().isEmpty());
}
use of com.hederahashgraph.api.proto.java.Key in project hedera-services by hashgraph.
the class CryptoCreateSuite method createAnAccountInvalidThresholdKey.
// One of element in threshold key is not valid
private HapiApiSpec createAnAccountInvalidThresholdKey() {
KeyShape emptyListShape = listOf(0);
KeyShape thresholdShape = threshOf(1, SIMPLE, SIMPLE, emptyListShape);
long initialBalance = 10_000L;
// build a threshold key with one of key is invalid
Key randomKey1 = Key.newBuilder().setEd25519(ByteString.copyFrom(randomUtf8Bytes(32))).build();
Key randomKey2 = Key.newBuilder().setEd25519(ByteString.copyFrom(randomUtf8Bytes(32))).build();
Key shortKey = Key.newBuilder().setEd25519(ByteString.copyFrom(new byte[10])).build();
KeyList invalidKeyList = KeyList.newBuilder().addKeys(randomKey1).addKeys(randomKey2).addKeys(shortKey).build();
ThresholdKey invalidThresholdKey = ThresholdKey.newBuilder().setThreshold(2).setKeys(invalidKeyList).build();
Key regKey1 = Key.newBuilder().setThresholdKey(invalidThresholdKey).build();
Key regKey2 = Key.newBuilder().setKeyList(invalidKeyList).build();
return defaultHapiSpec("createAnAccountInvalidThresholdKey").given().when().then(withOpContext((spec, opLog) -> {
spec.registry().saveKey("regKey1", regKey1);
spec.registry().saveKey("regKey2", regKey2);
}), cryptoCreate("badThresholdKeyAccount").keyShape(thresholdShape).balance(initialBalance).logged().hasPrecheck(BAD_ENCODING), cryptoCreate("badThresholdKeyAccount2").key("regKey1").balance(initialBalance).logged().signedBy(GENESIS).hasPrecheck(BAD_ENCODING), cryptoCreate("badThresholdKeyAccount3").key("regKey2").balance(initialBalance).logged().signedBy(GENESIS).hasPrecheck(BAD_ENCODING));
}
use of com.hederahashgraph.api.proto.java.Key in project hedera-services by hashgraph.
the class CryptoCreateSuite method createAnAccountInvalidED25519.
private HapiApiSpec createAnAccountInvalidED25519() {
long initialBalance = 10_000L;
Key emptyKey = Key.newBuilder().setEd25519(ByteString.EMPTY).build();
Key shortKey = Key.newBuilder().setEd25519(ByteString.copyFrom(new byte[10])).build();
return defaultHapiSpec("createAnAccountInvalidED25519").given().when().then(withOpContext((spec, opLog) -> {
spec.registry().saveKey("shortKey", shortKey);
spec.registry().saveKey("emptyKey", emptyKey);
}), cryptoCreate("shortKey").key("shortKey").balance(initialBalance).signedBy(GENESIS).logged().hasPrecheck(BAD_ENCODING), cryptoCreate("emptyKey").key("emptyKey").balance(initialBalance).signedBy(GENESIS).logged().hasPrecheck(BAD_ENCODING));
}
use of com.hederahashgraph.api.proto.java.Key in project hedera-services by hashgraph.
the class JKey method equalUpToDecodability.
public static boolean equalUpToDecodability(JKey a, JKey b) {
Key aKey = null;
Key bKey = null;
try {
aKey = mapJKey(a);
} catch (Exception ignore) {
}
try {
bKey = mapJKey(b);
} catch (Exception ignore) {
}
return Objects.equals(aKey, bKey);
}
Aggregations