diff --git a/hypergrid-aide/main.go b/hypergrid-aide/main.go index 3e63dbd..e2ba9e9 100644 --- a/hypergrid-aide/main.go +++ b/hypergrid-aide/main.go @@ -65,6 +65,14 @@ func main() { log.Fatal(err) } + // block, err := solana.GetLastBlock() + // if err != nil { + // log.Fatal(err) + // } else { + // println("Last block: ", block.Slot) + + // } + last_sent_slot, err = tools.GetLastSentSlot() if err != nil { log.Fatal(err) diff --git a/hypergrid-aide/tools/solana.go b/hypergrid-aide/tools/solana.go index aeaeccb..0443e9c 100644 --- a/hypergrid-aide/tools/solana.go +++ b/hypergrid-aide/tools/solana.go @@ -63,15 +63,24 @@ func (s *SolanaClient) GetFirstBlock() (uint64, error) { return 0, nil } -func (s *SolanaClient) GetLastBlock() (uint64, error) { - // resp, err := s.Client.GetBlock() .GetBlocksWithLimit(context.TODO(), 0, 1, rpc.CommitmentFinalized) - // if err != nil { - // return 0, err - // } - // if len(*resp) > 0 { - // return (*resp)[0], nil - // } - return 0, nil +func (s *SolanaClient) GetLastBlock() (SolanaBlock, error) { + resp, err := s.Client.GetBlockHeight(context.TODO(), rpc.CommitmentFinalized) + if err != nil { + return SolanaBlock{}, err + } + resp2, err := s.Client.GetBlock(context.TODO(), resp) + if err != nil { + return SolanaBlock{}, err + } + + block := SolanaBlock{ + Blockhash: resp2.Blockhash.String(), + Slot: resp, + BlockTime: resp2.BlockTime.Time().Second(), + } + + return block, nil + } func (s *SolanaClient) GetBlocks(start_slot uint64, limit uint64) ([]SolanaBlock, error) {