@@ -51,7 +51,7 @@ def update_address_balance_and_ckb_transactions_count(local_tip_block)
5151 address . live_cells_count = address . cell_outputs . live . count
5252 # address.ckb_transactions_count = address.custom_ckb_transactions.count
5353 address . ckb_transactions_count = AccountBook . where ( address_id : address . id ) . count
54- address . dao_transactions_count = AddressDaoTransaction . where ( address_id : address . id ) . count
54+ address . dao_transactions_count = DaoEvent . processed . where ( address_id : address . id ) . distinct ( :ckb_transaction_id ) . count
5555 address . cal_balance!
5656 address . save!
5757 end
@@ -91,8 +91,7 @@ def revert_dao_contract_related_operations(local_tip_block)
9191 revert_withdraw_from_dao ( dao_contract , dao_events )
9292 revert_issue_interest ( dao_contract , dao_events )
9393 revert_deposit_to_dao ( dao_contract , dao_events )
94- revert_new_dao_depositor ( dao_contract , dao_events )
95- revert_take_away_all_deposit ( dao_contract , dao_events )
94+ dao_contract . update ( depositors_count : DaoEvent . depositor . count )
9695 end
9796
9897 def recalculate_udt_accounts ( udt_type_hashes , local_tip_block )
@@ -123,24 +122,6 @@ def revert_mining_info(local_tip_block)
123122 miner_address . decrement! ( :mined_blocks_count )
124123 end
125124
126- def revert_dao_contract_related_operations ( local_tip_block )
127- dao_events = DaoEvent . where ( block : local_tip_block ) . processed
128- dao_contract = DaoContract . default_contract
129- revert_withdraw_from_dao ( dao_contract , dao_events )
130- revert_issue_interest ( dao_contract , dao_events )
131- revert_deposit_to_dao ( dao_contract , dao_events )
132- revert_new_dao_depositor ( dao_contract , dao_events )
133- revert_take_away_all_deposit ( dao_contract , dao_events )
134- end
135-
136- def revert_take_away_all_deposit ( dao_contract , dao_events )
137- take_away_all_deposit_dao_events = dao_events . where ( event_type : "take_away_all_deposit" )
138- take_away_all_deposit_dao_events . each do |event |
139- dao_contract . increment! ( :depositors_count )
140- event . reverted!
141- end
142- end
143-
144125 def revert_issue_interest ( dao_contract , dao_events )
145126 issue_interest_dao_events = dao_events . where ( event_type : "issue_interest" )
146127 issue_interest_dao_events . each do |event |
@@ -153,6 +134,8 @@ def revert_issue_interest(dao_contract, dao_events)
153134
154135 def revert_withdraw_from_dao ( dao_contract , dao_events )
155136 withdraw_from_dao_events = dao_events . where ( event_type : "withdraw_from_dao" )
137+ ids = withdraw_from_dao_events . pluck ( :ckb_transaction_id )
138+ DaoEvent . processed . where ( withdrawn_transaction_id : ids ) . update_all ( withdrawn_transaction_id : nil )
156139 withdraw_from_dao_events . each do |event |
157140 dao_contract . decrement! ( :withdraw_transactions_count )
158141 dao_contract . increment! ( :total_deposit , event . value )
@@ -162,15 +145,6 @@ def revert_withdraw_from_dao(dao_contract, dao_events)
162145 end
163146 end
164147
165- def revert_new_dao_depositor ( dao_contract , dao_events )
166- new_dao_depositor_events = dao_events . where ( event_type : "new_dao_depositor" )
167- new_dao_depositor_events . each do |event |
168- dao_contract . decrement! ( :depositors_count )
169- dao_contract . decrement! ( :total_depositors_count )
170- event . reverted!
171- end
172- end
173-
174148 def revert_deposit_to_dao ( dao_contract , dao_events )
175149 deposit_to_dao_events = dao_events . where ( event_type : "deposit_to_dao" )
176150 deposit_to_dao_events . each do |event |
0 commit comments