hacks/btcphrasechecker/types/types.go
2026-02-12 12:26:39 -08:00

68 lines
1.6 KiB
Go

package types
import "time"
// Chain represents a blockchain type
type Chain string
const (
ChainBitcoin Chain = "bitcoin"
ChainEthereum Chain = "ethereum"
)
// AddressInfo contains information about a derived address
type AddressInfo struct {
Address string
Path string
Balance uint64
TxCount int
Chain Chain
Received uint64
Sent uint64
}
// Transaction represents a blockchain transaction
type Transaction struct {
TxID string
Time time.Time
BlockHeight int
Confirmed bool
Received uint64
Sent uint64
Fee uint64
NetChange int64 // Can be negative
Addresses []string
}
// TransactionDetail provides detailed transaction information
type TransactionDetail struct {
TxID string
Time time.Time
BlockHeight int
Confirmed bool
Type string // "received", "sent", "self"
Amount uint64
Balance uint64 // Running balance after this tx
Address string
}
// WalletSummary contains overall wallet statistics
type WalletSummary struct {
TotalBalance uint64
TotalReceived uint64
TotalSent uint64
TotalTxCount int
ReceiveTxCount int
SendTxCount int
ActiveAddresses []AddressInfo
TransactionHistory []TransactionDetail
}
// ChainAnalyzer defines the interface for blockchain analysis
type ChainAnalyzer interface {
DeriveAddresses(seed []byte, count int) ([]AddressInfo, error)
GetAddressInfo(address string) (balance, txCount uint64, received, sent uint64, err error)
GetTransactions(address string) ([]Transaction, error)
GetChain() Chain
}