-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclient.go
88 lines (76 loc) · 2.21 KB
/
client.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package cbtransaction
import (
"errors"
)
type Client struct {
logger Logger
errorHandler ErrorHandler
encryptionProviders []Encryption
defaultEncryptionProvider Encryption
encodingProviders []Encoding
defaultEncodingProvider Encoding
dataDir string
master *Master
}
type ClientConfig struct {
Logger Logger
ErrorHandler ErrorHandler
DefaultEncryptionKey [8]byte
EncryptionProviders []Encryption
DefaultEncodingKey [8]byte
EncodingProviders []Encoding
DataDir string
}
func NewClient(config ClientConfig) (*Client, error) {
var defaultEncryptionProvider Encryption
for _, provider := range config.EncryptionProviders {
key := provider.GetKey()
if key == config.DefaultEncryptionKey {
defaultEncryptionProvider = provider
}
}
if defaultEncryptionProvider == nil {
return nil, errors.New("could not find default encryption provider")
}
var defaultEncodingProvider Encoding
for _, provider := range config.EncodingProviders {
key := provider.GetKey()
if key == config.DefaultEncodingKey {
defaultEncodingProvider = provider
}
}
if defaultEncodingProvider == nil {
return nil, errors.New("could not find default encoding provider")
}
return &Client{
logger: config.Logger,
errorHandler: config.ErrorHandler,
defaultEncryptionProvider: defaultEncryptionProvider,
encryptionProviders: config.EncryptionProviders,
defaultEncodingProvider: defaultEncodingProvider,
encodingProviders: config.EncodingProviders,
dataDir: config.DataDir,
}, nil
}
func (s *Client) Start() error {
return nil
}
func (s *Client) Verify() (bool, error) {
return true, nil
}
func (s *Client) Download() error {
return nil
}
func (s *Client) GetTransactions(currentVersion uint64, limit uint64) []Transaction {
var transactions []Transaction
return transactions
}
func (s *Client) Decrypt(transaction Transaction) (Transaction, error) {
return transaction, nil
}
func (s *Client) Decode(transaction Transaction) (interface{}, error) {
return transaction, nil
}
func (s *Client) GetMaster() *Master {
return s.master
}