diff --git a/cmd/loop/loopout.go b/cmd/loop/loopout.go index f1da46f6..8e6edf0d 100644 --- a/cmd/loop/loopout.go +++ b/cmd/loop/loopout.go @@ -248,9 +248,9 @@ func loopOut(ctx context.Context, cmd *cli.Command) error { // Set our maximum swap wait time. If a fast swap is requested we set // it to now, otherwise to 30 minutes in the future. fast := cmd.Bool("fast") - swapDeadline := time.Now() + swapDeadline := cliClock.Now() if !fast { - swapDeadline = time.Now().Add(defaultSwapWaitTime) + swapDeadline = cliClock.Now().Add(defaultSwapWaitTime) } sweepConfTarget := int32(cmd.Uint64("conf_target")) diff --git a/cmd/loop/main.go b/cmd/loop/main.go index 8921e1bb..f990f913 100644 --- a/cmd/loop/main.go +++ b/cmd/loop/main.go @@ -19,6 +19,7 @@ import ( "github.com/lightninglabs/loop/loopd" "github.com/lightninglabs/loop/looprpc" "github.com/lightninglabs/loop/swap" + "github.com/lightningnetwork/lnd/clock" "github.com/lightningnetwork/lnd/lncfg" "github.com/lightningnetwork/lnd/lnrpc" "github.com/lightningnetwork/lnd/macaroons" @@ -99,6 +100,9 @@ var ( instantOutCommand, listInstantOutsCommand, stopCommand, printManCommand, printMarkdownCommand, } + + // cliClock provides the time source used by CLI commands. + cliClock clock.Clock = clock.NewDefaultClock() ) const ( @@ -264,6 +268,16 @@ func getClientWithConn(cmd *cli.Command) (looprpc.SwapClientClient, return loopClient, conn, cleanup, nil } +// hookClock overrides cliClock until the returned callback is called. +func hookClock(c clock.Clock) func() { + prev := cliClock + cliClock = c + + return func() { + cliClock = prev + } +} + func getMaxRoutingFee(amt btcutil.Amount) btcutil.Amount { return swap.CalcFee(amt, maxRoutingFeeBase, maxRoutingFeeRate) } diff --git a/cmd/loop/quote.go b/cmd/loop/quote.go index d6e7b6c2..46826eae 100644 --- a/cmd/loop/quote.go +++ b/cmd/loop/quote.go @@ -206,9 +206,9 @@ func quoteOut(ctx context.Context, cmd *cli.Command) error { defer cleanup() fast := cmd.Bool("fast") - swapDeadline := time.Now() + swapDeadline := cliClock.Now() if !fast { - swapDeadline = time.Now().Add(defaultSwapWaitTime) + swapDeadline = cliClock.Now().Add(defaultSwapWaitTime) } quoteReq := &looprpc.QuoteRequest{