@@ -469,6 +469,10 @@ func (c *ClickHouseConnector) GetAggregations(table string, qf QueryFilter) (Que
469469 if contractAddressClause != "" {
470470 whereClauses = append (whereClauses , contractAddressClause )
471471 }
472+ fromAddressClause := createFromAddressClause (table , qf .FromAddress )
473+ if fromAddressClause != "" {
474+ whereClauses = append (whereClauses , fromAddressClause )
475+ }
472476 signatureClause := createSignatureClause (table , qf .Signature )
473477 if signatureClause != "" {
474478 whereClauses = append (whereClauses , signatureClause )
@@ -545,8 +549,7 @@ func (c *ClickHouseConnector) GetAggregations(table string, qf QueryFilter) (Que
545549}
546550
547551func executeQuery [T any ](c * ClickHouseConnector , table , columns string , qf QueryFilter , scanFunc func (driver.Rows ) (T , error )) (QueryResult [T ], error ) {
548- tableName := c .getTableName (qf .ChainId , table )
549- query := c .buildQuery (tableName , columns , qf )
552+ query := c .buildQuery (table , columns , qf )
550553
551554 if err := common .ValidateQuery (query ); err != nil {
552555 return QueryResult [T ]{}, err
@@ -573,7 +576,8 @@ func executeQuery[T any](c *ClickHouseConnector, table, columns string, qf Query
573576}
574577
575578func (c * ClickHouseConnector ) buildQuery (table , columns string , qf QueryFilter ) string {
576- query := fmt .Sprintf ("SELECT %s FROM %s.%s" , columns , c .cfg .Database , table )
579+ tableName := c .getTableName (qf .ChainId , table )
580+ query := fmt .Sprintf ("SELECT %s FROM %s.%s" , columns , c .cfg .Database , tableName )
577581 if qf .ForceConsistentData {
578582 query += " FINAL"
579583 }
@@ -590,6 +594,10 @@ func (c *ClickHouseConnector) buildQuery(table, columns string, qf QueryFilter)
590594 if contractAddressClause != "" {
591595 whereClauses = append (whereClauses , contractAddressClause )
592596 }
597+ fromAddressClause := createFromAddressClause (table , qf .FromAddress )
598+ if fromAddressClause != "" {
599+ whereClauses = append (whereClauses , fromAddressClause )
600+ }
593601 signatureClause := createSignatureClause (table , qf .Signature )
594602 if signatureClause != "" {
595603 whereClauses = append (whereClauses , signatureClause )
@@ -660,6 +668,17 @@ func createContractAddressClause(table, contractAddress string) string {
660668 return ""
661669}
662670
671+ func createFromAddressClause (table , fromAddress string ) string {
672+ if fromAddress == "" {
673+ return ""
674+ }
675+ fromAddress = strings .ToLower (fromAddress )
676+ if table == "transactions" {
677+ return fmt .Sprintf ("from_address = '%s'" , fromAddress )
678+ }
679+ return ""
680+ }
681+
663682func createBlockNumbersClause (blockNumbers []* big.Int ) string {
664683 if len (blockNumbers ) > 0 {
665684 return fmt .Sprintf ("block_number IN (%s)" , getBlockNumbersStringArray (blockNumbers ))
0 commit comments