Files
libsam/pkg/shreder/tx.go
2026-01-28 15:02:54 +08:00

66 lines
1.8 KiB
Go

package shreder
import (
"log/slog"
"os"
"time"
"github.com/shopspring/decimal"
)
const (
TokenDecimals = 6
SolDecimals = 9
)
var (
logger *slog.Logger
)
func init() {
handler := slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: slog.LevelInfo})
logger = slog.New(handler)
}
func SetLogLevel(level slog.Level) {
handler := slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: level})
logger = slog.New(handler)
}
type TxSignal struct {
Source string `json:"source"`
Label string `json:"label"`
TxHash string `json:"tx_hash"`
Maker string `json:"maker"`
Token0Address string `json:"token0_address"`
Token1Address string `json:"token1_address"`
Token0Amount decimal.Decimal `json:"token0_amount"`
Token1Amount decimal.Decimal `json:"token1_amount"`
Block uint64 `json:"block"`
BlockAt time.Time `json:"block_at"`
BlockIndex uint64 `json:"block_index"`
Event string `json:"event"`
Program string `json:"program"`
IsProcessed bool `json:"is_processed"`
IsToken2022 bool `json:"is_token2022"`
IsMayhemMode bool `json:"is_mayhem_mode"`
TxFee decimal.Decimal `json:"tx_fee"`
ExactSOL bool `json:"exact_in"`
//Just for metaora DLMM
// ActiveBin is the active bin id provided by swap_with_price_impact(2).
ActiveBin int32 `json:"active_bin"`
// MaxPriceImpactBps is the price impact guard for swap_with_price_impact(2).
MaxPriceImpactBps uint16 `json:"max_price_impact_bps"`
// parsed values
Token0AmountUint64 uint64 `json:"-"`
Token1AmountUint64 uint64 `json:"-"`
ParseStart time.Time `json:"parse_start"`
ParseEnd time.Time `json:"parse_end"`
}
type TxSignalBatch = []*TxSignal