Commit 235124a9 authored by Ethen Pociask's avatar Ethen Pociask

[indexer.withdrawal_type_supplies] address PR feedback

parent 64c9b2e5
......@@ -99,7 +99,7 @@ func (mbv *MockBridgeTransfersView) L2BridgeWithdrawalsByAddress(address common.
func (mbv *MockBridgeTransfersView) L1BridgeDepositSum() (float64, error) {
return 69, nil
}
func (mbv *MockBridgeTransfersView) L2BridgeWithdrawalSum(models.WithdrawFilter) (float64, error) {
func (mbv *MockBridgeTransfersView) L2BridgeWithdrawalSum(database.WithdrawFilter) (float64, error) {
return 420, nil
}
......
......@@ -10,14 +10,6 @@ type QueryParams struct {
Cursor string
}
type WithdrawFilter uint8
const (
All WithdrawFilter = iota // Same as "initialized"
Proven
Finalized
)
// DepositItem ... Deposit item model for API responses
type DepositItem struct {
Guid string `json:"guid"`
......
......@@ -15,7 +15,7 @@ type Service interface {
WithdrawResponse(*database.L2BridgeWithdrawalsResponse) models.WithdrawalResponse
GetSupplyInfo() (*models.BridgeSupplyView, error)
QueryParams(a, l, c string) (*models.QueryParams, error)
QueryParams(address, cursor, limit string) (*models.QueryParams, error)
}
type HandlerSvc struct {
......@@ -148,19 +148,19 @@ func (svc *HandlerSvc) GetSupplyInfo() (*models.BridgeSupplyView, error) {
return nil, err
}
initSum, err := svc.db.L2BridgeWithdrawalSum(models.All)
initSum, err := svc.db.L2BridgeWithdrawalSum(database.All)
if err != nil {
svc.logger.Error("error getting init sum", "err", err)
return nil, err
}
provenSum, err := svc.db.L2BridgeWithdrawalSum(models.Proven)
provenSum, err := svc.db.L2BridgeWithdrawalSum(database.Proven)
if err != nil {
svc.logger.Error("error getting proven sum", "err", err)
return nil, err
}
finalizedSum, err := svc.db.L2BridgeWithdrawalSum(models.Finalized)
finalizedSum, err := svc.db.L2BridgeWithdrawalSum(database.Finalized)
if err != nil {
svc.logger.Error("error getting finalized sum", "err", err)
return nil, err
......
......@@ -8,7 +8,6 @@ import (
"gorm.io/gorm"
"gorm.io/gorm/clause"
"github.com/ethereum-optimism/optimism/indexer/api/models"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/log"
......@@ -68,7 +67,7 @@ type BridgeTransfersView interface {
L1BridgeDepositsByAddress(common.Address, string, int) (*L1BridgeDepositsResponse, error)
L2BridgeWithdrawal(common.Hash) (*L2BridgeWithdrawal, error)
L2BridgeWithdrawalSum(filter models.WithdrawFilter) (float64, error)
L2BridgeWithdrawalSum(filter WithdrawFilter) (float64, error)
L2BridgeWithdrawalWithFilter(BridgeTransfer) (*L2BridgeWithdrawal, error)
L2BridgeWithdrawalsByAddress(common.Address, string, int) (*L2BridgeWithdrawalsResponse, error)
}
......@@ -143,7 +142,7 @@ type L1BridgeDepositsResponse struct {
// L1BridgeDepositSum ... returns the sum of all l1 bridge deposit mints in gwei
func (db *bridgeTransfersDB) L1BridgeDepositSum() (float64, error) {
var sum float64
result := db.gorm.Model(&L1TransactionDeposit{}).Select("sum(amount)").Scan(&sum)
result := db.gorm.Model(&L1TransactionDeposit{}).Select("SUM(amount)").Scan(&sum)
if result.Error != nil {
return 0, result.Error
}
......@@ -248,17 +247,25 @@ func (db *bridgeTransfersDB) L2BridgeWithdrawal(txWithdrawalHash common.Hash) (*
return &withdrawal, nil
}
func (db *bridgeTransfersDB) L2BridgeWithdrawalSum(filter models.WithdrawFilter) (float64, error) {
type WithdrawFilter uint8
const (
All WithdrawFilter = iota // Same as "initialized"
Proven
Finalized
)
func (db *bridgeTransfersDB) L2BridgeWithdrawalSum(filter WithdrawFilter) (float64, error) {
// Determine where filter
var clause string
switch filter {
case models.All:
case All:
clause = ""
case models.Finalized:
case Finalized:
clause = "finalized_l1_event_guid IS NOT NULL"
case models.Proven:
case Proven:
clause = "proven_l1_event_guid IS NOT NULL"
default:
......@@ -269,7 +276,7 @@ func (db *bridgeTransfersDB) L2BridgeWithdrawalSum(filter models.WithdrawFilter)
// This is ok though given all bridges will never exceed max float64 (10^308 || 1.7E+308) in wei value locked
// since that would require 10^308 / 10^18 = 10^290 ETH locked in the bridge
var sum float64
result := db.gorm.Model(&L2TransactionWithdrawal{}).Where(clause).Select("sum(amount)").Scan(&sum)
result := db.gorm.Model(&L2TransactionWithdrawal{}).Where(clause).Select("SUM(amount)").Scan(&sum)
if result.Error != nil && strings.Contains(result.Error.Error(), "converting NULL to float64 is unsupported") {
// no rows found
return 0, nil
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment