Skip to content

Commit

Permalink
Merge pull request #900 from rainlanguage/2024-09-28-rename-order-takes
Browse files Browse the repository at this point in the history
rename order takes to trades
  • Loading branch information
rouzwelt authored Oct 1, 2024
2 parents e31b182 + 7fd8946 commit d9f1554
Show file tree
Hide file tree
Showing 23 changed files with 81 additions and 1,678 deletions.
1,585 changes: 0 additions & 1,585 deletions crates/cli/Cargo.lock

This file was deleted.

5 changes: 2 additions & 3 deletions crates/cli/src/commands/mod.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
mod chart;
mod order;
mod order_take;
mod quote;
mod subgraph;
mod trade;
mod vault;
mod words;

pub use self::{
chart::Chart, order::Order, order_take::OrderTake, subgraph::Subgraph, vault::Vault,
words::Words,
chart::Chart, order::Order, subgraph::Subgraph, trade::Trade, vault::Vault, words::Words,
};
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@ use rain_orderbook_common::subgraph::SubgraphArgs;
use tracing::info;

#[derive(Args, Clone)]
pub struct CliOrderTakeDetailArgs {
#[arg(short = 'i', long, help = "ID of the Order Take")]
pub struct CliOrderTradeDetailArgs {
#[arg(short = 'i', long, help = "Subgraph ID of the Order")]
id: String,

#[clap(flatten)]
pub subgraph_args: CliSubgraphArgs,
}

impl Execute for CliOrderTakeDetailArgs {
impl Execute for CliOrderTradeDetailArgs {
async fn execute(&self) -> Result<()> {
let subgraph_args: SubgraphArgs = self.subgraph_args.clone().into();
let order_take = subgraph_args
.to_subgraph_client()
.await?
.order_take_detail(self.id.clone().into())
.order_trade_detail(self.id.clone().into())
.await?;
info!("{:#?}", order_take);

Expand All @@ -46,7 +46,7 @@ mod tests {
then.json_body_obj(&get_sg_response());
});

let cli_order_take_detail_args = CliOrderTakeDetailArgs {
let cli_order_take_detail_args = CliOrderTradeDetailArgs {
subgraph_args: CliSubgraphArgs {
subgraph_url: sg_server.url("/sg"),
},
Expand All @@ -65,7 +65,7 @@ mod tests {
then.json_body_obj(&json!({"data": {"trade": null}}));
});

let cli_order_take_detail_args = CliOrderTakeDetailArgs {
let cli_order_take_detail_args = CliOrderTradeDetailArgs {
subgraph_args: CliSubgraphArgs {
subgraph_url: sg_server.url("/sg"),
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use rain_orderbook_common::{
use tracing::info;

#[derive(Args, Clone)]
pub struct CliOrderTakesListArgs {
pub struct CliOrderTradesListArgs {
#[arg(short = 'i', long, help = "ID of the Order")]
order_id: String,

Expand All @@ -24,15 +24,15 @@ pub struct CliOrderTakesListArgs {
subgraph_args: CliSubgraphArgs,
}

impl Execute for CliOrderTakesListArgs {
impl Execute for CliOrderTradesListArgs {
async fn execute(&self) -> Result<()> {
let subgraph_args: SubgraphArgs = self.subgraph_args.clone().into();

if self.pagination_args.csv {
let csv_text = subgraph_args
.to_subgraph_client()
.await?
.order_takes_list_all(self.order_id.clone().into(), None, None)
.order_trades_list_all(self.order_id.clone().into(), None, None)
.await?
.into_iter()
.map(|o| o.try_into())
Expand All @@ -45,7 +45,7 @@ impl Execute for CliOrderTakesListArgs {
subgraph_args
.to_subgraph_client()
.await?
.order_takes_list(
.order_trades_list(
self.order_id.clone().into(),
self.pagination_args.clone().into(),
None,
Expand Down Expand Up @@ -114,7 +114,7 @@ mod tests {
then.json_body_obj(&json!({"data": {"trades": []}}));
});

let cli_order_take_list_args = CliOrderTakesListArgs {
let cli_order_take_list_args = CliOrderTradesListArgs {
order_id: encode_prefixed(B256::random()),
subgraph_args: CliSubgraphArgs {
subgraph_url: sg_server.url("/sg"),
Expand All @@ -138,7 +138,7 @@ mod tests {
then.json_body_obj(&get_sg_response());
});

let cli_order_take_list_args = CliOrderTakesListArgs {
let cli_order_take_list_args = CliOrderTradesListArgs {
order_id: encode_prefixed(B256::random()),
subgraph_args: CliSubgraphArgs {
subgraph_url: sg_server.url("/sg"),
Expand All @@ -156,7 +156,7 @@ mod tests {

#[tokio::test]
async fn test_execute_unhappy() {
let cli_order_take_list_args = CliOrderTakesListArgs {
let cli_order_take_list_args = CliOrderTradesListArgs {
order_id: encode_prefixed(B256::random()),
subgraph_args: CliSubgraphArgs {
subgraph_url: "https://bad-url".to_string(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@ mod list;
use crate::execute::Execute;
use anyhow::Result;
use clap::Parser;
use detail::CliOrderTakeDetailArgs;
use list::CliOrderTakesListArgs;
use detail::CliOrderTradeDetailArgs;
use list::CliOrderTradesListArgs;

#[derive(Parser)]
pub enum OrderTake {
pub enum Trade {
#[command(about = "View an Order Take", alias = "view")]
Detail(CliOrderTakeDetailArgs),
Detail(CliOrderTradeDetailArgs),

#[command(about = "List takes for an Order", alias = "ls")]
List(CliOrderTakesListArgs),
List(CliOrderTradesListArgs),
}

impl Execute for OrderTake {
impl Execute for Trade {
async fn execute(&self) -> Result<()> {
match self {
OrderTake::Detail(detail) => detail.execute().await,
OrderTake::List(list) => list.execute().await,
Trade::Detail(detail) => detail.execute().await,
Trade::List(list) => list.execute().await,
}
}
}
Expand All @@ -32,6 +32,6 @@ mod tests {

#[test]
fn verify_command() {
OrderTake::command().debug_assert();
Trade::command().debug_assert();
}
}
10 changes: 5 additions & 5 deletions crates/cli/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use crate::commands::{Chart, Order, OrderTake, Subgraph, Vault, Words};
use crate::commands::{Chart, Order, Subgraph, Trade, Vault, Words};
use crate::execute::Execute;
use anyhow::Result;
use clap::Subcommand;
Expand All @@ -17,10 +17,10 @@ pub enum Orderbook {
Order(Order),

#[command(subcommand)]
Vault(Box<Vault>),
Vault(Vault),

#[command(subcommand)]
OrderTake(OrderTake),
Trade(Trade),

#[command(subcommand)]
Subgraph(Subgraph),
Expand All @@ -36,8 +36,8 @@ impl Orderbook {
pub async fn execute(self) -> Result<()> {
match self {
Orderbook::Order(order) => order.execute().await,
Orderbook::Vault(vault) => (*vault).execute().await,
Orderbook::OrderTake(order_take) => (order_take).execute().await,
Orderbook::Vault(vault) => vault.execute().await,
Orderbook::Trade(trade) => trade.execute().await,
Orderbook::Chart(chart) => chart.execute().await,
Orderbook::Quote(quote) => quote.execute().await,
Orderbook::Subgraph(subgraph) => subgraph.execute().await,
Expand Down
16 changes: 8 additions & 8 deletions crates/subgraph/src/orderbook_client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use crate::types::order::{
BatchOrderDetailQuery, BatchOrderDetailQueryVariables, OrderDetailQuery, OrderIdList,
OrdersListQuery,
};
use crate::types::order_take::{OrderTakeDetailQuery, OrderTakesListQuery};
use crate::types::order_trade::{OrderTradeDetailQuery, OrderTradesListQuery};
use crate::types::vault::{VaultDetailQuery, VaultsListQuery};
use crate::vault_balance_changes_query::VaultBalanceChangesListPageQueryClient;
use crate::vol::{get_vaults_vol, VaultVolume};
Expand Down Expand Up @@ -133,17 +133,17 @@ impl OrderbookSubgraphClient {
}

/// Fetch single order take
pub async fn order_take_detail(&self, id: Id) -> Result<Trade, OrderbookSubgraphClientError> {
pub async fn order_trade_detail(&self, id: Id) -> Result<Trade, OrderbookSubgraphClientError> {
let data = self
.query::<OrderTakeDetailQuery, IdQueryVariables>(IdQueryVariables { id: &id })
.query::<OrderTradeDetailQuery, IdQueryVariables>(IdQueryVariables { id: &id })
.await?;
let order_take = data.trade.ok_or(OrderbookSubgraphClientError::Empty)?;

Ok(order_take)
}

/// Fetch all order takes paginated for a single order
pub async fn order_takes_list(
pub async fn order_trades_list(
&self,
order_id: cynic::Id,
pagination_args: PaginationArgs,
Expand All @@ -152,7 +152,7 @@ impl OrderbookSubgraphClient {
) -> Result<Vec<Trade>, OrderbookSubgraphClientError> {
let pagination_variables = Self::parse_pagination_args(pagination_args);
let data = self
.query::<OrderTakesListQuery, PaginationWithTimestampQueryVariables>(
.query::<OrderTradesListQuery, PaginationWithTimestampQueryVariables>(
PaginationWithTimestampQueryVariables {
id: Bytes(order_id.inner().to_string()),
first: pagination_variables.first,
Expand All @@ -172,7 +172,7 @@ impl OrderbookSubgraphClient {
}

/// Fetch all pages of order_takes_list query
pub async fn order_takes_list_all(
pub async fn order_trades_list_all(
&self,
order_id: cynic::Id,
start_timestamp: Option<u64>,
Expand All @@ -183,7 +183,7 @@ impl OrderbookSubgraphClient {

loop {
let page_data = self
.order_takes_list(
.order_trades_list(
order_id.clone(),
PaginationArgs {
page,
Expand Down Expand Up @@ -211,7 +211,7 @@ impl OrderbookSubgraphClient {
end_timestamp: Option<u64>,
) -> Result<Vec<VaultVolume>, OrderbookSubgraphClientError> {
let trades = self
.order_takes_list_all(order_id, start_timestamp, end_timestamp)
.order_trades_list_all(order_id, start_timestamp, end_timestamp)
.await?;
Ok(get_vaults_vol(&trades)?)
}
Expand Down
2 changes: 1 addition & 1 deletion crates/subgraph/src/types/mod.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
pub mod common;
pub mod order;
pub mod order_detail_traits;
pub mod order_take;
pub mod order_trade;
pub mod vault;

pub use cynic::Id;
10 changes: 3 additions & 7 deletions crates/subgraph/src/types/order_detail_traits.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
use super::common::*;
use crate::utils::base10_str_to_u256;
use alloy::primitives::{
hex::{decode, FromHexError},
ruint::ParseError,
Address,
Address, U256,
};
use alloy::sol_types::SolValue;
use rain_orderbook_bindings::IOrderBookV4::{OrderV3, IO};
use std::num::TryFromIntError;
use std::{num::TryFromIntError, str::FromStr};
use thiserror::Error;

#[derive(Error, Debug)]
Expand Down Expand Up @@ -38,10 +37,7 @@ impl TryInto<IO> for Vault {
.unwrap_or(BigInt("0".into()))
.0
.parse::<u8>()?,

// Vault ID returned from the subgraph is the base-10 value in a string *without* a "0x" prefix
// See https://github.com/rainlanguage/rain.orderbook/issues/315
vaultId: base10_str_to_u256(self.vault_id.0.as_str())?,
vaultId: U256::from_str(self.vault_id.0.as_str())?,
})
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use typeshare::typeshare;
variables = "PaginationWithTimestampQueryVariables"
)]
#[typeshare]
pub struct OrderTakesListQuery {
pub struct OrderTradesListQuery {
#[arguments(
skip: $skip,
first: $first,
Expand All @@ -27,7 +27,7 @@ pub struct OrderTakesListQuery {
#[derive(cynic::QueryFragment, Debug, Clone, Serialize)]
#[cynic(graphql_type = "Query", variables = "IdQueryVariables")]
#[typeshare]
pub struct OrderTakeDetailQuery {
pub struct OrderTradeDetailQuery {
#[arguments(id: $id)]
pub trade: Option<Trade>,
}
2 changes: 0 additions & 2 deletions crates/subgraph/src/utils/mod.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
mod order_id;
mod slice_list;
mod u256;

pub use order_id::*;
pub use slice_list::*;
pub use u256::*;
5 changes: 0 additions & 5 deletions crates/subgraph/src/utils/u256.rs

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
use cynic::Id;
use insta::assert_snapshot;
use rain_orderbook_subgraph_client::types::common::*;
use rain_orderbook_subgraph_client::types::order_take::OrderTakeDetailQuery;
use rain_orderbook_subgraph_client::types::order_trade::OrderTradeDetailQuery;

#[test]
fn vaults_query_gql_output() {
use cynic::QueryBuilder;

let id = Id::new("1234");
let request_body = OrderTakeDetailQuery::build(IdQueryVariables { id: &id });
let request_body = OrderTradeDetailQuery::build(IdQueryVariables { id: &id });

assert_snapshot!(request_body.query);
}
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
use cynic::Id;
use insta::assert_snapshot;
use rain_orderbook_subgraph_client::types::common::*;
use rain_orderbook_subgraph_client::types::order_take::OrderTakesListQuery;
use rain_orderbook_subgraph_client::types::order_trade::OrderTradesListQuery;

#[test]
fn vaults_query_gql_output() {
use cynic::QueryBuilder;

let id = Id::new("1234");
let request_body = OrderTakesListQuery::build(PaginationWithTimestampQueryVariables {
let request_body = OrderTradesListQuery::build(PaginationWithTimestampQueryVariables {
id: Bytes(id.inner().to_string()),
skip: Some(0),
first: Some(10),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
source: crates/subgraph/tests/order_take_test.rs
source: crates/subgraph/tests/order_trade_test.rs
expression: request_body.query
---
query OrderTakeDetailQuery($id: ID!) {
query OrderTradeDetailQuery($id: ID!) {
trade(id: $id) {
id
tradeEvent {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
source: crates/subgraph/tests/order_takes_test.rs
source: crates/subgraph/tests/order_trades_test.rs
expression: request_body.query
---
query OrderTakesListQuery($first: Int, $id: Bytes!, $skip: Int, $timestampGte: BigInt, $timestampLte: BigInt) {
query OrderTradesListQuery($first: Int, $id: Bytes!, $skip: Int, $timestampGte: BigInt, $timestampLte: BigInt) {
trades(skip: $skip, first: $first, orderBy: timestamp, orderDirection: desc, where: {order_: {id: $id, }, timestamp_gte: $timestampGte, timestamp_lte: $timestampLte, }) {
id
tradeEvent {
Expand Down
2 changes: 1 addition & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
cargo install --git https://github.com/tomjw64/typeshare --rev 556b44aafd5304eedf17206800f69834e3820b7c
export PATH=$PATH:$CARGO_HOME/bin
typeshare crates/subgraph/src/types/common.rs crates/subgraph/src/types/order.rs crates/subgraph/src/types/vault.rs crates/subgraph/src/types/order_take.rs crates/common/src/types/order_detail_extended.rs crates/subgraph/src/vol.rs --lang=typescript --output-file=tauri-app/src/lib/typeshare/subgraphTypes.ts;
typeshare crates/subgraph/src/types/common.rs crates/subgraph/src/types/order.rs crates/subgraph/src/types/vault.rs crates/subgraph/src/types/order_trade.rs crates/common/src/types/order_detail_extended.rs crates/subgraph/src/vol.rs --lang=typescript --output-file=tauri-app/src/lib/typeshare/subgraphTypes.ts;
typeshare crates/settings/src/parse.rs --lang=typescript --output-file=tauri-app/src/lib/typeshare/appSettings.ts;
typeshare lib/rain.interpreter/crates/eval/src/trace.rs crates/common/src/fuzz/mod.rs crates/settings/src/config_source.rs crates/settings/src/config.rs crates/settings/src/plot_source.rs crates/settings/src/chart.rs crates/settings/src/deployer.rs crates/settings/src/network.rs crates/settings/src/order.rs crates/settings/src/orderbook.rs crates/settings/src/scenario.rs crates/settings/src/blocks.rs crates/settings/src/token.rs crates/settings/src/deployment.rs --lang=typescript --output-file=tauri-app/src/lib/typeshare/config.ts;
Expand Down
Loading

0 comments on commit d9f1554

Please sign in to comment.