diff --git a/libraries/gateway-client/Cargo.toml b/libraries/gateway-client/Cargo.toml index 29b47c91..f7520c84 100644 --- a/libraries/gateway-client/Cargo.toml +++ b/libraries/gateway-client/Cargo.toml @@ -6,7 +6,7 @@ edition.workspace = true [dependencies] serde = { version = "1.0.195", features = ["derive"] } -serde_with = { version = "3.5.1" } +serde_with = { version = "3.5.1", features = ["hex"] } serde_json = { version = "1.0.111" } url = { version = "2.5.0" } uuid = { version = "1.7.0", features = ["serde", "v4"] } diff --git a/libraries/gateway-client/src/models/events_item.rs b/libraries/gateway-client/src/models/events_item.rs index 9e6b786a..cf99446b 100644 --- a/libraries/gateway-client/src/models/events_item.rs +++ b/libraries/gateway-client/src/models/events_item.rs @@ -6,14 +6,14 @@ pub struct EventsItem { #[serde(rename = "emitter")] pub emitter: serde_json::Value, #[serde(rename = "data")] - pub data: Box, + pub data: Box, } impl EventsItem { pub fn new( name: String, emitter: serde_json::Value, - data: crate::models::ProgrammaticScryptoSborValue, + data: serde_json::Value, ) -> EventsItem { EventsItem { name, diff --git a/libraries/gateway-client/src/models/mod.rs b/libraries/gateway-client/src/models/mod.rs index 7220f81b..759d34fc 100644 --- a/libraries/gateway-client/src/models/mod.rs +++ b/libraries/gateway-client/src/models/mod.rs @@ -365,7 +365,7 @@ pub use self::transaction_preview_response::TransactionPreviewResponse; pub mod transaction_preview_response_logs_inner; pub use self::transaction_preview_response_logs_inner::TransactionPreviewResponseLogsInner; pub mod transaction_receipt; -pub use self::transaction_receipt::TransactionReceipt; +pub use self::transaction_receipt::{Entity, StateUpdates, TransactionReceipt}; pub mod transaction_status; pub use self::transaction_status::TransactionStatus; pub mod transaction_status_request; diff --git a/libraries/gateway-client/src/models/public_key.rs b/libraries/gateway-client/src/models/public_key.rs index d5d29a17..6a95950d 100644 --- a/libraries/gateway-client/src/models/public_key.rs +++ b/libraries/gateway-client/src/models/public_key.rs @@ -1,3 +1,15 @@ +#[serde_with::serde_as] #[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)] -#[serde(tag = "")] -pub enum PublicKey {} +#[serde(tag = "key_type")] +pub enum PublicKey { + EcdsaSecp256k1 { + #[serde_as(as = "serde_with::hex::Hex")] + #[serde(rename = "key_hex")] + key: [u8; 33], + }, + EddsaEd25519 { + #[serde_as(as = "serde_with::hex::Hex")] + #[serde(rename = "key_hex")] + key: [u8; 32], + }, +} diff --git a/libraries/gateway-client/src/models/transaction_preview_response.rs b/libraries/gateway-client/src/models/transaction_preview_response.rs index a9c31bc4..7952307c 100644 --- a/libraries/gateway-client/src/models/transaction_preview_response.rs +++ b/libraries/gateway-client/src/models/transaction_preview_response.rs @@ -1,8 +1,9 @@ +#[serde_with::serde_as] #[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)] pub struct TransactionPreviewResponse { #[serde(rename = "encoded_receipt")] - pub encoded_receipt: String, - + #[serde_as(as = "serde_with::hex::Hex")] + pub encoded_receipt: Vec, #[serde(rename = "receipt")] pub receipt: serde_json::Value, #[serde(rename = "resource_changes")] @@ -13,7 +14,7 @@ pub struct TransactionPreviewResponse { impl TransactionPreviewResponse { pub fn new( - encoded_receipt: String, + encoded_receipt: Vec, receipt: serde_json::Value, resource_changes: Vec, logs: Vec, diff --git a/libraries/gateway-client/src/models/transaction_receipt.rs b/libraries/gateway-client/src/models/transaction_receipt.rs index 5f6c2487..2767cf96 100644 --- a/libraries/gateway-client/src/models/transaction_receipt.rs +++ b/libraries/gateway-client/src/models/transaction_receipt.rs @@ -19,13 +19,10 @@ pub struct TransactionReceipt { #[serde(rename = "fee_source", skip_serializing_if = "Option::is_none")] pub fee_source: Option, - #[serde(rename = "state_updates", skip_serializing_if = "Option::is_none")] - pub state_updates: Option, - + pub state_updates: Option, #[serde(rename = "next_epoch", skip_serializing_if = "Option::is_none")] pub next_epoch: Option, - #[serde(rename = "output", skip_serializing_if = "Option::is_none")] pub output: Option, @@ -63,3 +60,15 @@ impl TransactionReceipt { } } } + +#[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub struct StateUpdates { + pub new_global_entities: Vec, +} + +#[derive(Clone, Debug, PartialEq, Eq, serde::Serialize, serde::Deserialize)] +pub struct Entity { + pub is_global: bool, + pub entity_type: String, + pub entity_address: String, +} diff --git a/libraries/gateway-client/src/models/transaction_submit_request.rs b/libraries/gateway-client/src/models/transaction_submit_request.rs index 7f41dd45..fc49cba8 100644 --- a/libraries/gateway-client/src/models/transaction_submit_request.rs +++ b/libraries/gateway-client/src/models/transaction_submit_request.rs @@ -1,13 +1,15 @@ +#[serde_with::serde_as] #[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize)] pub struct TransactionSubmitRequest { #[serde(rename = "notarized_transaction_hex")] - pub notarized_transaction_hex: String, + #[serde_as(as = "serde_with::hex::Hex")] + pub notarized_transaction: Vec, } impl TransactionSubmitRequest { - pub fn new(notarized_transaction_hex: String) -> TransactionSubmitRequest { + pub fn new(notarized_transaction: Vec) -> TransactionSubmitRequest { TransactionSubmitRequest { - notarized_transaction_hex, + notarized_transaction, } } }