# Titan API Types

Contains type definitions for the wire protocol used by the Titan API.

## Features

The following features are enabled by default:

- `pubkey-str`: Enables conversions of `Pubkey` to/from string via `five8`.
- `pubkey-fromstr-const`: Enables runtime parsing of Base58 strings to `Pubkey`
  via `five8_const`, and enables the `pubkey!` macro.
- `serde`: Enables `serde` serialization for all types.
- `serde-pubkey-human-base58`: Adds special handling to `serde` (de)serialization
  to encode pubkeys as base58 strings instead of arrays when the format defines
  itself as human readable. Binary formats will use more efficient encoding.
- `serde-instruction-human-base64`: Adds special handling to `serde`
  (de)serialization to encode instruction data as base64 strings instead of arrays
  when the format defines itself as human readable. Binary formats will use more
  efficient encoding.

The following optional features are also available:

- `enum-other`: Adds an additional `Other` value to most enums to allow for
  handling unknown Client and Server message types. Adds a dependency on `rmpv`.
- `solana-pubkey-convert-v2`: Adds conversions to/from the `Pubkey` type in
  version 2 of the `solana_pubkey` crate.
- `solana-instruction-convert-v2`: Adds conversions to/from the `Instruction`
  and `AccountMeta` types in version 2 of the `solana_instruction` crate.
  Enables `solana-pubkey-convert-v2`.
- `solana-pubkey-convert-v3`: Adds conversions to/from the `Pubkey` type
  in version 3 of the `solana_pubkey` crate.
- `solana-instruction-convert-v3`: Adds conversions to/from the `Instruction`
  and `AccountMeta` types in version 3 of the `solana_instruction` crate.
  Enables `solana-pubkey-convert-v2`.
- `solana-address-convert-v1`: Adds conversions to/from the `Address` type
  in v1 of the `solana_address` crate.
- `solana-address-convert-v2`: Adds conversions to/from the `Address` type
  in v2 of the `solana_address` crate.
- `solana-alt-account-convert-v2`: Adds conversions to/from the
  `AddressLookupTableAccount` type in v2 of the `solana-message` crate.
- `solana-alt-account-convert-v3`: Adds conversions to/from the
  `AddressLookupTableAccount` type in v3 of the `solana-message` crate.
- `solana-alt-account-convert-v4`: Adds conversions to/from the
  `AddressLookupTableAccount` type in v4 of the `solana-message` crate.
