Sui, a next-generation smart contract platform with high throughput, low latency, and an asset-oriented programming model powered by the Move programming language
The bulk of the changes lie in TransactionBlock::paginate:
validate filter consistency: does some checks on after, at, and before checkpoint, and checks that if SystemTx, sign is empty or 0x0
set checkpoint_viewed_at to cursor if provided, otherwise use from watermark
always set lo_cp to 0, hi_cp to checkpoint_viewed_at first
then adjust per checkpoint filters, and apply a scan_limit as needed
fetch the tx_sequence_number equivalent of the cp bounds
lo_cp maps to network_total_transactions of previous checkpoint
hi_cp maps to network_total_transactions - 1 of current checkpoint
if transaction_ids are specified, we fetch them first, and use it to bound the remaining subqueries
if cursors are provided, we apply them to each subquery
Test plan
WIP
Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.
Description
The bulk of the changes lie in
TransactionBlock::paginate
:transaction_ids
are specified, we fetch them first, and use it to bound the remaining subqueriesTest plan
WIP
Release notes
Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.
For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.