Versioned framed protocol for the isolated Lighter signing helper.
Frames carry typed values only. The helper never returns native error text, so failures cannot reflect key material into the BEAM or logs.
Summary
Functions
Decodes one response and verifies its operation and request ID.
Encodes the one-time helper initialization request.
Encodes a whitelisted signing operation.
Types
@type operation() ::
:auth_token
| :create_order
| :cancel_order
| :cancel_all_orders
| :modify_order
| :update_leverage
| :update_margin
@type protocol_error() ::
:protocol_error
| :not_initialized
| :already_initialized
| :invalid_argument
| :client_initialization_failed
| :signing_failed
| :response_too_large
@type signed_transaction() :: %{ tx_type: non_neg_integer(), tx_info: String.t(), tx_hash: String.t(), message_to_sign: String.t() }
Functions
@spec decode_response(binary(), :init | operation(), non_neg_integer()) :: :ok | {:ok, String.t() | signed_transaction()} | {:error, protocol_error()}
Decodes one response and verifies its operation and request ID.
@spec encode_init( non_neg_integer(), String.t(), String.t(), non_neg_integer(), non_neg_integer(), pos_integer() ) :: {:ok, binary()} | {:error, :invalid_argument}
Encodes the one-time helper initialization request.
@spec encode_request(non_neg_integer(), operation(), map()) :: {:ok, binary()} | {:error, :invalid_argument}
Encodes a whitelisted signing operation.