90 lines
2.6 KiB
Go
90 lines
2.6 KiB
Go
package genex
|
|
|
|
import (
|
|
"math/big"
|
|
"time"
|
|
|
|
"github.com/ethereum/go-ethereum/common"
|
|
)
|
|
|
|
// CouponDetail 券详情
|
|
type CouponDetail struct {
|
|
TokenID *big.Int `json:"tokenId"`
|
|
FaceValue *big.Int `json:"faceValue"`
|
|
CouponType uint8 `json:"couponType"` // 0=utility, 1=security
|
|
ExpiryDate time.Time `json:"expiryDate"`
|
|
ResaleCount uint64 `json:"resaleCount"`
|
|
MaxResaleCount uint64 `json:"maxResaleCount"`
|
|
Transferable bool `json:"transferable"`
|
|
Issuer common.Address `json:"issuer"`
|
|
Redeemed bool `json:"redeemed"`
|
|
}
|
|
|
|
// CouponHolding 券持有
|
|
type CouponHolding struct {
|
|
TokenID *big.Int `json:"tokenId"`
|
|
BatchID *big.Int `json:"batchId"`
|
|
Detail *CouponDetail `json:"detail"`
|
|
}
|
|
|
|
// BlockInfo 区块信息
|
|
type BlockInfo struct {
|
|
Height int64 `json:"height"`
|
|
Hash string `json:"hash"`
|
|
Timestamp time.Time `json:"timestamp"`
|
|
TxCount int `json:"txCount"`
|
|
Proposer string `json:"proposer"`
|
|
}
|
|
|
|
// TransactionInfo 交易信息
|
|
type TransactionInfo struct {
|
|
Hash string `json:"hash"`
|
|
BlockHeight int64 `json:"blockHeight"`
|
|
From string `json:"from"`
|
|
To string `json:"to"`
|
|
Value *big.Int `json:"value"`
|
|
GasUsed uint64 `json:"gasUsed"`
|
|
Status string `json:"status"` // "success" | "failed"
|
|
Timestamp time.Time `json:"timestamp"`
|
|
}
|
|
|
|
// ChainStats 链统计
|
|
type ChainStats struct {
|
|
BlockHeight int64 `json:"blockHeight"`
|
|
TPS float64 `json:"tps"`
|
|
ActiveAddresses int64 `json:"activeAddresses"`
|
|
TotalCoupons int64 `json:"totalCoupons"`
|
|
TotalVolume *big.Int `json:"totalVolume"`
|
|
}
|
|
|
|
// ChainEvent 链事件
|
|
type ChainEvent struct {
|
|
Type string `json:"type"`
|
|
BlockHeight int64 `json:"blockHeight"`
|
|
TxHash string `json:"txHash"`
|
|
Data map[string]interface{} `json:"data"`
|
|
}
|
|
|
|
// EventFilter 事件过滤器
|
|
type EventFilter struct {
|
|
ContractAddress *common.Address `json:"contractAddress,omitempty"`
|
|
EventName string `json:"eventName,omitempty"`
|
|
FromBlock *big.Int `json:"fromBlock,omitempty"`
|
|
ToBlock *big.Int `json:"toBlock,omitempty"`
|
|
}
|
|
|
|
// SwapParams 交换参数
|
|
type SwapParams struct {
|
|
TokenID *big.Int `json:"tokenId"`
|
|
Buyer common.Address `json:"buyer"`
|
|
Seller common.Address `json:"seller"`
|
|
Price *big.Int `json:"price"`
|
|
Stablecoin common.Address `json:"stablecoin"`
|
|
}
|
|
|
|
// Signer 签名接口
|
|
type Signer interface {
|
|
SignTransaction(tx interface{}) ([]byte, error)
|
|
GetAddress() common.Address
|
|
}
|