Skip to content

Commit 4030e2c

Browse files
Some improvements
1 parent 1aa317e commit 4030e2c

File tree

11 files changed

+265
-79
lines changed

11 files changed

+265
-79
lines changed

.github/workflows/test_master.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
on:
2+
push:
3+
branches:
4+
- master
5+
name: build
6+
jobs:
7+
golangci:
8+
name: lint
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
- name: golangci-lint
13+
uses: golangci/[email protected]
14+
with:
15+
version: v1.34
16+
args: --timeout=2m
17+
test:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: install Go
21+
uses: actions/setup-go@v2
22+
with:
23+
go-version: 1.15.x
24+
- name: checkout code
25+
uses: actions/checkout@v2
26+
- uses: actions/cache@v2
27+
with:
28+
path: ~/go/pkg/mod
29+
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
30+
restore-keys: |
31+
${{ runner.os }}-go-
32+
- name: golang tests
33+
env:
34+
GO111MODULE: on
35+
BCD_ENV: production
36+
run: |
37+
go mod download
38+
go test ./...

go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@ require (
99
github.com/pkg/errors v0.9.1
1010
github.com/sirupsen/logrus v1.4.2
1111
github.com/stretchr/testify v1.5.1
12+
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 // indirect
1213
gopkg.in/yaml.v2 v2.4.0
13-
gorm.io/driver/clickhouse v0.1.0
1414
gorm.io/driver/mysql v1.0.5
1515
gorm.io/driver/postgres v1.0.8
1616
gorm.io/driver/sqlite v1.1.4
17-
gorm.io/driver/sqlserver v1.0.7
1817
gorm.io/gorm v1.21.8
1918
)

go.sum

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
11
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
2-
github.com/ClickHouse/clickhouse-go v1.4.3 h1:iAFMa2UrQdR5bHJ2/yaSLffZkxpcOYQMCUuKeNXGdqc=
3-
github.com/ClickHouse/clickhouse-go v1.4.3/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=
4-
github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk=
5-
github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4=
6-
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg=
7-
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
82
github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I=
93
github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
104
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
@@ -13,22 +7,15 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do
137
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
148
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
159
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
16-
github.com/denisenkom/go-mssqldb v0.9.0 h1:RSohk2RsiZqLZ0zCjtfn3S4Gp4exhpBWHyQ7D0yGjAk=
17-
github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
18-
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
1910
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
2011
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
2112
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
2213
github.com/gofrs/uuid v3.2.0+incompatible h1:y12jRkkFxsd7GpqdSZ+/KCs/fJbqpEXSGd4+jfEaewE=
2314
github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
24-
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
25-
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
2615
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
2716
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
2817
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
2918
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
30-
github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI=
31-
github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
3219
github.com/iancoleman/strcase v0.1.3 h1:dJBk1m2/qjL1twPLf68JND55vvivMupZ4wIzE8CTdBw=
3320
github.com/iancoleman/strcase v0.1.3/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
3421
github.com/jackc/chunkreader v1.0.0 h1:4s39bBR8ByfqH+DKm8rQA3E1LHZWB9XWcrz8fqaZbe0=
@@ -88,7 +75,6 @@ github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkr
8875
github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
8976
github.com/jinzhu/now v1.1.2 h1:eVKgfIdy9b6zbWBMgFpfDPoAMifwSZagU9HmEU6zgiI=
9077
github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
91-
github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
9278
github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
9379
github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
9480
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
@@ -114,15 +100,12 @@ github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd
114100
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
115101
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
116102
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
117-
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
118103
github.com/mattn/go-sqlite3 v1.14.5 h1:1IdxlwTNazvbKJQSxoJ5/9ECbEeaTTyeU7sEAZ5KKTQ=
119104
github.com/mattn/go-sqlite3 v1.14.5/go.mod h1:WVKg1VTActs4Qso6iwGbiFih2UIHo0ENGwNd0Lj+XmI=
120105
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc=
121106
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
122107
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg=
123108
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
124-
github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I=
125-
github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
126109
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
127110
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
128111
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -157,7 +140,6 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E
157140
go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
158141
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
159142
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
160-
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
161143
golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
162144
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
163145
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -211,21 +193,15 @@ gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:a
211193
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
212194
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
213195
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
214-
gorm.io/driver/clickhouse v0.1.0 h1:Tj6WFxBcCoj1Y/pOGal4aAK/1XFARsKnTjAa/2fyo4Y=
215-
gorm.io/driver/clickhouse v0.1.0/go.mod h1:os1R1eeDCeOMqIAz5U7jr3lUccveKbm6qwTfzfhGzOw=
216196
gorm.io/driver/mysql v1.0.5 h1:WAAmvLK2rG0tCOqrf5XcLi2QUwugd4rcVJ/W3aoon9o=
217197
gorm.io/driver/mysql v1.0.5/go.mod h1:N1OIhHAIhx5SunkMGqWbGFVeh4yTNWKmMo1GOAsohLI=
218198
gorm.io/driver/postgres v1.0.8 h1:PAgM+PaHOSAeroTjHkCHCBIHHoBIf9RgPWGo8dF2DA8=
219199
gorm.io/driver/postgres v1.0.8/go.mod h1:4eOzrI1MUfm6ObJU/UcmbXyiHSs8jSwH95G5P5dxcAg=
220200
gorm.io/driver/sqlite v1.1.4 h1:PDzwYE+sI6De2+mxAneV9Xs11+ZyKV6oxD3wDGkaNvM=
221201
gorm.io/driver/sqlite v1.1.4/go.mod h1:mJCeTFr7+crvS+TRnWc5Z3UvwxUN1BGBLMrf5LA9DYw=
222-
gorm.io/driver/sqlserver v1.0.7 h1:uwUtb0kdFwW5PkRbd2KJ2h4wlsqvLSjox1XVg/RnzRE=
223-
gorm.io/driver/sqlserver v1.0.7/go.mod h1:ng66aHI47ZIKz/vvnxzDoonzmTS8HXP+JYlgg67wOog=
224202
gorm.io/gorm v1.20.7/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
225-
gorm.io/gorm v1.20.8/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
226203
gorm.io/gorm v1.20.12/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
227204
gorm.io/gorm v1.21.3/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
228-
gorm.io/gorm v1.21.4/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw=
229205
gorm.io/gorm v1.21.8 h1:2CEwZSzogdhsKPlJ9OvBKTdlWIpELXb6HbfLfMNhSYI=
230206
gorm.io/gorm v1.21.8/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0=
231207
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=

node/data.go

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,18 @@ import (
99
)
1010

1111
const (
12-
KindActivation = "activate_account"
13-
KindBallot = "ballot"
14-
KindDelegation = "delegation"
15-
KindDoubleBaking = "double_baking_evidence"
16-
KindDoubleEndorsing = "double_endorsement_evidence"
17-
KindEndorsement = "endorsement"
18-
KindOrigination = "origination"
19-
KindProposal = "proposal"
20-
KindReveal = "reveal"
21-
KindNonceRevelation = "seed_nonce_revelation"
22-
KindTransaction = "transaction"
12+
KindActivation = "activate_account"
13+
KindBallot = "ballot"
14+
KindDelegation = "delegation"
15+
KindDoubleBaking = "double_baking_evidence"
16+
KindDoubleEndorsing = "double_endorsement_evidence"
17+
KindEndorsement = "endorsement"
18+
KindEndorsementWithSlot = "endorsement_with_slot"
19+
KindOrigination = "origination"
20+
KindProposal = "proposal"
21+
KindReveal = "reveal"
22+
KindNonceRevelation = "seed_nonce_revelation"
23+
KindTransaction = "transaction"
2324
)
2425

2526
// Errors
@@ -92,8 +93,8 @@ type Constants struct {
9293
MaxAnonOpsPerBlock int64 `json:"max_anon_ops_per_block"`
9394
MaxOperationDataLength int64 `json:"max_operation_data_length"`
9495
MaxProposalsPerDelegate int64 `json:"max_proposals_per_delegate"`
95-
PreservedCycles int64 `json:"preserved_cycles"`
96-
BlocksPerCycle int64 `json:"blocks_per_cycle"`
96+
PreservedCycles uint64 `json:"preserved_cycles"`
97+
BlocksPerCycle uint64 `json:"blocks_per_cycle"`
9798
BlocksPerCommitment int64 `json:"blocks_per_commitment"`
9899
BlocksPerRollSnapshot int64 `json:"blocks_per_roll_snapshot"`
99100
BlocksPerVotingPeriod int64 `json:"blocks_per_voting_period"`
@@ -157,3 +158,21 @@ type Header struct {
157158
ProofOfWorkNonce string `json:"proof_of_work_nonce"`
158159
Signature string `json:"signature"`
159160
}
161+
162+
// EndorsementWithSlot -
163+
type EndorsementWithSlot struct {
164+
Endorsement Endorsement `json:"endorsement"`
165+
Slot uint64 `json:"slot"`
166+
}
167+
168+
// Endorsement -
169+
type Endorsement struct {
170+
Branch string `json:"branch"`
171+
Operation EndorsementOperation `json:"operations"`
172+
Signature string `json:"signature"`
173+
}
174+
175+
// EndorsementOperation -
176+
type EndorsementOperation struct {
177+
Level uint64 `json:"level"`
178+
}

state/db.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,22 @@ func OpenConnection(cfg config.Database) (*gorm.DB, error) {
2222
case config.DBKindSqlite:
2323
dialector = sqlite.Open(cfg.Path)
2424
case config.DBKindPostgres:
25-
connString := fmt.Sprintf(
26-
"host=%s user=%s password=%s dbname=%s port=%d",
27-
cfg.Host, cfg.User, cfg.Password, cfg.Database, cfg.Port,
28-
)
25+
connString := cfg.Path
26+
if connString == "" {
27+
connString = fmt.Sprintf(
28+
"host=%s user=%s password=%s dbname=%s port=%d",
29+
cfg.Host, cfg.User, cfg.Password, cfg.Database, cfg.Port,
30+
)
31+
}
2932
dialector = postgres.Open(connString)
3033
case config.DBKindMysql:
31-
connString := fmt.Sprintf(
32-
"%s:%s@tcp(%s:%d)/%s",
33-
cfg.User, cfg.Password, cfg.Host, cfg.Port, cfg.Database,
34-
)
34+
connString := cfg.Path
35+
if connString == "" {
36+
connString = fmt.Sprintf(
37+
"%s:%s@tcp(%s:%d)/%s",
38+
cfg.User, cfg.Password, cfg.Host, cfg.Port, cfg.Database,
39+
)
40+
}
3541
dialector = mysql.Open(connString)
3642
default:
3743
return nil, errors.Errorf("Unsupported database kind %s", cfg.Kind)

tzkt/api/data.go

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ const (
2121

2222
// Operation -
2323
type Operation struct {
24-
ID uint64 `json:"id"`
25-
Level uint64 `json:"level"`
26-
Hash string `json:"hash"`
27-
Kind string `json:"type"`
28-
Block string `json:"block"`
24+
ID uint64 `json:"id"`
25+
Level uint64 `json:"level"`
26+
Hash string `json:"hash"`
27+
Kind string `json:"type"`
28+
Block string `json:"block"`
29+
Delegate *Address `json:"delegate,omitempty"`
2930
}
3031

3132
// Address -
@@ -111,3 +112,59 @@ type BigMapKey struct {
111112
LastLevel uint64 `json:"lastLevel"`
112113
Updates uint64 `json:"updates"`
113114
}
115+
116+
// Delegate -
117+
type Delegate struct {
118+
Type string `json:"type"`
119+
Alias string `json:"alias"`
120+
Address string `json:"address"`
121+
PublicKey string `json:"publicKey"`
122+
Balance int64 `json:"balance"`
123+
FrozenDeposits int64 `json:"frozenDeposits"`
124+
FrozenRewards int64 `json:"frozenRewards"`
125+
FrozenFees int64 `json:"frozenFees"`
126+
Counter int64 `json:"counter"`
127+
ActivationLevel int64 `json:"activationLevel"`
128+
StakingBalance int64 `json:"stakingBalance"`
129+
NumContracts int64 `json:"numContracts"`
130+
NumDelegators int64 `json:"numDelegators"`
131+
NumBlocks int64 `json:"numBlocks"`
132+
NumEndorsements int64 `json:"numEndorsements"`
133+
NumBallots int64 `json:"numBallots"`
134+
NumProposals int64 `json:"numProposals"`
135+
NumActivations int64 `json:"numActivations"`
136+
NumDoubleBaking int64 `json:"numDoubleBaking"`
137+
NumDoubleEndorsing int64 `json:"numDoubleEndorsing"`
138+
NumNonceRevelations int64 `json:"numNonceRevelations"`
139+
NumRevelationPenalties int64 `json:"numRevelationPenalties"`
140+
NumDelegations int64 `json:"numDelegations"`
141+
NumOriginations int64 `json:"numOriginations"`
142+
NumTransactions int64 `json:"numTransactions"`
143+
NumReveals int64 `json:"numReveals"`
144+
NumMigrations int64 `json:"numMigrations"`
145+
FirstActivity int64 `json:"firstActivity"`
146+
LastActivity int64 `json:"lastActivity"`
147+
FirstActivityTime time.Time `json:"firstActivityTime"`
148+
LastActivityTime time.Time `json:"lastActivityTime"`
149+
ActivationTime time.Time `json:"activationTime"`
150+
Software Software `json:"software"`
151+
Active bool `json:"active"`
152+
Revealed bool `json:"revealed"`
153+
}
154+
155+
// Software -
156+
type Software struct {
157+
Version string `json:"version"`
158+
Date time.Time `json:"date"`
159+
}
160+
161+
// Right -
162+
type Right struct {
163+
Type string `json:"type"`
164+
Cycle uint64 `json:"cycle"`
165+
Level uint64 `json:"level"`
166+
Timestamp time.Time `json:"timestamp"`
167+
Slots uint64 `json:"slots"`
168+
Baker Address `json:"baker"`
169+
Status string `json:"status"`
170+
}

tzkt/api/delegates.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package api
2+
3+
import "fmt"
4+
5+
// GetDelegates -
6+
func (tzkt *API) GetDelegates(filters map[string]string) (delegates []Delegate, err error) {
7+
err = tzkt.json("/v1/delegates", filters, &delegates)
8+
return
9+
}
10+
11+
// GetDelegatesCount -
12+
func (tzkt *API) GetDelegatesCount() (uint64, error) {
13+
return tzkt.count("/v1/delegates/count")
14+
}
15+
16+
// GetDelegateByAddress -
17+
func (tzkt *API) GetDelegateByAddress(address string) (delegate Delegate, err error) {
18+
err = tzkt.json(fmt.Sprintf("/v1/delegates/%s", address), nil, &delegate)
19+
return
20+
}

tzkt/api/rights.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package api
2+
3+
// GetRights -
4+
func (tzkt *API) GetRights(filters map[string]string) (rights []Right, err error) {
5+
err = tzkt.json("/v1/rights", filters, &rights)
6+
return
7+
}

0 commit comments

Comments
 (0)