diff --git a/app/models/ckb_sync/node_data_processor.rb b/app/models/ckb_sync/node_data_processor.rb index ec7f37e0d..b9e2d54d5 100644 --- a/app/models/ckb_sync/node_data_processor.rb +++ b/app/models/ckb_sync/node_data_processor.rb @@ -489,6 +489,7 @@ def update_previous_cell_output_status(ckb_transaction_id, previous_cell_output) def update_address_balance_and_ckb_transactions_count(address) address.balance = address.cell_outputs.live.sum(:capacity) address.ckb_transactions_count = AccountBook.where(address: address).select(:ckb_transaction_id).distinct.count + address.live_cells_count = address.cell_outputs.live.count address.save! end diff --git a/app/models/null_address.rb b/app/models/null_address.rb index 21d7ec7c1..85c0fd6c4 100644 --- a/app/models/null_address.rb +++ b/app/models/null_address.rb @@ -42,6 +42,10 @@ def special? Settings.special_addresses[address_hash].present? end + def live_cells_count + 0 + end + def lock_script parsed_address = CKB::AddressParser.new(address_hash).parse raise Api::V1::Exceptions::AddressNotMatchEnvironmentError.new(ENV["CKB_NET_MODE"]) if parsed_address.mode != ENV["CKB_NET_MODE"] diff --git a/app/presenters/address_presenter.rb b/app/presenters/address_presenter.rb index 017590eb2..a38e16e7d 100644 --- a/app/presenters/address_presenter.rb +++ b/app/presenters/address_presenter.rb @@ -23,6 +23,10 @@ def interest object.reduce(0) { |sum, addr| sum + addr.interest.to_i } end + def live_cells_count + object.reduce(0) { |sum, addr| sum + addr.live_cells_count.to_i } + end + def lock_script object.first.cached_lock_script end diff --git a/app/serializers/address_serializer.rb b/app/serializers/address_serializer.rb index e4d9a69f2..cfaab1db4 100644 --- a/app/serializers/address_serializer.rb +++ b/app/serializers/address_serializer.rb @@ -20,8 +20,10 @@ class AddressSerializer attribute :is_special do |object| object.special?.to_s end - attribute :special_address, if: Proc.new { |record| record.special? } do |object| Settings.special_addresses[object.address_hash] end + attribute :live_cells_count do |object| + object.live_cells_count.to_s + end end