use of com.swirlds.common.constructable.ClassConstructorPair in project hedera-services by hashgraph.
the class RecordStreamFileParsingTest method setUp.
@BeforeAll
public static void setUp() throws ConstructableRegistryException {
// this register is needed so that the Hash objects can be de-serialized
ConstructableRegistry.registerConstructables("com.swirlds.common");
// this register is needed so that RecordStreamObject can be de-serialized
ConstructableRegistry.registerConstructable(new ClassConstructorPair(RecordStreamObject.class, RecordStreamObject::new));
// the following settings are needed for de-serializing Transaction
SettingsCommon.maxTransactionCountPerEvent = 245760;
SettingsCommon.maxTransactionBytesPerEvent = 245760;
SettingsCommon.transactionMaxBytes = 6144;
}
use of com.swirlds.common.constructable.ClassConstructorPair in project hedera-services by hashgraph.
the class AccountsReader method from.
public static MerkleMap<EntityNum, MerkleAccount> from(String loc) throws Exception {
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleLong.class, MerkleLong::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(FCQueue.class, FCQueue::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleMap.class, MerkleMap::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleEntityId.class, MerkleEntityId::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(EntityId.class, EntityId::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleAccount.class, MerkleAccount::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleAccountState.class, MerkleAccountState::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(ExpirableTxnRecord.class, ExpirableTxnRecord::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(TxnReceipt.class, TxnReceipt::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(TxnId.class, TxnId::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(CurrencyAdjustments.class, CurrencyAdjustments::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(EvmFnResult.class, EvmFnResult::new));
try (MerkleDataInputStream in = new MerkleDataInputStream(Files.newInputStream(Path.of(loc)))) {
MerkleMap<EntityNum, MerkleAccount> fcm = in.readMerkleTree(Integer.MAX_VALUE);
return fcm;
}
}
use of com.swirlds.common.constructable.ClassConstructorPair in project hedera-services by hashgraph.
the class FcmToJsonUtil method convertStorageToJson.
@Test
void convertStorageToJson() throws Exception {
String[] round60Locs = { // "/Users/tinkerm/Dev/hgn3/hedera-services/hedera-node/n0-storage-round60.fcm",
"/Users/tinkerm/Dev/hgn3/hedera-services/hedera-node/n1-storage-round60.fcm" // "/Users/tinkerm/Dev/hgn3/hedera-services/hedera-node/n2-storage-round60.fcm",
// "/Users/tinkerm/Dev/hgn3/hedera-services/hedera-node/n3-storage-round60.fcm",
};
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleLong.class, MerkleLong::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleBlobMeta.class, MerkleBlobMeta::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleOptionalBlob.class, MerkleOptionalBlob::new));
for (String dumpLoc : round60Locs) {
System.out.println("Reading " + dumpLoc);
PojoFs.fromDisk(dumpLoc).asJsonTo(jsonSuffixed(dumpLoc));
}
}
use of com.swirlds.common.constructable.ClassConstructorPair in project hedera-services by hashgraph.
the class FcmToJsonUtil method convertAccountsToJson.
@Test
void convertAccountsToJson() throws Exception {
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleLong.class, MerkleLong::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(FCQueue.class, FCQueue::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleEntityId.class, MerkleEntityId::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(EntityId.class, EntityId::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleAccount.class, MerkleAccount::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleAccountState.class, MerkleAccountState::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(ExpirableTxnRecord.class, ExpirableTxnRecord::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(TxnReceipt.class, TxnReceipt::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(TxnId.class, TxnId::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(CurrencyAdjustments.class, CurrencyAdjustments::new));
ConstructableRegistry.registerConstructable(new ClassConstructorPair(EvmFnResult.class, EvmFnResult::new));
for (String dumpLoc : accountsLocs) {
PojoLedger.fromDisk(dumpLoc).asJsonTo(jsonSuffixed(dumpLoc));
}
}
use of com.swirlds.common.constructable.ClassConstructorPair in project hedera-services by hashgraph.
the class SignedStateBalancesExporterTest method setUp.
@BeforeEach
void setUp() throws ConstructableRegistryException {
ConstructableRegistry.registerConstructable(new ClassConstructorPair(MerkleAccount.class, MerkleAccount::new));
thisNodeAccount = MerkleAccountFactory.newAccount().balance(thisNodeBalance).get();
anotherNodeAccount = MerkleAccountFactory.newAccount().balance(anotherNodeBalance).get();
firstNonNodeAccount = MerkleAccountFactory.newAccount().balance(firstNonNodeAccountBalance).get();
secondNonNodeAccount = MerkleAccountFactory.newAccount().balance(secondNonNodeAccountBalance).tokens(theToken, theDeletedToken, theMissingToken).get();
deletedAccount = MerkleAccountFactory.newAccount().deleted(true).get();
accounts.put(fromAccountId(thisNode), thisNodeAccount);
accounts.put(fromAccountId(anotherNode), anotherNodeAccount);
accounts.put(fromAccountId(firstNonNode), firstNonNodeAccount);
accounts.put(fromAccountId(secondNonNode), secondNonNodeAccount);
accounts.put(fromAccountId(deleted), deletedAccount);
token = mock(MerkleToken.class);
given(token.isDeleted()).willReturn(false);
deletedToken = mock(MerkleToken.class);
given(deletedToken.isDeleted()).willReturn(true);
tokens.put(fromTokenId(theToken), token);
tokens.put(fromTokenId(theDeletedToken), deletedToken);
tokenRels.put(fromAccountTokenRel(secondNonNode, theToken), new MerkleTokenRelStatus(secondNonNodeTokenBalance, false, true, false));
tokenRels.put(fromAccountTokenRel(secondNonNode, theDeletedToken), new MerkleTokenRelStatus(secondNonNodeDeletedTokenBalance, false, true, false));
assurance = mock(DirectoryAssurance.class);
properties = mock(PropertySource.class);
given(properties.getLongProperty("ledger.totalTinyBarFloat")).willReturn(ledgerFloat);
var firstNodeAddress = mock(Address.class);
given(firstNodeAddress.getMemo()).willReturn("0.0.3");
var secondNodeAddress = mock(Address.class);
given(secondNodeAddress.getMemo()).willReturn("0.0.4");
var book = mock(AddressBook.class);
given(book.getSize()).willReturn(2);
given(book.getAddress(0)).willReturn(firstNodeAddress);
given(book.getAddress(1)).willReturn(secondNodeAddress);
state = mock(ServicesState.class);
given(state.getAccountFromNodeId(nodeId)).willReturn(thisNode);
given(state.tokens()).willReturn(tokens);
given(state.accounts()).willReturn(accounts);
given(state.tokenAssociations()).willReturn(tokenRels);
given(state.addressBook()).willReturn(book);
signer = mock(UnaryOperator.class);
given(signer.apply(fileHash)).willReturn(sig);
systemExits = mock(SystemExits.class);
subject = new SignedStateBalancesExporter(systemExits, properties, signer, dynamicProperties);
sigFileWriter = mock(SigFileWriter.class);
hashReader = mock(FileHashReader.class);
subject.sigFileWriter = sigFileWriter;
subject.hashReader = hashReader;
}
Aggregations