Skip to content

Commit 31e080d

Browse files
authored
Reduce voucher check retry interval (#20)
* Reduce voucher check retry interval to 1s * Remove unused variables
1 parent 80365b0 commit 31e080d

3 files changed

Lines changed: 11 additions & 10 deletions

File tree

paymentsmanager/http_middleware.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ func HTTPMiddleware(next http.Handler, validator VoucherValidator, queryRates ma
3232
// Validate voucher
3333
r, err := extractAndValidateVoucher(r, validator, queryRates)
3434
if err != nil {
35-
if strings.Contains(err.Error(), ErrPayment) {
35+
if isPaymentError(err) {
3636
http.Error(w, err.Error(), http.StatusPaymentRequired)
3737
} else {
3838
http.Error(w, err.Error(), http.StatusBadRequest)
@@ -124,3 +124,7 @@ func isRpcCall(r *http.Request) (bool, string) {
124124

125125
return true, ReqBody.Method
126126
}
127+
128+
func isPaymentError(err error) bool {
129+
return strings.HasPrefix(err.Error(), ERR_PAYMENT)
130+
}

paymentsmanager/payments_manager.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package paymentsmanager
22

33
import (
4+
"fmt"
45
"log/slog"
56
"math/big"
67
"sync"
@@ -22,13 +23,15 @@ const (
2223
DEFAULT_LRU_CACHE_MAX_PAYMENT_CHANNELS = 10000
2324
DEFAULT_LRU_CACHE_PAYMENT_CHANNEL_TTL = DEFAULT_LRU_CACHE_ACCOUNT_TTL
2425

25-
DEFAULT_VOUCHER_CHECK_INTERVAL = 2
26+
// Note: Make sure the transport has timeout > DEFAULT_VOUCHER_CHECK_ATTEMPTS * DEFAULT_VOUCHER_CHECK_INTERVAL
27+
DEFAULT_VOUCHER_CHECK_INTERVAL = 1
2628
DEFAULT_VOUCHER_CHECK_ATTEMPTS = 5
2729
)
2830

2931
var (
30-
ERR_PAYMENT_NOT_RECEIVED = "ERR_PAYMENT_NOT_RECEIVED"
31-
ERR_PAYMENT_AMOUNT_INSUFFICIENT = "ERR_PAYMENT_AMOUNT_INSUFFICIENT"
32+
ERR_PAYMENT = "ERR_PAYMENT"
33+
ERR_PAYMENT_NOT_RECEIVED = fmt.Sprintf("%s_NOT_RECEIVED", ERR_PAYMENT)
34+
ERR_PAYMENT_AMOUNT_INSUFFICIENT = fmt.Sprintf("%s_AMOUNT_INSUFFICIENT", ERR_PAYMENT)
3235
)
3336

3437
type InFlightVoucher struct {

paymentsmanager/validator.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,6 @@ import (
77
"github.com/ethereum/go-ethereum/common"
88
)
99

10-
var (
11-
ErrPayment = "Payment error:"
12-
ErrPaymentNotReceived = fmt.Errorf("%s payment not received", ErrPayment)
13-
ErrAmountInsufficient = fmt.Errorf("%s amount insufficient", ErrPayment)
14-
)
15-
1610
// Voucher validator interface to be satisfied by implementations
1711
// using in / out of process Nitro nodes
1812
type VoucherValidator interface {

0 commit comments

Comments
 (0)