-
Notifications
You must be signed in to change notification settings - Fork 34
/
payment.go
39 lines (32 loc) · 833 Bytes
/
payment.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
package config
import (
"strings"
"github.com/mining-pool/not-only-mining-pool/utils"
)
type Recipient struct {
Address string `json:"address"`
Type string `json:"type"`
Percent float64 `json:"percent"`
script []byte
}
func (r *Recipient) GetScript() []byte {
if r.script == nil {
switch strings.ToLower(r.Type) {
case "p2sh":
r.script = utils.P2SHAddressToScript(r.Address)
case "p2pkh":
r.script = utils.P2PKHAddressToScript(r.Address)
case "p2wsh":
r.script = utils.P2WSHAddressToScript(r.Address)
case "pk", "publickey":
r.script = utils.PublicKeyToScript(r.Address)
case "script":
r.script = utils.ScriptPubKeyToScript(r.Address)
case "":
log.Error(r.Address, " has no type!")
default:
log.Error(r.Address, " uses an unsupported type: ", r.Type)
}
}
return r.script
}