Skip to content

Commit

Permalink
add ops crate
Browse files Browse the repository at this point in the history
  • Loading branch information
kariy committed Apr 3, 2024
1 parent 91fa74e commit b7f0f5d
Show file tree
Hide file tree
Showing 10 changed files with 135 additions and 28 deletions.
16 changes: 14 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
members = [ "bin", "crates/args", "crates/rika", "crates/waiter" ]
members = [ "bin", "crates/args", "crates/ops", "crates/rika", "crates/waiter" ]
resolver = "2"

[workspace.package]
Expand All @@ -13,6 +13,7 @@ version = "0.1.0"

[workspace.dependencies]
rika-args = { path = "crates/args" }
rika-ops = { path = "crates/ops" }

chrono = "0.4.23"
clap = { version = "4.1.8", features = [ "derive", "env" ] }
Expand Down
1 change: 1 addition & 0 deletions bin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ clap.workspace = true
color-eyre = "0.6.3"
eyre.workspace = true
rika-args.workspace = true
rika-ops.workspace = true
starknet.workspace = true
tokio = { version = "1.36.0", features = [ "full" ] }
20 changes: 5 additions & 15 deletions bin/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
mod utils;

use clap::Parser;
use eyre::Result;
use rika_args::commands::{App, Commands};
use rika_ops as ops;

fn main() -> Result<()> {
color_eyre::install()?;
Expand All @@ -12,19 +11,10 @@ fn main() -> Result<()> {

fn execute(args: App) -> Result<()> {
match args.command {
Commands::Receipt(_) => {
// args::execute()
// let provider = starknet.provider();
// let result = utils::block_on(provider.get_transaction_receipt(hash))?;
// display.display(result)?;
}

Commands::Tx(_) => {
// args::execute()
// let provider = starknet.provider();
// let result = utils::block_on(provider.get_transaction_by_hash(hash))?;
// display.display(result)?;
}
Commands::Tx(args) => ops::transaction::get(args)?,
Commands::TxCount(args) => ops::transaction::count(args)?,
Commands::TxStatus(args) => ops::transaction::status(args)?,
Commands::Receipt(args) => ops::transaction::receipt(args)?,

_ => {
unimplemented!("This command is not implemented yet")
Expand Down
20 changes: 10 additions & 10 deletions crates/args/src/commands/transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ use crate::parser::BlockIdParser;
#[derive(Debug, Parser)]
pub struct TxArgs {
#[arg(value_name = "TX_HASH")]
hash: FieldElement,
pub hash: FieldElement,

#[command(flatten)]
#[command(next_help_heading = "Display options")]
display: DisplayOptions,
pub display: DisplayOptions,

#[command(flatten)]
#[command(next_help_heading = "Starknet options")]
starknet: StarknetOptions,
pub starknet: StarknetOptions,
}

#[derive(Debug, Parser)]
Expand All @@ -27,33 +27,33 @@ pub struct TxCountArgs {
#[arg(
help = "The hash of the requested block, or number (height) of the requested block, or a block tag (e.g. latest, pending)."
)]
block_id: BlockId,
pub block_id: BlockId,

#[command(flatten)]
#[command(next_help_heading = "Starknet options")]
starknet: StarknetOptions,
pub starknet: StarknetOptions,
}

#[derive(Debug, Parser)]
pub struct TxStatusArgs {
#[arg(value_name = "TX_HASH")]
hash: FieldElement,
pub hash: FieldElement,

#[command(flatten)]
#[command(next_help_heading = "Starknet options")]
starknet: StarknetOptions,
pub starknet: StarknetOptions,
}

#[derive(Debug, Parser)]
pub struct ReceiptArgs {
#[arg(value_name = "TX_HASH")]
hash: FieldElement,
pub hash: FieldElement,

#[command(flatten)]
#[command(next_help_heading = "Display options")]
display: DisplayOptions,
pub display: DisplayOptions,

#[command(flatten)]
#[command(next_help_heading = "Starknet options")]
starknet: StarknetOptions,
pub starknet: StarknetOptions,
}
29 changes: 29 additions & 0 deletions crates/args/src/fmt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use comfy_table::presets::UTF8_FULL;
use comfy_table::Table;
use starknet::core::types::{
DataAvailabilityMode, DeclareTransaction, DeployAccountTransaction, FieldElement,
TransactionExecutionStatus, TransactionStatus,
};
use starknet::core::types::{
Event, InvokeTransaction, MaybePendingBlockWithTxs, MaybePendingTransactionReceipt, MsgToL1,
Expand Down Expand Up @@ -465,3 +466,31 @@ impl Pretty for DataAvailabilityMode {
}
}
}

impl Pretty for TransactionStatus {
fn prettify(&self) -> String {
match self {
TransactionStatus::AcceptedOnL1(s) => {
format!("ACCEPTED ON L1 ({})", s.prettify())
}
TransactionStatus::AcceptedOnL2(s) => {
format!("ACCEPTED ON L2 ({})", s.prettify())
}
TransactionStatus::Received => format!("RECEIVED"),

Check failure on line 479 in crates/args/src/fmt.rs

View workflow job for this annotation

GitHub Actions / Clippy

useless use of `format!`
TransactionStatus::Rejected => format!("REJECTED"),

Check failure on line 480 in crates/args/src/fmt.rs

View workflow job for this annotation

GitHub Actions / Clippy

useless use of `format!`
}
}
}

impl Pretty for TransactionExecutionStatus {
fn prettify(&self) -> String {
match self {
TransactionExecutionStatus::Succeeded => {
format!("Succeeded")

Check failure on line 489 in crates/args/src/fmt.rs

View workflow job for this annotation

GitHub Actions / Clippy

useless use of `format!`
}
TransactionExecutionStatus::Reverted => {
format!("Reverted")

Check failure on line 492 in crates/args/src/fmt.rs

View workflow job for this annotation

GitHub Actions / Clippy

useless use of `format!`
}
}
}
}
16 changes: 16 additions & 0 deletions crates/ops/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[package]
authors.workspace = true
description.workspace = true
edition.workspace = true
name = "rika-ops"
repository.workspace = true
version.workspace = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
eyre.workspace = true
rika-args.workspace = true
starknet.workspace = true
thiserror.workspace = true
tokio = { version = "1.37.0", features = [ "full" ] }
2 changes: 2 additions & 0 deletions crates/ops/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
pub mod transaction;
mod utils;
56 changes: 56 additions & 0 deletions crates/ops/src/transaction.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
use eyre::Result;
use rika_args::{
commands::transaction::{ReceiptArgs, TxArgs, TxCountArgs, TxStatusArgs},
fmt::Pretty,
};
use starknet::providers::Provider;

use crate::utils;

pub fn get(args: TxArgs) -> Result<()> {
let TxArgs {
hash,
display,
starknet,
} = args;

let provider = starknet.provider();
let result = utils::block_on(provider.get_transaction_by_hash(hash))?;
display.display(result)?;

Ok(())
}

pub fn count(args: TxCountArgs) -> Result<()> {
let TxCountArgs { block_id, starknet } = args;

let provider = starknet.provider();
let count = utils::block_on(provider.get_block_transaction_count(block_id))?;
println!("{count}");

Ok(())
}

pub fn status(args: TxStatusArgs) -> Result<()> {
let TxStatusArgs { hash, starknet } = args;

let provider = starknet.provider();
let status = utils::block_on(provider.get_transaction_status(hash))?;
println!("{}", status.prettify());

Ok(())
}

pub fn receipt(args: ReceiptArgs) -> Result<()> {
let ReceiptArgs {
hash,
display,
starknet,
} = args;

let provider = starknet.provider();
let receipt = utils::block_on(provider.get_transaction_receipt(hash))?;
display.display(receipt)?;

Ok(())
}
File renamed without changes.

0 comments on commit b7f0f5d

Please sign in to comment.