/rifle

Starknet Blocktime estimator in Rust

Primary LanguageRust

rifle


Rifle is a blocktime estimator for Starknet written in Rust. Made by learning purpose. This project is inspired by (snipe). You can use package at Crate.io

Install

Run the following Cargo command in your project directory:

cargo add rifle

Or add the following line to your Cargo.toml:

rifle = "0.1.0"

Features

Convert blocknumber to time.

This feature relies on the starknet_getBlockWithTxHashes endpoint. Get timestamp from blocknumber through this endpoint. If you want to return in unix format, add -f unix command.

Convert time to blocknumber.

This feature is using binary search algorithm to search for the nearest blocknumber with given target timestamp.

Select network want to query.

You can use options to choose. -n mainnet will allow you to query from Starkent mainnet, -n goerli will allow you to query from Starkent goerli, -n goerli2 will allow you to query from Starkent goerli2.

If you provide --rpc-url, it will get data from rpc client.

Usage

Usage: rifle [OPTIONS] [COMMAND]

Commands:
  --to-time   Convert blocknumber to time. [aliases: btt]
  --to-block  Convert time to blocknumber. [aliases: ttb]
  help        Print this message or the help of the given subcommand(s)

Options:
  -n, --network <NETWORK>     Network: [mainnet/goerli/goerli2]
  -u, --rpc-url <RPC_URL>     The RPC endpoint
  -f, --format <TIME_FORMAT>  The format to use time
  -h, --help                  Print help

--to-block

Convert time to blocknumber.

Usage: rifle --to-block <TIME>

Arguments:
  <TIME>  The time to convert

Options:
  -h, --help  Print help

--to-time

Convert blocknumber to time.

Usage: rifle --to-time <BLOCK_NUMBER>

Arguments:
  <BLOCK_NUMBER>  The blocknumber to convert

Options:
  -h, --help  Print help

Improvement

  • timezone support
  • algorithm upgrade?