BinanceSpotRest.Validators.IcebergQty (Binance Spot Rest v0.2.1)

View Source

Internal

Validator for the icebergQty field.

Rules:

  • icebergQty is optional.
  • If present, it must be a Decimal.
  • It is only allowed when timeInForce is :GTC or nil.
  • It must be less than the quantity value.

Examples

iex> BinanceSpotRest.Validators.IcebergQty.validate(%{icebergQty: Decimal.new("0.5"), timeInForce: :GTC, quantity: Decimal.new("1.0")})
:ok

iex> {:error, %Valpa.Error{field: :timeInForce}} = BinanceSpotRest.Validators.IcebergQty.validate(%{icebergQty: Decimal.new("0.5"), timeInForce: :IOC, quantity: Decimal.new("1.0")})

iex> {:error, %Valpa.Error{field: :icebergQty}} = BinanceSpotRest.Validators.IcebergQty.validate(%{icebergQty: Decimal.new("1.5"), timeInForce: :GTC, quantity: Decimal.new("1.0")})

iex> BinanceSpotRest.Validators.IcebergQty.validate(%{icebergQty: Decimal.new("0.5"), quantity: Decimal.new("1.0")})
:ok

iex> {:error, %Valpa.Error{field: :icebergQty}} = BinanceSpotRest.Validators.IcebergQty.validate(%{icebergQty: "0.5", timeInForce: :GTC, quantity: Decimal.new("1.0")})

iex> {:error, %Valpa.Error{field: :quantity}} = BinanceSpotRest.Validators.IcebergQty.validate(%{icebergQty: Decimal.new("0.5"), timeInForce: :GTC})

iex> BinanceSpotRest.Validators.IcebergQty.validate(%{timeInForce: :GTC, quantity: Decimal.new("1.0")})
:ok

iex> BinanceSpotRest.Validators.IcebergQty.validate(%{})
:ok

Summary

Functions

validate(map, iceberg_qty_key, time_in_force_key, quantity_key)