diff --git a/cmd/service/main.go b/cmd/service/main.go index 4d66cf3..d365beb 100644 --- a/cmd/service/main.go +++ b/cmd/service/main.go @@ -58,6 +58,7 @@ func main() { natsConn, jsCtx := initJetStream() custodial, err := custodial.NewCustodial(custodial.Opts{ + ApprovalTimeout: ko.MustDuration("system.approve_timeout"), CeloProvider: celoProvider, LockProvider: lockProvider, Logg: lo, diff --git a/config.toml b/config.toml index c57d4f2..b44a717 100644 --- a/config.toml +++ b/config.toml @@ -13,6 +13,7 @@ registry_address = "" [system] private_key = "" public_key = "" +approve_timeout = "30m" [postgres] dsn = "" diff --git a/internal/custodial/custodial.go b/internal/custodial/custodial.go index 887d9f8..3ba6e00 100644 --- a/internal/custodial/custodial.go +++ b/internal/custodial/custodial.go @@ -3,6 +3,7 @@ package custodial import ( "context" "crypto/ecdsa" + "time" "github.com/bsm/redislock" "github.com/celo-org/celo-blockchain/common" @@ -19,6 +20,7 @@ import ( type ( Opts struct { + ApprovalTimeout time.Duration CeloProvider *celoutils.Provider LockProvider *redislock.Client Logg logf.Logger @@ -32,6 +34,7 @@ type ( } Custodial struct { + ApprovalTimeout time.Duration Abis map[string]*w3.Func CeloProvider *celoutils.Provider LockProvider *redislock.Client @@ -69,6 +72,7 @@ func NewCustodial(o Opts) (*Custodial, error) { } return &Custodial{ + ApprovalTimeout: o.ApprovalTimeout, Abis: initAbis(), CeloProvider: o.CeloProvider, LockProvider: o.LockProvider, diff --git a/internal/tasker/task/sign_transfer_auth.go b/internal/tasker/task/sign_transfer_auth.go index 95acabc..9387f59 100644 --- a/internal/tasker/task/sign_transfer_auth.go +++ b/internal/tasker/task/sign_transfer_auth.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "math/big" - "time" "github.com/bsm/redislock" "github.com/celo-org/celo-blockchain/common/hexutil" @@ -159,7 +158,7 @@ func SignTransferAuthorizationProcessor(cu *custodial.Custodial) func(context.Co &tasker.Task{ Payload: taskPayload, }, - asynq.ProcessIn(time.Minute*15), + asynq.ProcessIn(cu.ApprovalTimeout), ) if err != nil { return err