From b8634b8c2659de4c9c11fa2b2d96fd585a25294f Mon Sep 17 00:00:00 2001 From: evalir Date: Wed, 14 Aug 2024 12:20:30 +0200 Subject: [PATCH 1/3] feat: signed order --- crates/types/src/lib.rs | 2 +- crates/types/src/orders/mod.rs | 3 +++ crates/types/src/orders/signed.rs | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 crates/types/src/orders/signed.rs diff --git a/crates/types/src/lib.rs b/crates/types/src/lib.rs index 78ad565..3f5720b 100644 --- a/crates/types/src/lib.rs +++ b/crates/types/src/lib.rs @@ -18,7 +18,7 @@ mod block; pub use block::{decode_txns, encode_txns, Alloy2718Coder, Coder, ZenithBlock, ZenithTransaction}; mod orders; -pub use orders::AggregateOrders; +pub use orders::{AggregateOrders, SignedOrder}; mod req; pub use req::SignRequest; diff --git a/crates/types/src/orders/mod.rs b/crates/types/src/orders/mod.rs index 0b00567..0ef3b8f 100644 --- a/crates/types/src/orders/mod.rs +++ b/crates/types/src/orders/mod.rs @@ -1,2 +1,5 @@ mod agg; pub use agg::AggregateOrders; + +mod signed; +pub use signed::SignedOrder; diff --git a/crates/types/src/orders/signed.rs b/crates/types/src/orders/signed.rs new file mode 100644 index 0000000..136e3ac --- /dev/null +++ b/crates/types/src/orders/signed.rs @@ -0,0 +1,20 @@ +use crate::bindings::HostOrders::{Output, Permit2Batch}; +use serde::{Deserialize, Serialize}; + +/// A signed order. +/// TODO: Link to docs. +#[derive(Clone, Debug, Default, Deserialize, Serialize, PartialEq, Eq)] +pub struct SignedOrder { + /// The permit batch. + #[serde(flatten)] + pub permit: Permit2Batch, + /// The desired outputs. + pub outputs: Vec, +} + +impl SignedOrder { + /// Creates a new signed order. + pub fn new(permit: Permit2Batch, outputs: Vec) -> Self { + Self { permit, outputs } + } +} From 7006273ad0174400fa39974c6aa2df3afc3ed945 Mon Sep 17 00:00:00 2001 From: evalir Date: Wed, 14 Aug 2024 12:20:51 +0200 Subject: [PATCH 2/3] chore: derive default on bindings, because it doesnt hurt --- crates/types/src/bindings.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/types/src/bindings.rs b/crates/types/src/bindings.rs index 1e747de..3184c00 100644 --- a/crates/types/src/bindings.rs +++ b/crates/types/src/bindings.rs @@ -6,42 +6,42 @@ use HostOrders::TokenPermissions; sol!( #[sol(rpc)] - #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] Zenith, "abi/Zenith.json" ); sol!( #[sol(rpc)] - #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] Passage, "abi/Passage.json" ); sol!( #[sol(rpc)] - #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] HostOrders, "abi/HostOrders.json" ); sol!( #[sol(rpc)] - #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] RollupOrders, "abi/RollupOrders.json" ); sol!( #[sol(rpc)] - #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] Transactor, "abi/Transactor.json" ); sol!( #[sol(rpc)] - #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] RollupPassage, "abi/RollupPassage.json" ); From cebb924532c212e5c95749242189a4581dd09b91 Mon Sep 17 00:00:00 2001 From: evalir Date: Wed, 14 Aug 2024 18:07:25 +0200 Subject: [PATCH 3/3] chore: remove default derive --- crates/types/src/bindings.rs | 12 ++++++------ crates/types/src/orders/signed.rs | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/types/src/bindings.rs b/crates/types/src/bindings.rs index 3184c00..1e747de 100644 --- a/crates/types/src/bindings.rs +++ b/crates/types/src/bindings.rs @@ -6,42 +6,42 @@ use HostOrders::TokenPermissions; sol!( #[sol(rpc)] - #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] Zenith, "abi/Zenith.json" ); sol!( #[sol(rpc)] - #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] Passage, "abi/Passage.json" ); sol!( #[sol(rpc)] - #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] HostOrders, "abi/HostOrders.json" ); sol!( #[sol(rpc)] - #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] RollupOrders, "abi/RollupOrders.json" ); sol!( #[sol(rpc)] - #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] Transactor, "abi/Transactor.json" ); sol!( #[sol(rpc)] - #[derive(Default, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] + #[derive(Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] RollupPassage, "abi/RollupPassage.json" ); diff --git a/crates/types/src/orders/signed.rs b/crates/types/src/orders/signed.rs index 136e3ac..d7e6e0e 100644 --- a/crates/types/src/orders/signed.rs +++ b/crates/types/src/orders/signed.rs @@ -3,7 +3,7 @@ use serde::{Deserialize, Serialize}; /// A signed order. /// TODO: Link to docs. -#[derive(Clone, Debug, Default, Deserialize, Serialize, PartialEq, Eq)] +#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)] pub struct SignedOrder { /// The permit batch. #[serde(flatten)]