Version: v0.0.0-...-b1bd2f5 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2019 License: Apache-2.0 Imports: 12 Imported by: 0




This section is empty.


This section is empty.


func BtcToSat

func BtcToSat(btc string) (int64, error)


type AddressGenerator

type AddressGenerator struct {
	// contains filtered or unexported fields

func NewAddressGenerator

func NewAddressGenerator(masterPublicKeyString string, chainParams *chaincfg.Params) (*AddressGenerator, error)

func (*AddressGenerator) Generate

func (g *AddressGenerator) Generate(index uint32) (string, error)

type Client

type Client interface {
	GetBlockCount() (int64, error)
	GetBlockHash(blockHeight int64) (*chainhash.Hash, error)
	GetBlock(blockHash *chainhash.Hash) (*wire.MsgBlock, error)

type Listener

type Listener struct {
	Enabled            bool
	Client             Client  `inject:""`
	Storage            Storage `inject:""`
	TransactionHandler TransactionHandler
	Testnet            bool
	// contains filtered or unexported fields

Listener listens for transactions using bitcoin-core RPC. It calls TransactionHandler for each new transactions. It will reprocess the block if TransactionHandler returns error. It will start from the block number returned from Storage.GetBitcoinBlockToProcess or the latest block if it returned 0. Transactions can be processed more than once, it's TransactionHandler responsibility to ignore duplicates. Listener tracks only P2PKH payments. You can run multiple Listeners if Storage is implemented correctly.

func (*Listener) Start

func (l *Listener) Start() error

type Storage

type Storage interface {
	// GetBitcoinBlockToProcess gets the number of Bitcoin block to process. `0` means the
	// processing should start from the current block.
	GetBitcoinBlockToProcess() (uint64, error)
	// SaveLastProcessedBitcoinBlock should update the number of the last processed Bitcoin
	// block. It should only update the block if block > current block in atomic transaction.
	SaveLastProcessedBitcoinBlock(block uint64) error

Storage is an interface that must be implemented by an object using persistent storage.

type Transaction

type Transaction struct {
	Hash       string
	TxOutIndex int
	// Value in sats
	ValueSat int64
	To       string

func (Transaction) ValueToStellar

func (t Transaction) ValueToStellar() string

type TransactionHandler

type TransactionHandler func(transaction Transaction) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL