@@ -6,7 +6,6 @@ package api
66
77import (
88 "errors"
9- "fmt"
109 "math/big"
1110 "net/http"
1211
@@ -43,6 +42,12 @@ type stakeTransactionReponse struct {
4342 TxHash string `json:"txHash"`
4443}
4544
45+ type stakeDepositErrorResponse struct {
46+ Code int `json:"code"`
47+ Message string `json:"message"`
48+ MinimumDeposit * bigint.BigInt `json:"minimumDeposit"`
49+ }
50+
4651func (s * Service ) stakingDepositHandler (w http.ResponseWriter , r * http.Request ) {
4752 logger := s .logger .WithName ("post_stake_deposit" ).Build ()
4853
@@ -56,16 +61,15 @@ func (s *Service) stakingDepositHandler(w http.ResponseWriter, r *http.Request)
5661
5762 txHash , err := s .stakingContract .DepositStake (r .Context (), paths .Amount )
5863 if err != nil {
59- if errors .Is (err , staking .ErrInsufficientStakeAmount ) {
60- minDeposit := staking .MinimumStakeAmount
61- var minErr * staking.MinDepositError
62- if errors .As (err , & minErr ) && minErr .Minimum != nil {
63- minDeposit = minErr .Minimum
64- }
65- msg := fmt .Sprintf ("insufficient stake amount, minimum is %s" , minDeposit )
66- logger .Debug ("insufficient stake amount" , "minimum_stake" , minDeposit , "error" , err )
64+ var minErr * staking.MinDepositError
65+ if errors .As (err , & minErr ) {
66+ logger .Debug ("insufficient stake amount" , "minimum_deposit" , minErr .Minimum , "error" , err )
6767 logger .Error (nil , "insufficient stake amount" )
68- jsonhttp .BadRequest (w , msg )
68+ jsonhttp .BadRequest (w , stakeDepositErrorResponse {
69+ Code : http .StatusBadRequest ,
70+ Message : "insufficient stake amount" ,
71+ MinimumDeposit : bigint .Wrap (minErr .Minimum ),
72+ })
6973 return
7074 }
7175 if errors .Is (err , staking .ErrNotImplemented ) {
0 commit comments