Documentation ¶
Index ¶
- Variables
- func Scan(ctx context.Context, stop chan os.Signal, config ContractConfig, db *gorm.DB, ...) error
- type BmErc1155TransferBatch
- type BmErc1155TransferSingle
- type BmErc20Transfer
- type BmGovernorProposalCanceled
- type BmGovernorProposalCreated
- type BmGovernorProposalExecuted
- type Config
- type ContractConfig
- type ERC1155Api
- type ERC1155Scanner
- type ERC20Api
- type ERC20Scanner
- type FaucetApi
- type FaucetClaimed
- type FaucetScanner
- type GovernorApi
- type GovernorScanner
- type IScanner
- type Scanner
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNoEventSignature = errors.New("no event signature") ErrInvalidEventID = errors.New("invalid eventID exists") ErrEventSignatureMismatch = errors.New("event signature mismatch") ErrNonTargetedEvent = errors.New("non-targeted event") )
View Source
var Command = &cli.Command{ Name: "scanner", Flags: []cli.Flag{flags.ConfigFlag}, Action: func(ctx *cli.Context) error { log := logrus.New() log.SetFormatter(&logrus.TextFormatter{ ForceColors: true, DisableColors: false, DisableTimestamp: false, TimestampFormat: "2006-01-02 15:04:05", }) log.SetLevel(logrus.TraceLevel) log.SetOutput(os.Stdout) log.Info("Read Config...") config, err := flags.ReadConfig[Config](ctx) if err != nil { return err } log.Info("Connect Database...") db, err := gorm.Open(postgres.Open(config.GetPostgreDns()), &gorm.Config{}) if err != nil { return err } log.Info("Connect EventLogger...") conn, err := grpc.NewClient(config.EventLogger.URI, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { return err } stopCh := make(chan os.Signal, 1) signal.Notify(stopCh, syscall.SIGINT, syscall.SIGTERM) go func() { log.Info("Open Rest Api...", "listen", "0.0.0.0:8090") engine := gin.Default() v1 := engine.Group("/api/v1") for _, api := range []interface { RegisterApi(*gin.RouterGroup) error }{ NewERC20Api(db), NewERC1155Api(db), NewFaucetApi(db), NewGovernorApi(db), } { if err := api.RegisterApi(v1); err != nil { log.WithField("message", err.Error()).Panic("fail to register api") } } if err := engine.Run("0.0.0.0:8090"); err != nil { stopCh <- os.Interrupt } }() return Scan(ctx.Context, stopCh, config.Contracts, db, logger.NewLoggerClient(conn), log) }, Subcommands: []*cli.Command{ { Name: "init", Flags: []cli.Flag{flags.ConfigFlag}, Action: func(ctx *cli.Context) error { config, err := flags.ReadConfig[Config](ctx) if err != nil { return err } db, err := gorm.Open(postgres.Open(config.GetPostgreDns()), &gorm.Config{}) if err != nil { return err } err = db.AutoMigrate(dbtypes.AllTables...) if err == nil { fmt.Println("Scanner Init Successed!") } return err }, }, }, }
Functions ¶
Types ¶
type BmErc1155TransferBatch ¶
type BmErc1155TransferBatch gov.BmErc1155TransferBatch
type BmErc1155TransferSingle ¶
type BmErc1155TransferSingle gov.BmErc1155TransferSingle
type BmErc20Transfer ¶
type BmErc20Transfer gov.BmErc20Transfer
type BmGovernorProposalCanceled ¶
type BmGovernorProposalCanceled gov.BmGovernorProposalCanceled
type BmGovernorProposalCreated ¶
type BmGovernorProposalCreated gov.BmGovernorProposalCreated
type BmGovernorProposalExecuted ¶
type BmGovernorProposalExecuted gov.BmGovernorProposalExecuted
type Config ¶
type Config struct { EventLogger struct { URI string `toml:"uri"` } `toml:"event-logger"` Contracts ContractConfig `toml:"contracts"` Database struct { DBName string `toml:"name"` Host string `toml:"host"` Port int `toml:"port"` User string `toml:"user"` Password string `toml:"passowrd"` } `toml:"db"` }
func (*Config) GetPostgreDns ¶
type ContractConfig ¶
type ERC1155Api ¶
type ERC1155Api struct {
// contains filtered or unexported fields
}
func NewERC1155Api ¶
func NewERC1155Api(db *gorm.DB) *ERC1155Api
func (*ERC1155Api) RegisterApi ¶
func (api *ERC1155Api) RegisterApi(engine *gin.RouterGroup) error
type ERC20Api ¶
type ERC20Api struct {
// contains filtered or unexported fields
}
func NewERC20Api ¶
func (*ERC20Api) RegisterApi ¶
func (api *ERC20Api) RegisterApi(engine *gin.RouterGroup) error
type FaucetApi ¶
type FaucetApi struct {
// contains filtered or unexported fields
}
func NewFaucetApi ¶
func (*FaucetApi) RegisterApi ¶
func (api *FaucetApi) RegisterApi(engine *gin.RouterGroup) error
type FaucetClaimed ¶
type FaucetClaimed gov.FaucetClaimed
type GovernorApi ¶
type GovernorApi struct {
// contains filtered or unexported fields
}
func NewGovernorApi ¶
func NewGovernorApi(db *gorm.DB) *GovernorApi
func (*GovernorApi) RegisterApi ¶
func (api *GovernorApi) RegisterApi(engine *gin.RouterGroup) error
Source Files ¶
Click to show internal directories.
Click to hide internal directories.