Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BitcoinWallet ¶
type BitcoinWallet interface { // Start the wallet Start() // Return the network parameters Params() *chaincfg.Params // Returns the type of crytocurrency this wallet implements CurrencyCode() string // Check if this amount is considered dust IsDust(amount int64) bool // Get the master private key MasterPrivateKey() *hd.ExtendedKey // Get the master public key MasterPublicKey() *hd.ExtendedKey // Get the current address for the given purpose CurrentAddress(purpose spvwallet.KeyPurpose) btc.Address // Returns a fresh address that has never been returned by this function NewAddress(purpose spvwallet.KeyPurpose) btc.Address // Parse the address string and return an address interface DecodeAddress(addr string) (btc.Address, error) // Turn the given output script into an address ScriptToAddress(script []byte) (btc.Address, error) // Turn the given address into an output script AddressToScript(addr btc.Address) ([]byte, error) // Returns if the wallet has the key for the given address HasKey(addr btc.Address) bool // Get the confirmed and unconfirmed balances Balance() (confirmed, unconfirmed int64) // Returns a list of transactions for this wallet Transactions() ([]spvwallet.Txn, error) // Get info on a specific transaction GetTransaction(txid chainhash.Hash) (spvwallet.Txn, error) // Get the height and best hash of the blockchain ChainTip() (uint32, chainhash.Hash) // Get the current fee per byte GetFeePerByte(feeLevel spvwallet.FeeLevel) uint64 // Send bitcoins to an external wallet Spend(amount int64, addr btc.Address, feeLevel spvwallet.FeeLevel) (*chainhash.Hash, error) // Bump the fee for the given transaction BumpFee(txid chainhash.Hash) (*chainhash.Hash, error) // Calculates the estimated size of the transaction and returns the total fee for the given feePerByte EstimateFee(ins []spvwallet.TransactionInput, outs []spvwallet.TransactionOutput, feePerByte uint64) uint64 // Build and broadcast a transaction that sweeps all coins from an address. If it is a p2sh multisig, the redeemScript must be included SweepAddress(utxos []spvwallet.Utxo, address *btc.Address, key *hd.ExtendedKey, redeemScript *[]byte, feeLevel spvwallet.FeeLevel) (*chainhash.Hash, error) // Create a signature for a multisig transaction CreateMultisigSignature(ins []spvwallet.TransactionInput, outs []spvwallet.TransactionOutput, key *hd.ExtendedKey, redeemScript []byte, feePerByte uint64) ([]spvwallet.Signature, error) // Combine signatures and optionally broadcast Multisign(ins []spvwallet.TransactionInput, outs []spvwallet.TransactionOutput, sigs1 []spvwallet.Signature, sigs2 []spvwallet.Signature, redeemScript []byte, feePerByte uint64, broadcast bool) ([]byte, error) // Generate a multisig script from public keys. If a timeout is included the returned script should be a timelocked escrow which releases using the timeoutKey. GenerateMultisigScript(keys []hd.ExtendedKey, threshold int, timeout time.Duration, timeoutKey *hd.ExtendedKey) (addr btc.Address, redeemScript []byte, err error) // Add a script to the wallet and get notifications back when coins are received or spent from it AddWatchedScript(script []byte) error // Add a callback for incoming transactions AddTransactionListener(func(spvwallet.TransactionCallback)) // Use this to re-download merkle blocks in case of missed transactions ReSyncBlockchain(fromHeight int32) // Return the number of confirmations and the height for a transaction GetConfirmations(txid chainhash.Hash) (confirms, atHeight uint32, err error) // Cleanly disconnect from the wallet Close() }
type ExchangeRates ¶
type ExchangeRates interface { /* Fetch the exchange rate for the given currency It is OK if this returns from a cache. */ GetExchangeRate(currencyCode string) (float64, error) // Update the prices with the current exchange rate before returning GetLatestRate(currencyCode string) (float64, error) /* Returns all available rates It is OK if this returns from cach. */ GetAllRates() (map[string]float64, error) /* Return the number of currency units per coin. For example, in bitcoin this is 100m satoshi per BTC. This is used when converting from fiat to the smaller currency unit. */ UnitsPerCoin() int }
type StatusUpdater ¶ added in v0.5.4
type StatusUpdater struct {
// contains filtered or unexported fields
}
func NewStatusUpdater ¶ added in v0.5.4
func NewStatusUpdater(w BitcoinWallet, c chan interface{}, ctx context.Context) *StatusUpdater
func (*StatusUpdater) Start ¶ added in v0.5.4
func (s *StatusUpdater) Start()
Click to show internal directories.
Click to hide internal directories.