deserialize method
dynamic
deserialize(
- dynamic payload
)
override
Implementation
@override
dynamic deserialize(dynamic payload) {
if (payload is String) {
tryHexString(payload);
payload = hexToBytes(payload);
}
Uint8List buffer = payload;
var parent = Transaction().deserialize(buffer);
var mapping = <(int, int), ISerializable>{
(
AccountKeyLinkTransactionV1.TRANSACTION_TYPE.value,
AccountKeyLinkTransactionV1.TRANSACTION_VERSION
): AccountKeyLinkTransactionV1(),
(
NodeKeyLinkTransactionV1.TRANSACTION_TYPE.value,
NodeKeyLinkTransactionV1.TRANSACTION_VERSION
): NodeKeyLinkTransactionV1(),
(
AggregateCompleteTransactionV1.TRANSACTION_TYPE.value,
AggregateCompleteTransactionV1.TRANSACTION_VERSION
): AggregateCompleteTransactionV1(),
(
AggregateCompleteTransactionV2.TRANSACTION_TYPE.value,
AggregateCompleteTransactionV2.TRANSACTION_VERSION
): AggregateCompleteTransactionV2(),
(
AggregateCompleteTransactionV3.TRANSACTION_TYPE.value,
AggregateCompleteTransactionV3.TRANSACTION_VERSION
): AggregateCompleteTransactionV3(),
(
AggregateBondedTransactionV1.TRANSACTION_TYPE.value,
AggregateBondedTransactionV1.TRANSACTION_VERSION
): AggregateBondedTransactionV1(),
(
AggregateBondedTransactionV2.TRANSACTION_TYPE.value,
AggregateBondedTransactionV2.TRANSACTION_VERSION
): AggregateBondedTransactionV2(),
(
AggregateBondedTransactionV3.TRANSACTION_TYPE.value,
AggregateBondedTransactionV3.TRANSACTION_VERSION
): AggregateBondedTransactionV3(),
(
VotingKeyLinkTransactionV1.TRANSACTION_TYPE.value,
VotingKeyLinkTransactionV1.TRANSACTION_VERSION
): VotingKeyLinkTransactionV1(),
(
VrfKeyLinkTransactionV1.TRANSACTION_TYPE.value,
VrfKeyLinkTransactionV1.TRANSACTION_VERSION
): VrfKeyLinkTransactionV1(),
(
HashLockTransactionV1.TRANSACTION_TYPE.value,
HashLockTransactionV1.TRANSACTION_VERSION
): HashLockTransactionV1(),
(
SecretLockTransactionV1.TRANSACTION_TYPE.value,
SecretLockTransactionV1.TRANSACTION_VERSION
): SecretLockTransactionV1(),
(
SecretProofTransactionV1.TRANSACTION_TYPE.value,
SecretProofTransactionV1.TRANSACTION_VERSION
): SecretProofTransactionV1(),
(
AccountMetadataTransactionV1.TRANSACTION_TYPE.value,
AccountMetadataTransactionV1.TRANSACTION_VERSION
): AccountMetadataTransactionV1(),
(
MosaicMetadataTransactionV1.TRANSACTION_TYPE.value,
MosaicMetadataTransactionV1.TRANSACTION_VERSION
): MosaicMetadataTransactionV1(),
(
NamespaceMetadataTransactionV1.TRANSACTION_TYPE.value,
NamespaceMetadataTransactionV1.TRANSACTION_VERSION
): NamespaceMetadataTransactionV1(),
(
MosaicDefinitionTransactionV1.TRANSACTION_TYPE.value,
MosaicDefinitionTransactionV1.TRANSACTION_VERSION
): MosaicDefinitionTransactionV1(),
(
MosaicSupplyChangeTransactionV1.TRANSACTION_TYPE.value,
MosaicSupplyChangeTransactionV1.TRANSACTION_VERSION
): MosaicSupplyChangeTransactionV1(),
(
MosaicSupplyRevocationTransactionV1.TRANSACTION_TYPE.value,
MosaicSupplyRevocationTransactionV1.TRANSACTION_VERSION
): MosaicSupplyRevocationTransactionV1(),
(
MultisigAccountModificationTransactionV1.TRANSACTION_TYPE.value,
MultisigAccountModificationTransactionV1.TRANSACTION_VERSION
): MultisigAccountModificationTransactionV1(),
(
AddressAliasTransactionV1.TRANSACTION_TYPE.value,
AddressAliasTransactionV1.TRANSACTION_VERSION
): AddressAliasTransactionV1(),
(
MosaicAliasTransactionV1.TRANSACTION_TYPE.value,
MosaicAliasTransactionV1.TRANSACTION_VERSION
): MosaicAliasTransactionV1(),
(
NamespaceRegistrationTransactionV1.TRANSACTION_TYPE.value,
NamespaceRegistrationTransactionV1.TRANSACTION_VERSION
): NamespaceRegistrationTransactionV1(),
(
AccountAddressRestrictionTransactionV1.TRANSACTION_TYPE.value,
AccountAddressRestrictionTransactionV1.TRANSACTION_VERSION
): AccountAddressRestrictionTransactionV1(),
(
AccountMosaicRestrictionTransactionV1.TRANSACTION_TYPE.value,
AccountMosaicRestrictionTransactionV1.TRANSACTION_VERSION
): AccountMosaicRestrictionTransactionV1(),
(
AccountOperationRestrictionTransactionV1.TRANSACTION_TYPE.value,
AccountOperationRestrictionTransactionV1.TRANSACTION_VERSION
): AccountOperationRestrictionTransactionV1(),
(
MosaicAddressRestrictionTransactionV1.TRANSACTION_TYPE.value,
MosaicAddressRestrictionTransactionV1.TRANSACTION_VERSION
): MosaicAddressRestrictionTransactionV1(),
(
MosaicGlobalRestrictionTransactionV1.TRANSACTION_TYPE.value,
MosaicGlobalRestrictionTransactionV1.TRANSACTION_VERSION
): MosaicGlobalRestrictionTransactionV1(),
(
TransferTransactionV1.TRANSACTION_TYPE.value,
TransferTransactionV1.TRANSACTION_VERSION
): TransferTransactionV1()
};
var discriminator = (parent.type.value, parent.version);
if (mapping[discriminator] != null) {
var factory_class = mapping[discriminator]!;
return factory_class.deserialize(buffer);
} else {
throw Exception('Null value found for mapping[discriminator]');
}
}