forked from OpenBazaar/multiwallet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
interfaces.go
58 lines (39 loc) · 1.53 KB
/
interfaces.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package model
import "github.com/btcsuite/btcutil"
type APIClient interface {
// Start up the API service
Start() error
// Get info about the server
GetInfo() (*Info, error)
// For a given txid get back the transaction metadata
GetTransaction(txid string) (*Transaction, error)
// For a given txid get back the full transaction bytes
GetRawTransaction(txid string) ([]byte, error)
// Get back all the transactions for the given list of addresses
GetTransactions(addrs []btcutil.Address) ([]Transaction, error)
// Get back all spendable UTXOs for the given list of addresses
GetUtxos(addrs []btcutil.Address) ([]Utxo, error)
// Returns a chan which fires on each new block
BlockNotify() <-chan Block
// Returns a chan which fires whenever a new transaction is received or
// when an existing transaction confirms for all addresses the API is listening on.
TransactionNotify() <-chan Transaction
// Listen for events on these addresses. Results are returned to TransactionNotify()
ListenAddresses(addrs ...btcutil.Address)
// Broadcast a transaction to the network
Broadcast(tx []byte) (string, error)
// Get info on the current chain tip
GetBestBlock() (*Block, error)
// Estimate the fee required for a transaction
EstimateFee(nBlocks int) (int, error)
// Close all connections and shutdown
Close()
}
type SocketClient interface {
// Set callback for method
On(method string, callback interface{}) error
// Listen on method
Emit(method string, args []interface{}) error
// Close the socket connection
Close()
}