BinanceSpotRest.Validators.IcebergQty (Binance Spot Rest v0.2.1)
View SourceInternal
Validator for the icebergQty field.
Rules:
icebergQtyis optional.- If present, it must be a Decimal.
- It is only allowed when
timeInForceis:GTCornil. - It must be less than the
quantityvalue.
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