2024-10-30 10:28:40 +01:00
|
|
|
package handler
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"math/big"
|
|
|
|
|
|
|
|
"github.com/grassrootseconomics/eth-tracker/pkg/event"
|
|
|
|
"github.com/lmittmann/w3"
|
|
|
|
"github.com/lmittmann/w3/module/eth"
|
|
|
|
)
|
|
|
|
|
2024-10-30 12:08:09 +01:00
|
|
|
const balanceThreshold = 5
|
2024-10-30 10:28:40 +01:00
|
|
|
|
|
|
|
func (h *Handler) IndexFaucetGive(ctx context.Context, event event.Event) error {
|
|
|
|
return h.store.InsertFaucetGive(ctx, event)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (h *Handler) FaucetHealthCheck(ctx context.Context, event event.Event) error {
|
|
|
|
var balance *big.Int
|
|
|
|
|
|
|
|
if err := h.chainProvider.Client.CallCtx(
|
|
|
|
ctx,
|
|
|
|
eth.Balance(w3.A(event.ContractAddress), nil).Returns(&balance),
|
|
|
|
); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
if balance.Cmp(new(big.Int).Mul(w3.BigEther, big.NewInt(balanceThreshold))) < 0 {
|
2024-10-31 08:00:39 +01:00
|
|
|
h.logg.Warn("faucet balance is less than 5 ether", "faucet", event.ContractAddress)
|
2024-10-30 10:28:40 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|