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
// This wallet accepts stealth payments
AcceptStealth() 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 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 the height of the blockchain
ChainTip() uint32
// 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) error
// Make a stealth transaction. Coins will be sent to a new address derived from the public key and wont be linkable by third parties to this public key.
SendStealth(amount int64, pubkey *btcec.PublicKey, feeLevel spvwallet.FeeLevel) 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 a 1 of 2 multisig to an internal address (optionally provided)
SweepMultisig(utxos []spvwallet.Utxo, address *btc.Address, key *hd.ExtendedKey, reddemScript []byte, feeLevel spvwallet.FeeLevel) 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 broadcast
Multisign(ins []spvwallet.TransactionInput, outs []spvwallet.TransactionOutput, sigs1 []spvwallet.Signature, sigs2 []spvwallet.Signature, redeemScript []byte, feePerByte uint64) error
// Generate a multisig script from public keys
GenerateMultisigScript(keys []hd.ExtendedKey, threshold int) (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)
// 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
}
Click to show internal directories.
Click to hide internal directories.