diff --git a/account/recovery.go b/account/recovery.go index f46e8ce..f8e8f39 100644 --- a/account/recovery.go +++ b/account/recovery.go @@ -41,7 +41,7 @@ const ( // maxBatchCounter is the maximum number of batches that we consider // worth checking. // - // NOTE: currently there are about 1100 batches (Jan 2022) on mainnet + // NOTE: currently there are about 1100 batches (Jan 2022) on mainnet. maxBatchCounter = 5000 ) @@ -380,7 +380,6 @@ func findAccounts(cfg RecoveryConfig, possibleAccounts []*Account) []*Account { if len(accounts) == int(target) { return accounts } - } } helper.NextBatchKey() diff --git a/account/watcher/controller.go b/account/watcher/controller.go index a03c31e..ef81131 100644 --- a/account/watcher/controller.go +++ b/account/watcher/controller.go @@ -24,7 +24,7 @@ type CtrlConfig struct { Handlers EventHandler } -// controller implements the Controller interface +// controller implements the Controller interface. type controller struct { started sync.Once stopped sync.Once diff --git a/account/watcher/controller_test.go b/account/watcher/controller_test.go index 95aa03d..f1a9442 100644 --- a/account/watcher/controller_test.go +++ b/account/watcher/controller_test.go @@ -249,7 +249,6 @@ func TestWatcherControllerWatchAccount(t *testing.T) { t.Error("confirmation not processed on time") } }) - } } diff --git a/account/watcher/watcher.go b/account/watcher/watcher.go index 3c0a12b..49f2082 100644 --- a/account/watcher/watcher.go +++ b/account/watcher/watcher.go @@ -6,7 +6,7 @@ import ( "github.com/btcsuite/btcd/btcec/v2" ) -// expiryWatcher implements the ExpiryWatcher interface +// expiryWatcher implements the ExpiryWatcher interface. type expiryWatcher struct { handlers EventHandler diff --git a/auto_sidecar.go b/auto_sidecar.go index 7968a99..4ef3b5c 100644 --- a/auto_sidecar.go +++ b/auto_sidecar.go @@ -345,13 +345,11 @@ func (a *SidecarNegotiator) autoSidecarReceiver(ctx context.Context, case <-a.quit: return } - } }() for { select { - case newTicket := <-packetChan: newPktState, err := a.stateStepRecipient(ctx, &SidecarPacket{ CurrentState: sidecar.State(a.currentState), @@ -439,7 +437,6 @@ func (a *SidecarNegotiator) stateStepRecipient(ctx context.Context, pkt *SidecarPacket) (*SidecarPacket, error) { switch { - // If the state of the ticket shows up as offered, then this is the // remote party restarting and requesting we re-send our registered // ticket. So we'll fall through to our "starting" state below to @@ -529,7 +526,6 @@ func (a *SidecarNegotiator) stateStepRecipient(ctx context.Context, if err != nil { return nil, fmt.Errorf("failed to expect "+ "channel: %w", err) - } return &SidecarPacket{ CurrentState: sidecar.StateExpectingChannel, @@ -634,7 +630,6 @@ func (a *SidecarNegotiator) autoSidecarProvider(ctx context.Context, case <-a.quit: return } - } }() diff --git a/clientdb/batch_snapshot.go b/clientdb/batch_snapshot.go index a9591a9..d96587d 100644 --- a/clientdb/batch_snapshot.go +++ b/clientdb/batch_snapshot.go @@ -576,7 +576,6 @@ func deserializeAccounts(r io.Reader) (map[[33]byte]*account.Account, error) { accs := make(map[[33]byte]*account.Account) for i := uint32(0); i < numAccounts; i++ { - var key [33]byte err := ReadElements(r, &key) if err != nil { diff --git a/clientdb/event_test.go b/clientdb/event_test.go index e551f7a..3314ecc 100644 --- a/clientdb/event_test.go +++ b/clientdb/event_test.go @@ -116,6 +116,7 @@ func assertOrderCreateEvent(t *testing.T, store *DB, o order.Nonce) { func getOrderEventTimestamps(store *DB, o order.Nonce, evtType event.Type) ( map[time.Time]struct{}, error) { + orderEventTimestamps := make(map[time.Time]struct{}) err := store.DB.View(func(tx *bbolt.Tx) error { ordersBucket := tx.Bucket(ordersBucketKey) diff --git a/clientdb/metadata.go b/clientdb/metadata.go index 82e5663..e165175 100644 --- a/clientdb/metadata.go +++ b/clientdb/metadata.go @@ -110,7 +110,6 @@ func syncVersions(db *bbolt.DB) error { "db_version=%v", latestDBVersion, currentVersion) switch { - // If the database reports a higher version that we are aware of, the // user is probably trying to revert to a prior version of lnd. We fail // here to prevent reversions and unintended corruption. diff --git a/cmd/pool/auth.go b/cmd/pool/auth.go index b193713..f16f534 100644 --- a/cmd/pool/auth.go +++ b/cmd/pool/auth.go @@ -49,7 +49,6 @@ func listAuth(ctx *cli.Context) error { tokens := make([]*printableToken, len(resp.Tokens)) for i, t := range resp.Tokens { - mac := &macaroon.Macaroon{} err := mac.UnmarshalBinary(t.BaseMacaroon) if err != nil { diff --git a/cmd/pool/sidecar.go b/cmd/pool/sidecar.go index 698f78d..64b299d 100644 --- a/cmd/pool/sidecar.go +++ b/cmd/pool/sidecar.go @@ -126,7 +126,6 @@ func sidecarOffer(ctx *cli.Context) error { SelfChanBalance: pushAmt, LeaseDurationBlocks: duration, } - } else { // We must make sure that the min chan amount is set to the full // order amount, otherwise we'll get an error during the auto @@ -140,7 +139,6 @@ func sidecarOffer(ctx *cli.Context) error { bid, _, err = parseBaseBid(ctx) if err != nil { return err - } } diff --git a/cmd/poold/main.go b/cmd/poold/main.go index 5f34c15..c68704c 100644 --- a/cmd/poold/main.go +++ b/cmd/poold/main.go @@ -4,6 +4,7 @@ import ( "fmt" "net" "net/http" + _ "net/http/pprof" // nolint:gosec "os" "path/filepath" "strconv" @@ -11,9 +12,6 @@ import ( "github.com/jessevdk/go-flags" "github.com/lightninglabs/pool" - - // Blank import to set up profiling HTTP handlers. - _ "net/http/pprof" ) var ( diff --git a/funding/manager.go b/funding/manager.go index 4511683..e5804e7 100644 --- a/funding/manager.go +++ b/funding/manager.go @@ -572,7 +572,6 @@ func (m *Manager) PrepChannelFunding(batch *order.Batch, return fmt.Errorf("unable to register funding "+ "shim: %v", err) } - } } @@ -735,7 +734,6 @@ func (m *Manager) BatchChannelSetup( eg.Go(func() error { for { select { - case <-m.quit: return fmt.Errorf("server " + "shutting down") diff --git a/log.go b/log.go index a029d16..dcebed4 100644 --- a/log.go +++ b/log.go @@ -165,7 +165,8 @@ func (e *errorLoggingClientStream) SendMsg(m interface{}) error { // errorLogStreamClientInterceptor is a simple StreamClientInterceptor that // will log any errors that occur while processing the messages for a server's // streaming RPC. -func errorLogStreamClientInterceptor(logger btclog.Logger) grpc.StreamClientInterceptor { +func errorLogStreamClientInterceptor( + logger btclog.Logger) grpc.StreamClientInterceptor { return func(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, diff --git a/order/batch_verifier.go b/order/batch_verifier.go index aa3532c..95ff393 100644 --- a/order/batch_verifier.go +++ b/order/batch_verifier.go @@ -87,6 +87,7 @@ func (v *batchVerifier) Verify(batch *Batch, bestHeight uint32) error { // the auctioneer. if bestHeight < batch.HeightHint-heightHintPadding || bestHeight > batch.HeightHint+heightHintPadding { + return ErrInvalidBatchHeightHint } diff --git a/order/interfaces.go b/order/interfaces.go index 533ca46..41cafcc 100644 --- a/order/interfaces.go +++ b/order/interfaces.go @@ -89,7 +89,6 @@ const ( // String returns a human read-able string describing the passed order type. func (t Type) String() string { switch t { - case TypeAsk: return "Ask" diff --git a/order/manager.go b/order/manager.go index c9d5937..4883e64 100644 --- a/order/manager.go +++ b/order/manager.go @@ -124,6 +124,8 @@ func (m *manager) Start() error { return fmt.Errorf("manager can only be started once") } + log.Debugf("Starting order manager") + var err error m.started.Do(func() { // We'll need our node's identity public key for a bunch of @@ -160,6 +162,8 @@ func (m *manager) Start() error { // Stop stops all concurrent tasks the manager is responsible for. func (m *manager) Stop() { + log.Debugf("Stopping order manager") + m.stopped.Do(func() { close(m.quit) m.wg.Wait() @@ -538,7 +542,6 @@ func parseNodeUris(uris []string) ([]net.Addr, error) { } result = append(result, addr) - } return result, nil } diff --git a/poolscript/script.go b/poolscript/script.go index 41336d4..f48344c 100644 --- a/poolscript/script.go +++ b/poolscript/script.go @@ -25,7 +25,7 @@ const ( // requires 32 bytes and an additional leading null byte might be // required if the high bit is set in the value. // - // 0x30 + <1-byte> + 0x02 + 0x21 + <33 bytes> + 0x2 + 0x21 + <33 bytes> + // 0x30 + <1-byte> + 0x02 + 0x21 + <33 bytes> + 0x2 + 0x21 + <33 bytes>. MaxWitnessSigLen = 72 + 1 // AccountWitnessScriptSize: 79 bytes @@ -112,6 +112,7 @@ func AccountWitnessScript(expiry uint32, traderKey, auctioneerKey, // tweaked and serialized trader and auctioneer key. func accountWitnessScript(expiry uint32, tweakedTraderKey, tweakedAuctioneerKey []byte) ([]byte, error) { + builder := txscript.NewScriptBuilder() builder.AddData(tweakedTraderKey) @@ -232,7 +233,7 @@ func (r *RecoveryHelper) LocateAnyOutput(expiry uint32, // OP_CHECKSIGVERIFY // OP_CHECKSIG OP_IFDUP OP_NOTIF // OP_CHECKLOCKTIMEVERIFY -// OP_ENDIF +// OP_ENDIF. func AccountScript(expiry uint32, traderKey, auctioneerKey, batchKey *btcec.PublicKey, secret [32]byte) ([]byte, error) { diff --git a/rpcserver.go b/rpcserver.go index 8c9ff05..b1d01d1 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -512,7 +512,6 @@ func (s *rpcServer) InitAccount(ctx context.Context, // Determine the desired expiration value, can be relative or absolute. var expiryHeight uint32 switch { - case req.GetAbsoluteHeight() != 0 && req.GetRelativeHeight() != 0: return nil, fmt.Errorf("you must set only one of the relative " + "and absolute height parameters") @@ -531,7 +530,6 @@ func (s *rpcServer) InitAccount(ctx context.Context, var feeRate chainfee.SatPerKWeight switch { - case req.GetFeeRateSatPerKw() > 0 && req.GetConfTarget() > 0: return nil, fmt.Errorf("you must set only one of the sats/kw " + "and confirmation target parameters") @@ -1982,7 +1980,6 @@ func (s *rpcServer) Leases(ctx context.Context, // response. chanLeaseExpiries := make(map[string]uint32) for _, channel := range openChans.Channels { - switch height := channel.ThawHeight; { case height == 0: continue diff --git a/server.go b/server.go index 75f37fe..4e8a3c6 100644 --- a/server.go +++ b/server.go @@ -14,8 +14,6 @@ import ( "sync" "sync/atomic" - "github.com/lightninglabs/pool/perms" - "github.com/btcsuite/btcd/btcec/v2" proxy "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" "github.com/lightninglabs/aperture/lsat" @@ -25,6 +23,7 @@ import ( "github.com/lightninglabs/pool/clientdb" "github.com/lightninglabs/pool/funding" "github.com/lightninglabs/pool/order" + "github.com/lightninglabs/pool/perms" "github.com/lightninglabs/pool/poolrpc" "github.com/lightninglabs/pool/terms" "github.com/lightningnetwork/lnd/lnrpc" diff --git a/sidecar_acceptor.go b/sidecar_acceptor.go index 2664ed7..faeede3 100644 --- a/sidecar_acceptor.go +++ b/sidecar_acceptor.go @@ -59,7 +59,7 @@ type SidecarAcceptor struct { } // SidecarAcceptorConfig holds all the configuration information that sidecar -// acceptor needs in order to carry out its duties +// acceptor needs in order to carry out its duties. type SidecarAcceptorConfig struct { SidecarDB sidecar.Store @@ -86,7 +86,6 @@ type SidecarAcceptorConfig struct { // NewSidecarAcceptor creates a new sidecar acceptor. func NewSidecarAcceptor(cfg *SidecarAcceptorConfig) *SidecarAcceptor { - cfg.ClientCfg.ConnectSidecar = true return &SidecarAcceptor{ @@ -421,7 +420,7 @@ func validateOrderedTicket(ctx context.Context, t *sidecar.Ticket, // AutoAcceptSidecar signals to the acceptor that the recipient of a potential // sidecar channel request automated acceptance of the sidecar channel. We'll // use the cipher box of the provider of the ticket (and a new one we'll create -// for the reply side) to finalize negotiation, resulting in a +// for the reply side) to finalize negotiation, resulting in a bid order. func (a *SidecarAcceptor) AutoAcceptSidecar(ticket *sidecar.Ticket) error { log.Infof("Attempting negotiation to receive sidecar ticket: %x", ticket.ID[:]) @@ -524,7 +523,6 @@ func (a *SidecarAcceptor) handleServerMessage( defer a.Unlock() switch msg := serverMsg.Msg.(type) { - case *auctioneerrpc.ServerAuctionMessage_Prepare: sdcrLog.Tracef("Received prepare msg from server, "+ "batch_id=%x: %v", msg.Prepare.BatchId, @@ -882,7 +880,6 @@ func (a *SidecarAcceptor) InitAcctMailbox(streamID [64]byte, ) if err != nil && !isErrAlreadyExists(err) { return fmt.Errorf("unable to init cipher box: %v", err) - } return nil diff --git a/sidecar_acceptor_test.go b/sidecar_acceptor_test.go index b9fc19a..116ac84 100644 --- a/sidecar_acceptor_test.go +++ b/sidecar_acceptor_test.go @@ -27,15 +27,6 @@ var ( testOfferSig = test.NewSignatureFromInt(44, 22) ) -func registerSidecarEmptySetter(ticket *sidecar.Ticket, - sc *test.MockSignerClient, wc *test.MockWalletKitClient, - store *sidecar.MockStore, -) { -} - -func registerSidecarEmptyCheck(t *testing.T, ticket *sidecar.Ticket) { -} - func getVerifyParameters(ticket *sidecar.Ticket) ([]byte, []byte, [33]byte) { var offerPubKeyRaw [33]byte copy(offerPubKeyRaw[:], ticket.Offer.SignPubKey.SerializeCompressed()) @@ -60,16 +51,12 @@ var registerSidecarTestCases = []struct { "valid state", ticket: &sidecar.Ticket{}, expectedErr: "ticket is in invalid state", - mockSetter: registerSidecarEmptySetter, - check: registerSidecarEmptyCheck, }, { name: "unable to register sidecar if signature is missing", ticket: &sidecar.Ticket{ State: sidecar.StateOffered, }, expectedErr: "offer in ticket is not signed", - mockSetter: registerSidecarEmptySetter, - check: registerSidecarEmptyCheck, }, { name: "unable to register sidecar if signature is invalid", ticket: &sidecar.Ticket{ @@ -93,7 +80,6 @@ var registerSidecarTestCases = []struct { ). Return(false, nil) }, - check: registerSidecarEmptyCheck, }, { name: "unable to register sidecar if ticket already exists", ticket: &sidecar.Ticket{ @@ -126,7 +112,6 @@ var registerSidecarTestCases = []struct { ). Return(nil, nil) }, - check: registerSidecarEmptyCheck, }, { name: "register sidecar happy path", ticket: &sidecar.Ticket{ @@ -190,7 +175,6 @@ var registerSidecarTestCases = []struct { // offer signature contained within, adds the recipient node's information to // the ticket and stores it to the local database. func TestRegisterSidecar(t *testing.T) { - for _, tc := range registerSidecarTestCases { tc := tc @@ -202,7 +186,9 @@ func TestRegisterSidecar(t *testing.T) { wallet := test.NewMockWalletKitClient(mockCtrl) store := sidecar.NewMockStore(mockCtrl) - tc.mockSetter(tc.ticket, signer, wallet, store) + if tc.mockSetter != nil { + tc.mockSetter(tc.ticket, signer, wallet, store) + } acceptor := NewSidecarAcceptor(&SidecarAcceptorConfig{ SidecarDB: store, @@ -227,7 +213,10 @@ func TestRegisterSidecar(t *testing.T) { } require.NoError(t, err) - tc.check(t, ticket) + + if tc.check != nil { + tc.check(t, ticket) + } }) } } @@ -299,6 +288,7 @@ recvMsg: func (m *mockMailBox) SendSidecarPkt(ctx context.Context, pkt *sidecar.Ticket, provider bool) error { + var sendChan chan *sidecar.Ticket if provider { sendChan = m.providerChan