forked from ori-shem-tov/algosearch
/
algod.go
47 lines (40 loc) · 1.11 KB
/
algod.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
// Package algod provides the core business API of handling
// everything algod related.
package algod
import (
"encoding/base32"
algodv2 "github.com/algorand/go-algorand-sdk/client/v2/algod"
"github.com/algorand/go-algorand-sdk/types"
"go.uber.org/zap"
"log"
)
type Core struct {
log *zap.SugaredLogger
algodClient *algodv2.Client
}
func NewCore(log *zap.SugaredLogger, algodClient *algodv2.Client) Core {
return Core{
log: log,
algodClient: algodClient,
}
}
// Reference: https://forum.algorand.org/t/finding-blocks-proposer-with-new-api-v2/1778
func rawAddressAsAddress(rawAddress string) types.Address {
address, err := base32.StdEncoding.DecodeString(rawAddress)
if err != nil {
log.Fatalln(err)
}
dgst := types.Digest{}
copy(dgst[:], address[:])
return types.Address(dgst)
}
// Reference: https://forum.algorand.org/t/finding-blocks-proposer-with-new-api-v2/1778
func byteArrAsAddress(byteArr []byte) types.Address {
//address, err := base32.StdEncoding.DecodeString(rawAddress)
//if err != nil {
// log.Fatalln(err)
//}
dgst := types.Digest{}
copy(dgst[:], byteArr[:])
return types.Address(dgst)
}