From 2fd189b3d31862eed1259e16f16d9cb17113a20f Mon Sep 17 00:00:00 2001 From: Ragot Geoffrey Date: Thu, 30 Jan 2025 10:42:22 +0100 Subject: [PATCH] feat: replace get_account_balance sql function call by inline query (#669) --- internal/storage/ledgerstore/balances.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/storage/ledgerstore/balances.go b/internal/storage/ledgerstore/balances.go index e7df72cf7..59fa5aa5c 100644 --- a/internal/storage/ledgerstore/balances.go +++ b/internal/storage/ledgerstore/balances.go @@ -146,8 +146,16 @@ func (store *Store) GetBalance(ctx context.Context, address, asset string) (*big type Temp struct { Balance *big.Int `bun:"balance,type:numeric"` } + v, err := fetch[*Temp](store, false, ctx, func(query *bun.SelectQuery) *bun.SelectQuery { - return query.TableExpr("get_account_balance(?, ?, ?) as balance", store.name, address, asset) + return query. + ModelTableExpr(MovesTableName). + ColumnExpr("(post_commit_volumes).inputs - (post_commit_volumes).outputs as balance"). + Where("account_address = ?", address). + Where("asset = ?", asset). + Where("ledger = ?", store.name). + Order("seq desc"). + Limit(1) }) if err != nil { return nil, err