deserialize method

  1. @override
dynamic deserialize(
  1. 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]');
  }
}