Skip to content

Commit 002933d

Browse files
authored
Merge pull request #2859 from nervosnetwork/develop
Deploy to testnet
2 parents d1759f6 + 9327be2 commit 002933d

File tree

12 files changed

+31
-41
lines changed

12 files changed

+31
-41
lines changed

app/controllers/api/v1/address_dao_transactions_controller.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@ def show
99
raise Api::V1::Exceptions::AddressNotFoundError if address.is_a?(NullAddress)
1010

1111
ckb_dao_transactions = address.ckb_dao_transactions
12-
.includes(:cell_inputs => [:previous_cell_output], :outputs => [], :bitcoin_annotation => [])
13-
# .joins("LEFT JOIN cell_inputs ON cell_inputs.ckb_transaction_id = ckb_transactions.id")
14-
# .joins("LEFT JOIN cell_outputs ON cell_outputs.ckb_transaction_id = ckb_transactions.id")
15-
# .group(select_fields.join(','))
16-
# .select(select_fields + ["COUNT(cell_inputs.id) AS cell_inputs_count", "COUNT(cell_outputs.id) AS cell_outputs_count"])
12+
.includes(:cell_inputs => [:previous_cell_output], :cell_outputs => [], :bitcoin_annotation => [])
1713
.select(select_fields)
1814
.recent.page(@page).per(@page_size)
1915

app/controllers/api/v1/address_udt_transactions_controller.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@ def show
1313
raise Api::V1::Exceptions::UdtNotFoundError if udt.blank?
1414

1515
ckb_udt_transactions = address.ckb_udt_transactions(udt.id)
16-
.includes(:cell_inputs => [:previous_cell_output], :outputs => [], :bitcoin_annotation => [])
17-
# .joins("LEFT JOIN cell_inputs ON cell_inputs.ckb_transaction_id = ckb_transactions.id")
18-
# .joins("LEFT JOIN cell_outputs ON cell_outputs.ckb_transaction_id = ckb_transactions.id")
19-
# .group(select_fields.join(','))
20-
# .select(select_fields + ["COUNT(cell_inputs.id) AS cell_inputs_count", "COUNT(cell_outputs.id) AS cell_outputs_count"])
16+
.includes(:cell_inputs => [:previous_cell_output], :cell_outputs => [], :bitcoin_annotation => [])
2117
.select(select_fields)
2218
.recent.page(@page).per(@page_size).fast_page
2319
json =

app/controllers/api/v1/block_transactions_controller.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,7 @@ def show
2121
if stale?(ckb_transactions)
2222
expires_in 10.seconds, public: true, must_revalidate: true, stale_while_revalidate: 5.seconds
2323
ckb_transactions = ckb_transactions
24-
.includes(:cell_inputs => [:previous_cell_output], :outputs => [], :bitcoin_annotation => [])
25-
# .joins("LEFT JOIN cell_inputs ON cell_inputs.ckb_transaction_id = ckb_transactions.id")
26-
# .joins("LEFT JOIN cell_outputs ON cell_outputs.ckb_transaction_id = ckb_transactions.id")
27-
# .group(select_fields.join(','))
24+
.includes(:cell_inputs => [:previous_cell_output], :cell_outputs => [], :bitcoin_annotation => [])
2825
.page(@page).per(@page_size).fast_page
2926

3027
options = FastJsonapi::PaginationMetaGenerator.new(

app/controllers/api/v1/contract_transactions_controller.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,7 @@ def show
2626
end
2727

2828
ckb_transactions = ckb_transactions
29-
.includes(:cell_inputs => [:previous_cell_output], :outputs => [], :bitcoin_annotation => [])
30-
# .select(select_fields + ["COUNT(cell_inputs.id) AS cell_inputs_count", "COUNT(cell_outputs.id) AS cell_outputs_count"])
31-
# .joins("LEFT JOIN cell_inputs ON cell_inputs.ckb_transaction_id = ckb_transactions.id")
32-
# .joins("LEFT JOIN cell_outputs ON cell_outputs.ckb_transaction_id = ckb_transactions.id")
33-
# .group(select_fields.join(','))
29+
.includes(:cell_inputs => [:previous_cell_output], :cell_outputs => [], :bitcoin_annotation => [])
3430
.select(select_fields)
3531
.page(@page).per(@page_size).fast_page
3632
options = FastJsonapi::PaginationMetaGenerator.new(request:, records: ckb_transactions,

app/controllers/api/v2/ckb_transactions_controller.rb

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@ module V2
33
class CkbTransactionsController < BaseController
44
include CellDataComparator
55

6-
before_action :set_ckb_transaction
76
before_action :set_pagination_params, only: %i[display_inputs display_outputs]
87

98
def details
109
expires_in 10.seconds, public: true, must_revalidate: true
10+
11+
@ckb_transaction = CkbTransaction.includes(:cell_inputs => [:previous_cell_output], :cell_outputs => {}).find_by(tx_hash: params[:id])
12+
return head :not_found unless @ckb_transaction
13+
1114
transfers = compare_cells(@ckb_transaction)
1215

1316
render json: { data: transfers }
@@ -16,6 +19,9 @@ def details
1619
def display_inputs
1720
expires_in 15.seconds, public: true, must_revalidate: true
1821

22+
@ckb_transaction = CkbTransaction.includes(:cell_inputs => [:previous_cell_output]).find_by(tx_hash: params[:id])
23+
return head :not_found unless @ckb_transaction
24+
1925
if @ckb_transaction.is_cellbase
2026
cell_inputs = @ckb_transaction.cellbase_display_inputs
2127
total_count = cell_inputs.count
@@ -35,12 +41,15 @@ def display_inputs
3541
def display_outputs
3642
expires_in 15.seconds, public: true, must_revalidate: true
3743

44+
@ckb_transaction = CkbTransaction.includes(:cell_outputs => {}).find_by(tx_hash: params[:id])
45+
return head :not_found unless @ckb_transaction
46+
3847
if @ckb_transaction.is_cellbase
3948
cell_outputs = @ckb_transaction.cellbase_display_outputs.sort_by { |output| output[:id].to_i }
4049
cell_outputs = Kaminari.paginate_array(cell_outputs).page(@page).per(@page_size)
4150
total_count = cell_outputs.total_count
4251
else
43-
cell_outputs = @ckb_transaction.outputs.order(id: :asc).
52+
cell_outputs = @ckb_transaction.cell_outputs.order(id: :asc).
4453
page(@page).per(@page_size).fast_page
4554
total_count = cell_outputs.total_count
4655
cell_outputs = @ckb_transaction.normal_tx_display_outputs(cell_outputs)
@@ -55,6 +64,9 @@ def display_outputs
5564
def rgb_digest
5665
expires_in 10.seconds, public: true, must_revalidate: true
5766

67+
@ckb_transaction = CkbTransaction.includes(:cell_inputs => [:previous_cell_output], :cell_outputs => {}).find_by(tx_hash: params[:id])
68+
return head :not_found unless @ckb_transaction
69+
5870
transfers = [].tap do |res|
5971
combine_transfers(@ckb_transaction).each do |address_id, transfers|
6072
vout = BitcoinVout.includes(:bitcoin_address).find_by(address_id:)
@@ -92,11 +104,6 @@ def rgb_digest
92104

93105
private
94106

95-
def set_ckb_transaction
96-
@ckb_transaction = CkbTransaction.find_by(tx_hash: params[:id])
97-
return head :not_found unless @ckb_transaction
98-
end
99-
100107
def set_pagination_params
101108
@page = params.fetch(:page, 1)
102109
@page_size = params.fetch(:page_size, CkbTransaction.default_per_page)

app/controllers/api/v2/dao_events_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def index
1414

1515
total = ckb_transactions.count
1616
ckb_transactions = ckb_transactions
17-
.includes(:cell_inputs => [:previous_cell_output], :outputs => [], :bitcoin_annotation => [])
17+
.includes(:cell_inputs => [:previous_cell_output], :cell_outputs => [], :bitcoin_annotation => [])
1818
.page(page).per(page_size).fast_page
1919

2020
activities = CkbTransactionsSerializer.new(ckb_transactions).serializable_hash

app/controllers/api/v2/nft/collections_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module V2
33
module NFT
44
class CollectionsController < BaseController
55
def index
6-
scope = TokenCollection.includes(:items, :creator, :type_script)
6+
scope = TokenCollection.includes(:items, :creator, :type_script, :cell)
77
if params[:type].present?
88
scope = scope.where(standard: params[:type])
99
end

app/interactions/addresses/ckb_transactions.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def execute
3737

3838
ckb_transaction_ids = account_books.map(&:ckb_transaction_id)
3939

40-
includes = { :cell_inputs => [:previous_cell_output], :outputs => {}, :bitcoin_annotation => [] }
40+
includes = { :cell_inputs => [:previous_cell_output], :cell_outputs => {}, :bitcoin_annotation => [], :account_books => {} }
4141
includes[:bitcoin_transfers] = {} if is_bitcoin
4242

4343
records = CkbTransaction.where(id: ckb_transaction_ids)

app/interactions/udts/ckb_transactions.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def execute
3131
end
3232

3333
records = ckb_transactions
34-
.includes(:cell_inputs, :outputs, :bitcoin_annotation => [])
34+
.includes(:cell_inputs => [:previous_cell_output], :cell_outputs => [], :bitcoin_annotation => [])
3535
.select(select_fields)
3636
.page(page).per(page_size)
3737
options = FastJsonapi::PaginationMetaGenerator.new(

app/models/concerns/ckb_transactions/display_cells.rb

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def display_outputs(previews: false)
1919
if is_cellbase
2020
cellbase_display_outputs
2121
else
22-
cell_outputs_for_display = outputs.order(id: :asc)
22+
cell_outputs_for_display = cell_outputs.order(id: :asc)
2323
cell_outputs_for_display = cell_outputs_for_display.limit(10) if previews
2424
normal_tx_display_outputs(cell_outputs_for_display)
2525
end
@@ -41,7 +41,7 @@ def cellbase_display_inputs
4141
end
4242

4343
def cellbase_display_outputs
44-
cell_outputs_for_display = outputs.order(id: :asc)
44+
cell_outputs_for_display = cell_outputs.order(id: :asc)
4545
cellbase = Cellbase.new(block)
4646
cell_outputs_for_display.map do |output|
4747
consumed_tx_hash = output.live? ? nil : output.consumed_by.tx_hash
@@ -89,7 +89,7 @@ def normal_tx_display_inputs(cell_inputs_for_display)
8989
capacity: previous_cell_output.capacity,
9090
occupied_capacity: previous_cell_output.occupied_capacity,
9191
address_hash: previous_cell_output.address_hash,
92-
generated_tx_hash: previous_cell_output.ckb_transaction.tx_hash,
92+
generated_tx_hash: previous_cell_output.tx_hash,
9393
cell_index: previous_cell_output.cell_index,
9494
cell_type: previous_cell_output.cell_type,
9595
since: {
@@ -218,14 +218,11 @@ def attributes_for_omiga_inscription_cell(omiga_inscription_cell)
218218
end
219219

220220
def attributes_for_dao_input(nervos_dao_withdrawing_cell, is_phase2 = true)
221-
nervos_dao_withdrawing_cell_generated_tx = nervos_dao_withdrawing_cell.ckb_transaction
222-
nervos_dao_deposit_cell = nervos_dao_withdrawing_cell_generated_tx.
223-
cell_inputs.order("index asc")[nervos_dao_withdrawing_cell.cell_index].previous_cell_output
221+
block_number = CKB::Utils.hex_to_bin(nervos_dao_withdrawing_cell.data).unpack("Q<").pack("Q>").unpack1("H*").hex
224222
# start block: the block contains the transaction which generated the deposit cell output
225-
compensation_started_block = Block.select(:number, :timestamp).find(nervos_dao_deposit_cell.block.id)
223+
compensation_started_block = Block.select(:number, :timestamp).find_by_number(block_number)
226224
# end block: the block contains the transaction which generated the withdrawing cell
227-
compensation_ended_block = Block.select(:number, :timestamp).
228-
find(nervos_dao_withdrawing_cell_generated_tx.block_id)
225+
compensation_ended_block = Block.select(:number, :timestamp).find(nervos_dao_withdrawing_cell.block_id)
229226
interest = CkbUtils.dao_interest(nervos_dao_withdrawing_cell)
230227

231228
attributes = {

0 commit comments

Comments
 (0)