decred.org/dcrdex@v1.0.3/tatanka/db/peers.go (about)

     1  // This code is available on the terms of the project LICENSE.md file,
     2  // also available online at https://blueoakcouncil.org/license/1.0.0.
     3  
     4  package db
     5  
     6  import (
     7  	"fmt"
     8  
     9  	"decred.org/dcrdex/dex"
    10  	"decred.org/dcrdex/tatanka/tanka"
    11  	"github.com/decred/dcrd/dcrec/secp256k1/v4"
    12  )
    13  
    14  const (
    15  	ErrNotFound = dex.ErrorKind("not found")
    16  )
    17  
    18  // func (d *DB) StorePeer(p *tanka.Peer) error {
    19  // 	k := p.PubKey.SerializeCompressed()
    20  // 	return d.peerDB.Store(k, newJSON(p))
    21  // }
    22  
    23  func (d *DB) GetPeer(peerID tanka.PeerID) (_ *tanka.Peer, err error) {
    24  	p := &tanka.Peer{
    25  		ID: peerID,
    26  	}
    27  	// if found, err := d.peerDB.Get(peerID[:], newJSON(p)); err != nil {
    28  	// 	return nil, fmt.Errorf("Get error: %w", err)
    29  	// } else if !found {
    30  	// 	return nil, ErrNotFound
    31  	// }
    32  
    33  	p.ID = peerID
    34  	if p.PubKey, err = secp256k1.ParsePubKey(peerID[:]); err != nil {
    35  		return nil, fmt.Errorf("ParsePubKey error: %w", err)
    36  	}
    37  
    38  	if p.Bonds, err = d.GetBonds(peerID); err != nil {
    39  		return nil, fmt.Errorf("GetBonds error: %w", err)
    40  	}
    41  
    42  	if p.Reputation, err = d.Reputation(peerID); err != nil {
    43  		return nil, fmt.Errorf("error getting Reputation: %w", err)
    44  	}
    45  
    46  	return p, nil
    47  }