From be9a9c9b79a032238e6bf9f64136b6ac3fb36055 Mon Sep 17 00:00:00 2001 From: Kirill Sysoev Date: Wed, 24 Jul 2024 08:03:56 +0000 Subject: [PATCH] Updates API schema --- schema/proposal_open_contract_resp.go | 52 +++++++++++++++++++++++++++ schema/proposal_resp.go | 52 +++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) diff --git a/schema/proposal_open_contract_resp.go b/schema/proposal_open_contract_resp.go index b7146a4..814155c 100644 --- a/schema/proposal_open_contract_resp.go +++ b/schema/proposal_open_contract_resp.go @@ -304,6 +304,9 @@ type ProposalOpenContractRespProposalOpenContract struct { // Error code if validation fails ValidationErrorCode *string `json:"validation_error_code,omitempty"` + + // Contains contract validation information. + ValidationParams *ProposalOpenContractRespProposalOpenContractValidationParams `json:"validation_params,omitempty"` } // Tick details around contract start and end time. @@ -821,6 +824,55 @@ type ProposalOpenContractRespProposalOpenContractTransactionIds struct { Sell *int `json:"sell,omitempty"` } +// Contains contract validation information. +type ProposalOpenContractRespProposalOpenContractValidationParams struct { + // [Only for Accumulators] Maximum payout for the contract. + MaxPayout *string `json:"max_payout,omitempty"` + + // [Only for Accumulators] Maximum ticks for the contract. + MaxTicks *int `json:"max_ticks,omitempty"` + + // Contains information for minimum and maximum stake amount for the contract. + Stake *ProposalOpenContractRespProposalOpenContractValidationParamsStake `json:"stake,omitempty"` + + // [Only for Multipliers] Contains information for minimum and maximum stop loss + // amount for the contract. + StopLoss *ProposalOpenContractRespProposalOpenContractValidationParamsStopLoss `json:"stop_loss,omitempty"` + + // Contains information for minimum and maximum take profit amount for the + // contract. + TakeProfit *ProposalOpenContractRespProposalOpenContractValidationParamsTakeProfit `json:"take_profit,omitempty"` +} + +// Contains information for minimum and maximum stake amount for the contract. +type ProposalOpenContractRespProposalOpenContractValidationParamsStake struct { + // Maximum stakes allowed + Max *string `json:"max,omitempty"` + + // Minimum stakes allowed + Min *string `json:"min,omitempty"` +} + +// [Only for Multipliers] Contains information for minimum and maximum stop loss +// amount for the contract. +type ProposalOpenContractRespProposalOpenContractValidationParamsStopLoss struct { + // Maximum stop loss amount + Max *string `json:"max,omitempty"` + + // Minimum stop loss amount + Min *string `json:"min,omitempty"` +} + +// Contains information for minimum and maximum take profit amount for the +// contract. +type ProposalOpenContractRespProposalOpenContractValidationParamsTakeProfit struct { + // Maximum take profit amount + Max *string `json:"max,omitempty"` + + // Minimum take profit amount + Min *string `json:"min,omitempty"` +} + // For subscription requests only. type ProposalOpenContractRespSubscription struct { // A per-connection unique identifier. Can be passed to the `forget` API call to diff --git a/schema/proposal_resp.go b/schema/proposal_resp.go index e2758c7..f4e2837 100644 --- a/schema/proposal_resp.go +++ b/schema/proposal_resp.go @@ -118,6 +118,9 @@ type ProposalRespProposal struct { // The corresponding time of the spot value. SpotTime int `json:"spot_time"` + + // Contains contract validation information. + ValidationParams *ProposalRespProposalValidationParams `json:"validation_params,omitempty"` } // Contains information about contract cancellation option. @@ -235,6 +238,55 @@ type ProposalRespProposalLimitOrderTakeProfit struct { Value *string `json:"value,omitempty"` } +// Contains contract validation information. +type ProposalRespProposalValidationParams struct { + // [Only for Accumulators] Maximum payout for the contract. + MaxPayout *string `json:"max_payout,omitempty"` + + // [Only for Accumulators] Maximum ticks for the contract. + MaxTicks *int `json:"max_ticks,omitempty"` + + // Contains information for minimum and maximum stake amount for the contract. + Stake *ProposalRespProposalValidationParamsStake `json:"stake,omitempty"` + + // [Only for Multipliers] Contains information for minimum and maximum stop loss + // amount for the contract. + StopLoss *ProposalRespProposalValidationParamsStopLoss `json:"stop_loss,omitempty"` + + // Contains information for minimum and maximum take profit amount for the + // contract. + TakeProfit *ProposalRespProposalValidationParamsTakeProfit `json:"take_profit,omitempty"` +} + +// Contains information for minimum and maximum stake amount for the contract. +type ProposalRespProposalValidationParamsStake struct { + // Maximum stake allowed + Max *string `json:"max,omitempty"` + + // Minimum stake allowed + Min *string `json:"min,omitempty"` +} + +// [Only for Multipliers] Contains information for minimum and maximum stop loss +// amount for the contract. +type ProposalRespProposalValidationParamsStopLoss struct { + // Maximum stop loss amount + Max *string `json:"max,omitempty"` + + // Minimum stop loss amount + Min *string `json:"min,omitempty"` +} + +// Contains information for minimum and maximum take profit amount for the +// contract. +type ProposalRespProposalValidationParamsTakeProfit struct { + // Maximum take profit amount + Max *string `json:"max,omitempty"` + + // Minimum take profit amount + Min *string `json:"min,omitempty"` +} + // UnmarshalJSON implements json.Unmarshaler. func (j *ProposalRespProposal) UnmarshalJSON(b []byte) error { var raw map[string]interface{}