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. ...@@ -99,7 +99,7 @@ func (mbv *MockBridgeTransfersView) L2BridgeWithdrawalsByAddress(address common.
func (mbv *MockBridgeTransfersView) L1BridgeDepositSum() (float64, error) { func (mbv *MockBridgeTransfersView) L1BridgeDepositSum() (float64, error) {
return 69, nil return 69, nil
} }
func (mbv *MockBridgeTransfersView) L2BridgeWithdrawalSum(models.WithdrawFilter) (float64, error) { func (mbv *MockBridgeTransfersView) L2BridgeWithdrawalSum(database.WithdrawFilter) (float64, error) {
return 420, nil return 420, nil
} }
......
...@@ -10,14 +10,6 @@ type QueryParams struct { ...@@ -10,14 +10,6 @@ type QueryParams struct {
Cursor string Cursor string
} }
type WithdrawFilter uint8
const (
All WithdrawFilter = iota // Same as "initialized"
Proven
Finalized
)
// DepositItem ... Deposit item model for API responses // DepositItem ... Deposit item model for API responses
type DepositItem struct { type DepositItem struct {
Guid string `json:"guid"` Guid string `json:"guid"`
......
...@@ -15,7 +15,7 @@ type Service interface { ...@@ -15,7 +15,7 @@ type Service interface {
WithdrawResponse(*database.L2BridgeWithdrawalsResponse) models.WithdrawalResponse WithdrawResponse(*database.L2BridgeWithdrawalsResponse) models.WithdrawalResponse
GetSupplyInfo() (*models.BridgeSupplyView, error) GetSupplyInfo() (*models.BridgeSupplyView, error)
QueryParams(a, l, c string) (*models.QueryParams, error) QueryParams(address, cursor, limit string) (*models.QueryParams, error)
} }
type HandlerSvc struct { type HandlerSvc struct {
...@@ -148,19 +148,19 @@ func (svc *HandlerSvc) GetSupplyInfo() (*models.BridgeSupplyView, error) { ...@@ -148,19 +148,19 @@ func (svc *HandlerSvc) GetSupplyInfo() (*models.BridgeSupplyView, error) {
return nil, err return nil, err
} }
initSum, err := svc.db.L2BridgeWithdrawalSum(models.All) initSum, err := svc.db.L2BridgeWithdrawalSum(database.All)
if err != nil { if err != nil {
svc.logger.Error("error getting init sum", "err", err) svc.logger.Error("error getting init sum", "err", err)
return nil, err return nil, err
} }
provenSum, err := svc.db.L2BridgeWithdrawalSum(models.Proven) provenSum, err := svc.db.L2BridgeWithdrawalSum(database.Proven)
if err != nil { if err != nil {
svc.logger.Error("error getting proven sum", "err", err) svc.logger.Error("error getting proven sum", "err", err)
return nil, err return nil, err
} }
finalizedSum, err := svc.db.L2BridgeWithdrawalSum(models.Finalized) finalizedSum, err := svc.db.L2BridgeWithdrawalSum(database.Finalized)
if err != nil { if err != nil {
svc.logger.Error("error getting finalized sum", "err", err) svc.logger.Error("error getting finalized sum", "err", err)
return nil, err return nil, err
......
...@@ -8,7 +8,6 @@ import ( ...@@ -8,7 +8,6 @@ import (
"gorm.io/gorm" "gorm.io/gorm"
"gorm.io/gorm/clause" "gorm.io/gorm/clause"
"github.com/ethereum-optimism/optimism/indexer/api/models"
"github.com/ethereum-optimism/optimism/op-bindings/predeploys" "github.com/ethereum-optimism/optimism/op-bindings/predeploys"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
...@@ -68,7 +67,7 @@ type BridgeTransfersView interface { ...@@ -68,7 +67,7 @@ type BridgeTransfersView interface {
L1BridgeDepositsByAddress(common.Address, string, int) (*L1BridgeDepositsResponse, error) L1BridgeDepositsByAddress(common.Address, string, int) (*L1BridgeDepositsResponse, error)
L2BridgeWithdrawal(common.Hash) (*L2BridgeWithdrawal, error) L2BridgeWithdrawal(common.Hash) (*L2BridgeWithdrawal, error)
L2BridgeWithdrawalSum(filter models.WithdrawFilter) (float64, error) L2BridgeWithdrawalSum(filter WithdrawFilter) (float64, error)
L2BridgeWithdrawalWithFilter(BridgeTransfer) (*L2BridgeWithdrawal, error) L2BridgeWithdrawalWithFilter(BridgeTransfer) (*L2BridgeWithdrawal, error)
L2BridgeWithdrawalsByAddress(common.Address, string, int) (*L2BridgeWithdrawalsResponse, error) L2BridgeWithdrawalsByAddress(common.Address, string, int) (*L2BridgeWithdrawalsResponse, error)
} }
...@@ -143,7 +142,7 @@ type L1BridgeDepositsResponse struct { ...@@ -143,7 +142,7 @@ type L1BridgeDepositsResponse struct {
// L1BridgeDepositSum ... returns the sum of all l1 bridge deposit mints in gwei // L1BridgeDepositSum ... returns the sum of all l1 bridge deposit mints in gwei
func (db *bridgeTransfersDB) L1BridgeDepositSum() (float64, error) { func (db *bridgeTransfersDB) L1BridgeDepositSum() (float64, error) {
var sum float64 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 { if result.Error != nil {
return 0, result.Error return 0, result.Error
} }
...@@ -248,17 +247,25 @@ func (db *bridgeTransfersDB) L2BridgeWithdrawal(txWithdrawalHash common.Hash) (* ...@@ -248,17 +247,25 @@ func (db *bridgeTransfersDB) L2BridgeWithdrawal(txWithdrawalHash common.Hash) (*
return &withdrawal, nil 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 // Determine where filter
var clause string var clause string
switch filter { switch filter {
case models.All: case All:
clause = "" clause = ""
case models.Finalized: case Finalized:
clause = "finalized_l1_event_guid IS NOT NULL" clause = "finalized_l1_event_guid IS NOT NULL"
case models.Proven: case Proven:
clause = "proven_l1_event_guid IS NOT NULL" clause = "proven_l1_event_guid IS NOT NULL"
default: default:
...@@ -269,7 +276,7 @@ func (db *bridgeTransfersDB) L2BridgeWithdrawalSum(filter models.WithdrawFilter) ...@@ -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 // 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 // since that would require 10^308 / 10^18 = 10^290 ETH locked in the bridge
var sum float64 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") { if result.Error != nil && strings.Contains(result.Error.Error(), "converting NULL to float64 is unsupported") {
// no rows found // no rows found
return 0, nil 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