Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
@aresrpg/sui-checkpoint-reader
Advanced tools
This library allows building custom Sui indexers in JavaScript. It reads checkpoint files from both remote and local sources and processes them efficiently.
Note: This is a work in progress and might not be suited for production usage.
First, install the library:
npm install @aresrpg/sui-checkpoint-reader
Here's a basic example of how to use the library:
import { read_checkpoints } from '@aresrpg/sui-checkpoint-reader'
async function get_remote_checkpoint(num) {
const response = await fetch(`https://checkpoints.testnet.sui.io/${num}.chk`)
const buffer = await response.arrayBuffer()
return buffer
}
async function process_checkpoint(checkpoint, index) {
console.log('[indexer] process_checkpoint:', index)
}
const known_types = {}
await read_checkpoints({
from: 1, // Start processing from checkpoint 1
to: Infinity, // Continue processing indefinitely
get_remote_checkpoint, // Function to fetch checkpoint data
concurrent_downloads: 25, // Number of concurrent downloads allowed
known_types, // BCS types you want to parse
checkpoints_folder: '', // Local folder for checkpoint files
cleanup_checkpoints: false, // Clean up processed checkpoint files
process_checkpoint, // Function to process each checkpoint
})
The reader supports two modes: remote-only and hybrid (more powerful) mode.
checkpoints_folder
specified)from
and the lowest present checkpoint file.from
is lower than the lowest checkpoint file, missing checkpoints will be downloaded up to the lower checkpoint file.to
parameter) are downloaded, the remote reader will stop.checkpoints_folder
)In this mode, the reader will rely solely on remote checkpoint files:
import { read_checkpoints } from '@aresrpg/sui-checkpoint-reader'
async function get_remote_checkpoint(num) {
const response = await fetch(`https://checkpoints.testnet.sui.io/${num}.chk`)
const buffer = await response.arrayBuffer()
return buffer
}
async function process_checkpoint(checkpoint, index) {
console.log('[indexer] process_checkpoint:', index)
}
const known_types = {}
await read_checkpoints({
from: 1,
get_remote_checkpoint,
concurrent_downloads: 25,
known_types,
process_checkpoint,
})
To parse specific objects within the checkpoints, you can provide the BCS definitions directly.
You can generate the necessary types using the built-in generator. Here is an example of how to generate the BCS types for a specific package address:
npx @aresrpg/sui-checkpoint-reader gen --package <package_address> --file <output_file> --network <network_name>
The
network_name
defaults totestnet
if not provided. Not that you can also generate 0x2 types as needed
Here's an example of how you can define and use known BCS types:
// npx @aresrpg/sui-checkpoint-reader gen --package 0x68e06aee7966648c7b3258f02d5c7da2cf9b035727d6e9167c90e662f20e0406 --file aresrpg-bcs.js --network testnet
import { read_checkpoints } from '@aresrpg/sui-checkpoint-reader'
import aresrpg_bcs from './aresrpg-bcs.js'
const ARESRPG =
'0x68e06aee7966648c7b3258f02d5c7da2cf9b035727d6e9167c90e662f20e0406'
const known_types = {
[ARESRPG]: aresrpg_bcs,
}
This configuration allows the checkpoint reader to correctly parse and process the objects within the checkpoints.
read_checkpoints(options)
Options:
from
: Start processing from this checkpoint number (default: 1
).to
: Stop processing once this checkpoint number is reached (default: Infinity
).get_remote_checkpoint
: Function to fetch a checkpoint array buffer from a number.concurrent_downloads
: Number of concurrent downloads allowed while catching up (default: 25
).known_types
: Generated BCS for types you want to parse.checkpoints_folder
: Local folder where your Sui node is dumping the checkpoint files (default: ''
).cleanup_checkpoints
: Option to delete already processed checkpoint files (default: false
).process_checkpoint
: Function to process a checkpoint.Contributions are welcome! Please open an issue or submit a pull request with any improvements or bug fixes.
This project is licensed under the ISC License.
FAQs
@aresrpg/sui-checkpoint-reader <img src="https:/
The npm package @aresrpg/sui-checkpoint-reader receives a total of 1 weekly downloads. As such, @aresrpg/sui-checkpoint-reader popularity was classified as not popular.
We found that @aresrpg/sui-checkpoint-reader demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.