Skip to content

Commit

Permalink
feat: revert dao contract depositors count and total depositors count
Browse files Browse the repository at this point in the history
when block invalid
  • Loading branch information
shaojunda committed Oct 14, 2019
1 parent f02718a commit 3dd2704
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion app/models/ckb_sync/node_data_processor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -144,15 +144,24 @@ def revert_miner_pending_reward_blocks_count(local_tip_block)

def invalid_block(local_tip_block)
ApplicationRecord.transaction do
deposit_to_dao_events = local_tip_block.dao_events.where(event_type: "deposit_to_dao")
dao_events = DaoEvent.where(block: local_tip_block).processed
dao_contract = DaoContract.default_contract
deposit_to_dao_events = dao_events.where(event_type: "deposit_to_dao")
deposit_to_dao_events.each do |event|
address = event.address
address.decrement!(:dao_deposit, event.value)
dao_contract.decrement!(:total_deposit, event.value)
dao_contract.decrement!(:deposit_transactions_count)
event.reverted!
end

new_dao_depositor_events = dao_events.where(event_type: "new_dao_depositor")
new_dao_depositor_events.each do |event|
dao_contract.decrement!(:depositors_count)
dao_contract.decrement!(:total_depositors_count)
event.reverted!
end

local_tip_block.invalid!
local_tip_block.contained_addresses.each(&method(:update_address_balance_and_ckb_transactions_count))
revert_block_rewards(local_tip_block)
Expand Down

0 comments on commit 3dd2704

Please sign in to comment.