bcs_serde 0.0.1 copy "bcs_serde: ^0.0.1" to clipboard
bcs_serde: ^0.0.1 copied to clipboard

BCS serialization deserialization package

BCS serializer deserializer Easy to use


class _AnyPublicKeySerializer implements BCSSerializer<AnyPublicKey> {
  const _AnyPublicKeySerializer._();

  @override
  AnyPublicKey deserializeIn(Deserializer deserializer) {
    final variant = deserializer.deserializeUleb128AsU32();
    if (variant == AnyPublicKeyVariant.keyless._underline) {
      final keyless = KeylessPublicKey.bcsSerializer.deserializeIn(
        deserializer,
      );
      return AnyPublicKey(variant: AnyPublicKeyVariant.keyless, key: keyless);
    } else if (variant == AnyPublicKeyVariant.ed25519._underline) {
      final ed25519 = Ed25519PublicKey.bcsSerializer.deserializeIn(
        deserializer,
      );
      return AnyPublicKey(variant: AnyPublicKeyVariant.ed25519, key: ed25519);
    }
    throw UnimplementedError();
  }

  @override
  void serializeIn(Serializer serializer, AnyPublicKey value) {
    serializer.serializeU32AsUleb128(value.variant._underline);
    if (value.variant == AnyPublicKeyVariant.keyless) {
      KeylessPublicKey.bcsSerializer.serializeIn(
        serializer,
        value.key as KeylessPublicKey,
      );
    } else if (value.variant == AnyPublicKeyVariant.ed25519) {
      Ed25519PublicKey.bcsSerializer.serializeIn(
        serializer,
        value.key as Ed25519PublicKey,
      );
    } else {
      throw UnimplementedError();
    }
  }
}


0
likes
130
points
14
downloads

Publisher

unverified uploader

Weekly Downloads

BCS serialization deserialization package

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, hex

More

Packages that depend on bcs_serde