From 3a57982dfafe3be8e7f6b5db8957adfdd63eae28 Mon Sep 17 00:00:00 2001 From: Webster Swift Date: Tue, 2 Jun 2026 11:22:13 +0300 Subject: [PATCH] refactor: clean up SQL files and improve query consistency --- Makefile | 3 +- internal/models/models_gen.go | 64 +-- internal/services/webhooks/sender.go | 2 +- .../repos/repo_settings/settings_gen.sql.go | 2 +- .../repos/repo_transfers/constants_gen.go | 6 +- .../repos/repo_wallets_cold/constants_gen.go | 6 +- .../repos/repo_wallets_hot/constants_gen.go | 6 +- .../repos/repo_wallets_hot/hot_wallets.sql.go | 2 +- .../repo_wallets_processing/constants_gen.go | 6 +- pgxgen.yaml | 475 +++++++++++------- sql/postgres/queries/clients/clients_gen.sql | 1 - sql/postgres/queries/owners/owners_gen.sql | 1 - .../processed_blocks/processed_blocks_gen.sql | 1 - .../queries/settings/settings_gen.sql | 3 +- .../transfer_transactions_gen.sql | 1 - .../queries/transfers/transfers_gen.sql | 1 - .../queries/wallets_cold/cold_wallets_gen.sql | 1 - .../queries/wallets_hot/hot_wallets.sql | 2 +- .../queries/wallets_hot/hot_wallets_gen.sql | 1 - .../processing_wallets_gen.sql | 1 - .../queries/webhooks/webhooks_gen.sql | 1 - 21 files changed, 308 insertions(+), 278 deletions(-) diff --git a/Makefile b/Makefile index a932a80..2959e56 100644 --- a/Makefile +++ b/Makefile @@ -45,8 +45,7 @@ grpcui: grpcui --plaintext localhost:9000 gensql: - @pgxgen crud - @pgxgen sqlc generate + @pgxgen generate genproto: @buf lint diff --git a/internal/models/models_gen.go b/internal/models/models_gen.go index ea43534..9806704 100644 --- a/internal/models/models_gen.go +++ b/internal/models/models_gen.go @@ -1,13 +1,7 @@ -// Code generated by sqlc. DO NOT EDIT. -// versions: -// sqlc v1.30.0 - +// Code generated by pgxgen. DO NOT EDIT. package models import ( - "database/sql/driver" - "fmt" - "github.com/dv-net/dv-processing/internal/constants" "github.com/dv-net/dv-processing/internal/workflow" "github.com/dv-net/dv-processing/pkg/walletsdk/wconstants" @@ -23,54 +17,17 @@ const ( RiverJobStateCancelled RiverJobState = "cancelled" RiverJobStateCompleted RiverJobState = "completed" RiverJobStateDiscarded RiverJobState = "discarded" - RiverJobStatePending RiverJobState = "pending" RiverJobStateRetryable RiverJobState = "retryable" RiverJobStateRunning RiverJobState = "running" RiverJobStateScheduled RiverJobState = "scheduled" ) -func (e *RiverJobState) Scan(src interface{}) error { - switch s := src.(type) { - case []byte: - *e = RiverJobState(s) - case string: - *e = RiverJobState(s) - default: - return fmt.Errorf("unsupported scan type for RiverJobState: %T", src) - } - return nil -} - -type NullRiverJobState struct { - RiverJobState RiverJobState `json:"river_job_state"` - Valid bool `json:"valid"` // Valid is true if RiverJobState is not NULL -} - -// Scan implements the Scanner interface. -func (ns *NullRiverJobState) Scan(value interface{}) error { - if value == nil { - ns.RiverJobState, ns.Valid = "", false - return nil - } - ns.Valid = true - return ns.RiverJobState.Scan(value) -} - -// Value implements the driver Valuer interface. -func (ns NullRiverJobState) Value() (driver.Value, error) { - if !ns.Valid { - return nil, nil - } - return string(ns.RiverJobState), nil -} - func (e RiverJobState) Valid() bool { switch e { case RiverJobStateAvailable, RiverJobStateCancelled, RiverJobStateCompleted, RiverJobStateDiscarded, - RiverJobStatePending, RiverJobStateRetryable, RiverJobStateRunning, RiverJobStateScheduled: @@ -79,19 +36,6 @@ func (e RiverJobState) Valid() bool { return false } -func AllRiverJobStateValues() []RiverJobState { - return []RiverJobState{ - RiverJobStateAvailable, - RiverJobStateCancelled, - RiverJobStateCompleted, - RiverJobStateDiscarded, - RiverJobStatePending, - RiverJobStateRetryable, - RiverJobStateRunning, - RiverJobStateScheduled, - } -} - type Client struct { ID uuid.UUID `db:"id" json:"id"` SecretKey string `db:"secret_key" json:"secret_key"` @@ -202,7 +146,7 @@ type RiverJob struct { Priority int16 `db:"priority" json:"priority"` Args []byte `db:"args" json:"args"` AttemptedBy []string `db:"attempted_by" json:"attempted_by"` - Errors [][]byte `db:"errors" json:"errors"` + Errors []byte `db:"errors" json:"errors"` Kind string `db:"kind" json:"kind"` Metadata []byte `db:"metadata" json:"metadata"` Queue string `db:"queue" json:"queue"` @@ -298,6 +242,6 @@ type WebhookView struct { CreatedAt pgtype.Timestamptz `db:"created_at" json:"created_at"` SentAt pgtype.Timestamptz `db:"sent_at" json:"sent_at"` UpdatedAt pgtype.Timestamptz `db:"updated_at" json:"updated_at"` - CallbackUrl string `db:"callback_url" json:"callback_url"` - SecretKey string `db:"secret_key" json:"secret_key"` + CallbackUrl pgtype.Text `db:"callback_url" json:"callback_url"` + SecretKey pgtype.Text `db:"secret_key" json:"secret_key"` } diff --git a/internal/services/webhooks/sender.go b/internal/services/webhooks/sender.go index 90590aa..a34d28e 100644 --- a/internal/services/webhooks/sender.go +++ b/internal/services/webhooks/sender.go @@ -156,7 +156,7 @@ func (s *sender) handleChunk(ctx context.Context, sentWebhooks *atomic.Int32, ch defer wg.Done() // send webhook - resp, err := s.doRequest(ctx, item.Payload, item.CallbackUrl, item.SecretKey) + resp, err := s.doRequest(ctx, item.Payload, item.CallbackUrl.String, item.SecretKey.String) if err != nil { whResponseData := resp if whResponseData == nil || *whResponseData == "" { diff --git a/internal/store/repos/repo_settings/settings_gen.sql.go b/internal/store/repos/repo_settings/settings_gen.sql.go index 9c68a69..a2da869 100644 --- a/internal/store/repos/repo_settings/settings_gen.sql.go +++ b/internal/store/repos/repo_settings/settings_gen.sql.go @@ -49,7 +49,7 @@ func (q *Queries) Create(ctx context.Context, arg CreateParams) (*models.Setting const update = `-- name: Update :one UPDATE settings SET model_id=$1, model_type=$2, name=$3, value=$4, updated_at=$5 - WHERE id=$6 +WHERE id=$6 RETURNING id, model_id, model_type, name, value, created_at, updated_at ` diff --git a/internal/store/repos/repo_transfers/constants_gen.go b/internal/store/repos/repo_transfers/constants_gen.go index 99bac06..138d90f 100755 --- a/internal/store/repos/repo_transfers/constants_gen.go +++ b/internal/store/repos/repo_transfers/constants_gen.go @@ -1,13 +1,9 @@ // Code generated by pgxgen. DO NOT EDIT. -// versions: -// -// pgxgen v0.3.12 package repo_transfers import ( - "strings" - "github.com/gobeam/stringy" + "strings" ) type TableName string diff --git a/internal/store/repos/repo_wallets_cold/constants_gen.go b/internal/store/repos/repo_wallets_cold/constants_gen.go index e815d4e..78b503e 100755 --- a/internal/store/repos/repo_wallets_cold/constants_gen.go +++ b/internal/store/repos/repo_wallets_cold/constants_gen.go @@ -1,13 +1,9 @@ // Code generated by pgxgen. DO NOT EDIT. -// versions: -// -// pgxgen v0.3.12 package repo_wallets_cold import ( - "strings" - "github.com/gobeam/stringy" + "strings" ) type TableName string diff --git a/internal/store/repos/repo_wallets_hot/constants_gen.go b/internal/store/repos/repo_wallets_hot/constants_gen.go index 63b548f..0ef8751 100755 --- a/internal/store/repos/repo_wallets_hot/constants_gen.go +++ b/internal/store/repos/repo_wallets_hot/constants_gen.go @@ -1,13 +1,9 @@ // Code generated by pgxgen. DO NOT EDIT. -// versions: -// -// pgxgen v0.3.12 package repo_wallets_hot import ( - "strings" - "github.com/gobeam/stringy" + "strings" ) type TableName string diff --git a/internal/store/repos/repo_wallets_hot/hot_wallets.sql.go b/internal/store/repos/repo_wallets_hot/hot_wallets.sql.go index 4c415bc..c65f31d 100644 --- a/internal/store/repos/repo_wallets_hot/hot_wallets.sql.go +++ b/internal/store/repos/repo_wallets_hot/hot_wallets.sql.go @@ -23,7 +23,7 @@ func (q *Queries) ActivateWallet(ctx context.Context, blockchain wconstants.Bloc } const findEVMByExternalID = `-- name: FindEVMByExternalID :many -select id, blockchain, address, owner_id, external_wallet_id, sequence, is_activated, is_active, is_dirty, created_at, updated_at from hot_wallets where external_wallet_id = $1 and blockchain in (select unnest($2::text[])) and owner_id = $3 and is_active = true order by sequence desc limit 1 +select id, blockchain, address, owner_id, external_wallet_id, sequence, is_activated, is_active, is_dirty, created_at, updated_at from hot_wallets where external_wallet_id = $1 and blockchain in (select unnest($2::text[])) and owner_id = $3 and is_active = true and is_dirty = false order by sequence desc limit 1 ` func (q *Queries) FindEVMByExternalID(ctx context.Context, externalWalletID string, column2 []string, ownerID uuid.UUID) ([]*models.HotWallet, error) { diff --git a/internal/store/repos/repo_wallets_processing/constants_gen.go b/internal/store/repos/repo_wallets_processing/constants_gen.go index 89d25d2..3e6b589 100755 --- a/internal/store/repos/repo_wallets_processing/constants_gen.go +++ b/internal/store/repos/repo_wallets_processing/constants_gen.go @@ -1,13 +1,9 @@ // Code generated by pgxgen. DO NOT EDIT. -// versions: -// -// pgxgen v0.3.12 package repo_wallets_processing import ( - "strings" - "github.com/gobeam/stringy" + "strings" ) type TableName string diff --git a/pgxgen.yaml b/pgxgen.yaml index 08a1e03..1f31f45 100644 --- a/pgxgen.yaml +++ b/pgxgen.yaml @@ -1,193 +1,306 @@ -version: 1 -sqlc: - - schema_dir: sql/postgres/migrations - models: - move: +version: "2" +schemas: + - name: main + engine: postgresql + schema_dir: sql/postgres/migrations + models: output_dir: internal/models output_file_name: models_gen.go package_name: models package_path: github.com/dv-net/dv-processing/internal/models - imports: - - path: github.com/dv-net/dv-processing/internal/models - go_type: WebhookStatus - - path: github.com/dv-net/dv-processing/internal/models - go_type: WebhookKind - - path: github.com/dv-net/dv-processing/internal/models - go_type: TransferTransactionType - - path: github.com/dv-net/dv-processing/internal/models - go_type: TransferTransactionsStatus - - crud: - auto_remove_generated_files: true - exclude_table_name_from_methods: true + custom_types: + - WebhookStatus + - WebhookKind + - TransferTransactionType + - TransferTransactionsStatus + emit_json_tags: true + emit_db_tags: true + sqlc: + defaults: + sql_package: pgx/v5 + emit_prepared_queries: false + emit_interface: true + emit_json_tags: true + emit_db_tags: true + emit_exported_queries: false + emit_exact_table_names: false + emit_empty_slices: true + emit_result_struct_pointers: true + emit_params_struct_pointers: false + emit_enum_valid_method: true + emit_all_enum_values: true + overrides: + types: + - db_type: uuid + go_type: github.com/google/uuid.UUID + - db_type: uuid + go_type: github.com/google/uuid.NullUUID + nullable: true + - db_type: pg_catalog.numeric + go_type: github.com/shopspring/decimal.Decimal + - db_type: pg_catalog.numeric + go_type: github.com/shopspring/decimal.NullDecimal + nullable: true + columns: + - column: owners.external_id + go_struct_tag: validate:"required" + - column: owners.client_id + go_struct_tag: validate:"required,uuid4" + - column: owners.mnemonic + go_struct_tag: validate:"required" + - column: owners.otp_secret + go_struct_tag: validate:"required" + - column: transfers.blockchain + go_type: + import: github.com/dv-net/dv-processing/pkg/walletsdk/wconstants + type: BlockchainType + - column: transfers.status + go_type: + import: github.com/dv-net/dv-processing/internal/constants + type: TransferStatus + - column: transfers.workflow_snapshot + go_type: + import: github.com/dv-net/dv-processing/internal/workflow + type: Snapshot + - column: transfers.wallet_from_type + go_type: + type: constants.WalletType + - column: transfers.state_data + go_type: + type: map[string]any + - column: transfer_transactions.tx_type + go_type: + type: TransferTransactionType + - column: transfer_transactions.status + go_type: + type: TransferTransactionsStatus + - column: cold_wallets.blockchain + go_struct_tag: validate:"required" + - column: cold_wallets.address + go_struct_tag: validate:"required" + - column: cold_wallets.owner_id + go_struct_tag: validate:"required,uuid4" + - column: cold_wallets.blockchain + go_type: + import: github.com/dv-net/dv-processing/pkg/walletsdk/wconstants + type: BlockchainType + - column: hot_wallets.blockchain + go_struct_tag: validate:"required" + - column: hot_wallets.address + go_struct_tag: validate:"required" + - column: hot_wallets.owner_id + go_struct_tag: validate:"required,uuid4" + - column: hot_wallets.external_wallet_id + go_struct_tag: validate:"required" + - column: hot_wallets.blockchain + go_type: + import: github.com/dv-net/dv-processing/pkg/walletsdk/wconstants + type: BlockchainType + - column: processing_wallets.blockchain + go_struct_tag: validate:"required" + - column: processing_wallets.address + go_struct_tag: validate:"required" + - column: processing_wallets.owner_id + go_struct_tag: validate:"required,uuid4" + - column: processing_wallets.blockchain + go_type: + import: github.com/dv-net/dv-processing/pkg/walletsdk/wconstants + type: BlockchainType + - column: processed_blocks.blockchain + go_type: + import: github.com/dv-net/dv-processing/pkg/walletsdk/wconstants + type: BlockchainType + - column: processed_incidents.blockchain + go_type: + import: github.com/dv-net/dv-processing/pkg/walletsdk/wconstants + type: BlockchainType + - column: webhooks.status + go_type: + type: WebhookStatus + - column: webhooks.kind + go_type: + type: WebhookKind + - column: webhook_view.status + go_type: + type: WebhookStatus + - column: webhook_view.kind + go_type: + type: WebhookKind + defaults: + queries_dir_prefix: sql/postgres/queries + output_dir_prefix: internal/store/repos + package_prefix: "repo_" + crud: + auto_clean: true + exclude_table_name: true tables: - # Processed blocks - processed_blocks: - output_dir: sql/postgres/queries/processed_blocks - primary_column: id - methods: - create: - skip_columns: - - updated_at - column_values: - created_at: now() - - # Clients clients: - output_dir: sql/postgres/queries/clients - primary_column: id - methods: - create: - skip_columns: - - id - - updated_at - returning: "*" - column_values: - created_at: now() - find: - name: GetAll - get: - name: GetByID - exists: - name: ExistsByID - where: - id: - - # Owners - owners: - output_dir: sql/postgres/queries/owners - primary_column: id - methods: - create: - skip_columns: - - id - - otp_secret - - otp_confirmed - - updated_at - returning: "*" - column_values: - created_at: now() - find: - name: GetAll - get: - name: GetByID - exists: - name: ExistsByExternalID - where: - external_id: - - # Transfers - transfers: - output_dir: sql/postgres/queries/transfers - primary_column: id - methods: - create: - skip_columns: - - id - - updated_at - returning: "*" - column_values: - created_at: now() - get: - name: GetByID - - # Webhooks - webhooks: - output_dir: sql/postgres/queries/webhooks - primary_column: id - methods: - delete: - name: DeleteByID - - # cold wallets + primary_column: id + sqlc: + query_parameter_limit: 2 + crud: + methods: + create: + returning: '*' + skip_columns: + - id + - updated_at + column_values: + created_at: now() + exists: + name: ExistsByID + where: + id: {} + find: + name: GetAll + get: + name: GetByID cold_wallets: - output_dir: sql/postgres/queries/wallets_cold - primary_column: id - methods: - create: - returning: "*" - skip_columns: - - id - - is_dirty - - updated_at - column_values: - created_at: now() - - # hot wallets + queries_dir: sql/postgres/queries/wallets_cold + output_dir: internal/store/repos/repo_wallets_cold + primary_column: id + sqlc: + query_parameter_limit: 2 + crud: + methods: + create: + returning: '*' + skip_columns: + - id + - is_dirty + - updated_at + column_values: + created_at: now() + constants: + include_column_names: true hot_wallets: - output_dir: sql/postgres/queries/wallets_hot - primary_column: id - methods: - create: - returning: "*" - skip_columns: - - id - - is_dirty - - updated_at - column_values: - created_at: now() - exists: - where: - owner_id: - blockchain: - address: - - # processing wallets + queries_dir: sql/postgres/queries/wallets_hot + output_dir: internal/store/repos/repo_wallets_hot + primary_column: id + sqlc: + query_parameter_limit: 3 + crud: + methods: + create: + returning: '*' + skip_columns: + - id + - is_dirty + - updated_at + column_values: + created_at: now() + exists: + where: + address: {} + blockchain: {} + owner_id: {} + constants: + include_column_names: true + owners: + primary_column: id + sqlc: + query_parameter_limit: 2 + crud: + methods: + create: + returning: '*' + skip_columns: + - id + - otp_secret + - otp_confirmed + - updated_at + column_values: + created_at: now() + exists: + name: ExistsByExternalID + where: + external_id: {} + find: + name: GetAll + get: + name: GetByID + processed_blocks: + primary_column: id + sqlc: + query_parameter_limit: 2 + crud: + methods: + create: + skip_columns: + - updated_at + column_values: + created_at: now() processing_wallets: - output_dir: sql/postgres/queries/wallets_processing - primary_column: id - methods: - create: - returning: "*" - skip_columns: - - id - - is_dirty - - updated_at - column_values: - created_at: now() - - # settings + queries_dir: sql/postgres/queries/wallets_processing + output_dir: internal/store/repos/repo_wallets_processing + primary_column: id + sqlc: + query_parameter_limit: 3 + crud: + methods: + create: + returning: '*' + skip_columns: + - id + - is_dirty + - updated_at + column_values: + created_at: now() + constants: + include_column_names: true settings: - output_dir: sql/postgres/queries/settings - primary_column: id - methods: - create: - skip_columns: - - id - - updated_at - returning: "*" - column_values: - created_at: now() - update: - skip_columns: - - id - - created_at - returning: "*" - - # transfer_transactions + primary_column: id + sqlc: + query_parameter_limit: 3 + crud: + methods: + create: + returning: '*' + skip_columns: + - id + - updated_at + column_values: + created_at: now() + update: + returning: '*' + skip_columns: + - id + - created_at transfer_transactions: - output_dir: sql/postgres/queries/transfer_transactions - primary_column: id - methods: - create: - skip_columns: - - id - - updated_at - returning: "*" - column_values: - created_at: now() - - constants: - tables: - cold_wallets: - output_dir: internal/store/repos/repo_wallets_cold - include_column_names: true - hot_wallets: - output_dir: internal/store/repos/repo_wallets_hot - include_column_names: true - processing_wallets: - output_dir: internal/store/repos/repo_wallets_processing - include_column_names: true + primary_column: id + sqlc: + query_parameter_limit: 3 + crud: + methods: + create: + returning: '*' + skip_columns: + - id + - updated_at + column_values: + created_at: now() transfers: - output_dir: internal/store/repos/repo_transfers - include_column_names: true + primary_column: id + sqlc: + query_parameter_limit: 3 + crud: + methods: + create: + returning: '*' + skip_columns: + - id + - updated_at + column_values: + created_at: now() + get: + name: GetByID + constants: + include_column_names: true + webhooks: + primary_column: id + sqlc: + query_parameter_limit: 2 + crud: + methods: + delete: + name: DeleteByID diff --git a/sql/postgres/queries/clients/clients_gen.sql b/sql/postgres/queries/clients/clients_gen.sql index 3215861..38a7490 100755 --- a/sql/postgres/queries/clients/clients_gen.sql +++ b/sql/postgres/queries/clients/clients_gen.sql @@ -11,4 +11,3 @@ SELECT * FROM clients; -- name: GetByID :one SELECT * FROM clients WHERE id=$1 LIMIT 1; - diff --git a/sql/postgres/queries/owners/owners_gen.sql b/sql/postgres/queries/owners/owners_gen.sql index ab544eb..8271323 100755 --- a/sql/postgres/queries/owners/owners_gen.sql +++ b/sql/postgres/queries/owners/owners_gen.sql @@ -11,4 +11,3 @@ SELECT * FROM owners; -- name: GetByID :one SELECT * FROM owners WHERE id=$1 LIMIT 1; - diff --git a/sql/postgres/queries/processed_blocks/processed_blocks_gen.sql b/sql/postgres/queries/processed_blocks/processed_blocks_gen.sql index 887996e..9d2034a 100755 --- a/sql/postgres/queries/processed_blocks/processed_blocks_gen.sql +++ b/sql/postgres/queries/processed_blocks/processed_blocks_gen.sql @@ -1,4 +1,3 @@ -- name: Create :exec INSERT INTO processed_blocks (blockchain, number, created_at, hash) VALUES ($1, $2, now(), $3); - diff --git a/sql/postgres/queries/settings/settings_gen.sql b/sql/postgres/queries/settings/settings_gen.sql index 3cf8ba6..af55a32 100755 --- a/sql/postgres/queries/settings/settings_gen.sql +++ b/sql/postgres/queries/settings/settings_gen.sql @@ -6,6 +6,5 @@ INSERT INTO settings (model_id, model_type, name, value, created_at) -- name: Update :one UPDATE settings SET model_id=$1, model_type=$2, name=$3, value=$4, updated_at=$5 - WHERE id=$6 +WHERE id=$6 RETURNING *; - diff --git a/sql/postgres/queries/transfer_transactions/transfer_transactions_gen.sql b/sql/postgres/queries/transfer_transactions/transfer_transactions_gen.sql index 1fa4776..ee086e5 100755 --- a/sql/postgres/queries/transfer_transactions/transfer_transactions_gen.sql +++ b/sql/postgres/queries/transfer_transactions/transfer_transactions_gen.sql @@ -2,4 +2,3 @@ INSERT INTO transfer_transactions (transfer_id, tx_hash, bandwidth_amount, energy_amount, native_token_amount, native_token_fee, tx_type, status, step, created_at) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, now()) RETURNING *; - diff --git a/sql/postgres/queries/transfers/transfers_gen.sql b/sql/postgres/queries/transfers/transfers_gen.sql index 8c34f8a..f05de23 100755 --- a/sql/postgres/queries/transfers/transfers_gen.sql +++ b/sql/postgres/queries/transfers/transfers_gen.sql @@ -5,4 +5,3 @@ INSERT INTO transfers (status, client_id, owner_id, request_id, blockchain, from -- name: GetByID :one SELECT * FROM transfers WHERE id=$1 LIMIT 1; - diff --git a/sql/postgres/queries/wallets_cold/cold_wallets_gen.sql b/sql/postgres/queries/wallets_cold/cold_wallets_gen.sql index e14f26f..8bc8ceb 100755 --- a/sql/postgres/queries/wallets_cold/cold_wallets_gen.sql +++ b/sql/postgres/queries/wallets_cold/cold_wallets_gen.sql @@ -2,4 +2,3 @@ INSERT INTO cold_wallets (blockchain, address, owner_id, is_active, created_at) VALUES ($1, $2, $3, $4, now()) RETURNING *; - diff --git a/sql/postgres/queries/wallets_hot/hot_wallets.sql b/sql/postgres/queries/wallets_hot/hot_wallets.sql index 618de73..e507272 100644 --- a/sql/postgres/queries/wallets_hot/hot_wallets.sql +++ b/sql/postgres/queries/wallets_hot/hot_wallets.sql @@ -23,4 +23,4 @@ select * from hot_wallets where blockchain = $1 and address = $2; select * from hot_wallets where is_active = true; -- name: FindEVMByExternalID :many -select * from hot_wallets where external_wallet_id = $1 and blockchain in (select unnest($2::text[])) and owner_id = $3 and is_active = true order by sequence desc limit 1; +select * from hot_wallets where external_wallet_id = $1 and blockchain in (select unnest($2::text[])) and owner_id = $3 and is_active = true and is_dirty = false order by sequence desc limit 1; diff --git a/sql/postgres/queries/wallets_hot/hot_wallets_gen.sql b/sql/postgres/queries/wallets_hot/hot_wallets_gen.sql index 73356e7..18c334b 100755 --- a/sql/postgres/queries/wallets_hot/hot_wallets_gen.sql +++ b/sql/postgres/queries/wallets_hot/hot_wallets_gen.sql @@ -5,4 +5,3 @@ INSERT INTO hot_wallets (blockchain, address, owner_id, external_wallet_id, sequ -- name: Exist :one SELECT EXISTS (SELECT 1 FROM hot_wallets WHERE address=$1 AND blockchain=$2 AND owner_id=$3 LIMIT 1)::boolean; - diff --git a/sql/postgres/queries/wallets_processing/processing_wallets_gen.sql b/sql/postgres/queries/wallets_processing/processing_wallets_gen.sql index ad77850..9fd218f 100755 --- a/sql/postgres/queries/wallets_processing/processing_wallets_gen.sql +++ b/sql/postgres/queries/wallets_processing/processing_wallets_gen.sql @@ -2,4 +2,3 @@ INSERT INTO processing_wallets (blockchain, address, owner_id, sequence, is_active, created_at) VALUES ($1, $2, $3, $4, $5, now()) RETURNING *; - diff --git a/sql/postgres/queries/webhooks/webhooks_gen.sql b/sql/postgres/queries/webhooks/webhooks_gen.sql index 40baafe..4a1e6a2 100755 --- a/sql/postgres/queries/webhooks/webhooks_gen.sql +++ b/sql/postgres/queries/webhooks/webhooks_gen.sql @@ -1,3 +1,2 @@ -- name: DeleteByID :exec DELETE FROM webhooks WHERE id=$1; -