diff --git a/internal/model/onchain_btc_processed_transaction.go b/internal/model/onchain_btc_processed_transaction.go index 47ac597..45abb5b 100644 --- a/internal/model/onchain_btc_processed_transaction.go +++ b/internal/model/onchain_btc_processed_transaction.go @@ -1,6 +1,8 @@ package model -import "time" +import ( + "time" +) type BtcProcessingStatus string @@ -11,14 +13,16 @@ const ( ) type OnchainBtcProcessedTransaction struct { - ID int `json:"id"` - IcyTransactionHash *string `json:"icy_transaction_hash"` - BtcTransactionHash string `json:"btc_transaction_hash"` - SwapTransactionHash string `json:"swap_transaction_hash"` - BTCAddress string `json:"btc_address"` - ProcessedAt *time.Time `json:"processed_at"` - Amount string `json:"amount"` - Status BtcProcessingStatus `json:"status"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` + ID int `json:"id"` + IcyTransactionHash *string `json:"icy_transaction_hash"` + BtcTransactionHash string `json:"btc_transaction_hash"` + SwapTransactionHash string `json:"swap_transaction_hash"` + BTCAddress string `json:"btc_address"` + ProcessedAt *time.Time `json:"processed_at"` + Amount string `json:"amount"` + Status BtcProcessingStatus `json:"status"` + ICYSwapTx OnchainIcySwapTransaction `json:"icy_swap_tx"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + NetworkFee string `gorm:"column:network_fee" json:"network_fee"` } diff --git a/internal/store/onchainbtcprocessedtransaction/onchain_btc_processed_transaction.go b/internal/store/onchainbtcprocessedtransaction/onchain_btc_processed_transaction.go index fde846b..b720364 100644 --- a/internal/store/onchainbtcprocessedtransaction/onchain_btc_processed_transaction.go +++ b/internal/store/onchainbtcprocessedtransaction/onchain_btc_processed_transaction.go @@ -80,7 +80,8 @@ func (s *store) Find(db *gorm.DB, filter ListFilter) ([]*model.OnchainBtcProcess query = query.Offset(filter.Offset).Limit(filter.Limit) // Order by updated_at descending - query = query.Order("updated_at DESC") + query = query.Joins("JOIN onchain_icy_swap_transactions ON onchain_btc_processed_transactions.swap_transaction_hash = onchain_icy_swap_transactions.transaction_hash"). + Order("updated_at DESC") // Fetch transactions if err := query.Find(&transactions).Error; err != nil { diff --git a/internal/telemetry/btc.go b/internal/telemetry/btc.go index 7e86359..5e97b4e 100644 --- a/internal/telemetry/btc.go +++ b/internal/telemetry/btc.go @@ -101,7 +101,7 @@ func (t *Telemetry) ProcessPendingBtcTransactions() error { // TODO: Implement actual sending logic based on the existing Send method // This is a placeholder and needs to be replaced with actual implementation t.logger.Info(fmt.Sprintf("[ProcessPendingBtcTransactions] processing pending transaction: %s", - pendingTx.IcyTransactionHash)) + *pendingTx.IcyTransactionHash)) if pendingTx.BTCAddress == "" || pendingTx.Amount == "" { err = t.store.OnchainBtcProcessedTransaction.UpdateStatus(t.db, pendingTx.ID, model.BtcProcessingStatusFailed) diff --git a/migrations/schema/0010_add_network_fee_to_onchain_btc_processed_transactions.down.sql b/migrations/schema/0010_add_network_fee_to_onchain_btc_processed_transactions.down.sql new file mode 100644 index 0000000..97aa90e --- /dev/null +++ b/migrations/schema/0010_add_network_fee_to_onchain_btc_processed_transactions.down.sql @@ -0,0 +1,3 @@ +-- Remove network_fee column from onchain_btc_processed_transactions +ALTER TABLE onchain_btc_processed_transactions +DROP COLUMN IF EXISTS network_fee; diff --git a/migrations/schema/0010_add_network_fee_to_onchain_btc_processed_transactions.up.sql b/migrations/schema/0010_add_network_fee_to_onchain_btc_processed_transactions.up.sql new file mode 100644 index 0000000..614eff6 --- /dev/null +++ b/migrations/schema/0010_add_network_fee_to_onchain_btc_processed_transactions.up.sql @@ -0,0 +1,3 @@ +-- Add network_fee column to onchain_btc_processed_transactions +ALTER TABLE onchain_btc_processed_transactions +ADD COLUMN network_fee VARCHAR(255) DEFAULT '0';