/
version.go
137 lines (122 loc) · 2.67 KB
/
version.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package bip32
import "github.com/pkg/errors"
// BitcoinMainnetPrivate is the version that is used for
// bitcoin mainnet bip32 private extended keys.
// Ecnodes to xprv in base58.
var BitcoinMainnetPrivate = [4]byte{
0x04,
0x88,
0xad,
0xe4,
}
// BitcoinMainnetPublic is the version that is used for
// bitcoin mainnet bip32 public extended keys.
// Ecnodes to xpub in base58.
var BitcoinMainnetPublic = [4]byte{
0x04,
0x88,
0xb2,
0x1e,
}
// KaspaMainnetPrivate is the version that is used for
// kaspa mainnet bip32 private extended keys.
// Ecnodes to xprv in base58.
var KaspaMainnetPrivate = [4]byte{
0x03,
0x8f,
0x2e,
0xf4,
}
// KaspaMainnetPublic is the version that is used for
// kaspa mainnet bip32 public extended keys.
// Ecnodes to kpub in base58.
var KaspaMainnetPublic = [4]byte{
0x03,
0x8f,
0x33,
0x2e,
}
// KaspaTestnetPrivate is the version that is used for
// kaspa testnet bip32 public extended keys.
// Ecnodes to ktrv in base58.
var KaspaTestnetPrivate = [4]byte{
0x03,
0x90,
0x9e,
0x07,
}
// KaspaTestnetPublic is the version that is used for
// kaspa testnet bip32 public extended keys.
// Ecnodes to ktub in base58.
var KaspaTestnetPublic = [4]byte{
0x03,
0x90,
0xa2,
0x41,
}
// KaspaDevnetPrivate is the version that is used for
// kaspa devnet bip32 public extended keys.
// Ecnodes to kdrv in base58.
var KaspaDevnetPrivate = [4]byte{
0x03,
0x8b,
0x3d,
0x80,
}
// KaspaDevnetPublic is the version that is used for
// kaspa devnet bip32 public extended keys.
// Ecnodes to xdub in base58.
var KaspaDevnetPublic = [4]byte{
0x03,
0x8b,
0x41,
0xba,
}
// KaspaSimnetPrivate is the version that is used for
// kaspa simnet bip32 public extended keys.
// Ecnodes to ksrv in base58.
var KaspaSimnetPrivate = [4]byte{
0x03,
0x90,
0x42,
0x42,
}
// KaspaSimnetPublic is the version that is used for
// kaspa simnet bip32 public extended keys.
// Ecnodes to xsub in base58.
var KaspaSimnetPublic = [4]byte{
0x03,
0x90,
0x46,
0x7d,
}
func toPublicVersion(version [4]byte) ([4]byte, error) {
switch version {
case BitcoinMainnetPrivate:
return BitcoinMainnetPublic, nil
case KaspaMainnetPrivate:
return KaspaMainnetPublic, nil
case KaspaTestnetPrivate:
return KaspaTestnetPublic, nil
case KaspaDevnetPrivate:
return KaspaDevnetPublic, nil
case KaspaSimnetPrivate:
return KaspaSimnetPublic, nil
}
return [4]byte{}, errors.Errorf("unknown version %x", version)
}
func isPrivateVersion(version [4]byte) bool {
switch version {
case BitcoinMainnetPrivate:
return true
case KaspaMainnetPrivate:
return true
case KaspaTestnetPrivate:
return true
case KaspaDevnetPrivate:
return true
case KaspaSimnetPrivate:
return true
}
return false
}