@@ -10,7 +10,7 @@ class NewNodeDataProcessor
1010 value :reorg_started_at , global : true
1111 attr_accessor :local_tip_block , :pending_raw_block , :ckb_txs , :target_block , :target_block_number , :addrs_changes ,
1212 :outputs , :inputs , :outputs_data , :udt_address_ids , :contained_address_ids ,
13- :contained_udt_ids , :cell_datas , :enable_cota , :token_transfer_ckb_tx_ids
13+ :contained_udt_ids , :cell_datas , :enable_cota , :token_transfer_ckb_tx_ids , :addr_tx_changes
1414
1515 def initialize ( enable_cota = ENV [ "COTA_AGGREGATOR_URL" ] . present? )
1616 @enable_cota = enable_cota
@@ -72,6 +72,7 @@ def process_block(node_block, refresh_balance: true)
7272 benchmark :process_ckb_txs , node_block , ckb_txs , contained_address_ids ,
7373 contained_udt_ids , tags , udt_address_ids
7474 @addrs_changes = Hash . new { |hash , key | hash [ key ] = { } }
75+ @addr_tx_changes = Hash . new { |h , k | h [ k ] = Hash . new ( 0 ) }
7576
7677 input_capacities , output_capacities = benchmark :build_cells_and_locks! , local_block , node_block , ckb_txs , inputs , outputs ,
7778 tags , udt_address_ids , contained_udt_ids , contained_address_ids , addrs_changes , token_transfer_ckb_tx_ids , cell_deps
@@ -526,7 +527,7 @@ def update_addresses_info(addrs_change, local_block, refresh_balance)
526527 ckb_transactions_count : addr . ckb_transactions_count ,
527528 live_cells_count : addr . live_cells_count ,
528529 dao_transactions_count : addr . dao_transactions_count ,
529- last_updated_block_number : local_block . number
530+ last_updated_block_number : local_block . number ,
530531 } ,
531532 address_id : addr . id ,
532533 block_id : local_block . id ,
@@ -688,7 +689,7 @@ def update_ckb_txs_rel_and_fee(
688689 tx_id = tx [ "id" ]
689690 full_tx_address_ids +=
690691 contained_addr_ids [ tx_index ] . to_a . map do |address_id |
691- { address_id :, ckb_transaction_id : tx_id , income : addrs_changes [ address_id ] [ :balance_diff ] , block_number : target_block_number , tx_index : }
692+ { address_id :, ckb_transaction_id : tx_id , income : addr_tx_changes [ tx_index ] [ address_id ] , block_number : target_block_number , tx_index : }
692693 end
693694 full_tx_udt_ids += contained_udt_ids [ tx_index ] . to_a . map do |u |
694695 { udt_id : u , ckb_transaction_id : tx_id }
@@ -931,8 +932,8 @@ def build_cell_inputs(
931932 type_hash = attributes [ :type_hash ]
932933 data = attributes [ :data ]
933934 change_rec = addrs_changes [ address_id ]
934- # change_rec.with_defaults!
935935
936+ addr_tx_changes [ tx_index ] [ address_id ] -= capacity
936937 change_rec [ :balance_diff ] ||= 0
937938 change_rec [ :balance_diff ] -= capacity
938939 change_rec [ :balance_occupied_diff ] ||= 0
@@ -1005,6 +1006,7 @@ def build_cell_outputs!(
10051006 address_id = address . id
10061007 cell_data = node_block . transactions [ tx_index ] . outputs_data [ cell_index ]
10071008 change_rec = addrs_changes [ address_id ]
1009+ addr_tx_changes [ tx_index ] [ address_id ] += item . capacity
10081010
10091011 change_rec [ :balance_diff ] ||= 0
10101012 change_rec [ :balance_diff ] += item . capacity
0 commit comments