Files
2021-09-30 10:04:05 -04:00

41 lines
1.0 KiB
Go

// (c) 2021, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package avax
import (
"context"
"github.com/ava-labs/avalanchego/ids"
"github.com/ava-labs/ortelius/cfg"
"github.com/ava-labs/ortelius/models"
"github.com/ava-labs/ortelius/services/indexes/params"
)
func (r *Reader) ListBlocks(ctx context.Context, params *params.ListBlocksParams) (*models.BlockList, error) {
dbRunner, err := r.conns.DB().NewSession("list_blocks", cfg.RequestTimeout)
if err != nil {
return nil, err
}
blocks := []*models.Block{}
_, err = params.Apply(dbRunner.
Select("id", "type", "parent_id", "chain_id", "created_at").
From("pvm_blocks")).
LoadContext(ctx, &blocks)
if err != nil {
return nil, err
}
return &models.BlockList{Blocks: blocks}, nil
}
func (r *Reader) GetBlock(ctx context.Context, id ids.ID) (*models.Block, error) {
list, err := r.ListBlocks(ctx, &params.ListBlocksParams{ListParams: params.ListParams{ID: &id}})
if err != nil || len(list.Blocks) == 0 {
return nil, err
}
return list.Blocks[0], nil
}