Skip to content

Commit 5d4d27c

Browse files
author
Tíghearnán Carroll
authored
fixed unmarshalling issue with getblock (#13)
1 parent dbeabdb commit 5d4d27c

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

blockchain.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -70,22 +70,22 @@ func (c *client) BlockHexByHeight(ctx context.Context, height int) (string, erro
7070
}
7171

7272
func (c *client) BlockDecodeHeader(ctx context.Context, hash string) (*models.BlockDecodeHeader, error) {
73-
var resp models.BlockDecodeHeader
73+
resp := models.BlockDecodeHeader{BlockHeader: models.BlockHeader{BlockHeader: &bc.BlockHeader{}}}
7474
return &resp, c.rpc.Do(ctx, "getblock", &resp, hash, models.VerbosityDecodeHeader)
7575
}
7676

7777
func (c *client) BlockDecodeHeaderByHeight(ctx context.Context, height int) (*models.BlockDecodeHeader, error) {
78-
var resp models.BlockDecodeHeader
78+
resp := models.BlockDecodeHeader{BlockHeader: models.BlockHeader{BlockHeader: &bc.BlockHeader{}}}
7979
return &resp, c.rpc.Do(ctx, "getblockbyheight", &resp, height, models.VerbosityDecodeHeader)
8080
}
8181

8282
func (c *client) Block(ctx context.Context, hash string) (*models.Block, error) {
83-
var resp models.Block
83+
resp := models.Block{BlockHeader: models.BlockHeader{BlockHeader: &bc.BlockHeader{}}}
8484
return &resp, c.rpc.Do(ctx, "getblock", &resp, hash, models.VerbosityDecodeTransactions)
8585
}
8686

8787
func (c *client) BlockByHeight(ctx context.Context, height int) (*models.Block, error) {
88-
var resp models.Block
88+
resp := models.Block{BlockHeader: models.BlockHeader{BlockHeader: &bc.BlockHeader{}}}
8989
return &resp, c.rpc.Do(ctx, "getblockbyheight", &resp, height, models.VerbosityDecodeTransactions)
9090
}
9191

models/block.go

+15-5
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,31 @@ type Block struct {
2222

2323
// UnmarshalJSON unmarshal response.
2424
func (b *Block) UnmarshalJSON(bb []byte) error {
25-
bj := struct {
26-
Txs json.RawMessage `json:"tx"`
25+
bh := struct {
2726
BlockHeader
27+
}{
28+
BlockHeader: BlockHeader{
29+
BlockHeader: &bc.BlockHeader{},
30+
},
31+
}
32+
if err := json.Unmarshal(bb, &bh); err != nil {
33+
return err
34+
}
35+
36+
btxs := struct {
37+
Txs json.RawMessage `json:"tx"`
2838
}{}
29-
if err := json.Unmarshal(bb, &bj); err != nil {
39+
if err := json.Unmarshal(bb, &btxs); err != nil {
3040
return err
3141
}
3242

3343
var txs bt.Txs
34-
if err := json.Unmarshal(bj.Txs, txs.NodeJSON()); err != nil {
44+
if err := json.Unmarshal(btxs.Txs, txs.NodeJSON()); err != nil {
3545
return err
3646
}
3747

3848
b.Txs = txs
39-
b.BlockHeader = bj.BlockHeader
49+
b.BlockHeader = bh.BlockHeader
4050
return nil
4151
}
4252

0 commit comments

Comments
 (0)