From 41e4c8fa718d389d72ac3d0d54407a7c256b7491 Mon Sep 17 00:00:00 2001 From: Thibault Martinez Date: Wed, 21 Jun 2023 16:51:56 +0200 Subject: [PATCH] Update InfoResponse (#648) * Remove WhiteFlagResponse * Update InfoResponse * Add IssuerId * Update ProtocolParameters * Remove check_existing_db tests * Fix test * fix * Revert triple slash --- bindings/core/src/method_handler/client.rs | 2 + .../offline_signing/2_sign_transaction.rs | 2 + sdk/src/client/builder.rs | 2 + sdk/src/client/node_manager/syncing.rs | 3 +- sdk/src/types/api/core/response.rs | 97 ++------ sdk/src/types/block/issuer_id.rs | 11 + sdk/src/types/block/mod.rs | 2 + sdk/src/types/block/protocol.rs | 29 ++- sdk/src/wallet/account/mod.rs | 2 + .../account/operations/participation/mod.rs | 4 +- sdk/tests/client/client_builder.rs | 8 +- .../check_existing_1_db_test/000071.sst | Bin 7065 -> 0 bytes .../check_existing_1_db_test/000074.sst | Bin 6567 -> 0 bytes .../check_existing_1_db_test/000079.sst | Bin 6479 -> 0 bytes .../fixtures/check_existing_1_db_test/CURRENT | 1 - .../check_existing_1_db_test/IDENTITY | 1 - .../check_existing_1_db_test/MANIFEST-000081 | Bin 419 -> 0 bytes .../check_existing_2_db_test/000086.sst | Bin 6732 -> 0 bytes .../check_existing_2_db_test/000089.sst | Bin 6048 -> 0 bytes .../fixtures/check_existing_2_db_test/CURRENT | 1 - .../check_existing_2_db_test/IDENTITY | 1 - .../check_existing_2_db_test/MANIFEST-000155 | Bin 285 -> 0 bytes .../check_existing_2_db_test/walletstronghold | Bin 477 -> 0 bytes .../check_existing_db_test/000097.sst | Bin 5163 -> 0 bytes .../check_existing_db_test/000100.sst | Bin 5584 -> 0 bytes .../check_existing_db_test/000105.sst | Bin 6614 -> 0 bytes .../fixtures/check_existing_db_test/CURRENT | 1 - .../fixtures/check_existing_db_test/IDENTITY | 1 - .../check_existing_db_test/MANIFEST-000107 | Bin 407 -> 0 bytes .../check_existing_db_test/strongholdfile | Bin 477 -> 0 bytes sdk/tests/wallet/mod.rs | 3 - sdk/tests/wallet/wallet_storage.rs | 225 ------------------ 32 files changed, 84 insertions(+), 312 deletions(-) create mode 100644 sdk/src/types/block/issuer_id.rs delete mode 100644 sdk/tests/wallet/fixtures/check_existing_1_db_test/000071.sst delete mode 100644 sdk/tests/wallet/fixtures/check_existing_1_db_test/000074.sst delete mode 100644 sdk/tests/wallet/fixtures/check_existing_1_db_test/000079.sst delete mode 100644 sdk/tests/wallet/fixtures/check_existing_1_db_test/CURRENT delete mode 100644 sdk/tests/wallet/fixtures/check_existing_1_db_test/IDENTITY delete mode 100644 sdk/tests/wallet/fixtures/check_existing_1_db_test/MANIFEST-000081 delete mode 100644 sdk/tests/wallet/fixtures/check_existing_2_db_test/000086.sst delete mode 100644 sdk/tests/wallet/fixtures/check_existing_2_db_test/000089.sst delete mode 100644 sdk/tests/wallet/fixtures/check_existing_2_db_test/CURRENT delete mode 100644 sdk/tests/wallet/fixtures/check_existing_2_db_test/IDENTITY delete mode 100644 sdk/tests/wallet/fixtures/check_existing_2_db_test/MANIFEST-000155 delete mode 100644 sdk/tests/wallet/fixtures/check_existing_2_db_test/walletstronghold delete mode 100644 sdk/tests/wallet/fixtures/check_existing_db_test/000097.sst delete mode 100644 sdk/tests/wallet/fixtures/check_existing_db_test/000100.sst delete mode 100644 sdk/tests/wallet/fixtures/check_existing_db_test/000105.sst delete mode 100644 sdk/tests/wallet/fixtures/check_existing_db_test/CURRENT delete mode 100644 sdk/tests/wallet/fixtures/check_existing_db_test/IDENTITY delete mode 100644 sdk/tests/wallet/fixtures/check_existing_db_test/MANIFEST-000107 delete mode 100644 sdk/tests/wallet/fixtures/check_existing_db_test/strongholdfile delete mode 100644 sdk/tests/wallet/wallet_storage.rs diff --git a/bindings/core/src/method_handler/client.rs b/bindings/core/src/method_handler/client.rs index 04bd1e2371..4241e1c3b0 100644 --- a/bindings/core/src/method_handler/client.rs +++ b/bindings/core/src/method_handler/client.rs @@ -210,6 +210,8 @@ pub(crate) async fn call_client_method_internal(client: &Client, method: ClientM params.rent_structure().byte_factor_data(), ), token_supply: params.token_supply().to_string(), + genesis_unix_timestamp: params.genesis_unix_timestamp(), + slot_duration_in_seconds: params.slot_duration_in_seconds(), }; Response::ProtocolParameters(protocol_response) } diff --git a/sdk/examples/wallet/offline_signing/2_sign_transaction.rs b/sdk/examples/wallet/offline_signing/2_sign_transaction.rs index 8c598c615b..b1a67e7fc1 100644 --- a/sdk/examples/wallet/offline_signing/2_sign_transaction.rs +++ b/sdk/examples/wallet/offline_signing/2_sign_transaction.rs @@ -56,6 +56,8 @@ async fn main() -> Result<()> { .with_byte_factor_key(1) .with_byte_factor_data(10), 1813620509061365, + 1582328545, + 10, ) .unwrap(); diff --git a/sdk/src/client/builder.rs b/sdk/src/client/builder.rs index 51ee7b0bf0..fc6d5995d6 100644 --- a/sdk/src/client/builder.rs +++ b/sdk/src/client/builder.rs @@ -75,6 +75,8 @@ impl From for NetworkInfoDto { info.protocol_parameters.rent_structure().byte_factor_data(), ), token_supply: info.protocol_parameters.token_supply().to_string(), + genesis_unix_timestamp: info.protocol_parameters.genesis_unix_timestamp(), + slot_duration_in_seconds: info.protocol_parameters.slot_duration_in_seconds(), }, local_pow: info.local_pow, fallback_to_local_pow: info.fallback_to_local_pow, diff --git a/sdk/src/client/node_manager/syncing.rs b/sdk/src/client/node_manager/syncing.rs index e6b453d342..6e2f7c7dcd 100644 --- a/sdk/src/client/node_manager/syncing.rs +++ b/sdk/src/client/node_manager/syncing.rs @@ -104,7 +104,8 @@ impl ClientInner { if let Some((info, _node_url)) = nodes.first() { let mut network_info = self.network_info.write().await; - network_info.latest_milestone_timestamp = info.status.latest_milestone.timestamp; + // TODO change to one of the new timestamps, which ones ? + // network_info.latest_milestone_timestamp = info.status.latest_milestone.timestamp; network_info.protocol_parameters = ProtocolParameters::try_from(info.protocol.clone())?; } diff --git a/sdk/src/types/api/core/response.rs b/sdk/src/types/api/core/response.rs index 995d3cd7a5..76c6de5586 100644 --- a/sdk/src/types/api/core/response.rs +++ b/sdk/src/types/api/core/response.rs @@ -9,7 +9,8 @@ use crate::types::block::{ OutputWithMetadata, }, protocol::dto::ProtocolParametersDto, - BlockDto, + slot::SlotIndex, + BlockDto, BlockId, IssuerId, }; /// Response of GET /api/core/v3/info. @@ -23,12 +24,12 @@ use crate::types::block::{ pub struct InfoResponse { pub name: String, pub version: String, + pub issuer_id: IssuerId, pub status: StatusResponse, + pub metrics: MetricsResponse, pub supported_protocol_versions: Vec, pub protocol: ProtocolParametersDto, - pub pending_protocol_parameters: Vec, pub base_token: BaseTokenResponse, - pub metrics: MetricsResponse, pub features: Vec, } @@ -42,57 +43,33 @@ pub struct InfoResponse { )] pub struct StatusResponse { pub is_healthy: bool, - pub latest_milestone: LatestMilestoneResponse, - pub confirmed_milestone: ConfirmedMilestoneResponse, - pub pruning_index: u32, -} - -/// Returned in [`StatusResponse`]. -/// Information about the latest milestone. -#[derive(Clone, Debug, Eq, PartialEq)] -#[cfg_attr( - feature = "serde", - derive(serde::Serialize, serde::Deserialize), - serde(rename_all = "camelCase") -)] -pub struct LatestMilestoneResponse { - pub index: u32, - #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))] - pub timestamp: Option, - #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))] - pub milestone_id: Option, -} - -/// Returned in [`StatusResponse`]. -/// Information about the confirmed milestone. -#[derive(Clone, Debug, Eq, PartialEq)] -#[cfg_attr( - feature = "serde", - derive(serde::Serialize, serde::Deserialize), - serde(rename_all = "camelCase") -)] -pub struct ConfirmedMilestoneResponse { - pub index: u32, - #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))] - pub timestamp: Option, - #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))] - pub milestone_id: Option, + pub last_accepted_block_id: BlockId, + pub last_confirmed_block_id: BlockId, + pub finalized_slot: SlotIndex, + #[cfg_attr(feature = "serde", serde(rename = "ATT"))] + pub att: u64, + #[cfg_attr(feature = "serde", serde(rename = "RATT"))] + pub ratt: u64, + #[cfg_attr(feature = "serde", serde(rename = "CTT"))] + pub ctt: u64, + #[cfg_attr(feature = "serde", serde(rename = "RCTT"))] + pub rctt: u64, + pub latest_committed_slot: SlotIndex, + pub pruning_slot: SlotIndex, } /// Returned in [`InfoResponse`]. -/// Pending protocol parameters. -#[derive(Clone, Debug, Eq, PartialEq)] +/// Metric information about the node. +#[derive(Clone, Debug, PartialEq)] #[cfg_attr( feature = "serde", derive(serde::Serialize, serde::Deserialize), serde(rename_all = "camelCase") )] -pub struct PendingProtocolParameter { - #[cfg_attr(feature = "serde", serde(rename = "type"))] - pub kind: u8, - pub target_milestone_index: u32, - pub protocol_version: u8, - pub params: String, +pub struct MetricsResponse { + pub blocks_per_second: f64, + pub confirmed_blocks_per_second: f64, + pub confirmed_rate: f64, } /// Returned in [`InfoResponse`]. @@ -109,24 +86,10 @@ pub struct BaseTokenResponse { pub unit: String, #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))] pub subunit: Option, - pub decimals: u8, + pub decimals: u32, pub use_metric_prefix: bool, } -/// Returned in [`InfoResponse`]. -/// Metric information about the node. -#[derive(Clone, Debug, PartialEq)] -#[cfg_attr( - feature = "serde", - derive(serde::Serialize, serde::Deserialize), - serde(rename_all = "camelCase") -)] -pub struct MetricsResponse { - pub blocks_per_second: f64, - pub referenced_blocks_per_second: f64, - pub referenced_rate: f64, -} - /// Response of GET /api/core/v3/tips. /// Returns non-lazy tips. #[derive(Clone, Debug, Eq, PartialEq)] @@ -326,18 +289,6 @@ pub struct PeerResponse { pub gossip: Option, } -/// Response of GET /api/plugins/debug/whiteflag. -/// Returns the computed merkle tree hash for the given white flag traversal. -#[derive(Clone, Debug, Eq, PartialEq)] -#[cfg_attr( - feature = "serde", - derive(serde::Serialize, serde::Deserialize), - serde(rename_all = "camelCase") -)] -pub struct WhiteFlagResponse { - pub merkle_tree_hash: String, -} - /// Response of GET /api/routes. /// Returns the available API route groups of the node. #[derive(Clone, Debug, Eq, PartialEq)] diff --git a/sdk/src/types/block/issuer_id.rs b/sdk/src/types/block/issuer_id.rs new file mode 100644 index 0000000000..c715eb3b96 --- /dev/null +++ b/sdk/src/types/block/issuer_id.rs @@ -0,0 +1,11 @@ +// Copyright 2020-2021 IOTA Stiftung +// SPDX-License-Identifier: Apache-2.0 + +impl_id!( + pub IssuerId, + 32, + "Identifier of a block issuer." +); + +#[cfg(feature = "serde")] +string_serde_impl!(IssuerId); diff --git a/sdk/src/types/block/mod.rs b/sdk/src/types/block/mod.rs index 8489480978..487655c827 100644 --- a/sdk/src/types/block/mod.rs +++ b/sdk/src/types/block/mod.rs @@ -8,6 +8,7 @@ mod r#macro; mod block_id; mod convert; mod error; +mod issuer_id; /// A module that provides types and syntactic validations of addresses. pub mod address; @@ -47,6 +48,7 @@ pub use self::{ block_id::BlockId, convert::ConvertTo, error::Error, + issuer_id::IssuerId, }; pub(crate) const PROTOCOL_VERSION: u8 = 2; diff --git a/sdk/src/types/block/protocol.rs b/sdk/src/types/block/protocol.rs index 7ed1e123c8..b8945bd740 100644 --- a/sdk/src/types/block/protocol.rs +++ b/sdk/src/types/block/protocol.rs @@ -36,6 +36,12 @@ pub struct ProtocolParameters { // TokenSupply defines the current token supply on the network. #[cfg_attr(feature = "serde", serde(alias = "tokenSupply"))] token_supply: u64, + // Genesis timestamp at which the slots start to count. + #[cfg_attr(feature = "serde", serde(alias = "genesisUnixTimestamp"))] + genesis_unix_timestamp: u32, + // Duration of each slot in seconds. + #[cfg_attr(feature = "serde", serde(alias = "slotDurationInSeconds"))] + slot_duration_in_seconds: u8, } // This implementation is required to make [`ProtocolParameters`] a [`Packable`] visitor. @@ -50,12 +56,14 @@ impl Default for ProtocolParameters { // PANIC: These values are known to be correct. Self::new( PROTOCOL_VERSION, - String::from("shimmer"), + String::from("iota-core-testnet"), "smr", 1500, 15, RentStructure::default(), 1_813_620_509_061_365, + 1582328545, + 10, ) .unwrap() } @@ -63,6 +71,7 @@ impl Default for ProtocolParameters { impl ProtocolParameters { /// Creates a new [`ProtocolParameters`]. + #[allow(clippy::too_many_arguments)] pub fn new( protocol_version: u8, network_name: String, @@ -71,6 +80,8 @@ impl ProtocolParameters { below_max_depth: u8, rent_structure: RentStructure, token_supply: u64, + genesis_unix_timestamp: u32, + slot_duration_in_seconds: u8, ) -> Result { Ok(Self { protocol_version, @@ -80,6 +91,8 @@ impl ProtocolParameters { below_max_depth, rent_structure, token_supply, + genesis_unix_timestamp, + slot_duration_in_seconds, }) } @@ -122,6 +135,14 @@ impl ProtocolParameters { pub fn token_supply(&self) -> u64 { self.token_supply } + + pub fn genesis_unix_timestamp(&self) -> u32 { + self.genesis_unix_timestamp + } + + pub fn slot_duration_in_seconds(&self) -> u8 { + self.slot_duration_in_seconds + } } /// Returns a [`ProtocolParameters`] for testing purposes. @@ -136,6 +157,8 @@ pub fn protocol_parameters() -> ProtocolParameters { 15, crate::types::block::output::RentStructure::new(500, 10, 1), 1_813_620_509_061_365, + 1582328545, + 10, ) .unwrap() } @@ -161,6 +184,8 @@ pub mod dto { pub below_max_depth: u8, pub rent_structure: RentStructure, pub token_supply: String, + pub genesis_unix_timestamp: u32, + pub slot_duration_in_seconds: u8, } impl TryFrom for ProtocolParameters { @@ -178,6 +203,8 @@ pub mod dto { .token_supply .parse() .map_err(|_| Error::InvalidField("token_supply"))?, + value.genesis_unix_timestamp, + value.slot_duration_in_seconds, ) } } diff --git a/sdk/src/wallet/account/mod.rs b/sdk/src/wallet/account/mod.rs index 3557e0fb58..ecd10d2687 100644 --- a/sdk/src/wallet/account/mod.rs +++ b/sdk/src/wallet/account/mod.rs @@ -490,6 +490,8 @@ fn serialize() { 15, crate::types::block::output::RentStructure::new(500, 10, 1), 1_813_620_509_061_365, + 1582328545, + 10, ) .unwrap(); diff --git a/sdk/src/wallet/account/operations/participation/mod.rs b/sdk/src/wallet/account/operations/participation/mod.rs index 1027ea5a03..0e4ac8f9b9 100644 --- a/sdk/src/wallet/account/operations/participation/mod.rs +++ b/sdk/src/wallet/account/operations/participation/mod.rs @@ -273,7 +273,9 @@ where participations: &mut Participations, ) -> crate::wallet::Result<()> { log::debug!("[remove_ended_participation_events]"); - let latest_milestone_index = self.client().get_info().await?.node_info.status.latest_milestone.index; + // TODO change to one of the new timestamps, which ones ? + let latest_milestone_index = 0; + // let latest_milestone_index = self.client().get_info().await?.node_info.status.latest_milestone.index; let account_index = self.details().await.index; let events = self diff --git a/sdk/tests/client/client_builder.rs b/sdk/tests/client/client_builder.rs index 5288663f33..9cdfcebd37 100644 --- a/sdk/tests/client/client_builder.rs +++ b/sdk/tests/client/client_builder.rs @@ -51,7 +51,9 @@ async fn client_builder() { "vByteFactorKey":10, "vByteFactorData":1 }, - "tokenSupply":1813620509061365 + "tokenSupply":1813620509061365, + "genesisUnixTimestamp":1582328545, + "slotDurationInSeconds":10 }, "localPow":true, "fallbackToLocalPow":true, @@ -105,7 +107,9 @@ async fn client_builder() { "vByteFactorKey":10, "vByteFactorData":1 }, - "tokenSupply":1813620509061365 + "tokenSupply":1813620509061365, + "genesisUnixTimestamp":1582328545, + "slotDurationInSeconds":10 }, "localPow":true, "fallbackToLocalPow":true, diff --git a/sdk/tests/wallet/fixtures/check_existing_1_db_test/000071.sst b/sdk/tests/wallet/fixtures/check_existing_1_db_test/000071.sst deleted file mode 100644 index 69ed084cb8b926c71a6f34c11d10816c644de455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7065 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 H|MGtUb3Ly9 diff --git a/sdk/tests/wallet/fixtures/check_existing_1_db_test/000074.sst b/sdk/tests/wallet/fixtures/check_existing_1_db_test/000074.sst deleted file mode 100644 index e0ac5f91428fa891e6a00966c78a9866b2316eb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6567 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 diff --git a/sdk/tests/wallet/fixtures/check_existing_2_db_test/000086.sst b/sdk/tests/wallet/fixtures/check_existing_2_db_test/000086.sst deleted file mode 100644 index 514522892dc96d4ac618d52ab149be53b67b3fda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6732 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 tknQ{|gGDZgKzs diff --git a/sdk/tests/wallet/fixtures/check_existing_2_db_test/000089.sst b/sdk/tests/wallet/fixtures/check_existing_2_db_test/000089.sst deleted file mode 100644 index 1930fcddd49eba75523bff49bd17f82bf24be2a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6048 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 TioH#w35WGl25@K?+o4fo{}brT diff --git a/sdk/tests/wallet/fixtures/check_existing_db_test/000097.sst b/sdk/tests/wallet/fixtures/check_existing_db_test/000097.sst deleted file mode 100644 index dca88d312dff3f6061036ffde8163be0d1806d77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5163 zcmai23ydArc|J4uz24pNzHE7Iv+J?5hA?|QXWp}}V{C_q!PwwO40Sd)b7#)%j(zW) z>zTRx>?$$|Y1#%_RMJY2U`U##RcQn$lmw|&tE5e&&;WueP>HG}Z4@bO#o7iOLbd(Q zwK1&}sn?qI%$fh3^Pm6!zW*`byXQh585068^Xgv8CR2ZwHND9>mZVYK5{N)9t)pb? z<&#mId6V;AqrtLC&-dd_E1OhhazR^`qgKEcSSyCE<*nHadYe$J`LBpJ9s!A0Y4aN3Dz{Ew3R@gX{9KvlM><)%lT8TI1MwWW zwEtkhk14AQ8V!A&`flCwLR$?y-BPX4R9Rqzy6UPnWg&G8SEH6)H&l!I_0ThXL-PXF zbnDDi@sp=lrtc+3u;TJbVs4*WK0%Hg#L-R=^I~3+n=JFVC-GXYH)8)xja=MYx0w~V zmS!<5uIoXd`ySNrLMx|LRWtQQ2*oW#NUg}0@+Xl6K7&c41R_gf~5OIP? zpB5%Zpi+3OwKHn!%4-K?LM z+#G18N!?9k&4z+pO-prW-n;YP&9@nrnN8rPc#I4C|KWQ(b48>4c%m=+&vaY(a@?{}+Iaj(_kiJFspM&Nsn~#$pif>DfVd|!8 z+thSS+psO&(iAxX^*EUlTfEz!#qHM$!K{}AthJ}GR>0{vl&Iz?D*hS9^op{B^u*Ls zsHRVlzP%XUPRzfWUct%vxmob>f;65t?|@}Gj~Aqu^K1B>Ed54Vm@U40P+hS6fSI;s z`;KqehORQ-_U%xwyGGr$U0@T?)NC!(9Ol*o$5TTbocflkdemT6oja@TEjD5gCSR60 zsarn#VzG0S&2$=Ga#Lw|`PSmDT69~nfH3i`o?^LFc(8QyiEJUhgGj$$Fr^1eg7`Ud zuI9(hW|TG8RaW~>X{xDE!%#GXD%5lpgc7RTxV4nc1JOOoz30d5^j^gTyX-{vh2!Af*|FvAG2qzGyytGFsUSAp1 zc2=bAmCZuXC;Wk+0UrB^B$Azf1VjSK8LPe8C$1;u;dS|!h_ob-b0LRbvRK>Ezl|j$ z{nGa;Lu=$17d;TSvLr_2OkSycazy#E@R?g<1lU%5j!a931VK99Lkiy@+m5j(E5*h- z=|a!##W7*{&azlsB6&%iri!NMKOoZMIq`h6*+Hmou$r?@D7*mrr)lTk$jScaN$Fj( z_i&g!l_R;=dZnjwoApg<>D6UuY@_83OYFnoJdj6TdoFIKv z*dR?2Qdn7kqRaHRHcFP1`_i#!2EhUB`?gSctl0bWjYG?)x4eC(hRguwaDb?atty(T z04>zPovr~C4o3JrkfAz2hprf!VgMb$i3$NtQyh*sL$M&HxwtT01NcmbL(Mk1w8jUp zfktrwgdkn|Bv~B=Wq~w)L7Gx*Vp|Zx{~Fc@7O@SMbJaf~58=t+bT+@TUeio^BUvRj z6fofszBBZgU%y(=bRa?p%2grNfBkAv!+-_?Knd!Y3IeP~=?i4gJ%x1)1&=rv z#Y8N9hOCx29dszJLJw%A*ao(?EV4GN8Bi4zp`3xBp976myoC@*2t#Po{~`!CtSEan zukN8?KFj|a zY1Hy!`Z$k?gRid6X9aWN2kK1Ifs?-@~rn+np#4Kr(&!wgCh^O=W8 zL<8N_b+umCO&b|gMRNBI#$3G~YAj&X4>he$RZrLa5ZRrnwx?2L@K#a4YQobNyr3&U zf@!`{$h|i51klHk1uy(Ozbe3kE}j4e*c-9%-ogMqu;INij00W>X`q4T6K>FR6bQAQd-dpw+lRE@e2dMF9NcIzm9@K13TaxNQjsXj9T^xk+K}g-?lyf3$brI*|oBAxpM0h zoLNApW|-fv4A`%40=cvwR?cz6<6!1LRw%WMmp2K1g*u9JzM^Y}o+rYaPN}U@|bCR9`<7^&$cJ`0n4NhuibMz?BJMLDJ za7CzXKSjlF8~$JqUbvE?jq^CBmsI|Dw%U51G%k3m;ddcG9 zI6$Mq(}yxdoV()r4dl{T3xmAMT9!Kr8VGqd%i2@Bb|EKujoCQOrl_G=<}QRRuanIl zA{Q$`l=6Ix0;t<#@V_qYhog`vL-rjO-vE?7+eaal~ zQ>UKEE zz8RboD(@AWm0os^G!{k!CnI9IDLqO9^^WM1j3${=|oMAH!`SJF4# zNIF-V8(Jl+<8c_K43fITE!FJ>YH6q4ZXnZxZK$U|3~~_IBL1ob7hmZD6&bE-)II;q z@%Ydvxh0F*>AwpXdZAVW^;(+U`9Uvpt#O$W{sAs;M|>deWW(YO)EpKcL&c8#gN1J( zqw2@RpWy5#d#OCL3TRKVex-C;2VpzGe9sD$&-=JK`Vm!aYsVjeJ%#V82@gp!Iy(^4dUE zcGpX!@{wKXG4dASn`6yu>~l+h@g5oZb-bhGnN6hs>V8*A_}r#n7WvdsTq3{ut#I3a zlO6fwin7&ims;gt9)fDOtgUuGCRDk#xcKOLp`EZWTBt$~pca-^Vl@iLhJ1-*IbfmJX=FX+(PkU?hxHq5jx~aMbw40CAEhYKKX}ty z%JGjAh!ux^(-$eK+eqK9(DJ47wM6o zbpf67k)<>Xx&(j}u)u-d9cQg>==i^rI$_9?4`uN2qSl=s@Flwouw)P2Jzg2wk)YRv zNvb$Wgf20QvPD%zk8cOwBtvO6Y1pPYS=V)K(pNQPa6|PS#~SD>@>q6lPCIT-#_7QN zVSJO}C%^XMsCxA9t@`Z;@43x6cyQk>+Tp`@9PBR@Ad!IwfBn{fezjPxh@6$x6tU^q z@ya@Z;R_MG3FoAwJXqlPsRDw$+P^aG`Bh9?R~F#T?kv*NFDzV{QEjl+Og2j@eL{>7 znpLkxCsG~}t^kAkJW8uDO2W4g`tt(cd2jy)0g<%B_{)Gbpb&_Hpc@F~egUy-hE-#P zWv>;aWGGhx1bE)a0Pg^t0SaW60ph)o5U`x zn^FjtKp+NLyNKkLA(bH^iDr=58XTdliY@Bcy*yI73TL(ePx9ba7I diff --git a/sdk/tests/wallet/fixtures/check_existing_db_test/000100.sst b/sdk/tests/wallet/fixtures/check_existing_db_test/000100.sst deleted file mode 100644 index d9b0d210db54f1b563481f934f6d2ab4ba4113f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5584 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

%qu+NGY|s3vXs6}37z0jQu#r)bqJ7q^1lP5UvF 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 diff --git a/sdk/tests/wallet/fixtures/check_existing_db_test/CURRENT b/sdk/tests/wallet/fixtures/check_existing_db_test/CURRENT deleted file mode 100644 index aecd689375..0000000000 --- a/sdk/tests/wallet/fixtures/check_existing_db_test/CURRENT +++ /dev/null @@ -1 +0,0 @@ -MANIFEST-000107 diff --git a/sdk/tests/wallet/fixtures/check_existing_db_test/IDENTITY b/sdk/tests/wallet/fixtures/check_existing_db_test/IDENTITY deleted file mode 100644 index 445c097940..0000000000 --- a/sdk/tests/wallet/fixtures/check_existing_db_test/IDENTITY +++ /dev/null @@ -1 +0,0 @@ -0033d7da-ea2f-4755-b332-c02d9240c886 \ No newline at end of file diff --git a/sdk/tests/wallet/fixtures/check_existing_db_test/MANIFEST-000107 b/sdk/tests/wallet/fixtures/check_existing_db_test/MANIFEST-000107 deleted file mode 100644 index 8192bdce2e18d8a9f028c37f7c56ff6fa0e735f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 407 zcmWIhx#Ncn10$nUPHI_dPD+xVQ)NkNd1i5{bAE0?Vo_pAe$n6Af;smX7@6X@;#l<4 z8B#82%Vy@6BXxMz6=&w>F+%mB+Xoe9U|?n4`vGJh>#mPL3dv3$0imlo z;-@v#_kOIhlGfbBY|U7IU#NnOfsvDeIh#d4;jrGc9H5WWz+B^WhRkcmIQ(o3u?^h~ vh7e%`V^-Eln11FFcqt`T^rQHKg0$4tgR0K@*BPzspEPlR?a$##V=)E*UnzN4 diff --git a/sdk/tests/wallet/fixtures/check_existing_db_test/strongholdfile b/sdk/tests/wallet/fixtures/check_existing_db_test/strongholdfile deleted file mode 100644 index 2f60141860130efd29b8eceb332e5de5e2539be1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 477 zcmV<30V4iTK~hvn0swXwt0C2X?+5Y*2$)}i)1updNKpdlhW^O*b~`w1`R0D%7JR!>L&9Pz&d=UZohZe%~amU^F; zOyijynYvPQ%ZC{+uZ4`;E_ z-zep!(Cqe<()Ya9A7fLPL^zxD!(!jSXT$8L)$mdU+ z^v@V1$I%N*+yQep*QT2Kn0Z3X~*G(SH;dTEfslcmt42lg~4(k(MBa)@5S TV#m0eP3Nh{CJ&jP@&Mkx83F4) diff --git a/sdk/tests/wallet/mod.rs b/sdk/tests/wallet/mod.rs index 64cf36b942..913326c930 100644 --- a/sdk/tests/wallet/mod.rs +++ b/sdk/tests/wallet/mod.rs @@ -24,6 +24,3 @@ mod syncing; mod transactions; #[allow(clippy::module_inception)] mod wallet; -#[cfg(not(target_os = "windows"))] -#[cfg(feature = "rocksdb")] -mod wallet_storage; diff --git a/sdk/tests/wallet/wallet_storage.rs b/sdk/tests/wallet/wallet_storage.rs deleted file mode 100644 index 970890bd1c..0000000000 --- a/sdk/tests/wallet/wallet_storage.rs +++ /dev/null @@ -1,225 +0,0 @@ -// Copyright 2023 IOTA Stiftung -// SPDX-License-Identifier: Apache-2.0 - -use std::{fs, io, path::Path}; - -#[cfg(feature = "stronghold")] -use iota_sdk::client::stronghold::StrongholdAdapter; -use iota_sdk::{wallet::Result, Wallet}; - -use crate::wallet::common::{setup, tear_down}; - -// Db created with wallet.rs commit 8dd389ddeed0d95bb493c38f376b41a6a9127148 -#[cfg(feature = "stronghold")] -#[tokio::test] -async fn check_existing_db() -> Result<()> { - iota_stronghold::engine::snapshot::try_set_encrypt_work_factor(0).unwrap(); - - let storage_path = "check_existing_db_test"; - setup(storage_path)?; - // Copy db so the original doesn't get modified - copy_folder("./tests/wallet/fixtures/check_existing_db_test", storage_path).unwrap(); - - let wallet = Wallet::builder().with_storage_path(storage_path).finish().await?; - - // Migrate old snapshots. - let _ = StrongholdAdapter::migrate_snapshot_v2_to_v3( - "check_existing_db_test/strongholdfile", - "STRONGHOLD_PASSWORD".to_owned().into(), - "wallet.rs", - 100, - None, - None, - ); - - // Test if setting stronghold password still works - wallet.set_stronghold_password("STRONGHOLD_PASSWORD".to_owned()).await?; - - assert_eq!(wallet.get_accounts().await?.len(), 1); - - let client_options = wallet.client_options().await; - assert_eq!(client_options.node_manager_builder.nodes.len(), 1); - - let account = wallet.get_account("Alice").await?; - - let addresses = account.addresses().await?; - // One public and one internal address - assert_eq!(addresses.len(), 2); - // Wallet was created with mnemonic: "rapid help true please need desk oppose seminar busy large tree speed pepper - // adult hair duty mad chief boil pass coin biology survey fish" - assert_eq!( - addresses[0].address().to_string(), - "rms1qzsw70tha0y4n78s0x0p99ayvz7nl7mzcye7yk8l3s8m6zrfg7slud2ve9f" - ); - assert!(!addresses[0].internal()); - assert_eq!( - addresses[1].address().to_string(), - "rms1qzjwe5plkaywncpv32x5dqqav8fe9zgyzl78cmjlnvzlcghnx489wuevhzf" - ); - assert!(addresses[1].internal()); - - assert_eq!( - account.generate_ed25519_addresses(1, None).await?[0] - .address() - .to_string(), - "rms1qzjclfjq0azmq2yzkkk7ugfhdf55nzvs57r8twk2h36wuqv950dxv00tzfx" - ); - - let transactions = account.transactions().await; - assert_eq!(transactions.len(), 2); - - let pending_transactions = account.pending_transactions().await; - assert_eq!(pending_transactions.len(), 1); - - let incoming_transactions = account.incoming_transactions().await; - assert_eq!(incoming_transactions.len(), 1); - - let unspent_outputs = account.unspent_outputs(None).await?; - assert_eq!(unspent_outputs.len(), 9); - - // balance depends on the network - if &account.client().get_network_name().await? == "private_tangle1" { - let balance = account.balance().await?; - assert_eq!(balance.base_coin().total(), 100000000000); - assert_eq!(balance.base_coin().available(), 99996954100); - } - - tear_down(storage_path) -} - -// Db created with wallet.rs commit 2dd9974c1bc05c2b0b7d6f0ee100deb2da60d071 -#[cfg(feature = "ledger_nano")] -#[tokio::test] -async fn check_existing_db_1() -> Result<()> { - let storage_path = "check_existing_1_db_test"; - setup(storage_path)?; - // Copy db so the original doesn't get modified - copy_folder("./tests/wallet/fixtures/check_existing_1_db_test", storage_path).unwrap(); - - let wallet = Wallet::builder().with_storage_path(storage_path).finish().await?; - - assert!(matches!( - *wallet.get_secret_manager().read().await, - iota_sdk::client::secret::SecretManager::LedgerNano(_) - )); - - assert_eq!(wallet.get_accounts().await?.len(), 1); - - let client_options = wallet.client_options().await; - assert_eq!(client_options.node_manager_builder.nodes.len(), 1); - - let account = wallet.get_account("Alice").await?; - - let addresses = account.addresses().await?; - // One public address - assert_eq!(addresses.len(), 1); - // Wallet was created with mnemonic: "glory promote mansion idle axis finger extra february uncover one trip - // resource lawn turtle enact monster seven myth punch hobby comfort wild raise skin" - assert_eq!( - addresses[0].address().to_string(), - "tst1qqqxdxwaq8ewc7xaph7x9mjpd9fysr0qsj4fpc6kw20wxswmjt7t5r4eupa" - ); - assert!(!addresses[0].internal()); - - let transactions = account.transactions().await; - assert_eq!(transactions.len(), 5); - - let pending_transactions = account.pending_transactions().await; - assert_eq!(pending_transactions.len(), 0); - - let incoming_transactions = account.incoming_transactions().await; - assert_eq!(incoming_transactions.len(), 0); - - let unspent_outputs = account.unspent_outputs(None).await?; - assert_eq!(unspent_outputs.len(), 6); - - tear_down(storage_path) -} - -// Db created with wallet.rs commit b5132eb545cd0a2043640677bca335efee4029b8 -#[cfg(feature = "stronghold")] -#[tokio::test] -async fn check_existing_db_2() -> Result<()> { - iota_stronghold::engine::snapshot::try_set_encrypt_work_factor(0).unwrap(); - - let storage_path = "check_existing_2_db_test"; - setup(storage_path)?; - // Copy db so the original doesn't get modified - copy_folder("./tests/wallet/fixtures/check_existing_2_db_test", storage_path).unwrap(); - - let wallet = Wallet::builder().with_storage_path(storage_path).finish().await?; - - // Migrate old snapshots. - let _ = StrongholdAdapter::migrate_snapshot_v2_to_v3( - "check_existing_2_db_test/walletstronghold", - "STRONGHOLD_PASSWORD".to_owned().into(), - "wallet.rs", - 100, - None, - None, - ); - - // Test if setting stronghold password still works - wallet.set_stronghold_password("STRONGHOLD_PASSWORD".to_owned()).await?; - - assert_eq!(wallet.get_accounts().await?.len(), 2); - - let client_options = wallet.client_options().await; - assert_eq!(client_options.node_manager_builder.nodes.len(), 1); - - let account = wallet.get_account("Alice").await?; - - let addresses = account.addresses().await?; - // One public address - assert_eq!(addresses.len(), 1); - // Wallet was created with mnemonic: "memory waste latin swing spy must tail leaf eyebrow meat any river resist sort - // paper bacon aware edit tragic shop mirror ramp foster blue" - assert_eq!( - addresses[0].address().to_string(), - "tst1qqpaynvgh3d3q30zjzjz27g95pzsevw2m5pk75rq32vm7x8ap7hpy2pdy9y" - ); - assert!(!addresses[0].internal()); - - let transactions = account.transactions().await; - assert_eq!(transactions.len(), 5); - - use std::str::FromStr; - let tx = account - .get_transaction(&iota_sdk::types::block::payload::transaction::TransactionId::from_str( - "0x09bb7e0a77f944a4625428d2cdc7a637f5bb5d9a877c9c0b116c909ab4a6795d", - )?) - .await - .expect("missing tx"); - - let iota_sdk::types::block::payload::transaction::TransactionEssence::Regular(essence) = tx.payload.essence(); - if let iota_sdk::types::block::payload::Payload::TaggedData(tagged_data_payload) = essence.payload().unwrap() { - assert_eq!(tagged_data_payload.tag(), "Stardust".as_bytes()); - assert_eq!(tagged_data_payload.data(), "Stardust".as_bytes()); - } else { - panic!("expected tagged data payload") - } - assert_eq!( - tx.inclusion_state, - iota_sdk::wallet::account::types::InclusionState::Pending - ); - - let pending_transactions = account.pending_transactions().await; - assert_eq!(pending_transactions.len(), 1); - - let incoming_transactions = account.incoming_transactions().await; - assert_eq!(incoming_transactions.len(), 0); - - let unspent_outputs = account.unspent_outputs(None).await?; - assert_eq!(unspent_outputs.len(), 4); - - tear_down(storage_path) -} - -fn copy_folder(src: impl AsRef, dest: impl AsRef) -> io::Result<()> { - fs::create_dir_all(&dest)?; - for entry in fs::read_dir(src)? { - let entry = entry?; - fs::copy(entry.path(), dest.as_ref().join(entry.file_name()))?; - } - Ok(()) -}