Skip to content

Commit e0539e2

Browse files
authored
Merge pull request #2484 from nervosnetwork/testnet
Deploy to mainnet
2 parents 9e754c0 + 6f16131 commit e0539e2

23 files changed

+95
-79
lines changed

app/controllers/api/v1/ckb_transactions_controller.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@ def query
7171
ckb_transactions =
7272
if @address
7373
records_counter = @tx_ids =
74-
AccountBook.where(
74+
AccountBook.tx_committed.where(
7575
address_id: @address.id,
7676
).order(
77-
"ckb_transaction_id" => :desc,
77+
"block_number desc, tx_index desc",
7878
).select(
7979
"ckb_transaction_id",
8080
).page(@page).per(@page_size).fast_page
81-
CkbTransaction.where(id: @tx_ids.map(&:ckb_transaction_id)).order(id: :desc)
81+
CkbTransaction.where(id: @tx_ids.map(&:ckb_transaction_id)).order(block_number: :desc, tx_index: :desc)
8282
else
8383
records_counter = RecordCounters::Transactions.new
8484
CkbTransaction.recent.normal.page(@page).per(@page_size).fast_page
@@ -97,7 +97,7 @@ def query
9797
).call
9898
CkbTransactionsSerializer.new(ckb_transactions,
9999
options.merge(params: {
100-
previews: true, address: @address
100+
previews: true, address_id: @address.id
101101
})).serialized_json
102102
end
103103
render json:

app/interactions/addresses/ckb_transactions.rb

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,14 @@ def execute
1313
raise AddressNotFoundError if address.is_a?(NullAddress)
1414

1515
address_id = address.map(&:id)
16-
account_books = AccountBook.where(address_id:).order("ckb_transaction_id desc").select(:ckb_transaction_id).distinct.limit(Settings.query_default_limit)
17-
records = CkbTransaction.where(tx_status: :committed, id: account_books.map(&:ckb_transaction_id)).order(transactions_ordering).page(page).per(page_size)
16+
account_books = AccountBook.tx_committed.where(address_id:).
17+
order("block_number desc, tx_index desc").
18+
select(:ckb_transaction_id, :block_number, :tx_index).
19+
distinct.
20+
limit(Settings.query_default_limit)
21+
records = CkbTransaction.includes(:account_books).where(id: account_books.map(&:ckb_transaction_id)).select(select_fields).order(transactions_ordering).page(page).per(page_size)
1822
options = paginate_options(records, address_id)
19-
options.merge!(params: { previews: true, address: })
23+
options.merge!(params: { previews: true, address_id: })
2024

2125
result = CkbTransactionsSerializer.new(records, options)
2226
wrap_result(result, address)
@@ -33,7 +37,7 @@ def transactions_ordering
3337
end
3438

3539
def paginate_options(records, address_id)
36-
total_count = AccountBook.where(address_id:).distinct.count
40+
total_count = Address.where(id: address_id).sum(:ckb_transactions_count)
3741
FastJsonapi::PaginationMetaGenerator.new(
3842
request:, records:, page:, page_size:, total_pages: records.total_pages, total_count:,
3943
).call

app/interactions/addresses/pending_transactions.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,17 @@ def execute
1212
address = Explore.run!(key:)
1313
raise AddressNotFoundError if address.is_a?(NullAddress)
1414

15+
address_id = address.map(&:id)
1516
records =
16-
CkbTransaction.joins(:account_books).where(ckb_transactions: { tx_status: :pending }, account_books: { address_id: address.map(&:id) }).
17+
CkbTransaction.joins(:account_books).where(ckb_transactions: { tx_status: :pending }, account_books: { address_id: }).
1718
select(select_fields).
1819
order(transactions_ordering).
1920
page(page).per(page_size)
2021

2122
options = FastJsonapi::PaginationMetaGenerator.new(
2223
request:, records:, page:, page_size:,
2324
).call
24-
options.merge!(params: { previews: true, address: })
25+
options.merge!(params: { previews: true, address_id: })
2526

2627
result = CkbTransactionsSerializer.new(records, options)
2728
wrap_result(result, address)

app/interactions/users/ckb_transactions.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def execute
2424
page:,
2525
page_size:,
2626
).call
27-
options[:params] = { previews: true, address: user.addresses }
27+
options[:params] = { previews: true, address_id: user.addresses.map(&:id) }
2828

2929
transactions_serializer = CkbTransactionsSerializer.new(transactions, options)
3030
transactions_serializer.serialized_json

app/jobs/csv_exportable/export_address_transactions_job.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ def perform(args)
66

77
tx_ids = AccountBook.joins(:ckb_transaction).
88
where(address_id: args[:address_id]).
9-
order(ckb_transaction_id: :asc).
10-
limit(5000)
9+
order(block_number: :desc, tx_index: :desc).
10+
limit(Settings.query_default_limit)
1111

1212
if args[:start_date].present?
1313
start_date = BigDecimal(args[:start_date])

app/jobs/csv_exportable/export_block_transactions_job.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ def perform(args)
1818

1919
blocks = blocks.where("number >= ?", args[:start_number]) if args[:start_number].present?
2020
blocks = blocks.where("number <= ?", args[:end_number]) if args[:end_number].present?
21-
blocks = blocks.order(number: :desc).last(5000)
21+
blocks = blocks.order(number: :desc).last(Settings.query_default_limit)
2222

2323
rows = []
2424
blocks.each do |block|
@@ -43,7 +43,7 @@ def generate_row(block)
4343
block.timestamp,
4444
reward,
4545
block.miner_hash,
46-
datetime
46+
datetime,
4747
]
4848
end
4949
end

app/jobs/csv_exportable/export_contract_transactions_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def fetch_transaction_rows(start_date, end_date)
4545

4646
dao_contract = DaoContract.default_contract
4747
dao_contract.ckb_transactions.includes(dao_events: [:address]).tx_committed.where(sql).
48-
order("block_timestamp desc nulls last, id desc").limit(5000).find_in_batches(batch_size: 500) do |transactions|
48+
order("block_timestamp desc nulls last, id desc").limit(Settings.query_default_limit).find_in_batches(batch_size: 500) do |transactions|
4949
transactions.each do |transaction|
5050
row = generate_row(transaction)
5151
next if row.blank?

app/jobs/csv_exportable/export_nft_transactions_job.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def perform(args)
2727
args[:end_number])
2828
end
2929

30-
token_transfers = token_transfers.order("token_transfers.id desc").limit(5000)
30+
token_transfers = token_transfers.order("token_transfers.id desc").limit(Settings.query_default_limit)
3131

3232
rows = []
3333
token_transfers.find_in_batches(batch_size: 1000, order: :desc) do |transfers|
@@ -67,7 +67,7 @@ def generate_row(transfer)
6767
transfer.from&.address_hash || "/",
6868
transfer.to&.address_hash || "/",
6969
fee,
70-
datetime
70+
datetime,
7171
]
7272
end
7373

app/jobs/csv_exportable/export_omiga_inscription_transactions_job.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ def perform(args)
3636
end
3737

3838
ckb_transactions = ckb_transactions.includes(:inputs, :outputs).
39-
order(block_timestamp: :desc).limit(5000)
39+
order(block_timestamp: :desc).limit(Settings.query_default_limit)
4040

4141
rows = []
4242
ckb_transactions.find_in_batches(batch_size: 1000,

app/jobs/csv_exportable/export_portfolio_transactions_job.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def perform(args)
55
select("DISTINCT ON (ckb_transaction_id) account_books.*").
66
where(address_id: args[:address_ids]).
77
order(ckb_transaction_id: :asc).
8-
limit(5000)
8+
limit(Settings.query_default_limit)
99

1010
if args[:start_date].present?
1111
start_date = BigDecimal(args[:start_date])
@@ -62,11 +62,11 @@ def generate_row(transaction, inputs, outputs)
6262
rows = []
6363
units = input_info.keys | output_info.keys
6464
units.each_with_index do |unit, index|
65-
if unit == "CKB"
66-
data = build_ckb_data(input_info[unit], output_info[unit])
67-
else
68-
data = build_udt_data(input_info[unit], output_info[unit])
69-
end
65+
data = if unit == "CKB"
66+
build_ckb_data(input_info[unit], output_info[unit])
67+
else
68+
build_udt_data(input_info[unit], output_info[unit])
69+
end
7070

7171
display_fee =
7272
if units.include?("CKB")
@@ -86,7 +86,7 @@ def generate_row(transaction, inputs, outputs)
8686
data[:token_out],
8787
data[:balance_diff],
8888
(display_fee ? fee : "/"),
89-
datetime
89+
datetime,
9090
]
9191
end
9292

0 commit comments

Comments
 (0)