Skip to content

Commit

Permalink
Merge pull request #1130 from rainlanguage/2025-01-07-dotrain-order-u…
Browse files Browse the repository at this point in the history
…pdate
  • Loading branch information
hardyjosh authored Jan 10, 2025
2 parents 77fd363 + ccba893 commit 4aed4be
Show file tree
Hide file tree
Showing 41 changed files with 1,139 additions and 1,515 deletions.
3 changes: 1 addition & 2 deletions Cargo.lock

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

15 changes: 6 additions & 9 deletions crates/cli/src/commands/order/calldata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ use clap::Parser;
use rain_orderbook_common::add_order::AddOrderArgs;
use rain_orderbook_common::dotrain_order::DotrainOrder;
use std::fs::read_to_string;
use std::ops::Deref;
use std::path::PathBuf;

#[derive(Parser, Clone)]
Expand Down Expand Up @@ -37,18 +36,13 @@ impl Execute for AddOrderCalldata {
}
None => None,
};
let order = DotrainOrder::new(dotrain, settings).await?;
let order = DotrainOrder::new(dotrain, settings.map(|v| vec![v])).await?;
let dotrain_string = order.dotrain().to_string();

let config_deployment = order
.config()
.deployments
.get(&self.deployment)
.ok_or(anyhow!("specified deployment is undefined!"))?;
let config_deployment = order.dotrain_yaml().get_deployment(&self.deployment)?;

let add_order_args =
AddOrderArgs::new_from_deployment(dotrain_string, config_deployment.deref().clone())
.await;
AddOrderArgs::new_from_deployment(dotrain_string, config_deployment.clone()).await;

let add_order_calldata = add_order_args?
.try_into_call(config_deployment.scenario.deployer.network.rpc.to_string())
Expand Down Expand Up @@ -160,6 +154,8 @@ scenarios:
some-scenario:
network: some-network
deployer: some-deployer
bindings:
key: 10
orders:
some-order:
Expand All @@ -177,6 +173,7 @@ deployments:
scenario: some-scenario
order: some-order
---
#key !Test binding key
#calculate-io
_ _: 0 0;
#handle-io
Expand Down
17 changes: 16 additions & 1 deletion crates/cli/src/commands/order/compose.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ impl Execute for Compose {
None => None,
};

let order = DotrainOrder::new(dotrain, settings).await?;
let order = DotrainOrder::new(dotrain, settings.map(|v| vec![v])).await?;

let rainlang = if self.post {
order
Expand Down Expand Up @@ -133,7 +133,22 @@ scenarios:
some-scenario:
network: some-network
deployer: some-deployer
bindings:
key1: 10
tokens:
token-one:
network: some-network
address: 0x1234567890123456789012345678901234567890
orders:
some-order:
inputs:
- token: token-one
outputs:
- token: token-one
---
#key1 !Test binding
#calculate-io
_ _: 0 0;
#handle-io
Expand Down
175 changes: 0 additions & 175 deletions crates/cli/src/commands/order/filter.rs

This file was deleted.

8 changes: 5 additions & 3 deletions crates/cli/src/commands/order/listorderfrontmatterkeys.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,19 +41,21 @@ impl Execute for ListOrderFrontmatterKeys {
None => None,
};

let order = DotrainOrder::new(dotrain, settings).await?;
let order = DotrainOrder::new(dotrain, settings.map(|v| vec![v])).await?;

let keys_string = match self.key_type {
KeyType::Deployment => {
let deployment_keys = order.config().deployments.keys();
let deployment_keys = order.dotrain_yaml().get_deployment_keys()?;
deployment_keys
.iter()
.map(|key| key.to_string())
.collect::<Vec<String>>()
.join(" ")
}
KeyType::Scenario => {
let scenario_keys = order.config().scenarios.keys();
let scenario_keys = order.dotrain_yaml().get_scenario_keys()?;
scenario_keys
.iter()
.map(|key| key.to_string())
.collect::<Vec<String>>()
.join(" ")
Expand Down
5 changes: 0 additions & 5 deletions crates/cli/src/commands/order/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ mod add;
mod calldata;
mod compose;
mod detail;
mod filter;
mod list;
mod listorderfrontmatterkeys;
mod orderbook_address;
Expand All @@ -15,7 +14,6 @@ use anyhow::Result;
use calldata::AddOrderCalldata;
use clap::Parser;
use compose::Compose;
use filter::Filter;
use listorderfrontmatterkeys::ListOrderFrontmatterKeys;

use detail::CliOrderDetailArgs;
Expand Down Expand Up @@ -53,8 +51,6 @@ pub enum Order {

#[command(about = "Get frontmatter keys from a dotrain file", alias = "keys")]
ListOrderFrontmatterKeys(ListOrderFrontmatterKeys),
#[command()]
Filter(Filter),
}

impl Execute for Order {
Expand All @@ -68,7 +64,6 @@ impl Execute for Order {
Order::Calldata(calldata) => calldata.execute().await,
Order::OrderbookAddress(orderbook_address) => orderbook_address.execute().await,
Order::ListOrderFrontmatterKeys(keys) => keys.execute().await,
Order::Filter(filter) => filter.execute().await,
}
}
}
Expand Down
29 changes: 16 additions & 13 deletions crates/cli/src/commands/order/orderbook_address.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,24 @@ impl Execute for OrderbookAddress {
}
None => None,
};
let order = DotrainOrder::new(dotrain, settings).await?;
let order_config = order.config().clone();
let deployment_ref = order_config
.deployments
.get(&self.deployment)
.ok_or(anyhow!("specified deployment is undefined!"))?;
let order = DotrainOrder::new(dotrain, settings.map(|v| vec![v])).await?;
let deployment_ref = order.dotrain_yaml().get_deployment(&self.deployment)?;

let orderbook_address = if let Some(v) = &deployment_ref.order.orderbook {
v.address
} else {
let network_key = &deployment_ref.scenario.deployer.network.key;
order_config
.orderbooks
.iter()
.find(|(k, v)| *k == network_key || v.network.key == *network_key)
.ok_or(anyhow!("specified orderbook is undefined!"))?
.1
.address
let mut orderbook_address = None;
for key in order.orderbook_yaml().get_orderbook_keys()? {
let orderbook = order.orderbook_yaml().get_orderbook(&key)?;
if key == *network_key || orderbook.network.key == *network_key {
orderbook_address = Some(orderbook.address);
}
}
if orderbook_address.is_none() {
return Err(anyhow!("specified orderbook is undefined!"));
}
orderbook_address.unwrap()
};
output(&None, self.encoding.clone(), orderbook_address.as_slice())?;

Expand Down Expand Up @@ -149,6 +149,8 @@ scenarios:
some-scenario:
network: some-network
deployer: some-deployer
bindings:
key1: 10
orders:
some-order:
Expand All @@ -165,6 +167,7 @@ deployments:
scenario: some-scenario
order: some-order
---
#key !Test binding
#calculate-io
_ _: 0 0;
#handle-io
Expand Down
Loading

0 comments on commit 4aed4be

Please sign in to comment.