Files
libsam/pkg/shreder/tx.go

46 lines
1.3 KiB
Go
Raw Normal View History

2025-12-30 11:03:11 +08:00
package shreder
2025-12-26 10:57:37 +08:00
import (
"time"
"github.com/shopspring/decimal"
)
2025-12-30 11:03:11 +08:00
const (
TokenDecimals = 6
SolDecimals = 9
)
2025-12-26 10:57:37 +08:00
type TxSignal struct {
2025-12-26 11:34:45 +08:00
Source string `json:"source"`
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"`
2025-12-26 10:57:37 +08:00
2025-12-30 11:03:11 +08:00
ExactSOL bool `json:"exact_in"`
2025-12-26 11:34:45 +08:00
// parsed values
Token0AmountUint64 uint64 `json:"-"`
Token1AmountUint64 uint64 `json:"-"`
2025-12-26 10:57:37 +08:00
}
func (t *TxSignal) Parse() *TxSignal {
2025-12-30 11:03:11 +08:00
t.Token0AmountUint64 = t.Token0Amount.Mul(decimal.New(1, TokenDecimals)).BigInt().Uint64()
t.Token1AmountUint64 = t.Token1Amount.Mul(decimal.New(1, SolDecimals)).BigInt().Uint64()
2025-12-26 10:57:37 +08:00
return t
}
2025-12-26 11:13:31 +08:00
type TxSignalBatch = []*TxSignal