Skip to content

Commit 84084ae

Browse files
committed
WIP
1 parent d6fb9a0 commit 84084ae

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

pkg/solana/logpoller/log_poller.go

+31-3
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package logpoller
33
import (
44
"context"
55
"errors"
6+
"fmt"
7+
"math"
68
"sync"
79
"time"
810

@@ -19,10 +21,11 @@ var (
1921

2022
//go:generate mockery --name ORM --inpackage --structname mockORM --filename mock_orm.go
2123
type ORM interface {
22-
InsertFilter(ctx context.Context, filter Filter) (id int64, err error)
23-
SelectFilters(ctx context.Context) ([]Filter, error)
24-
DeleteFilters(ctx context.Context, filters map[int64]Filter) error
24+
InsertFilter(context.Context, filter Filter) (id int64, err error)
25+
SelectFilters(context.Context) ([]Filter, error)
26+
DeleteFilters(context.Context, filters map[int64]Filter) error
2527
MarkFilterDeleted(ctx context.Context, id int64) (err error)
28+
InsertLogs(context.Context, []Log) (err error)
2629
}
2730

2831
type ILogPoller interface {
@@ -57,9 +60,34 @@ func NewLogPoller(lggr logger.SugaredLogger, orm ORM, cl internal.Loader[client.
5760
return &lp
5861
}
5962

63+
func makeLogIndex(txIndex int, txLogIndex uint) int64 {
64+
if txIndex < 0 || txIndex > math.MaxUint32 || txLogIndex > math.MaxUint32 {
65+
panic(fmt.Sprintf("txIndex or txLogIndex out of range: txIndex=%d, txLogIndex=%d", txIndex, txLogIndex))
66+
}
67+
return int64(math.MaxUint32 * uint32(txIndex) + uint32(txLogIndex))
68+
}
69+
6070
func (lp *LogPoller) Process(event ProgramEvent) error {
6171
// process stream of events coming from event loader
72+
73+
Decode(event.Data) // Borsch decode
74+
75+
log := Log{
76+
FilterID: filterID,
77+
ChainID: lp.chainID,
78+
LogIndex: makeLogIndex(event.TransactionIndex, event.TransactionLogIndex),
79+
BlockHash: Hash(event.BlockHash),
80+
BlockNumber: int64(event.BlockHeight),
81+
BlockTimestamp: ,
82+
Address:,
83+
EventSig:,
84+
85+
}
86+
87+
logs := []Log{log}
88+
6289
lp.events = append(lp.events, event)
90+
6391
return nil
6492
}
6593

0 commit comments

Comments
 (0)