From fb2e49fea839487af5f645dde11514bf3da4bf3b Mon Sep 17 00:00:00 2001 From: olaszakos Date: Tue, 3 Sep 2024 12:42:30 +0200 Subject: [PATCH 01/18] feat(station)!: add asset repository (#335) In this PR: - add Asset repository - add Asset model validation - add validation - remove static asset list - add ICP asset at init_canister step --------- Co-authored-by: Kepler Vital --- .../wizard/AccountConfigurationSettings.vue | 2 +- apps/wallet/src/generated/station/station.did | 2 +- .../src/generated/station/station.did.d.ts | 2 +- .../src/generated/station/station.did.js | 2 +- core/station/api/spec.did | 2 +- core/station/api/src/capabilities.rs | 2 +- .../impl/src/controllers/capabilities.rs | 12 +- core/station/impl/src/core/assets.rs | 16 -- core/station/impl/src/core/memory.rs | 1 + core/station/impl/src/core/metrics.rs | 42 +++- core/station/impl/src/core/mod.rs | 3 - core/station/impl/src/errors/asset.rs | 72 +++++++ core/station/impl/src/errors/mod.rs | 3 + core/station/impl/src/mappers/asset.rs | 2 +- core/station/impl/src/mappers/metadata.rs | 10 +- core/station/impl/src/models/asset.rs | 150 ++++++++++++- .../impl/src/models/indexes/unique_index.rs | 25 ++- core/station/impl/src/repositories/asset.rs | 198 ++++++++++++++++++ core/station/impl/src/repositories/mod.rs | 3 + .../impl/src/repositories/user_group.rs | 2 +- core/station/impl/src/services/system.rs | 27 ++- 21 files changed, 538 insertions(+), 40 deletions(-) delete mode 100644 core/station/impl/src/core/assets.rs create mode 100644 core/station/impl/src/errors/asset.rs create mode 100644 core/station/impl/src/repositories/asset.rs diff --git a/apps/wallet/src/components/accounts/wizard/AccountConfigurationSettings.vue b/apps/wallet/src/components/accounts/wizard/AccountConfigurationSettings.vue index 77c1e95e1..f62480980 100644 --- a/apps/wallet/src/components/accounts/wizard/AccountConfigurationSettings.vue +++ b/apps/wallet/src/components/accounts/wizard/AccountConfigurationSettings.vue @@ -92,7 +92,7 @@ const onSelectedAsset = (asset?: Asset): void => { if (asset) { model.value.symbol = asset.symbol; model.value.blockchain = asset.blockchain; - model.value.standard = asset.standard; + model.value.standard = asset.standards[0]; // todo: handle multiple standards } else { model.value.symbol = undefined; model.value.blockchain = undefined; diff --git a/apps/wallet/src/generated/station/station.did b/apps/wallet/src/generated/station/station.did index 8ff92f846..2e9d5c1bd 100644 --- a/apps/wallet/src/generated/station/station.did +++ b/apps/wallet/src/generated/station/station.did @@ -1642,7 +1642,7 @@ type Asset = record { blockchain : text; // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string // with spaces replaced with underscores. - standard : text; + standards : vec text; // The asset symbol, e.g. "ICP" or "BTC". symbol : AssetSymbol; // The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) diff --git a/apps/wallet/src/generated/station/station.did.d.ts b/apps/wallet/src/generated/station/station.did.d.ts index 2688a6241..0f29e7107 100644 --- a/apps/wallet/src/generated/station/station.did.d.ts +++ b/apps/wallet/src/generated/station/station.did.d.ts @@ -109,10 +109,10 @@ export interface Allow { 'users' : Array, } export interface Asset { + 'standards' : Array, 'metadata' : Array, 'name' : string, 'blockchain' : string, - 'standard' : string, 'symbol' : AssetSymbol, } export interface AssetMetadata { 'key' : string, 'value' : string } diff --git a/apps/wallet/src/generated/station/station.did.js b/apps/wallet/src/generated/station/station.did.js index 79c2da5b0..5632e07eb 100644 --- a/apps/wallet/src/generated/station/station.did.js +++ b/apps/wallet/src/generated/station/station.did.js @@ -70,10 +70,10 @@ export const idlFactory = ({ IDL }) => { const AssetMetadata = IDL.Record({ 'key' : IDL.Text, 'value' : IDL.Text }); const AssetSymbol = IDL.Text; const Asset = IDL.Record({ + 'standards' : IDL.Vec(IDL.Text), 'metadata' : IDL.Vec(AssetMetadata), 'name' : IDL.Text, 'blockchain' : IDL.Text, - 'standard' : IDL.Text, 'symbol' : AssetSymbol, }); const Capabilities = IDL.Record({ diff --git a/core/station/api/spec.did b/core/station/api/spec.did index 8ff92f846..2e9d5c1bd 100644 --- a/core/station/api/spec.did +++ b/core/station/api/spec.did @@ -1642,7 +1642,7 @@ type Asset = record { blockchain : text; // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string // with spaces replaced with underscores. - standard : text; + standards : vec text; // The asset symbol, e.g. "ICP" or "BTC". symbol : AssetSymbol; // The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) diff --git a/core/station/api/src/capabilities.rs b/core/station/api/src/capabilities.rs index a3e966f78..5a06fc3cc 100644 --- a/core/station/api/src/capabilities.rs +++ b/core/station/api/src/capabilities.rs @@ -9,7 +9,7 @@ pub struct AssetDTO { pub symbol: String, // The asset standard that is supported (e.g. `erc20`, etc.), canonically // represented as a lowercase string with spaces replaced with underscores. - pub standard: String, + pub standards: Vec, /// The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) pub name: String, /// The asset metadata (e.g. `{"logo": "https://example.com/logo.png"}`), diff --git a/core/station/impl/src/controllers/capabilities.rs b/core/station/impl/src/controllers/capabilities.rs index a3cf75999..640124af5 100644 --- a/core/station/impl/src/controllers/capabilities.rs +++ b/core/station/impl/src/controllers/capabilities.rs @@ -1,15 +1,16 @@ use crate::{ core::{ middlewares::{authorize, call_context}, - read_system_info, ASSETS, + read_system_info, }, models::resource::{Resource, SystemResourceAction}, + repositories::ASSET_REPOSITORY, SYSTEM_VERSION, }; use ic_cdk_macros::query; use lazy_static::lazy_static; -use orbit_essentials::api::ApiResult; use orbit_essentials::with_middleware; +use orbit_essentials::{api::ApiResult, repository::Repository}; use station_api::{CapabilitiesDTO, CapabilitiesResponse}; #[query(name = "capabilities")] @@ -32,14 +33,17 @@ impl CapabilitiesController { #[with_middleware(guard = authorize(&call_context(), &[Resource::System(SystemResourceAction::Capabilities)]))] async fn capabilities(&self) -> ApiResult { - let assets = ASSETS.with(|asset| asset.borrow().clone()); let system = read_system_info(); Ok(CapabilitiesResponse { capabilities: CapabilitiesDTO { name: system.get_name().to_string(), version: SYSTEM_VERSION.to_string(), - supported_assets: assets.into_iter().map(|asset| asset.into()).collect(), + supported_assets: ASSET_REPOSITORY + .list() + .into_iter() + .map(|asset| asset.into()) + .collect(), }, }) } diff --git a/core/station/impl/src/core/assets.rs b/core/station/impl/src/core/assets.rs deleted file mode 100644 index 5d5f9ce30..000000000 --- a/core/station/impl/src/core/assets.rs +++ /dev/null @@ -1,16 +0,0 @@ -use crate::models::{Asset, Blockchain, BlockchainStandard, Metadata}; -use std::{cell::RefCell, collections::HashSet}; - -thread_local! { - /// The list of assets that are supported by the canister (e.g. `ICP`, `BTC`, `ETH`, etc.) - pub static ASSETS: RefCell> = - RefCell::new(vec![ - Asset { - blockchain: Blockchain::InternetComputer, - standard: BlockchainStandard::Native, - symbol: "ICP".to_string(), - name: "Internet Computer".to_string(), - metadata: Metadata::default(), - }, - ].into_iter().collect()); -} diff --git a/core/station/impl/src/core/memory.rs b/core/station/impl/src/core/memory.rs index 5c9bd06d8..2c7639ec3 100644 --- a/core/station/impl/src/core/memory.rs +++ b/core/station/impl/src/core/memory.rs @@ -17,6 +17,7 @@ pub const TRANSFER_MEMORY_ID: MemoryId = MemoryId::new(4); pub const UNIQUE_INDEX_MEMORY_ID: MemoryId = MemoryId::new(5); // new pub const TRANSFER_ACCOUNT_INDEX_MEMORY_ID: MemoryId = MemoryId::new(6); pub const REQUEST_MEMORY_ID: MemoryId = MemoryId::new(7); +pub const ASSET_MEMORY_ID: MemoryId = MemoryId::new(8); pub const NOTIFICATION_MEMORY_ID: MemoryId = MemoryId::new(11); pub const NOTIFICATION_USER_INDEX_MEMORY_ID: MemoryId = MemoryId::new(12); pub const TRANSFER_STATUS_INDEX_MEMORY_ID: MemoryId = MemoryId::new(13); diff --git a/core/station/impl/src/core/metrics.rs b/core/station/impl/src/core/metrics.rs index 4294d35c0..7259b5b03 100644 --- a/core/station/impl/src/core/metrics.rs +++ b/core/station/impl/src/core/metrics.rs @@ -1,8 +1,8 @@ use crate::{ - models::{Account, AddressBookEntry, Request, RequestPolicy, Transfer, User, UserGroup}, + models::{Account, AddressBookEntry, Asset, Request, RequestPolicy, Transfer, User, UserGroup}, repositories::{ request_policy::REQUEST_POLICY_REPOSITORY, ACCOUNT_REPOSITORY, ADDRESS_BOOK_REPOSITORY, - USER_GROUP_REPOSITORY, USER_REPOSITORY, + ASSET_REPOSITORY, USER_GROUP_REPOSITORY, USER_REPOSITORY, }, SERVICE_NAME, }; @@ -33,6 +33,13 @@ thread_local! { Rc::new(RefCell::new(MetricTotalUserGroups)), ]; + /// A collection of asset related metrics. + /// + /// This list should be updated with new asset metrics as they are added. + pub static ASSET_METRICS: Vec>>> = vec![ + Rc::new(RefCell::new(MetricTotalAssets)), + ]; + /// A collection of account related metrics. /// /// This list should be updated with new account metrics as they are added. @@ -77,6 +84,7 @@ pub fn recompute_metrics() { let users = USER_REPOSITORY.list(); let user_groups = USER_GROUP_REPOSITORY.list(); let accounts = ACCOUNT_REPOSITORY.list(); + let assets = ASSET_REPOSITORY.list(); // To avoid deserialize all the data, we can use the repository length to get the total number of entries of // simple gauge metrics. @@ -95,6 +103,12 @@ pub fn recompute_metrics() { .for_each(|metric| metric.borrow_mut().recalculate(&user_groups)) }); + ASSET_METRICS.with(|metrics| { + metrics + .iter() + .for_each(|metric| metric.borrow_mut().recalculate(&assets)) + }); + ACCOUNT_METRICS.with(|metrics| { metrics .iter() @@ -235,6 +249,30 @@ impl ApplicationMetric for MetricTotalUserGroups { self.dec(SERVICE_NAME, &labels! { "status" => "active" }); } } +/// Metric for the total number of assets. +pub struct MetricTotalAssets; + +impl ApplicationGaugeMetric for MetricTotalAssets {} + +impl ApplicationMetric for MetricTotalAssets { + fn name(&self) -> &'static str { + "total_assets" + } + + fn help(&self) -> &'static str { + "The total number of assets." + } + + fn sum(&mut self, _: &Asset, previous: Option<&Asset>) { + if previous.is_none() { + self.inc(SERVICE_NAME); + } + } + + fn sub(&mut self, _: &Asset) { + self.dec(SERVICE_NAME); + } +} /// Metric for the number of transfers that have been created. pub struct MetricTotalTranfers; diff --git a/core/station/impl/src/core/mod.rs b/core/station/impl/src/core/mod.rs index 1564b400a..8845af19a 100644 --- a/core/station/impl/src/core/mod.rs +++ b/core/station/impl/src/core/mod.rs @@ -1,8 +1,5 @@ //! Core utility features for the canister. -mod assets; -pub use assets::*; - mod constants; pub use constants::*; diff --git a/core/station/impl/src/errors/asset.rs b/core/station/impl/src/errors/asset.rs new file mode 100644 index 000000000..7a7f00aa9 --- /dev/null +++ b/core/station/impl/src/errors/asset.rs @@ -0,0 +1,72 @@ +use orbit_essentials::api::DetailableError; +use std::collections::HashMap; +use thiserror::Error; + +/// Container for asset errors. +#[derive(Error, Debug, Eq, PartialEq, Clone)] +pub enum AssetError { + /// Invalid decimals value. + #[error(r#"Decimals must be between {min} and {max}."#)] + InvalidDecimals { min: u32, max: u32 }, + /// Invalid name length. + #[error(r#"Name must be between {min_length} and {max_length}."#)] + InvalidNameLength { min_length: u16, max_length: u16 }, + /// Invalid symbol length. + #[error(r#"Symbol must be between {min_length} and {max_length}."#)] + InvalidSymbolLength { min_length: u16, max_length: u16 }, + /// The given blockchain is unknown to the system. + #[error(r#"The given blockchain is unknown to the system."#)] + UnknownBlockchain { blockchain: String }, + /// The given blockchain standard is unknown to the system. + #[error(r#"The given blockchain standard is unknown to the system."#)] + UnknownBlockchainStandard { blockchain_standard: String }, + /// The asset has failed validation. + #[error(r#"The account has failed validation."#)] + ValidationError { info: String }, +} + +impl DetailableError for AssetError { + fn details(&self) -> Option> { + let mut details = HashMap::new(); + match self { + AssetError::UnknownBlockchain { blockchain } => { + details.insert("blockchain".to_string(), blockchain.to_string()); + Some(details) + } + AssetError::UnknownBlockchainStandard { + blockchain_standard, + } => { + details.insert( + "blockchain_standard".to_string(), + blockchain_standard.to_string(), + ); + Some(details) + } + AssetError::ValidationError { info } => { + details.insert("info".to_string(), info.to_string()); + Some(details) + } + AssetError::InvalidDecimals { min, max } => { + details.insert("min".to_string(), min.to_string()); + details.insert("max".to_string(), max.to_string()); + Some(details) + } + AssetError::InvalidNameLength { + min_length, + max_length, + } => { + details.insert("min_length".to_string(), min_length.to_string()); + details.insert("max_length".to_string(), max_length.to_string()); + Some(details) + } + AssetError::InvalidSymbolLength { + min_length, + max_length, + } => { + details.insert("min_length".to_string(), min_length.to_string()); + details.insert("max_length".to_string(), max_length.to_string()); + Some(details) + } + } + } +} diff --git a/core/station/impl/src/errors/mod.rs b/core/station/impl/src/errors/mod.rs index 346359758..f12035cae 100644 --- a/core/station/impl/src/errors/mod.rs +++ b/core/station/impl/src/errors/mod.rs @@ -70,3 +70,6 @@ pub use validation::*; mod disaster_recovery; pub use disaster_recovery::*; + +mod asset; +pub use asset::*; diff --git a/core/station/impl/src/mappers/asset.rs b/core/station/impl/src/mappers/asset.rs index 0577c679a..64c17b8fe 100644 --- a/core/station/impl/src/mappers/asset.rs +++ b/core/station/impl/src/mappers/asset.rs @@ -5,7 +5,7 @@ impl From for station_api::AssetDTO { station_api::AssetDTO { blockchain: asset.blockchain.to_string(), symbol: asset.symbol.to_string(), - standard: asset.standard.to_string(), + standards: asset.standards.into_iter().map(|s| s.to_string()).collect(), name: asset.name, metadata: asset.metadata.into_vec_dto(), } diff --git a/core/station/impl/src/mappers/metadata.rs b/core/station/impl/src/mappers/metadata.rs index f804008d6..c0140e07b 100644 --- a/core/station/impl/src/mappers/metadata.rs +++ b/core/station/impl/src/mappers/metadata.rs @@ -1,5 +1,5 @@ use crate::{ - errors::{AccountError, AddressBookError, MetadataError, TransferError}, + errors::{AccountError, AddressBookError, AssetError, MetadataError, TransferError}, models::{ChangeMetadata, Metadata, MetadataItem}, }; @@ -114,6 +114,14 @@ impl From for AddressBookError { } } +impl From for AssetError { + fn from(metadata_error: MetadataError) -> Self { + match metadata_error { + MetadataError::ValidationError { info: e } => Self::ValidationError { info: e }, + } + } +} + impl From for TransferError { fn from(metadata_error: MetadataError) -> Self { match metadata_error { diff --git a/core/station/impl/src/models/asset.rs b/core/station/impl/src/models/asset.rs index 883ab4319..da5626c04 100644 --- a/core/station/impl/src/models/asset.rs +++ b/core/station/impl/src/models/asset.rs @@ -1,28 +1,55 @@ +use orbit_essentials::{ + model::{ModelKey, ModelValidator, ModelValidatorResult}, + storable, + types::UUID, +}; + use super::{Blockchain, BlockchainStandard}; -use crate::models::Metadata; -use std::hash::{Hash, Hasher}; +use crate::{errors::AssetError, models::Metadata}; +use std::{ + collections::BTreeSet, + hash::{Hash, Hasher}, +}; + +pub type AssetId = UUID; +#[storable] #[derive(Clone, Debug, PartialEq, Eq)] pub struct Asset { + pub id: AssetId, /// The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) pub blockchain: Blockchain, // The asset standard that is supported (e.g. `erc20`, `native`, etc.), canonically // represented as a lowercase string with spaces replaced with underscores. - pub standard: BlockchainStandard, + pub standards: BTreeSet, /// The asset symbol (e.g. `ICP`, `BTC`, `ETH`, etc.) pub symbol: String, /// The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) pub name: String, + /// The number of decimal places that the asset supports (e.g. `8` for `BTC`, `18` for `ETH`, etc.) + pub decimals: u32, /// The asset metadata (e.g. `{"logo": "https://example.com/logo.png"}`), /// also, in the case of non-native assets, it can contain other required /// information (e.g. `{"address": "0x1234"}`). pub metadata: Metadata, } +impl Asset { + pub const DECIMALS_RANGE: (u32, u32) = (0, 18); + pub const SYMBOL_RANGE: (u16, u16) = (1, 32); + pub const NAME_RANGE: (u16, u16) = (1, 64); +} + +impl ModelKey for Asset { + fn key(&self) -> AssetId { + self.id + } +} + impl Hash for Asset { fn hash(&self, state: &mut H) { self.blockchain.hash(state); - self.standard.hash(state); + self.standards.hash(state); self.symbol.hash(state); self.name.hash(state); @@ -32,3 +59,118 @@ impl Hash for Asset { keys.hash(state); } } + +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct AssetEntryKey { + /// The address book entry id, which is a UUID. + pub id: AssetId, +} + +fn validate_symbol(symbol: &str) -> ModelValidatorResult { + if (symbol.len() < Asset::SYMBOL_RANGE.0 as usize) + || (symbol.len() > Asset::SYMBOL_RANGE.1 as usize) + { + return Err(AssetError::InvalidSymbolLength { + min_length: Asset::SYMBOL_RANGE.0, + max_length: Asset::SYMBOL_RANGE.1, + }); + } + + Ok(()) +} + +fn validate_name(name: &str) -> ModelValidatorResult { + if (name.len() < Asset::NAME_RANGE.0 as usize) || (name.len() > Asset::NAME_RANGE.1 as usize) { + return Err(AssetError::InvalidNameLength { + min_length: Asset::NAME_RANGE.0, + max_length: Asset::NAME_RANGE.1, + }); + } + + Ok(()) +} + +fn validate_decimals(decimals: u32) -> ModelValidatorResult { + if (decimals < Asset::DECIMALS_RANGE.0) || (decimals > Asset::DECIMALS_RANGE.1) { + return Err(AssetError::InvalidDecimals { + min: Asset::DECIMALS_RANGE.0, + max: Asset::DECIMALS_RANGE.1, + }); + } + + Ok(()) +} + +impl ModelValidator for Asset { + fn validate(&self) -> ModelValidatorResult { + validate_symbol(&self.symbol)?; + validate_name(&self.name)?; + validate_decimals(self.decimals)?; + + self.metadata.validate()?; + + Ok(()) + } +} + +#[cfg(any(test, feature = "canbench"))] +pub mod asset_test_utils { + + use std::collections::BTreeSet; + + use crate::models::{Blockchain, BlockchainStandard, Metadata}; + + use super::Asset; + + pub fn mock_asset() -> Asset { + Asset { + id: [0; 16], + blockchain: Blockchain::InternetComputer, + standards: BTreeSet::from([BlockchainStandard::Native]), + symbol: "ICP".to_string(), + name: "Internet Computer".to_string(), + decimals: 8, + metadata: Metadata::default(), + } + } +} + +#[cfg(test)] +mod test { + + use super::*; + + #[test] + fn test_name_validation() { + let mut asset = asset_test_utils::mock_asset(); + assert!(asset.validate().is_ok()); + + asset.name = "".to_string(); + assert!(asset.validate().is_err()); + + asset.name = "a".repeat(Asset::NAME_RANGE.1 as usize + 1); + assert!(asset.validate().is_err()); + } + + #[test] + fn test_symbol_validation() { + let mut asset = asset_test_utils::mock_asset(); + assert!(asset.validate().is_ok()); + + asset.symbol = "".to_string(); + assert!(asset.validate().is_err()); + + asset.symbol = "a".repeat(Asset::SYMBOL_RANGE.1 as usize + 1); + assert!(asset.validate().is_err()); + } + + #[test] + fn test_decimals_validation() { + let mut asset = asset_test_utils::mock_asset(); + assert!(asset.validate().is_ok()); + + asset.decimals = Asset::DECIMALS_RANGE.1 + 1; + assert!(asset.validate().is_err()); + } +} diff --git a/core/station/impl/src/models/indexes/unique_index.rs b/core/station/impl/src/models/indexes/unique_index.rs index 384a97e21..67d02cd29 100644 --- a/core/station/impl/src/models/indexes/unique_index.rs +++ b/core/station/impl/src/models/indexes/unique_index.rs @@ -1,6 +1,6 @@ use crate::{ core::utils::format_unique_string, - models::{Account, AddressBookEntry, ExternalCanister, User, UserGroup}, + models::{Account, AddressBookEntry, Asset, ExternalCanister, User, UserGroup}, }; use candid::Principal; use orbit_essentials::{storable, types::UUID}; @@ -18,6 +18,10 @@ pub enum UniqueIndexKey { UserGroupName(String), UserIdentity(Principal), UserName(String), + AssetSymbolBlockchain( + String, // Symbol + String, // Blockchain + ), } impl AddressBookEntry { @@ -80,6 +84,24 @@ impl UserGroup { } } +impl Asset { + /// Converts the asset to it's unique index by name. + fn to_unique_index_by_symbol_blockchain(&self) -> (UniqueIndexKey, UUID) { + ( + UniqueIndexKey::AssetSymbolBlockchain( + self.symbol.to_uppercase(), // symbol is not case sensitive + self.blockchain.to_string(), + ), + self.id, + ) + } + + /// Extracts all unique indexes for the asset. + pub fn to_unique_indexes(&self) -> Vec<(UniqueIndexKey, UUID)> { + vec![self.to_unique_index_by_symbol_blockchain()] + } +} + impl ExternalCanister { /// Converts the external canister to it's unique index by name. fn to_unique_index_by_name(&self) -> (UniqueIndexKey, UUID) { @@ -123,6 +145,7 @@ impl Account { #[cfg(test)] mod tests { + use super::*; use crate::models::{ account_test_utils::mock_account, address_book_entry_test_utils::mock_address_book_entry, diff --git a/core/station/impl/src/repositories/asset.rs b/core/station/impl/src/repositories/asset.rs new file mode 100644 index 000000000..9e253dbc8 --- /dev/null +++ b/core/station/impl/src/repositories/asset.rs @@ -0,0 +1,198 @@ +use super::indexes::unique_index::UniqueIndexRepository; +use crate::{ + core::{ + cache::Cache, ic_cdk::api::print, metrics::ASSET_METRICS, with_memory_manager, Memory, + ASSET_MEMORY_ID, + }, + models::{indexes::unique_index::UniqueIndexKey, Asset, AssetId}, +}; +use ic_stable_structures::{memory_manager::VirtualMemory, StableBTreeMap}; +use lazy_static::lazy_static; +use orbit_essentials::{ + repository::{IndexedRepository, Repository, StableDb}, + types::UUID, +}; +use std::{cell::RefCell, sync::Arc}; + +thread_local! { + static DB: RefCell>> = with_memory_manager(|memory_manager| { + RefCell::new( + StableBTreeMap::init(memory_manager.get(ASSET_MEMORY_ID)) + ) + }); + + static CACHE: RefCell> = RefCell::new(Cache::new(AssetRepository::MAX_CACHE_SIZE)); +} + +lazy_static! { + pub static ref ASSET_REPOSITORY: Arc = Arc::new(AssetRepository::default()); +} + +/// A repository that enables managing assets in stable memory. +#[derive(Default, Debug)] +pub struct AssetRepository { + unique_index: UniqueIndexRepository, +} + +impl StableDb> for AssetRepository { + fn with_db(f: F) -> R + where + F: FnOnce(&mut StableBTreeMap>) -> R, + { + DB.with(|m| f(&mut m.borrow_mut())) + } +} + +impl IndexedRepository> for AssetRepository { + fn remove_entry_indexes(&self, entry: &Asset) { + entry + .to_unique_indexes() + .into_iter() + .for_each(|(index, _)| { + self.unique_index.remove(&index); + }); + } + + fn add_entry_indexes(&self, entry: &Asset) { + entry + .to_unique_indexes() + .into_iter() + .for_each(|(index, id)| { + self.unique_index.insert(index, id); + }); + } + + /// Clears all the indexes for the asset. + fn clear_indexes(&self) { + CACHE.with(|cache| cache.borrow_mut().clear()); + + self.unique_index + .clear_when(|key| matches!(key, UniqueIndexKey::AssetSymbolBlockchain(_, _))); + } +} + +impl Repository> for AssetRepository { + fn list(&self) -> Vec { + let mut assets = Vec::with_capacity(self.len()); + + if self.use_only_cache() { + CACHE.with(|cache| { + cache.borrow().iter().for_each(|(_, asset)| { + assets.push(asset.clone()); + }); + }); + } else { + Self::with_db(|db| { + db.iter().for_each(|(_, asset)| { + assets.push(asset); + }); + }); + } + + assets + } + + fn get(&self, key: &AssetId) -> Option { + let maybe_cache_hit = CACHE.with(|cache| cache.borrow().get(key).cloned()); + + match self.use_only_cache() { + true => maybe_cache_hit, + false => maybe_cache_hit.or_else(|| Self::with_db(|db| db.get(key))), + } + } + + fn insert(&self, key: AssetId, value: Asset) -> Option { + DB.with(|m| { + CACHE.with(|cache| cache.borrow_mut().insert(key, value.clone())); + + let prev = m.borrow_mut().insert(key, value.clone()); + + // Update metrics when an asset is upserted. + ASSET_METRICS.with(|metrics| { + metrics + .iter() + .for_each(|metric| metric.borrow_mut().sum(&value, prev.as_ref())) + }); + + self.save_entry_indexes(&value, prev.as_ref()); + + prev + }) + } + + fn remove(&self, key: &AssetId) -> Option { + DB.with(|m| { + CACHE.with(|cache| cache.borrow_mut().remove(key)); + + let prev = m.borrow_mut().remove(key); + + // Update metrics when a asset is removed. + if let Some(prev) = &prev { + ASSET_METRICS.with(|metrics| { + metrics + .iter() + .for_each(|metric| metric.borrow_mut().sub(prev)) + }); + + self.remove_entry_indexes(prev); + } + + prev + }) + } +} + +impl AssetRepository { + /// Currently the cache uses around 100 bytes per entry (UUID, Asset), + /// so the max cache storage size is around 10MiB. + pub const MAX_CACHE_SIZE: usize = 100_000; + + /// Checks if every asset in the repository is in the cache. + fn use_only_cache(&self) -> bool { + self.len() <= Self::MAX_CACHE_SIZE + } + + /// Builds the cache from the stable memory repository. + /// + /// This method should only be called during init or upgrade hooks to ensure that the cache is + /// up-to-date with the repository and that we have enough instructions to rebuild the cache. + pub fn build_cache(&self) { + if self.len() > Self::MAX_CACHE_SIZE { + print(format!( + "Only the first {} assets will be added to the cache, the reposity has {} assets.", + Self::MAX_CACHE_SIZE, + self.len(), + )); + } + + CACHE.with(|cache| { + cache.borrow_mut().clear(); + + DB.with(|db| { + for (_, asset) in db.borrow().iter().take(Self::MAX_CACHE_SIZE) { + cache.borrow_mut().insert(asset.id, asset); + } + }); + }); + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::models::asset_test_utils; + + #[test] + fn test_crud() { + let repository = AssetRepository::default(); + let asset = asset_test_utils::mock_asset(); + + assert!(repository.get(&asset.id).is_none()); + + repository.insert(asset.id.to_owned(), asset.clone()); + + assert!(repository.get(&asset.id).is_some()); + assert!(repository.remove(&asset.id).is_some()); + assert!(repository.get(&asset.id).is_none()); + } +} diff --git a/core/station/impl/src/repositories/mod.rs b/core/station/impl/src/repositories/mod.rs index af9c21929..73bff8399 100644 --- a/core/station/impl/src/repositories/mod.rs +++ b/core/station/impl/src/repositories/mod.rs @@ -30,6 +30,9 @@ pub use request_policy::*; pub mod request_evaluation_result; pub use request_evaluation_result::*; +pub mod asset; +pub use asset::*; + pub mod permission; pub mod indexes; diff --git a/core/station/impl/src/repositories/user_group.rs b/core/station/impl/src/repositories/user_group.rs index 256a00b7d..87d9cc6fb 100644 --- a/core/station/impl/src/repositories/user_group.rs +++ b/core/station/impl/src/repositories/user_group.rs @@ -29,7 +29,7 @@ lazy_static! { Arc::new(UserGroupRepository::default()); } -/// A repository that enables managing users in stable memory. +/// A repository that enables managing user groups in stable memory. #[derive(Default, Debug)] pub struct UserGroupRepository { unique_index: UniqueIndexRepository, diff --git a/core/station/impl/src/services/system.rs b/core/station/impl/src/services/system.rs index 74cc4716c..ad142b5c5 100644 --- a/core/station/impl/src/services/system.rs +++ b/core/station/impl/src/services/system.rs @@ -363,6 +363,9 @@ impl SystemService { // registers the admins of the canister init_canister_sync_handlers::set_admins(input.admins.clone())?; + // add initial assets + init_canister_sync_handlers::add_initial_assets(); + // sets the name of the canister system_info.set_name(input.name.clone()); @@ -486,14 +489,20 @@ impl SystemService { } mod init_canister_sync_handlers { + use std::collections::BTreeSet; + use crate::core::ic_cdk::{api::print, next_time}; - use crate::models::{AddUserOperationInput, UserStatus}; + use crate::models::{ + AddUserOperationInput, Asset, Blockchain, BlockchainStandard, Metadata, UserStatus, + }; + use crate::repositories::ASSET_REPOSITORY; use crate::services::USER_SERVICE; use crate::{ models::{UserGroup, ADMIN_GROUP_ID}, repositories::USER_GROUP_REPOSITORY, }; use orbit_essentials::api::ApiError; + use orbit_essentials::model::ModelKey; use orbit_essentials::repository::Repository; use station_api::AdminInitInput; use uuid::Uuid; @@ -510,6 +519,22 @@ mod init_canister_sync_handlers { ); } + pub fn add_initial_assets() { + let initial_assets: Vec = vec![Asset { + blockchain: Blockchain::InternetComputer, + standards: BTreeSet::from([BlockchainStandard::Native]), + symbol: "ICP".to_string(), + name: "Internet Computer".to_string(), + metadata: Metadata::default(), + decimals: 8, + id: Uuid::new_v4().as_bytes().to_owned(), + }]; + + for asset in initial_assets { + ASSET_REPOSITORY.insert(asset.key(), asset); + } + } + /// Registers the newly added admins of the canister. pub fn set_admins(admins: Vec) -> Result<(), ApiError> { print(format!("Registering {} admin users", admins.len())); From f2f84d6a43409c78df3ab9ca37fe2a4430c499ae Mon Sep 17 00:00:00 2001 From: olaszakos Date: Thu, 12 Sep 2024 12:10:09 +0200 Subject: [PATCH 02/18] feat(station): asset crud operations (#340) --- .../specifier/SpecifierSelector.vue | 12 + .../components/requests/RequestDetailView.vue | 3 + .../components/requests/RequestListItem.vue | 3 + .../src/configs/request-policies.config.ts | 3 + apps/wallet/src/generated/station/station.did | 156 +++++ .../src/generated/station/station.did.d.ts | 77 ++- .../src/generated/station/station.did.js | 76 ++- apps/wallet/src/mappers/permissions.mapper.ts | 4 + .../src/mappers/request-specifiers.mapper.ts | 12 + apps/wallet/src/mappers/requests.mapper.ts | 23 + apps/wallet/src/types/permissions.types.ts | 1 + apps/wallet/src/types/requests.types.ts | 1 + apps/wallet/src/types/station.types.ts | 6 + core/station/api/spec.did | 156 +++++ core/station/api/src/asset.rs | 97 +++ core/station/api/src/capabilities.rs | 19 +- core/station/api/src/lib.rs | 3 + core/station/api/src/request.rs | 37 +- core/station/api/src/request_policy.rs | 3 + core/station/api/src/resource.rs | 1 + core/station/impl/results.yml | 18 +- core/station/impl/src/controllers/asset.rs | 78 +++ core/station/impl/src/controllers/mod.rs | 3 + core/station/impl/src/core/init.rs | 34 + core/station/impl/src/core/validation.rs | 19 +- core/station/impl/src/errors/asset.rs | 23 + .../impl/src/factories/requests/add_asset.rs | 75 +++ .../impl/src/factories/requests/edit_asset.rs | 69 ++ .../impl/src/factories/requests/mod.rs | 30 + .../src/factories/requests/remove_asset.rs | 69 ++ core/station/impl/src/lib.rs | 2 +- core/station/impl/src/mappers/asset.rs | 17 +- .../station/impl/src/mappers/authorization.rs | 25 + .../impl/src/mappers/notification_type.rs | 10 +- .../impl/src/mappers/request_operation.rs | 165 ++++- .../src/mappers/request_operation_type.rs | 18 + .../impl/src/mappers/request_policy.rs | 30 + core/station/impl/src/mappers/resource.rs | 2 + core/station/impl/src/migration.rs | 601 +++--------------- core/station/impl/src/models/asset.rs | 50 +- .../impl/src/models/indexes/unique_index.rs | 16 +- core/station/impl/src/models/request.rs | 11 +- .../impl/src/models/request_operation.rs | 58 +- .../models/request_operation_filter_type.rs | 6 + .../impl/src/models/request_operation_type.rs | 18 + .../impl/src/models/request_specifier.rs | 19 +- core/station/impl/src/models/resource.rs | 45 +- core/station/impl/src/repositories/asset.rs | 26 + core/station/impl/src/services/asset.rs | 296 +++++++++ .../impl/src/services/external_canister.rs | 2 +- core/station/impl/src/services/mod.rs | 3 + scripts/benchmark-canister.sh | 2 +- .../integration/assets/station-memory-v1.bin | Bin 0 -> 2282384 bytes tests/integration/src/asset_tests.rs | 100 +++ tests/integration/src/lib.rs | 1 + tests/integration/src/migration_tests.rs | 60 +- tests/integration/src/test_data.rs | 25 + tests/integration/src/test_data/asset.rs | 124 ++++ 58 files changed, 2246 insertions(+), 597 deletions(-) create mode 100644 core/station/api/src/asset.rs create mode 100644 core/station/impl/src/controllers/asset.rs create mode 100644 core/station/impl/src/factories/requests/add_asset.rs create mode 100644 core/station/impl/src/factories/requests/edit_asset.rs create mode 100644 core/station/impl/src/factories/requests/remove_asset.rs create mode 100644 core/station/impl/src/services/asset.rs create mode 100644 tests/integration/assets/station-memory-v1.bin create mode 100644 tests/integration/src/asset_tests.rs create mode 100644 tests/integration/src/test_data/asset.rs diff --git a/apps/wallet/src/components/request-policies/specifier/SpecifierSelector.vue b/apps/wallet/src/components/request-policies/specifier/SpecifierSelector.vue index 170716ef7..84bdb72e1 100644 --- a/apps/wallet/src/components/request-policies/specifier/SpecifierSelector.vue +++ b/apps/wallet/src/components/request-policies/specifier/SpecifierSelector.vue @@ -92,6 +92,9 @@ const componentsMap: { CallExternalCanister: UnsupportedSpecifier, SetDisasterRecovery: UnsupportedSpecifier, FundExternalCanister: UnsupportedSpecifier, + AddAsset: UnsupportedSpecifier, + RemoveAsset: UnsupportedSpecifier, + EditAsset: UnsupportedSpecifier, }; function isKeyOfRequestSpecifier(key: string): key is keyof RequestSpecifier { @@ -247,6 +250,15 @@ watch( case RequestSpecifierEnum.SetDisasterRecovery: model.value = { [specifier.value]: null }; break; + case RequestSpecifierEnum.AddAsset: + model.value = { [specifier.value]: null }; + break; + case RequestSpecifierEnum.EditAsset: + model.value = { [specifier.value]: { Any: null } }; + break; + case RequestSpecifierEnum.RemoveAsset: + model.value = { [specifier.value]: { Any: null } }; + break; default: unreachable(specifier.value); } diff --git a/apps/wallet/src/components/requests/RequestDetailView.vue b/apps/wallet/src/components/requests/RequestDetailView.vue index effd433e0..b2e1598a0 100644 --- a/apps/wallet/src/components/requests/RequestDetailView.vue +++ b/apps/wallet/src/components/requests/RequestDetailView.vue @@ -297,6 +297,9 @@ const componentsMap: { ConfigureExternalCanister: UnsupportedOperation, SetDisasterRecovery: UnsupportedOperation, FundExternalCanister: UnsupportedOperation, + AddAsset: UnsupportedOperation, + EditAsset: UnsupportedOperation, + RemoveAsset: UnsupportedOperation, }; defineEmits<{ diff --git a/apps/wallet/src/components/requests/RequestListItem.vue b/apps/wallet/src/components/requests/RequestListItem.vue index ffdbd4de0..99f192e69 100644 --- a/apps/wallet/src/components/requests/RequestListItem.vue +++ b/apps/wallet/src/components/requests/RequestListItem.vue @@ -99,6 +99,9 @@ const componentsMap: { ConfigureExternalCanister: UnsupportedOperation, SetDisasterRecovery: UnsupportedOperation, FundExternalCanister: UnsupportedOperation, + AddAsset: UnsupportedOperation, + EditAsset: UnsupportedOperation, + RemoveAsset: UnsupportedOperation, }; defineEmits<{ diff --git a/apps/wallet/src/configs/request-policies.config.ts b/apps/wallet/src/configs/request-policies.config.ts index 0400a4b07..c7bcb37cf 100644 --- a/apps/wallet/src/configs/request-policies.config.ts +++ b/apps/wallet/src/configs/request-policies.config.ts @@ -39,4 +39,7 @@ export const requestSpecifiersIncludedRules = (): Record< [RequestSpecifierEnum.CallExternalCanister]: [...defaultRequestPolicyRules], [RequestSpecifierEnum.FundExternalCanister]: [...defaultRequestPolicyRules], [RequestSpecifierEnum.SetDisasterRecovery]: [...defaultRequestPolicyRules], + [RequestSpecifierEnum.AddAsset]: [...defaultRequestPolicyRules], + [RequestSpecifierEnum.EditAsset]: [...defaultRequestPolicyRules], + [RequestSpecifierEnum.RemoveAsset]: [...defaultRequestPolicyRules], }); diff --git a/apps/wallet/src/generated/station/station.did b/apps/wallet/src/generated/station/station.did index 2e9d5c1bd..868800e48 100644 --- a/apps/wallet/src/generated/station/station.did +++ b/apps/wallet/src/generated/station/station.did @@ -59,6 +59,9 @@ type RequestSpecifier = variant { EditUserGroup : ResourceIds; RemoveUserGroup : ResourceIds; ManageSystemInfo; + AddAsset; + EditAsset : ResourceIds; + RemoveAsset : ResourceIds; }; // A record type that can be used to represent a percentage of users that are required to approve a rule. @@ -862,6 +865,12 @@ type RequestOperation = variant { RemoveRequestPolicy : RemoveRequestPolicyOperation; // An operation for managing system info. ManageSystemInfo : ManageSystemInfoOperation; + // An operation for adding a new asset. + AddAsset : AddAssetOperation; + // An operation for editing an existing asset. + EditAsset : EditAssetOperation; + // An operation for removing an existing asset. + RemoveAsset : RemoveAssetOperation; }; type RequestOperationInput = variant { @@ -911,6 +920,12 @@ type RequestOperationInput = variant { RemoveRequestPolicy : RemoveRequestPolicyOperationInput; // An operation for managing system info. ManageSystemInfo : ManageSystemInfoOperationInput; + // An operation for adding a new asset. + AddAsset : AddAssetOperationInput; + // An operation for editing an existing asset. + EditAsset : EditAssetOperationInput; + // An operation for removing an existing asset. + RemoveAsset : RemoveAssetOperationInput; }; type RequestOperationType = variant { @@ -960,6 +975,12 @@ type RequestOperationType = variant { RemoveRequestPolicy; // And operation for managing system info. ManageSystemInfo; + // An operation for adding a new asset. + AddAsset; + // An operation for editing an existing asset. + EditAsset; + // An operation for removing an existing asset. + RemoveAsset; }; // The schedule for executing a transaction of a given transfer. @@ -1091,6 +1112,12 @@ type ListRequestsOperationType = variant { ManageSystemInfo; // An operation for setting disaster recovery config. SetDisasterRecovery; + // An operation for adding an asset. + AddAsset; + // An operation for editing an asset. + EditAsset; + // An operation for removing an asset. + RemoveAsset; }; // The direction to use for sorting. @@ -1638,6 +1665,8 @@ type AssetMetadata = record { // A record type that can be used to represent an asset in the station. type Asset = record { + // The internal asset id. + id : UUID; // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) blockchain : text; // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string @@ -1651,6 +1680,8 @@ type Asset = record { // also, in the case of non-native assets, it can contain other required // information (e.g. `{"address": "0x1234"}`). metadata : vec AssetMetadata; + // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). + decimals : nat32; }; // A record type that is used to show the current capabilities of the station. @@ -1929,6 +1960,7 @@ type Resource = variant { System : SystemResourceAction; User : UserResourceAction; UserGroup : ResourceAction; + Asset : ResourceAction; }; // A record type that can be used to represent the caller privileges for a given permission. @@ -2089,6 +2121,126 @@ type ListRequestPoliciesResult = variant { Err : Error; }; +type AddAssetOperation = record { + // The result of adding an asset. + asset : opt Asset; + // The input to the request to add an asset. + input : AddAssetOperationInput; +}; + +// The input type for adding an asset. +type AddAssetOperationInput = record { + // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + blockchain : text; + // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string + // with spaces replaced with underscores. + standards : vec text; + // The asset symbol, e.g. "ICP" or "BTC". + symbol : AssetSymbol; + // The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) + name : text; + // The asset metadata (e.g. `{"logo": "https://example.com/logo.png"}`), + // also, in the case of non-native assets, it can contain other required + // information (e.g. `{"address": "0x1234"}`). + metadata : vec AssetMetadata; + // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). + decimals : nat32; +}; + +type EditAssetOperation = record { + // The input to the request to edit an asset. + input : EditAssetOperationInput; +}; + +// The input type for editing an asset. +type EditAssetOperationInput = record { + // The asset id to edit. + asset_id : UUID; + // The name of the asset. + name : opt text; + // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + blockchain : opt text; + // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string + // with spaces replaced with underscores. + standards : opt vec text; + // The asset symbol, e.g. "ICP" or "BTC". + symbol : opt AssetSymbol; + // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). + decimals : opt nat32; + // The metadata to change. + change_metadata : opt ChangeMetadata; +}; + +// Type for instructions to update the address book entry's metadata. +type ChangeMetadata = variant { + // Replace all existing metadata by the specified metadata. + ReplaceAllBy : vec AssetMetadata; + // Override values of existing metadata with the specified keys + // and add new metadata if no metadata can be found with the specified keys. + OverrideSpecifiedBy : vec AssetMetadata; + // Remove metadata with the specified keys. + RemoveKeys : vec text; +}; + +type RemoveAssetOperation = record { + // The input to the request to remove an asset. + input : RemoveAssetOperationInput; +}; + +// The input type for removing an asset. +type RemoveAssetOperationInput = record { + // The asset id to remove. + asset_id : UUID; +}; + +// The input type for listing assets. +type ListAssetsInput = record { + // The pagination parameters. + paginate : opt PaginationInput; +}; + +// The result type for listing assets. +type ListAssetsResult = variant { + // The result data for a successful execution. + Ok : record { + // The list of assets. + assets : vec Asset; + // The offset to use for the next page. + next_offset : opt nat64; + // The total number of assets. + total : nat64; + // The caller privileges for the assets. + privileges : vec AssetCallerPrivileges; + }; + // The error that occurred (e.g. the user does not have the necessary permissions). + Err : Error; +}; + +// The input type for getting an asset. +type GetAssetInput = record { + // The asset id to retrieve. + asset_id : UUID; +}; + +// The result type for getting an asset. +type GetAssetResult = variant { + // The result data for a successful execution. + Ok : record { + // The asset that was retrieved. + asset : Asset; + // The caller privileges for the asset. + privileges : AssetCallerPrivileges; + }; + // The error that occurred (e.g. the user does not have the necessary permissions). + Err : Error; +}; + +type AssetCallerPrivileges = record { + id : UUID; + can_edit : bool; + can_delete : bool; +}; + // The top level privileges that the user has when making calls to the canister. type UserPrivilege = variant { Capabilities; @@ -2565,4 +2717,8 @@ service : (opt SystemInstall) -> { http_request : (HttpRequest) -> (HttpResponse) query; // Internal endpoint used by the upgrader canister to notify the station about a failed station upgrade request. notify_failed_station_upgrade : (NotifyFailedStationUpgradeInput) -> (NotifyFailedStationUpgradeResult); + // Get an asset by id. + get_asset : (input : GetAssetInput) -> (GetAssetResult) query; + // List all assets that the caller has access to. + list_assets : (input : ListAssetsInput) -> (ListAssetsResult) query; }; diff --git a/apps/wallet/src/generated/station/station.did.d.ts b/apps/wallet/src/generated/station/station.did.d.ts index 0f29e7107..b1d673d3a 100644 --- a/apps/wallet/src/generated/station/station.did.d.ts +++ b/apps/wallet/src/generated/station/station.did.d.ts @@ -64,6 +64,18 @@ export interface AddAddressBookEntryOperationInput { 'address' : string, 'address_owner' : string, } +export interface AddAssetOperation { + 'asset' : [] | [Asset], + 'input' : AddAssetOperationInput, +} +export interface AddAssetOperationInput { + 'decimals' : number, + 'standards' : Array, + 'metadata' : Array, + 'name' : string, + 'blockchain' : string, + 'symbol' : AssetSymbol, +} export interface AddRequestPolicyOperation { 'input' : AddRequestPolicyOperationInput, 'policy_id' : [] | [UUID], @@ -109,12 +121,19 @@ export interface Allow { 'users' : Array, } export interface Asset { + 'id' : UUID, + 'decimals' : number, 'standards' : Array, 'metadata' : Array, 'name' : string, 'blockchain' : string, 'symbol' : AssetSymbol, } +export interface AssetCallerPrivileges { + 'id' : UUID, + 'can_delete' : boolean, + 'can_edit' : boolean, +} export interface AssetMetadata { 'key' : string, 'value' : string } export type AssetSymbol = string; export type AuthScope = { 'Authenticated' : null } | @@ -194,6 +213,9 @@ export interface ChangeExternalCanisterOperationInput { 'canister_id' : Principal, 'module' : Uint8Array | number[], } +export type ChangeMetadata = { 'OverrideSpecifiedBy' : Array } | + { 'RemoveKeys' : Array } | + { 'ReplaceAllBy' : Array }; export type ConfigureExternalCanisterOperation = ConfigureExternalCanisterOperationInput; export interface ConfigureExternalCanisterOperationInput { 'kind' : ConfigureExternalCanisterOperationKind, @@ -298,6 +320,16 @@ export interface EditAddressBookEntryOperationInput { 'address_book_entry_id' : UUID, 'address_owner' : [] | [string], } +export interface EditAssetOperation { 'input' : EditAssetOperationInput } +export interface EditAssetOperationInput { + 'decimals' : [] | [number], + 'standards' : [] | [Array], + 'name' : [] | [string], + 'blockchain' : [] | [string], + 'change_metadata' : [] | [ChangeMetadata], + 'asset_id' : UUID, + 'symbol' : [] | [AssetSymbol], +} export interface EditPermissionOperation { 'input' : EditPermissionOperationInput, } @@ -465,6 +497,11 @@ export type GetAddressBookEntryResult = { } } | { 'Err' : Error }; +export interface GetAssetInput { 'asset_id' : UUID } +export type GetAssetResult = { + 'Ok' : { 'privileges' : AssetCallerPrivileges, 'asset' : Asset } + } | + { 'Err' : Error }; export interface GetExternalCanisterFiltersInput { 'with_labels' : [] | [boolean], 'with_name' : [] | [{ 'prefix' : [] | [string] }], @@ -592,6 +629,16 @@ export type ListAddressBookEntriesResult = { } } | { 'Err' : Error }; +export interface ListAssetsInput { 'paginate' : [] | [PaginationInput] } +export type ListAssetsResult = { + 'Ok' : { + 'total' : bigint, + 'privileges' : Array, + 'assets' : Array, + 'next_offset' : [] | [bigint], + } + } | + { 'Err' : Error }; export interface ListExternalCanistersInput { 'sort_by' : [] | [ListExternalCanistersSortInput], 'states' : [] | [Array], @@ -658,15 +705,18 @@ export interface ListRequestsInput { 'only_approvable' : boolean, 'created_from_dt' : [] | [TimestampRFC3339], } -export type ListRequestsOperationType = { 'AddUserGroup' : null } | +export type ListRequestsOperationType = { 'RemoveAsset' : null } | + { 'AddUserGroup' : null } | { 'EditPermission' : null } | { 'ConfigureExternalCanister' : [] | [Principal] } | { 'ChangeExternalCanister' : [] | [Principal] } | { 'AddUser' : null } | + { 'EditAsset' : null } | { 'EditUserGroup' : null } | { 'SetDisasterRecovery' : null } | { 'EditRequestPolicy' : null } | { 'RemoveRequestPolicy' : null } | + { 'AddAsset' : null } | { 'SystemUpgrade' : null } | { 'RemoveAddressBookEntry' : null } | { 'CreateExternalCanister' : null } | @@ -804,6 +854,8 @@ export interface RemoveAddressBookEntryOperation { export interface RemoveAddressBookEntryOperationInput { 'address_book_entry_id' : UUID, } +export interface RemoveAssetOperation { 'input' : RemoveAssetOperationInput } +export interface RemoveAssetOperationInput { 'asset_id' : UUID } export interface RemoveRequestPolicyOperation { 'input' : RemoveRequestPolicyOperationInput, } @@ -850,15 +902,18 @@ export interface RequestEvaluationResult { } export type RequestExecutionSchedule = { 'Immediate' : null } | { 'Scheduled' : { 'execution_time' : TimestampRFC3339 } }; -export type RequestOperation = { 'AddUserGroup' : AddUserGroupOperation } | +export type RequestOperation = { 'RemoveAsset' : RemoveAssetOperation } | + { 'AddUserGroup' : AddUserGroupOperation } | { 'EditPermission' : EditPermissionOperation } | { 'ConfigureExternalCanister' : ConfigureExternalCanisterOperation } | { 'ChangeExternalCanister' : ChangeExternalCanisterOperation } | { 'AddUser' : AddUserOperation } | + { 'EditAsset' : EditAssetOperation } | { 'EditUserGroup' : EditUserGroupOperation } | { 'SetDisasterRecovery' : SetDisasterRecoveryOperation } | { 'EditRequestPolicy' : EditRequestPolicyOperation } | { 'RemoveRequestPolicy' : RemoveRequestPolicyOperation } | + { 'AddAsset' : AddAssetOperation } | { 'SystemUpgrade' : SystemUpgradeOperation } | { 'RemoveAddressBookEntry' : RemoveAddressBookEntryOperation } | { 'CreateExternalCanister' : CreateExternalCanisterOperation } | @@ -874,16 +929,19 @@ export type RequestOperation = { 'AddUserGroup' : AddUserGroupOperation } | { 'CallExternalCanister' : CallExternalCanisterOperation } | { 'AddAccount' : AddAccountOperation }; export type RequestOperationInput = { - 'AddUserGroup' : AddUserGroupOperationInput + 'RemoveAsset' : RemoveAssetOperationInput } | + { 'AddUserGroup' : AddUserGroupOperationInput } | { 'EditPermission' : EditPermissionOperationInput } | { 'ConfigureExternalCanister' : ConfigureExternalCanisterOperationInput } | { 'ChangeExternalCanister' : ChangeExternalCanisterOperationInput } | { 'AddUser' : AddUserOperationInput } | + { 'EditAsset' : EditAssetOperationInput } | { 'EditUserGroup' : EditUserGroupOperationInput } | { 'SetDisasterRecovery' : SetDisasterRecoveryOperationInput } | { 'EditRequestPolicy' : EditRequestPolicyOperationInput } | { 'RemoveRequestPolicy' : RemoveRequestPolicyOperationInput } | + { 'AddAsset' : AddAssetOperationInput } | { 'SystemUpgrade' : SystemUpgradeOperationInput } | { 'RemoveAddressBookEntry' : RemoveAddressBookEntryOperationInput } | { 'CreateExternalCanister' : CreateExternalCanisterOperationInput } | @@ -898,15 +956,18 @@ export type RequestOperationInput = { { 'RemoveUserGroup' : RemoveUserGroupOperationInput } | { 'CallExternalCanister' : CallExternalCanisterOperationInput } | { 'AddAccount' : AddAccountOperationInput }; -export type RequestOperationType = { 'AddUserGroup' : null } | +export type RequestOperationType = { 'RemoveAsset' : null } | + { 'AddUserGroup' : null } | { 'EditPermission' : null } | { 'ConfigureExternalCanister' : null } | { 'ChangeExternalCanister' : null } | { 'AddUser' : null } | + { 'EditAsset' : null } | { 'EditUserGroup' : null } | { 'SetDisasterRecovery' : null } | { 'EditRequestPolicy' : null } | { 'RemoveRequestPolicy' : null } | + { 'AddAsset' : null } | { 'SystemUpgrade' : null } | { 'RemoveAddressBookEntry' : null } | { 'CreateExternalCanister' : null } | @@ -947,14 +1008,17 @@ export interface RequestPolicyRuleResult { } export type RequestResourceAction = { 'List' : null } | { 'Read' : ResourceId }; -export type RequestSpecifier = { 'AddUserGroup' : null } | +export type RequestSpecifier = { 'RemoveAsset' : ResourceIds } | + { 'AddUserGroup' : null } | { 'EditPermission' : ResourceSpecifier } | { 'ChangeExternalCanister' : ExternalCanisterId } | { 'AddUser' : null } | + { 'EditAsset' : ResourceIds } | { 'EditUserGroup' : ResourceIds } | { 'SetDisasterRecovery' : null } | { 'EditRequestPolicy' : ResourceIds } | { 'RemoveRequestPolicy' : ResourceIds } | + { 'AddAsset' : null } | { 'SystemUpgrade' : null } | { 'RemoveAddressBookEntry' : ResourceIds } | { 'CreateExternalCanister' : null } | @@ -992,6 +1056,7 @@ export type Resource = { 'Request' : RequestResourceAction } | { 'ExternalCanister' : ExternalCanisterResourceAction } | { 'Account' : AccountResourceAction } | { 'AddressBook' : ResourceAction } | + { 'Asset' : ResourceAction } | { 'UserGroup' : ResourceAction } | { 'Permission' : PermissionResourceAction } | { 'RequestPolicy' : ResourceAction }; @@ -1177,6 +1242,7 @@ export interface _SERVICE { [GetAddressBookEntryInput], GetAddressBookEntryResult >, + 'get_asset' : ActorMethod<[GetAssetInput], GetAssetResult>, 'get_external_canister' : ActorMethod< [GetExternalCanisterInput], GetExternalCanisterResult @@ -1209,6 +1275,7 @@ export interface _SERVICE { [ListAddressBookEntriesInput], ListAddressBookEntriesResult >, + 'list_assets' : ActorMethod<[ListAssetsInput], ListAssetsResult>, 'list_external_canisters' : ActorMethod< [ListExternalCanistersInput], ListExternalCanistersResult diff --git a/apps/wallet/src/generated/station/station.did.js b/apps/wallet/src/generated/station/station.did.js index 5632e07eb..d2cee1710 100644 --- a/apps/wallet/src/generated/station/station.did.js +++ b/apps/wallet/src/generated/station/station.did.js @@ -70,6 +70,8 @@ export const idlFactory = ({ IDL }) => { const AssetMetadata = IDL.Record({ 'key' : IDL.Text, 'value' : IDL.Text }); const AssetSymbol = IDL.Text; const Asset = IDL.Record({ + 'id' : UUID, + 'decimals' : IDL.Nat32, 'standards' : IDL.Vec(IDL.Text), 'metadata' : IDL.Vec(AssetMetadata), 'name' : IDL.Text, @@ -90,6 +92,7 @@ export const idlFactory = ({ IDL }) => { 'Immediate' : IDL.Null, 'Scheduled' : IDL.Record({ 'execution_time' : TimestampRFC3339 }), }); + const RemoveAssetOperationInput = IDL.Record({ 'asset_id' : UUID }); const AddUserGroupOperationInput = IDL.Record({ 'name' : IDL.Text }); const ResourceId = IDL.Variant({ 'Id' : UUID, 'Any' : IDL.Null }); const RequestResourceAction = IDL.Variant({ @@ -166,6 +169,7 @@ export const idlFactory = ({ IDL }) => { 'ExternalCanister' : ExternalCanisterResourceAction, 'Account' : AccountResourceAction, 'AddressBook' : ResourceAction, + 'Asset' : ResourceAction, 'UserGroup' : ResourceAction, 'Permission' : PermissionResourceAction, 'RequestPolicy' : ResourceAction, @@ -290,6 +294,20 @@ export const idlFactory = ({ IDL }) => { 'name' : IDL.Text, 'identities' : IDL.Vec(IDL.Principal), }); + const ChangeMetadata = IDL.Variant({ + 'OverrideSpecifiedBy' : IDL.Vec(AssetMetadata), + 'RemoveKeys' : IDL.Vec(IDL.Text), + 'ReplaceAllBy' : IDL.Vec(AssetMetadata), + }); + const EditAssetOperationInput = IDL.Record({ + 'decimals' : IDL.Opt(IDL.Nat32), + 'standards' : IDL.Opt(IDL.Vec(IDL.Text)), + 'name' : IDL.Opt(IDL.Text), + 'blockchain' : IDL.Opt(IDL.Text), + 'change_metadata' : IDL.Opt(ChangeMetadata), + 'asset_id' : UUID, + 'symbol' : IDL.Opt(AssetSymbol), + }); const EditUserGroupOperationInput = IDL.Record({ 'name' : IDL.Text, 'user_group_id' : UUID, @@ -301,20 +319,23 @@ export const idlFactory = ({ IDL }) => { const SetDisasterRecoveryOperationInput = IDL.Record({ 'committee' : IDL.Opt(DisasterRecoveryCommittee), }); + const ResourceIds = IDL.Variant({ 'Any' : IDL.Null, 'Ids' : IDL.Vec(UUID) }); const ResourceSpecifier = IDL.Variant({ 'Any' : IDL.Null, 'Resource' : Resource, }); - const ResourceIds = IDL.Variant({ 'Any' : IDL.Null, 'Ids' : IDL.Vec(UUID) }); const RequestSpecifier = IDL.Variant({ + 'RemoveAsset' : ResourceIds, 'AddUserGroup' : IDL.Null, 'EditPermission' : ResourceSpecifier, 'ChangeExternalCanister' : ExternalCanisterId, 'AddUser' : IDL.Null, + 'EditAsset' : ResourceIds, 'EditUserGroup' : ResourceIds, 'SetDisasterRecovery' : IDL.Null, 'EditRequestPolicy' : ResourceIds, 'RemoveRequestPolicy' : ResourceIds, + 'AddAsset' : IDL.Null, 'SystemUpgrade' : IDL.Null, 'RemoveAddressBookEntry' : ResourceIds, 'CreateExternalCanister' : IDL.Null, @@ -336,6 +357,14 @@ export const idlFactory = ({ IDL }) => { 'policy_id' : UUID, }); const RemoveRequestPolicyOperationInput = IDL.Record({ 'policy_id' : UUID }); + const AddAssetOperationInput = IDL.Record({ + 'decimals' : IDL.Nat32, + 'standards' : IDL.Vec(IDL.Text), + 'metadata' : IDL.Vec(AssetMetadata), + 'name' : IDL.Text, + 'blockchain' : IDL.Text, + 'symbol' : AssetSymbol, + }); const SystemUpgradeTarget = IDL.Variant({ 'UpgradeUpgrader' : IDL.Null, 'UpgradeStation' : IDL.Null, @@ -456,15 +485,18 @@ export const idlFactory = ({ IDL }) => { 'standard' : IDL.Text, }); const RequestOperationInput = IDL.Variant({ + 'RemoveAsset' : RemoveAssetOperationInput, 'AddUserGroup' : AddUserGroupOperationInput, 'EditPermission' : EditPermissionOperationInput, 'ConfigureExternalCanister' : ConfigureExternalCanisterOperationInput, 'ChangeExternalCanister' : ChangeExternalCanisterOperationInput, 'AddUser' : AddUserOperationInput, + 'EditAsset' : EditAssetOperationInput, 'EditUserGroup' : EditUserGroupOperationInput, 'SetDisasterRecovery' : SetDisasterRecoveryOperationInput, 'EditRequestPolicy' : EditRequestPolicyOperationInput, 'RemoveRequestPolicy' : RemoveRequestPolicyOperationInput, + 'AddAsset' : AddAssetOperationInput, 'SystemUpgrade' : SystemUpgradeOperationInput, 'RemoveAddressBookEntry' : RemoveAddressBookEntryOperationInput, 'CreateExternalCanister' : CreateExternalCanisterOperationInput, @@ -500,6 +532,9 @@ export const idlFactory = ({ IDL }) => { 'Created' : IDL.Null, 'Completed' : IDL.Record({ 'completed_at' : TimestampRFC3339 }), }); + const RemoveAssetOperation = IDL.Record({ + 'input' : RemoveAssetOperationInput, + }); const UserGroup = IDL.Record({ 'id' : UUID, 'name' : IDL.Text }); const AddUserGroupOperation = IDL.Record({ 'user_group' : IDL.Opt(UserGroup), @@ -528,6 +563,7 @@ export const idlFactory = ({ IDL }) => { 'user' : IDL.Opt(User), 'input' : AddUserOperationInput, }); + const EditAssetOperation = IDL.Record({ 'input' : EditAssetOperationInput }); const EditUserGroupOperation = IDL.Record({ 'input' : EditUserGroupOperationInput, }); @@ -540,6 +576,10 @@ export const idlFactory = ({ IDL }) => { const RemoveRequestPolicyOperation = IDL.Record({ 'input' : RemoveRequestPolicyOperationInput, }); + const AddAssetOperation = IDL.Record({ + 'asset' : IDL.Opt(Asset), + 'input' : AddAssetOperationInput, + }); const SystemUpgradeOperation = IDL.Record({ 'module_checksum' : Sha256Hash, 'target' : SystemUpgradeTarget, @@ -622,15 +662,18 @@ export const idlFactory = ({ IDL }) => { 'input' : AddAccountOperationInput, }); const RequestOperation = IDL.Variant({ + 'RemoveAsset' : RemoveAssetOperation, 'AddUserGroup' : AddUserGroupOperation, 'EditPermission' : EditPermissionOperation, 'ConfigureExternalCanister' : ConfigureExternalCanisterOperation, 'ChangeExternalCanister' : ChangeExternalCanisterOperation, 'AddUser' : AddUserOperation, + 'EditAsset' : EditAssetOperation, 'EditUserGroup' : EditUserGroupOperation, 'SetDisasterRecovery' : SetDisasterRecoveryOperation, 'EditRequestPolicy' : EditRequestPolicyOperation, 'RemoveRequestPolicy' : RemoveRequestPolicyOperation, + 'AddAsset' : AddAssetOperation, 'SystemUpgrade' : SystemUpgradeOperation, 'RemoveAddressBookEntry' : RemoveAddressBookEntryOperation, 'CreateExternalCanister' : CreateExternalCanisterOperation, @@ -765,6 +808,19 @@ export const idlFactory = ({ IDL }) => { }), 'Err' : Error, }); + const GetAssetInput = IDL.Record({ 'asset_id' : UUID }); + const AssetCallerPrivileges = IDL.Record({ + 'id' : UUID, + 'can_delete' : IDL.Bool, + 'can_edit' : IDL.Bool, + }); + const GetAssetResult = IDL.Variant({ + 'Ok' : IDL.Record({ + 'privileges' : AssetCallerPrivileges, + 'asset' : Asset, + }), + 'Err' : Error, + }); const GetExternalCanisterInput = IDL.Record({ 'canister_id' : IDL.Principal, }); @@ -828,15 +884,18 @@ export const idlFactory = ({ IDL }) => { 'Err' : Error, }); const ListRequestsOperationType = IDL.Variant({ + 'RemoveAsset' : IDL.Null, 'AddUserGroup' : IDL.Null, 'EditPermission' : IDL.Null, 'ConfigureExternalCanister' : IDL.Opt(IDL.Principal), 'ChangeExternalCanister' : IDL.Opt(IDL.Principal), 'AddUser' : IDL.Null, + 'EditAsset' : IDL.Null, 'EditUserGroup' : IDL.Null, 'SetDisasterRecovery' : IDL.Null, 'EditRequestPolicy' : IDL.Null, 'RemoveRequestPolicy' : IDL.Null, + 'AddAsset' : IDL.Null, 'SystemUpgrade' : IDL.Null, 'RemoveAddressBookEntry' : IDL.Null, 'CreateExternalCanister' : IDL.Null, @@ -1022,6 +1081,16 @@ export const idlFactory = ({ IDL }) => { }), 'Err' : Error, }); + const ListAssetsInput = IDL.Record({ 'paginate' : IDL.Opt(PaginationInput) }); + const ListAssetsResult = IDL.Variant({ + 'Ok' : IDL.Record({ + 'total' : IDL.Nat64, + 'privileges' : IDL.Vec(AssetCallerPrivileges), + 'assets' : IDL.Vec(Asset), + 'next_offset' : IDL.Opt(IDL.Nat64), + }), + 'Err' : Error, + }); const SortByDirection = IDL.Variant({ 'Asc' : IDL.Null, 'Desc' : IDL.Null }); const ListExternalCanistersSortInput = IDL.Variant({ 'Name' : SortByDirection, @@ -1057,15 +1126,18 @@ export const idlFactory = ({ IDL }) => { 'notification_type' : IDL.Opt(NotificationTypeInput), }); const RequestOperationType = IDL.Variant({ + 'RemoveAsset' : IDL.Null, 'AddUserGroup' : IDL.Null, 'EditPermission' : IDL.Null, 'ConfigureExternalCanister' : IDL.Null, 'ChangeExternalCanister' : IDL.Null, 'AddUser' : IDL.Null, + 'EditAsset' : IDL.Null, 'EditUserGroup' : IDL.Null, 'SetDisasterRecovery' : IDL.Null, 'EditRequestPolicy' : IDL.Null, 'RemoveRequestPolicy' : IDL.Null, + 'AddAsset' : IDL.Null, 'SystemUpgrade' : IDL.Null, 'RemoveAddressBookEntry' : IDL.Null, 'CreateExternalCanister' : IDL.Null, @@ -1308,6 +1380,7 @@ export const idlFactory = ({ IDL }) => { [GetAddressBookEntryResult], ['query'], ), + 'get_asset' : IDL.Func([GetAssetInput], [GetAssetResult], ['query']), 'get_external_canister' : IDL.Func( [GetExternalCanisterInput], [GetExternalCanisterResult], @@ -1362,6 +1435,7 @@ export const idlFactory = ({ IDL }) => { [ListAddressBookEntriesResult], ['query'], ), + 'list_assets' : IDL.Func([ListAssetsInput], [ListAssetsResult], ['query']), 'list_external_canisters' : IDL.Func( [ListExternalCanistersInput], [ListExternalCanistersResult], diff --git a/apps/wallet/src/mappers/permissions.mapper.ts b/apps/wallet/src/mappers/permissions.mapper.ts index 179b53104..bde3bbb88 100644 --- a/apps/wallet/src/mappers/permissions.mapper.ts +++ b/apps/wallet/src/mappers/permissions.mapper.ts @@ -43,6 +43,10 @@ export const fromResourceToResourceEnum = (resource: Resource): ResourceTypeEnum return ResourceTypeEnum.Notification; } + if (variantIs(resource, 'Asset')) { + return ResourceTypeEnum.Asset; + } + return unreachable(resource); }; diff --git a/apps/wallet/src/mappers/request-specifiers.mapper.ts b/apps/wallet/src/mappers/request-specifiers.mapper.ts index 2cb33965f..189b629bf 100644 --- a/apps/wallet/src/mappers/request-specifiers.mapper.ts +++ b/apps/wallet/src/mappers/request-specifiers.mapper.ts @@ -91,6 +91,18 @@ export const mapRequestSpecifierToEnum = (specifier: RequestSpecifier): RequestS return RequestSpecifierEnum.SetDisasterRecovery; } + if (variantIs(specifier, 'AddAsset')) { + return RequestSpecifierEnum.AddAsset; + } + + if (variantIs(specifier, 'EditAsset')) { + return RequestSpecifierEnum.EditAsset; + } + + if (variantIs(specifier, 'RemoveAsset')) { + return RequestSpecifierEnum.RemoveAsset; + } + return unreachable(specifier); }; diff --git a/apps/wallet/src/mappers/requests.mapper.ts b/apps/wallet/src/mappers/requests.mapper.ts index cd7c4f9d0..c18b5b81f 100644 --- a/apps/wallet/src/mappers/requests.mapper.ts +++ b/apps/wallet/src/mappers/requests.mapper.ts @@ -79,6 +79,14 @@ export const mapRequestsOperationTypeToGroup = ( return ListRequestsOperationTypeGroup.ExternalCanister; } + if ( + variantIs(operationType, 'AddAsset') || + variantIs(operationType, 'EditAsset') || + variantIs(operationType, 'RemoveAsset') + ) { + return ListRequestsOperationTypeGroup.Asset; + } + return unreachable(operationType); }; @@ -241,6 +249,15 @@ export const mapRequestOperationToTypeEnum = ( if (variantIs(operation, 'SetDisasterRecovery')) { return RequestOperationEnum.SetDisasterRecovery; } + if (variantIs(operation, 'AddAsset')) { + return RequestOperationEnum.AddAsset; + } + if (variantIs(operation, 'EditAsset')) { + return RequestOperationEnum.EditAsset; + } + if (variantIs(operation, 'RemoveAsset')) { + return RequestOperationEnum.RemoveAsset; + } return unreachable(operation); }; @@ -310,6 +327,12 @@ export const mapRequestOperationToListRequestsOperationType = ( return { FundExternalCanister: [] }; } else if (variantIs(requestOperation, 'SetDisasterRecovery')) { return { SetDisasterRecovery: null }; + } else if (variantIs(requestOperation, 'AddAsset')) { + return { AddAsset: null }; + } else if (variantIs(requestOperation, 'EditAsset')) { + return { EditAsset: null }; + } else if (variantIs(requestOperation, 'RemoveAsset')) { + return { RemoveAsset: null }; } else { return unreachable(requestOperation); } diff --git a/apps/wallet/src/types/permissions.types.ts b/apps/wallet/src/types/permissions.types.ts index ef6eded9f..7fd3cc385 100644 --- a/apps/wallet/src/types/permissions.types.ts +++ b/apps/wallet/src/types/permissions.types.ts @@ -13,6 +13,7 @@ export enum ResourceTypeEnum { ExternalCanister = 'ExternalCanister', SetDisasterRecovery = 'SetDisasterRecovery', Notification = 'Notification', + Asset = 'Asset', } export enum ResourceActionEnum { diff --git a/apps/wallet/src/types/requests.types.ts b/apps/wallet/src/types/requests.types.ts index 3143cf482..e37f5c080 100644 --- a/apps/wallet/src/types/requests.types.ts +++ b/apps/wallet/src/types/requests.types.ts @@ -11,6 +11,7 @@ export enum ListRequestsOperationTypeGroup { SystemUpgrade = 'system_upgrade', SystemInfo = 'system_info', ExternalCanister = 'external_canister', + Asset = 'asset', } export enum RequestApprovalStatusEnum { diff --git a/apps/wallet/src/types/station.types.ts b/apps/wallet/src/types/station.types.ts index e40a28e03..e9576100a 100644 --- a/apps/wallet/src/types/station.types.ts +++ b/apps/wallet/src/types/station.types.ts @@ -107,6 +107,9 @@ export enum RequestSpecifierEnum { CallExternalCanister = 'CallExternalCanister', FundExternalCanister = 'FundExternalCanister', SetDisasterRecovery = 'SetDisasterRecovery', + AddAsset = 'AddAsset', + EditAsset = 'EditAsset', + RemoveAsset = 'RemoveAsset', } export enum RequestPolicyRuleEnum { @@ -168,4 +171,7 @@ export enum RequestOperationEnum { ConfigureExternalCanister = 'ConfigureExternalCanister', FundExternalCanister = 'FundExternalCanister', SetDisasterRecovery = 'SetDisasterRecovery', + AddAsset = 'AddAsset', + EditAsset = 'EditAsset', + RemoveAsset = 'RemoveAsset', } diff --git a/core/station/api/spec.did b/core/station/api/spec.did index 2e9d5c1bd..868800e48 100644 --- a/core/station/api/spec.did +++ b/core/station/api/spec.did @@ -59,6 +59,9 @@ type RequestSpecifier = variant { EditUserGroup : ResourceIds; RemoveUserGroup : ResourceIds; ManageSystemInfo; + AddAsset; + EditAsset : ResourceIds; + RemoveAsset : ResourceIds; }; // A record type that can be used to represent a percentage of users that are required to approve a rule. @@ -862,6 +865,12 @@ type RequestOperation = variant { RemoveRequestPolicy : RemoveRequestPolicyOperation; // An operation for managing system info. ManageSystemInfo : ManageSystemInfoOperation; + // An operation for adding a new asset. + AddAsset : AddAssetOperation; + // An operation for editing an existing asset. + EditAsset : EditAssetOperation; + // An operation for removing an existing asset. + RemoveAsset : RemoveAssetOperation; }; type RequestOperationInput = variant { @@ -911,6 +920,12 @@ type RequestOperationInput = variant { RemoveRequestPolicy : RemoveRequestPolicyOperationInput; // An operation for managing system info. ManageSystemInfo : ManageSystemInfoOperationInput; + // An operation for adding a new asset. + AddAsset : AddAssetOperationInput; + // An operation for editing an existing asset. + EditAsset : EditAssetOperationInput; + // An operation for removing an existing asset. + RemoveAsset : RemoveAssetOperationInput; }; type RequestOperationType = variant { @@ -960,6 +975,12 @@ type RequestOperationType = variant { RemoveRequestPolicy; // And operation for managing system info. ManageSystemInfo; + // An operation for adding a new asset. + AddAsset; + // An operation for editing an existing asset. + EditAsset; + // An operation for removing an existing asset. + RemoveAsset; }; // The schedule for executing a transaction of a given transfer. @@ -1091,6 +1112,12 @@ type ListRequestsOperationType = variant { ManageSystemInfo; // An operation for setting disaster recovery config. SetDisasterRecovery; + // An operation for adding an asset. + AddAsset; + // An operation for editing an asset. + EditAsset; + // An operation for removing an asset. + RemoveAsset; }; // The direction to use for sorting. @@ -1638,6 +1665,8 @@ type AssetMetadata = record { // A record type that can be used to represent an asset in the station. type Asset = record { + // The internal asset id. + id : UUID; // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) blockchain : text; // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string @@ -1651,6 +1680,8 @@ type Asset = record { // also, in the case of non-native assets, it can contain other required // information (e.g. `{"address": "0x1234"}`). metadata : vec AssetMetadata; + // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). + decimals : nat32; }; // A record type that is used to show the current capabilities of the station. @@ -1929,6 +1960,7 @@ type Resource = variant { System : SystemResourceAction; User : UserResourceAction; UserGroup : ResourceAction; + Asset : ResourceAction; }; // A record type that can be used to represent the caller privileges for a given permission. @@ -2089,6 +2121,126 @@ type ListRequestPoliciesResult = variant { Err : Error; }; +type AddAssetOperation = record { + // The result of adding an asset. + asset : opt Asset; + // The input to the request to add an asset. + input : AddAssetOperationInput; +}; + +// The input type for adding an asset. +type AddAssetOperationInput = record { + // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + blockchain : text; + // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string + // with spaces replaced with underscores. + standards : vec text; + // The asset symbol, e.g. "ICP" or "BTC". + symbol : AssetSymbol; + // The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) + name : text; + // The asset metadata (e.g. `{"logo": "https://example.com/logo.png"}`), + // also, in the case of non-native assets, it can contain other required + // information (e.g. `{"address": "0x1234"}`). + metadata : vec AssetMetadata; + // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). + decimals : nat32; +}; + +type EditAssetOperation = record { + // The input to the request to edit an asset. + input : EditAssetOperationInput; +}; + +// The input type for editing an asset. +type EditAssetOperationInput = record { + // The asset id to edit. + asset_id : UUID; + // The name of the asset. + name : opt text; + // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + blockchain : opt text; + // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string + // with spaces replaced with underscores. + standards : opt vec text; + // The asset symbol, e.g. "ICP" or "BTC". + symbol : opt AssetSymbol; + // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). + decimals : opt nat32; + // The metadata to change. + change_metadata : opt ChangeMetadata; +}; + +// Type for instructions to update the address book entry's metadata. +type ChangeMetadata = variant { + // Replace all existing metadata by the specified metadata. + ReplaceAllBy : vec AssetMetadata; + // Override values of existing metadata with the specified keys + // and add new metadata if no metadata can be found with the specified keys. + OverrideSpecifiedBy : vec AssetMetadata; + // Remove metadata with the specified keys. + RemoveKeys : vec text; +}; + +type RemoveAssetOperation = record { + // The input to the request to remove an asset. + input : RemoveAssetOperationInput; +}; + +// The input type for removing an asset. +type RemoveAssetOperationInput = record { + // The asset id to remove. + asset_id : UUID; +}; + +// The input type for listing assets. +type ListAssetsInput = record { + // The pagination parameters. + paginate : opt PaginationInput; +}; + +// The result type for listing assets. +type ListAssetsResult = variant { + // The result data for a successful execution. + Ok : record { + // The list of assets. + assets : vec Asset; + // The offset to use for the next page. + next_offset : opt nat64; + // The total number of assets. + total : nat64; + // The caller privileges for the assets. + privileges : vec AssetCallerPrivileges; + }; + // The error that occurred (e.g. the user does not have the necessary permissions). + Err : Error; +}; + +// The input type for getting an asset. +type GetAssetInput = record { + // The asset id to retrieve. + asset_id : UUID; +}; + +// The result type for getting an asset. +type GetAssetResult = variant { + // The result data for a successful execution. + Ok : record { + // The asset that was retrieved. + asset : Asset; + // The caller privileges for the asset. + privileges : AssetCallerPrivileges; + }; + // The error that occurred (e.g. the user does not have the necessary permissions). + Err : Error; +}; + +type AssetCallerPrivileges = record { + id : UUID; + can_edit : bool; + can_delete : bool; +}; + // The top level privileges that the user has when making calls to the canister. type UserPrivilege = variant { Capabilities; @@ -2565,4 +2717,8 @@ service : (opt SystemInstall) -> { http_request : (HttpRequest) -> (HttpResponse) query; // Internal endpoint used by the upgrader canister to notify the station about a failed station upgrade request. notify_failed_station_upgrade : (NotifyFailedStationUpgradeInput) -> (NotifyFailedStationUpgradeResult); + // Get an asset by id. + get_asset : (input : GetAssetInput) -> (GetAssetResult) query; + // List all assets that the caller has access to. + list_assets : (input : ListAssetsInput) -> (ListAssetsResult) query; }; diff --git a/core/station/api/src/asset.rs b/core/station/api/src/asset.rs new file mode 100644 index 000000000..242fc822d --- /dev/null +++ b/core/station/api/src/asset.rs @@ -0,0 +1,97 @@ +use candid::CandidType; +use serde::Deserialize; + +use crate::{ChangeMetadataDTO, MetadataDTO, PaginationInput, UuidDTO}; + +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub struct AssetDTO { + /// The asset identifier, which is a UUID. + pub id: UuidDTO, + /// The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + pub blockchain: String, + /// The asset symbol (e.g. `ICP`, `BTC`, `ETH`, etc.) + pub symbol: String, + /// The number of decimal places that the asset supports (e.g. `8` for `BTC`, `18` for `ETH`, etc.) + pub decimals: u32, + // The asset standard that is supported (e.g. `erc20`, etc.), canonically + // represented as a lowercase string with spaces replaced with underscores. + pub standards: Vec, + /// The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) + pub name: String, + /// The asset metadata (e.g. `{"logo": "https://example.com/logo.png"}`), + /// also, in the case of non-native assets, it can contain other required + /// information (e.g. `{"address": "0x1234"}`). + pub metadata: Vec, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub struct AddAssetOperationDTO { + pub asset: Option, + pub input: AddAssetOperationInput, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub struct AddAssetOperationInput { + pub name: String, + pub blockchain: String, + pub standards: Vec, + pub symbol: String, + pub decimals: u32, + pub metadata: Vec, +} +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub struct EditAssetOperationDTO { + pub input: EditAssetOperationInput, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub struct EditAssetOperationInput { + pub asset_id: UuidDTO, + pub name: Option, + pub blockchain: Option, + pub standards: Option>, + pub symbol: Option, + pub decimals: Option, + pub change_metadata: Option, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct RemoveAssetOperationDTO { + pub input: RemoveAssetOperationInput, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct RemoveAssetOperationInput { + pub asset_id: UuidDTO, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct ListAssetsInput { + pub paginate: Option, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct ListAssetsResponse { + pub assets: Vec, + pub next_offset: Option, + pub total: u64, + pub privileges: Vec, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct AssetCallerPrivilegesDTO { + pub id: UuidDTO, + pub can_edit: bool, + pub can_delete: bool, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct GetAssetInput { + pub asset_id: UuidDTO, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct GetAssetResponse { + pub asset: AssetDTO, + pub privileges: AssetCallerPrivilegesDTO, +} diff --git a/core/station/api/src/capabilities.rs b/core/station/api/src/capabilities.rs index 5a06fc3cc..60671aba2 100644 --- a/core/station/api/src/capabilities.rs +++ b/core/station/api/src/capabilities.rs @@ -1,23 +1,6 @@ -use crate::MetadataDTO; +use crate::AssetDTO; use candid::{CandidType, Deserialize}; -#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] -pub struct AssetDTO { - /// The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) - pub blockchain: String, - /// The asset symbol (e.g. `ICP`, `BTC`, `ETH`, etc.) - pub symbol: String, - // The asset standard that is supported (e.g. `erc20`, etc.), canonically - // represented as a lowercase string with spaces replaced with underscores. - pub standards: Vec, - /// The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) - pub name: String, - /// The asset metadata (e.g. `{"logo": "https://example.com/logo.png"}`), - /// also, in the case of non-native assets, it can contain other required - /// information (e.g. `{"address": "0x1234"}`). - pub metadata: Vec, -} - /// The capabilities of the canister. #[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] pub struct CapabilitiesDTO { diff --git a/core/station/api/src/lib.rs b/core/station/api/src/lib.rs index 6b1b4e144..4f47b8ad1 100644 --- a/core/station/api/src/lib.rs +++ b/core/station/api/src/lib.rs @@ -48,3 +48,6 @@ pub use resource::*; mod disaster_recovery; pub use disaster_recovery::*; + +mod asset; +pub use asset::*; diff --git a/core/station/api/src/request.rs b/core/station/api/src/request.rs index 5b47963b2..eee8cc290 100644 --- a/core/station/api/src/request.rs +++ b/core/station/api/src/request.rs @@ -3,18 +3,19 @@ use super::{ }; use crate::{ AddAccountOperationDTO, AddAccountOperationInput, AddAddressBookEntryOperationDTO, - AddAddressBookEntryOperationInput, AddUserGroupOperationDTO, AddUserGroupOperationInput, - AddUserOperationDTO, AddUserOperationInput, CallExternalCanisterOperationDTO, - CallExternalCanisterOperationInput, ChangeExternalCanisterOperationDTO, - ChangeExternalCanisterOperationInput, ConfigureExternalCanisterOperationDTO, - ConfigureExternalCanisterOperationInput, CreateExternalCanisterOperationDTO, - CreateExternalCanisterOperationInput, DisplayUserDTO, EditAccountOperationDTO, - EditAddressBookEntryOperationDTO, EditAddressBookEntryOperationInput, - EditPermissionOperationDTO, EditPermissionOperationInput, EditUserGroupOperationDTO, - EditUserGroupOperationInput, EditUserOperationDTO, EditUserOperationInput, - FundExternalCanisterOperationDTO, FundExternalCanisterOperationInput, - ManageSystemInfoOperationDTO, ManageSystemInfoOperationInput, PaginationInput, - RemoveAddressBookEntryOperationDTO, RemoveAddressBookEntryOperationInput, + AddAddressBookEntryOperationInput, AddAssetOperationDTO, AddAssetOperationInput, + AddUserGroupOperationDTO, AddUserGroupOperationInput, AddUserOperationDTO, + AddUserOperationInput, CallExternalCanisterOperationDTO, CallExternalCanisterOperationInput, + ChangeExternalCanisterOperationDTO, ChangeExternalCanisterOperationInput, + ConfigureExternalCanisterOperationDTO, ConfigureExternalCanisterOperationInput, + CreateExternalCanisterOperationDTO, CreateExternalCanisterOperationInput, DisplayUserDTO, + EditAccountOperationDTO, EditAddressBookEntryOperationDTO, EditAddressBookEntryOperationInput, + EditAssetOperationDTO, EditAssetOperationInput, EditPermissionOperationDTO, + EditPermissionOperationInput, EditUserGroupOperationDTO, EditUserGroupOperationInput, + EditUserOperationDTO, EditUserOperationInput, FundExternalCanisterOperationDTO, + FundExternalCanisterOperationInput, ManageSystemInfoOperationDTO, + ManageSystemInfoOperationInput, PaginationInput, RemoveAddressBookEntryOperationDTO, + RemoveAddressBookEntryOperationInput, RemoveAssetOperationDTO, RemoveAssetOperationInput, RemoveUserGroupOperationDTO, RemoveUserGroupOperationInput, RequestEvaluationResultDTO, RequestPolicyRuleDTO, RequestSpecifierDTO, SetDisasterRecoveryOperationDTO, SetDisasterRecoveryOperationInput, SortDirection, SystemUpgradeOperationDTO, @@ -83,6 +84,9 @@ pub enum RequestOperationDTO { EditRequestPolicy(Box), RemoveRequestPolicy(Box), ManageSystemInfo(Box), + AddAsset(Box), + EditAsset(Box), + RemoveAsset(Box), } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] @@ -110,6 +114,9 @@ pub enum RequestOperationInput { EditRequestPolicy(EditRequestPolicyOperationInput), RemoveRequestPolicy(RemoveRequestPolicyOperationInput), ManageSystemInfo(ManageSystemInfoOperationInput), + AddAsset(AddAssetOperationInput), + EditAsset(EditAssetOperationInput), + RemoveAsset(RemoveAssetOperationInput), } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] @@ -137,6 +144,9 @@ pub enum RequestOperationTypeDTO { RemoveRequestPolicy, ManageSystemInfo, ConfigureExternalCanister, + AddAsset, + EditAsset, + RemoveAsset, } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] @@ -164,6 +174,9 @@ pub enum ListRequestsOperationTypeDTO { ManageSystemInfo, SetDisasterRecovery, ConfigureExternalCanister(Option), + AddAsset, + EditAsset, + RemoveAsset, } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] diff --git a/core/station/api/src/request_policy.rs b/core/station/api/src/request_policy.rs index 98001c18f..f48a80b4e 100644 --- a/core/station/api/src/request_policy.rs +++ b/core/station/api/src/request_policy.rs @@ -28,6 +28,9 @@ pub enum RequestSpecifierDTO { EditUserGroup(ResourceIdsDTO), RemoveUserGroup(ResourceIdsDTO), ManageSystemInfo, + AddAsset, + EditAsset(ResourceIdsDTO), + RemoveAsset(ResourceIdsDTO), } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] diff --git a/core/station/api/src/resource.rs b/core/station/api/src/resource.rs index f13be8774..eb15823a6 100644 --- a/core/station/api/src/resource.rs +++ b/core/station/api/src/resource.rs @@ -13,6 +13,7 @@ pub enum ResourceDTO { System(SystemResourceActionDTO), User(UserResourceActionDTO), UserGroup(ResourceActionDTO), + Asset(ResourceActionDTO), } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] diff --git a/core/station/impl/results.yml b/core/station/impl/results.yml index a32bce39d..de7642f18 100644 --- a/core/station/impl/results.yml +++ b/core/station/impl/results.yml @@ -1,19 +1,19 @@ benches: batch_insert_100_requests: total: - instructions: 224484119 + instructions: 223273648 heap_increase: 0 stable_memory_increase: 96 scopes: {} find_100_users_from_50k_user_dataset: total: - instructions: 218535601 + instructions: 218785553 heap_increase: 97 stable_memory_increase: 0 scopes: {} find_500_external_canister_policies_from_50k_dataset: total: - instructions: 30920471 + instructions: 27420236 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -25,32 +25,32 @@ benches: scopes: {} list_1k_requests: total: - instructions: 95868889 + instructions: 95100088 heap_increase: 7 stable_memory_increase: 0 scopes: {} list_external_canisters_with_all_statuses: total: - instructions: 201197808 + instructions: 201388896 heap_increase: 0 stable_memory_increase: 0 scopes: {} repository_find_1k_requests_from_10k_dataset_default_filters: total: - instructions: 94491311 + instructions: 92122280 heap_increase: 17 stable_memory_increase: 0 scopes: {} service_filter_5k_requests_from_100k_dataset: total: - instructions: 686870525 + instructions: 675449342 heap_increase: 106 stable_memory_increase: 16 scopes: {} service_find_all_requests_from_2k_dataset: total: - instructions: 278337883 + instructions: 273768628 heap_increase: 44 stable_memory_increase: 16 scopes: {} -version: 0.1.4 +version: 0.1.5 diff --git a/core/station/impl/src/controllers/asset.rs b/core/station/impl/src/controllers/asset.rs new file mode 100644 index 000000000..1e103cfdc --- /dev/null +++ b/core/station/impl/src/controllers/asset.rs @@ -0,0 +1,78 @@ +use crate::{ + core::middlewares::{authorize, call_context}, + mappers::HelperMapper, + models::resource::{Resource, ResourceAction}, + services::AssetService, +}; +use ic_cdk_macros::query; +use lazy_static::lazy_static; +use orbit_essentials::api::ApiResult; +use orbit_essentials::with_middleware; +use station_api::{ + AssetCallerPrivilegesDTO, GetAssetInput, GetAssetResponse, ListAssetsInput, ListAssetsResponse, +}; + +#[query(name = "get_asset")] +async fn get_asset(input: GetAssetInput) -> ApiResult { + CONTROLLER.get_asset(input).await +} + +#[query(name = "list_assets")] +async fn list_assets(input: ListAssetsInput) -> ApiResult { + CONTROLLER.list_assets(input).await +} + +lazy_static! { + static ref CONTROLLER: AssetController = AssetController::new(AssetService::default()); +} + +#[derive(Debug)] +pub struct AssetController { + asset_service: AssetService, +} + +impl AssetController { + pub fn new(asset_service: AssetService) -> Self { + Self { asset_service } + } + + #[with_middleware(guard = authorize(&call_context(), &[Resource::from(&input)]))] + async fn get_asset(&self, input: GetAssetInput) -> ApiResult { + let ctx = call_context(); + let asset = self + .asset_service + .get(HelperMapper::to_uuid(input.asset_id)?.as_bytes())?; + let privileges = self + .asset_service + .get_caller_privileges_for_asset(&asset.id, &ctx) + .await?; + + Ok(GetAssetResponse { + asset: asset.into(), + privileges: privileges.into(), + }) + } + + #[with_middleware(guard = authorize(&call_context(), &[Resource::Asset(ResourceAction::List)]))] + async fn list_assets(&self, input: ListAssetsInput) -> ApiResult { + let ctx = call_context(); + let result = self.asset_service.list(input, Some(&ctx))?; + let mut privileges = Vec::new(); + + for asset in &result.items { + let asset_privileges = self + .asset_service + .get_caller_privileges_for_asset(&asset.id, &ctx) + .await?; + + privileges.push(AssetCallerPrivilegesDTO::from(asset_privileges)); + } + + Ok(ListAssetsResponse { + assets: result.items.into_iter().map(Into::into).collect(), + next_offset: result.next_offset, + total: result.total, + privileges, + }) + } +} diff --git a/core/station/impl/src/controllers/mod.rs b/core/station/impl/src/controllers/mod.rs index 420facaa0..cb70a4d3e 100644 --- a/core/station/impl/src/controllers/mod.rs +++ b/core/station/impl/src/controllers/mod.rs @@ -42,6 +42,9 @@ pub use user_group::*; mod http; pub use http::*; +mod asset; +pub use asset::*; + #[cfg(test)] mod tests { use orbit_essentials::api::*; diff --git a/core/station/impl/src/core/init.rs b/core/station/impl/src/core/init.rs index 92cba9383..06c83af77 100644 --- a/core/station/impl/src/core/init.rs +++ b/core/station/impl/src/core/init.rs @@ -165,6 +165,27 @@ lazy_static! { Allow::user_groups(vec![*ADMIN_GROUP_ID]), Resource::ExternalCanister(ExternalCanisterResourceAction::Read(ExternalCanisterId::Any)), ), + // assets + ( + Allow::user_groups(vec![*ADMIN_GROUP_ID]), + Resource::Asset(ResourceAction::Create), + ), + ( + Allow::user_groups(vec![*ADMIN_GROUP_ID]), + Resource::Asset(ResourceAction::List), + ), + ( + Allow::user_groups(vec![*ADMIN_GROUP_ID]), + Resource::Asset(ResourceAction::Read(ResourceId::Any)), + ), + ( + Allow::user_groups(vec![*ADMIN_GROUP_ID]), + Resource::Asset(ResourceAction::Update(ResourceId::Any)), + ), + ( + Allow::user_groups(vec![*ADMIN_GROUP_ID]), + Resource::Asset(ResourceAction::Delete(ResourceId::Any)), + ), ]; } @@ -255,5 +276,18 @@ pub fn default_policies(admin_quorum: u16) -> Vec<(RequestSpecifier, RequestPoli }), RequestPolicyRule::Quorum(UserSpecifier::Group(vec![*ADMIN_GROUP_ID]), admin_quorum), ), + // create, edit, and remove assets + ( + RequestSpecifier::AddAsset, + RequestPolicyRule::Quorum(UserSpecifier::Group(vec![*ADMIN_GROUP_ID]), admin_quorum), + ), + ( + RequestSpecifier::EditAsset(ResourceIds::Any), + RequestPolicyRule::Quorum(UserSpecifier::Group(vec![*ADMIN_GROUP_ID]), admin_quorum), + ), + ( + RequestSpecifier::RemoveAsset(ResourceIds::Any), + RequestPolicyRule::Quorum(UserSpecifier::Group(vec![*ADMIN_GROUP_ID]), admin_quorum), + ), ] } diff --git a/core/station/impl/src/core/validation.rs b/core/station/impl/src/core/validation.rs index cbb2f4df7..e4563ef1f 100644 --- a/core/station/impl/src/core/validation.rs +++ b/core/station/impl/src/core/validation.rs @@ -12,8 +12,8 @@ use crate::{ }, repositories::{ permission::PERMISSION_REPOSITORY, request_policy::REQUEST_POLICY_REPOSITORY, - ACCOUNT_REPOSITORY, ADDRESS_BOOK_REPOSITORY, NOTIFICATION_REPOSITORY, REQUEST_REPOSITORY, - USER_GROUP_REPOSITORY, USER_REPOSITORY, + ACCOUNT_REPOSITORY, ADDRESS_BOOK_REPOSITORY, ASSET_REPOSITORY, NOTIFICATION_REPOSITORY, + REQUEST_REPOSITORY, USER_GROUP_REPOSITORY, USER_REPOSITORY, }, services::SYSTEM_SERVICE, }; @@ -227,3 +227,18 @@ impl EnsureIdExists for EnsureNotification { } impl EnsureResourceIdExists for EnsureNotification {} + +pub struct EnsureAsset {} + +impl EnsureIdExists for EnsureAsset { + fn id_exists(id: &UUID) -> Result<(), RecordValidationError> { + ensure_entry_exists(ASSET_REPOSITORY.to_owned(), *id).ok_or( + RecordValidationError::NotFound { + model_name: "Asset".to_string(), + id: Uuid::from_bytes(*id).hyphenated().to_string(), + }, + ) + } +} + +impl EnsureResourceIdExists for EnsureAsset {} diff --git a/core/station/impl/src/errors/asset.rs b/core/station/impl/src/errors/asset.rs index 7a7f00aa9..fd0867d38 100644 --- a/core/station/impl/src/errors/asset.rs +++ b/core/station/impl/src/errors/asset.rs @@ -5,6 +5,12 @@ use thiserror::Error; /// Container for asset errors. #[derive(Error, Debug, Eq, PartialEq, Clone)] pub enum AssetError { + /// The asset was not found. + #[error("The asset with id {id} was not found.")] + NotFound { + /// The asset id. + id: String, + }, /// Invalid decimals value. #[error(r#"Decimals must be between {min} and {max}."#)] InvalidDecimals { min: u32, max: u32 }, @@ -23,6 +29,14 @@ pub enum AssetError { /// The asset has failed validation. #[error(r#"The account has failed validation."#)] ValidationError { info: String }, + /// The asset is not unique. + #[error(r#"The asset already exists."#)] + AlreadyExists { + /// The asset symbol. + symbol: String, + /// The asset blockchain. + blockchain: String, + }, } impl DetailableError for AssetError { @@ -67,6 +81,15 @@ impl DetailableError for AssetError { details.insert("max_length".to_string(), max_length.to_string()); Some(details) } + AssetError::NotFound { id } => { + details.insert("id".to_string(), id.to_string()); + Some(details) + } + AssetError::AlreadyExists { symbol, blockchain } => { + details.insert("symbol".to_string(), symbol.to_string()); + details.insert("blockchain".to_string(), blockchain.to_string()); + Some(details) + } } } } diff --git a/core/station/impl/src/factories/requests/add_asset.rs b/core/station/impl/src/factories/requests/add_asset.rs new file mode 100644 index 000000000..63e66941d --- /dev/null +++ b/core/station/impl/src/factories/requests/add_asset.rs @@ -0,0 +1,75 @@ +use super::{Create, Execute, RequestExecuteStage}; +use crate::{ + errors::{RequestError, RequestExecuteError}, + models::{AddAssetOperation, Request, RequestExecutionPlan, RequestOperation}, + services::AssetService, +}; +use async_trait::async_trait; +use orbit_essentials::types::UUID; + +pub struct AddAssetRequestCreate {} + +#[async_trait] +impl Create for AddAssetRequestCreate { + async fn create( + &self, + request_id: UUID, + requested_by_user: UUID, + input: station_api::CreateRequestInput, + operation_input: station_api::AddAssetOperationInput, + ) -> Result { + let request = Request::new( + request_id, + requested_by_user, + Request::default_expiration_dt_ns(), + RequestOperation::AddAsset(AddAssetOperation { + asset_id: None, + input: operation_input.into(), + }), + input + .execution_plan + .map(Into::into) + .unwrap_or(RequestExecutionPlan::Immediate), + input.title.unwrap_or_else(|| "Asset creation".to_string()), + input.summary, + ); + + Ok(request) + } +} + +pub struct AddAssetRequestExecute<'p, 'o> { + request: &'p Request, + operation: &'o AddAssetOperation, + asset_service: AssetService, +} + +impl<'p, 'o> AddAssetRequestExecute<'p, 'o> { + pub fn new(request: &'p Request, operation: &'o AddAssetOperation) -> Self { + Self { + request, + operation, + asset_service: AssetService::default(), + } + } +} + +#[async_trait] +impl Execute for AddAssetRequestExecute<'_, '_> { + async fn execute(&self) -> Result { + let asset = self + .asset_service + .create(self.operation.input.clone()) + .map_err(|e| RequestExecuteError::Failed { + reason: format!("Failed to create asset: {}", e), + })?; + + let mut operation = self.request.operation.clone(); + + if let RequestOperation::AddAsset(ref mut operation) = operation { + operation.asset_id = Some(asset.id); + } + + Ok(RequestExecuteStage::Completed(operation)) + } +} diff --git a/core/station/impl/src/factories/requests/edit_asset.rs b/core/station/impl/src/factories/requests/edit_asset.rs new file mode 100644 index 000000000..5e7951d12 --- /dev/null +++ b/core/station/impl/src/factories/requests/edit_asset.rs @@ -0,0 +1,69 @@ +use super::{Create, Execute, RequestExecuteStage}; +use crate::{ + errors::{RequestError, RequestExecuteError}, + models::{EditAssetOperation, Request, RequestExecutionPlan, RequestOperation}, + services::AssetService, +}; +use async_trait::async_trait; +use orbit_essentials::types::UUID; + +pub struct EditAssetRequestCreate {} + +#[async_trait] +impl Create for EditAssetRequestCreate { + async fn create( + &self, + request_id: UUID, + requested_by_user: UUID, + input: station_api::CreateRequestInput, + operation_input: station_api::EditAssetOperationInput, + ) -> Result { + let request = Request::new( + request_id, + requested_by_user, + Request::default_expiration_dt_ns(), + RequestOperation::EditAsset(EditAssetOperation { + input: operation_input.into(), + }), + input + .execution_plan + .map(Into::into) + .unwrap_or(RequestExecutionPlan::Immediate), + input.title.unwrap_or_else(|| "Edit asset".to_string()), + input.summary, + ); + + Ok(request) + } +} + +pub struct EditAssetRequestExecute<'p, 'o> { + request: &'p Request, + operation: &'o EditAssetOperation, + asset_service: AssetService, +} + +impl<'p, 'o> EditAssetRequestExecute<'p, 'o> { + pub fn new(request: &'p Request, operation: &'o EditAssetOperation) -> Self { + Self { + request, + operation, + asset_service: AssetService::default(), + } + } +} + +#[async_trait] +impl Execute for EditAssetRequestExecute<'_, '_> { + async fn execute(&self) -> Result { + self.asset_service + .edit(self.operation.input.clone()) + .map_err(|e| RequestExecuteError::Failed { + reason: format!("Failed to edit asset: {}", e), + })?; + + Ok(RequestExecuteStage::Completed( + self.request.operation.clone(), + )) + } +} diff --git a/core/station/impl/src/factories/requests/mod.rs b/core/station/impl/src/factories/requests/mod.rs index 3b33825c2..dee9d1b1b 100644 --- a/core/station/impl/src/factories/requests/mod.rs +++ b/core/station/impl/src/factories/requests/mod.rs @@ -18,6 +18,7 @@ use std::sync::Arc; mod add_account; mod add_address_book_entry; +mod add_asset; mod add_request_policy; mod add_user; mod add_user_group; @@ -27,6 +28,7 @@ mod configure_external_canister; mod create_canister; mod edit_account; mod edit_address_book_entry; +mod edit_asset; mod edit_permission; mod edit_request_policy; mod edit_user; @@ -34,6 +36,7 @@ mod edit_user_group; mod fund_external_canister; mod manage_system_info; mod remove_address_book_entry; +mod remove_asset; mod remove_request_policy; mod remove_user_group; mod set_disaster_recovery; @@ -247,6 +250,24 @@ impl RequestFactory { .create(id, requested_by_user, input.clone(), operation.clone()) .await } + RequestOperationInput::AddAsset(operation) => { + let creator = Box::new(add_asset::AddAssetRequestCreate {}); + creator + .create(id, requested_by_user, input.clone(), operation.clone()) + .await + } + RequestOperationInput::EditAsset(operation) => { + let creator = Box::new(edit_asset::EditAssetRequestCreate {}); + creator + .create(id, requested_by_user, input.clone(), operation.clone()) + .await + } + RequestOperationInput::RemoveAsset(operation) => { + let creator = Box::new(remove_asset::RemoveAssetRequestCreate {}); + creator + .create(id, requested_by_user, input.clone(), operation.clone()) + .await + } } } @@ -362,6 +383,15 @@ impl RequestFactory { RequestOperation::ManageSystemInfo(operation) => Box::new( manage_system_info::ManageSystemInfoRequestExecute::new(request, operation), ), + RequestOperation::AddAsset(operation) => { + Box::new(add_asset::AddAssetRequestExecute::new(request, operation)) + } + RequestOperation::EditAsset(operation) => { + Box::new(edit_asset::EditAssetRequestExecute::new(request, operation)) + } + RequestOperation::RemoveAsset(operation) => Box::new( + remove_asset::RemoveAssetRequestExecute::new(request, operation), + ), } } } diff --git a/core/station/impl/src/factories/requests/remove_asset.rs b/core/station/impl/src/factories/requests/remove_asset.rs new file mode 100644 index 000000000..452cdcf70 --- /dev/null +++ b/core/station/impl/src/factories/requests/remove_asset.rs @@ -0,0 +1,69 @@ +use super::{Create, Execute, RequestExecuteStage}; +use crate::{ + errors::{RequestError, RequestExecuteError}, + models::{RemoveAssetOperation, Request, RequestExecutionPlan, RequestOperation}, + services::AssetService, +}; +use async_trait::async_trait; +use orbit_essentials::types::UUID; + +pub struct RemoveAssetRequestCreate {} + +#[async_trait] +impl Create for RemoveAssetRequestCreate { + async fn create( + &self, + request_id: UUID, + requested_by_user: UUID, + input: station_api::CreateRequestInput, + operation_input: station_api::RemoveAssetOperationInput, + ) -> Result { + let request = Request::new( + request_id, + requested_by_user, + Request::default_expiration_dt_ns(), + RequestOperation::RemoveAsset(RemoveAssetOperation { + input: operation_input.into(), + }), + input + .execution_plan + .map(Into::into) + .unwrap_or(RequestExecutionPlan::Immediate), + input.title.unwrap_or_else(|| "Remove asset".to_string()), + input.summary, + ); + + Ok(request) + } +} + +pub struct RemoveAssetRequestExecute<'p, 'o> { + request: &'p Request, + operation: &'o RemoveAssetOperation, + asset_service: AssetService, +} + +impl<'p, 'o> RemoveAssetRequestExecute<'p, 'o> { + pub fn new(request: &'p Request, operation: &'o RemoveAssetOperation) -> Self { + Self { + request, + operation, + asset_service: AssetService::default(), + } + } +} + +#[async_trait] +impl Execute for RemoveAssetRequestExecute<'_, '_> { + async fn execute(&self) -> Result { + self.asset_service + .remove(self.operation.input.clone()) + .map_err(|e| RequestExecuteError::Failed { + reason: format!("Failed to remove asset: {}", e), + })?; + + Ok(RequestExecuteStage::Completed( + self.request.operation.clone(), + )) + } +} diff --git a/core/station/impl/src/lib.rs b/core/station/impl/src/lib.rs index 03004b3bb..c5f3b9ae2 100644 --- a/core/station/impl/src/lib.rs +++ b/core/station/impl/src/lib.rs @@ -4,7 +4,7 @@ pub const SERVICE_NAME: &str = "station"; pub const SYSTEM_VERSION: &str = env!("CARGO_PKG_VERSION"); -pub const STABLE_MEMORY_VERSION: u32 = 1; +pub const STABLE_MEMORY_VERSION: u32 = 2; pub mod controllers; pub mod core; diff --git a/core/station/impl/src/mappers/asset.rs b/core/station/impl/src/mappers/asset.rs index 64c17b8fe..73a0795ef 100644 --- a/core/station/impl/src/mappers/asset.rs +++ b/core/station/impl/src/mappers/asset.rs @@ -1,13 +1,28 @@ -use crate::models::Asset; +use station_api::AssetCallerPrivilegesDTO; +use uuid::Uuid; + +use crate::models::{Asset, AssetCallerPrivileges}; impl From for station_api::AssetDTO { fn from(asset: Asset) -> Self { station_api::AssetDTO { + id: Uuid::from_bytes(asset.id).hyphenated().to_string(), blockchain: asset.blockchain.to_string(), symbol: asset.symbol.to_string(), standards: asset.standards.into_iter().map(|s| s.to_string()).collect(), name: asset.name, metadata: asset.metadata.into_vec_dto(), + decimals: asset.decimals, + } + } +} + +impl From for AssetCallerPrivilegesDTO { + fn from(input: AssetCallerPrivileges) -> AssetCallerPrivilegesDTO { + AssetCallerPrivilegesDTO { + id: Uuid::from_bytes(input.id).hyphenated().to_string(), + can_edit: input.can_edit, + can_delete: input.can_delete, } } } diff --git a/core/station/impl/src/mappers/authorization.rs b/core/station/impl/src/mappers/authorization.rs index d641e5483..c997e885a 100644 --- a/core/station/impl/src/mappers/authorization.rs +++ b/core/station/impl/src/mappers/authorization.rs @@ -137,6 +137,16 @@ impl From<&station_api::GetUserGroupInput> for Resource { } } +impl From<&station_api::GetAssetInput> for Resource { + fn from(input: &station_api::GetAssetInput) -> Self { + Resource::Asset(ResourceAction::Read(ResourceId::Id( + *HelperMapper::to_uuid(input.asset_id.to_owned()) + .expect("Invalid asset id") + .as_bytes(), + ))) + } +} + impl From<&station_api::SubmitRequestApprovalInput> for Resource { fn from(input: &station_api::SubmitRequestApprovalInput) -> Self { Resource::Request(RequestResourceAction::Read(ResourceId::Id( @@ -280,6 +290,21 @@ impl From<&station_api::CreateRequestInput> for Resource { RequestOperationInput::ManageSystemInfo(_) => { Resource::System(SystemResourceAction::ManageSystemInfo) } + RequestOperationInput::AddAsset(_) => Resource::Asset(ResourceAction::Create), + RequestOperationInput::EditAsset(input) => { + Resource::Asset(ResourceAction::Update(ResourceId::Id( + *HelperMapper::to_uuid(input.asset_id.to_owned()) + .expect("Invalid asset id") + .as_bytes(), + ))) + } + RequestOperationInput::RemoveAsset(input) => { + Resource::Asset(ResourceAction::Delete(ResourceId::Id( + *HelperMapper::to_uuid(input.asset_id.to_owned()) + .expect("Invalid asset id") + .as_bytes(), + ))) + } } } } diff --git a/core/station/impl/src/mappers/notification_type.rs b/core/station/impl/src/mappers/notification_type.rs index 604189412..d49b92412 100644 --- a/core/station/impl/src/mappers/notification_type.rs +++ b/core/station/impl/src/mappers/notification_type.rs @@ -93,7 +93,10 @@ impl TryFrom for NotificationTypeDTO { | RequestOperation::ConfigureExternalCanister(_) | RequestOperation::CreateExternalCanister(_) | RequestOperation::FundExternalCanister(_) - | RequestOperation::CallExternalCanister(_) => None, + | RequestOperation::CallExternalCanister(_) + | RequestOperation::AddAsset(_) + | RequestOperation::EditAsset(_) + | RequestOperation::RemoveAsset(_) => None, }; let user_id: Option<[u8; 16]> = match &request.operation { @@ -119,7 +122,10 @@ impl TryFrom for NotificationTypeDTO { | RequestOperation::ConfigureExternalCanister(_) | RequestOperation::CreateExternalCanister(_) | RequestOperation::FundExternalCanister(_) - | RequestOperation::CallExternalCanister(_) => None, + | RequestOperation::CallExternalCanister(_) + | RequestOperation::AddAsset(_) + | RequestOperation::EditAsset(_) + | RequestOperation::RemoveAsset(_) => None, }; NotificationTypeDTO::RequestCreated(RequestCreatedNotificationDTO { diff --git a/core/station/impl/src/mappers/request_operation.rs b/core/station/impl/src/mappers/request_operation.rs index 0c36cc4b4..d1738af4d 100644 --- a/core/station/impl/src/mappers/request_operation.rs +++ b/core/station/impl/src/mappers/request_operation.rs @@ -8,8 +8,9 @@ use crate::{ UserResourceAction, }, Account, AccountKey, AddAccountOperation, AddAccountOperationInput, - AddAddressBookEntryOperation, AddAddressBookEntryOperationInput, AddRequestPolicyOperation, - AddRequestPolicyOperationInput, AddUserOperation, AddUserOperationInput, AddressBookEntry, + AddAddressBookEntryOperation, AddAddressBookEntryOperationInput, AddAssetOperation, + AddAssetOperationInput, AddRequestPolicyOperation, AddRequestPolicyOperationInput, + AddUserOperation, AddUserOperationInput, AddressBookEntry, Asset, CallExternalCanisterOperation, CallExternalCanisterOperationInput, CanisterInstallMode, CanisterInstallModeArgs, CanisterMethod, CanisterReinstallModeArgs, CanisterUpgradeModeArgs, ChangeExternalCanisterOperation, @@ -19,21 +20,22 @@ use crate::{ CreateExternalCanisterOperationKind, CreateExternalCanisterOperationKindAddExisting, CreateExternalCanisterOperationKindCreateNew, CycleObtainStrategy, DefiniteCanisterSettingsInput, DisasterRecoveryCommittee, EditAccountOperation, - EditAccountOperationInput, EditAddressBookEntryOperation, EditPermissionOperation, - EditPermissionOperationInput, EditRequestPolicyOperation, EditRequestPolicyOperationInput, - EditUserGroupOperation, EditUserOperation, EditUserOperationInput, - ExternalCanisterCallPermission, ExternalCanisterCallRequestPolicyRuleInput, - ExternalCanisterChangeRequestPolicyRuleInput, ExternalCanisterPermissionsInput, - ExternalCanisterRequestPoliciesInput, FundExternalCanisterOperation, - ManageSystemInfoOperation, ManageSystemInfoOperationInput, RemoveAddressBookEntryOperation, + EditAccountOperationInput, EditAddressBookEntryOperation, EditAssetOperation, + EditAssetOperationInput, EditPermissionOperation, EditPermissionOperationInput, + EditRequestPolicyOperation, EditRequestPolicyOperationInput, EditUserGroupOperation, + EditUserOperation, EditUserOperationInput, ExternalCanisterCallPermission, + ExternalCanisterCallRequestPolicyRuleInput, ExternalCanisterChangeRequestPolicyRuleInput, + ExternalCanisterPermissionsInput, ExternalCanisterRequestPoliciesInput, + FundExternalCanisterOperation, ManageSystemInfoOperation, ManageSystemInfoOperationInput, + RemoveAddressBookEntryOperation, RemoveAssetOperation, RemoveAssetOperationInput, RemoveRequestPolicyOperation, RemoveRequestPolicyOperationInput, RemoveUserGroupOperation, RequestOperation, SetDisasterRecoveryOperation, SetDisasterRecoveryOperationInput, SystemUpgradeOperation, SystemUpgradeOperationInput, SystemUpgradeTarget, TransferOperation, User, }, repositories::{ - AccountRepository, AddressBookRepository, UserRepository, ACCOUNT_REPOSITORY, - USER_GROUP_REPOSITORY, + AccountRepository, AddressBookRepository, AssetRepository, UserRepository, + ACCOUNT_REPOSITORY, USER_GROUP_REPOSITORY, }, }; use orbit_essentials::repository::Repository; @@ -1120,6 +1122,119 @@ impl From for ManageSystemInfoOperati } } +impl AddAssetOperation { + pub fn to_dto(self, asset: Option) -> station_api::AddAssetOperationDTO { + station_api::AddAssetOperationDTO { + asset: asset.map(|asset| asset.into()), + input: station_api::AddAssetOperationInput { + name: self.input.name, + blockchain: self.input.blockchain.to_string(), + standards: self.input.standards.iter().map(|s| s.to_string()).collect(), + symbol: self.input.symbol, + decimals: self.input.decimals, + metadata: self.input.metadata.into_vec_dto(), + }, + } + } +} + +impl From for AddAssetOperationInput { + fn from(input: station_api::AddAssetOperationInput) -> AddAssetOperationInput { + AddAssetOperationInput { + name: input.name, + symbol: input.symbol, + decimals: input.decimals, + metadata: input.metadata.into(), + blockchain: input.blockchain.parse().expect("Invalid blockchain"), + standards: input + .standards + .iter() + .map(|s| s.parse().expect("Invalid standard")) + .collect(), + } + } +} + +impl From for station_api::EditAssetOperationDTO { + fn from(operation: EditAssetOperation) -> station_api::EditAssetOperationDTO { + station_api::EditAssetOperationDTO { + input: operation.input.into(), + } + } +} + +impl From for station_api::EditAssetOperationInput { + fn from(input: EditAssetOperationInput) -> station_api::EditAssetOperationInput { + station_api::EditAssetOperationInput { + asset_id: Uuid::from_bytes(input.asset_id).hyphenated().to_string(), + name: input.name, + symbol: input.symbol, + decimals: input.decimals, + change_metadata: input + .change_metadata + .map(|change_metadata| change_metadata.into()), + blockchain: input.blockchain.map(|blockchain| blockchain.to_string()), + standards: input + .standards + .map(|standards| standards.into_iter().map(|s| s.to_string()).collect()), + } + } +} + +impl From for EditAssetOperationInput { + fn from(input: station_api::EditAssetOperationInput) -> EditAssetOperationInput { + EditAssetOperationInput { + asset_id: *HelperMapper::to_uuid(input.asset_id) + .expect("Invalid asset id") + .as_bytes(), + name: input.name, + symbol: input.symbol, + decimals: input.decimals, + change_metadata: input + .change_metadata + .map(|change_metadata| change_metadata.into()), + blockchain: input.blockchain.map(|blockchain_dto| { + BlockchainMapper::to_blockchain(blockchain_dto).expect("Invalid blockchain") + }), + standards: input.standards.map(|standards| { + standards + .into_iter() + .map(|s| { + BlockchainMapper::to_blockchain_standard(s) + .expect("Invalid blockchain standard") + }) + .collect() + }), + } + } +} + +impl From for station_api::RemoveAssetOperationDTO { + fn from(operation: RemoveAssetOperation) -> station_api::RemoveAssetOperationDTO { + station_api::RemoveAssetOperationDTO { + input: operation.input.into(), + } + } +} + +impl From for station_api::RemoveAssetOperationInput { + fn from(input: RemoveAssetOperationInput) -> station_api::RemoveAssetOperationInput { + station_api::RemoveAssetOperationInput { + asset_id: Uuid::from_bytes(input.asset_id).hyphenated().to_string(), + } + } +} + +impl From for RemoveAssetOperationInput { + fn from(input: station_api::RemoveAssetOperationInput) -> RemoveAssetOperationInput { + RemoveAssetOperationInput { + asset_id: *HelperMapper::to_uuid(input.asset_id) + .expect("Invalid asset id") + .as_bytes(), + } + } +} + impl From for RequestOperationDTO { fn from(operation: RequestOperation) -> RequestOperationDTO { match operation { @@ -1213,6 +1328,19 @@ impl From for RequestOperationDTO { RequestOperation::ManageSystemInfo(operation) => { RequestOperationDTO::ManageSystemInfo(Box::new(operation.into())) } + RequestOperation::AddAsset(operation) => { + let asset = operation + .asset_id + .and_then(|id| AssetRepository::default().get(&id)); + + RequestOperationDTO::AddAsset(Box::new(operation.to_dto(asset))) + } + RequestOperation::EditAsset(operation) => { + RequestOperationDTO::EditAsset(Box::new(operation.into())) + } + RequestOperation::RemoveAsset(operation) => { + RequestOperationDTO::RemoveAsset(Box::new(operation.into())) + } } } } @@ -1393,6 +1521,21 @@ impl RequestOperation { RequestOperation::ManageSystemInfo(_) => { vec![Resource::System(SystemResourceAction::ManageSystemInfo)] } + RequestOperation::AddAsset(_) => { + vec![Resource::Asset(ResourceAction::Create)] + } + RequestOperation::EditAsset(EditAssetOperation { input }) => { + vec![ + Resource::Asset(ResourceAction::Update(ResourceId::Id(input.asset_id))), + Resource::Asset(ResourceAction::Update(ResourceId::Any)), + ] + } + RequestOperation::RemoveAsset(RemoveAssetOperation { input }) => { + vec![ + Resource::Asset(ResourceAction::Delete(ResourceId::Id(input.asset_id))), + Resource::Asset(ResourceAction::Delete(ResourceId::Any)), + ] + } } } } diff --git a/core/station/impl/src/mappers/request_operation_type.rs b/core/station/impl/src/mappers/request_operation_type.rs index 2ed83634a..1b919d274 100644 --- a/core/station/impl/src/mappers/request_operation_type.rs +++ b/core/station/impl/src/mappers/request_operation_type.rs @@ -78,6 +78,15 @@ impl From for ListRequestsOperationTy station_api::ListRequestsOperationTypeDTO::SetDisasterRecovery => { ListRequestsOperationType::SetDisasterRecovery } + station_api::ListRequestsOperationTypeDTO::AddAsset => { + ListRequestsOperationType::AddAsset + } + station_api::ListRequestsOperationTypeDTO::EditAsset => { + ListRequestsOperationType::EditAsset + } + station_api::ListRequestsOperationTypeDTO::RemoveAsset => { + ListRequestsOperationType::RemoveAsset + } } } } @@ -128,6 +137,9 @@ impl From for RequestOperationType { RequestOperationTypeDTO::ConfigureExternalCanister => { RequestOperationType::ConfigureExternalCanister } + RequestOperationTypeDTO::AddAsset => RequestOperationType::AddAsset, + RequestOperationTypeDTO::EditAsset => RequestOperationType::EditAsset, + RequestOperationTypeDTO::RemoveAsset => RequestOperationType::RemoveAsset, } } } @@ -178,6 +190,9 @@ impl From for RequestOperationTypeDTO { RequestOperationType::ConfigureExternalCanister => { RequestOperationTypeDTO::ConfigureExternalCanister } + RequestOperationType::AddAsset => RequestOperationTypeDTO::AddAsset, + RequestOperationType::EditAsset => RequestOperationTypeDTO::EditAsset, + RequestOperationType::RemoveAsset => RequestOperationTypeDTO::RemoveAsset, } } } @@ -216,6 +231,9 @@ impl From for RequestOperationType { RequestOperation::RemoveRequestPolicy(_) => RequestOperationType::RemoveRequestPolicy, RequestOperation::ManageSystemInfo(_) => RequestOperationType::ManageSystemInfo, RequestOperation::SetDisasterRecovery(_) => RequestOperationType::SetDisasterRecovery, + RequestOperation::AddAsset(_) => RequestOperationType::AddAsset, + RequestOperation::EditAsset(_) => RequestOperationType::EditAsset, + RequestOperation::RemoveAsset(_) => RequestOperationType::RemoveAsset, } } } diff --git a/core/station/impl/src/mappers/request_policy.rs b/core/station/impl/src/mappers/request_policy.rs index 9fd8ba598..23134ed7f 100644 --- a/core/station/impl/src/mappers/request_policy.rs +++ b/core/station/impl/src/mappers/request_policy.rs @@ -282,6 +282,13 @@ impl From for station_api::RequestSpecifierDTO { RequestSpecifier::ManageSystemInfo => { station_api::RequestSpecifierDTO::ManageSystemInfo } + RequestSpecifier::AddAsset => station_api::RequestSpecifierDTO::AddAsset, + RequestSpecifier::EditAsset(resource_ids) => { + station_api::RequestSpecifierDTO::EditAsset(resource_ids.into()) + } + RequestSpecifier::RemoveAsset(resource_ids) => { + station_api::RequestSpecifierDTO::RemoveAsset(resource_ids.into()) + } } } } @@ -347,6 +354,13 @@ impl From for RequestSpecifier { station_api::RequestSpecifierDTO::ManageSystemInfo => { RequestSpecifier::ManageSystemInfo } + station_api::RequestSpecifierDTO::AddAsset => RequestSpecifier::AddAsset, + station_api::RequestSpecifierDTO::EditAsset(resource_ids) => { + RequestSpecifier::EditAsset(resource_ids.into()) + } + station_api::RequestSpecifierDTO::RemoveAsset(resource_ids) => { + RequestSpecifier::RemoveAsset(resource_ids.into()) + } } } } @@ -494,6 +508,22 @@ impl RequestSpecifier { .map(|id| Resource::UserGroup(ResourceAction::Delete(ResourceId::Id(*id)))) .collect::<_>(), }, + + RequestSpecifier::AddAsset => vec![Resource::Asset(ResourceAction::Create)], + RequestSpecifier::EditAsset(resource_ids) => match resource_ids { + ResourceIds::Any => vec![Resource::Asset(ResourceAction::Update(ResourceId::Any))], + ResourceIds::Ids(ids) => ids + .iter() + .map(|id| Resource::Asset(ResourceAction::Update(ResourceId::Id(*id)))) + .collect::<_>(), + }, + RequestSpecifier::RemoveAsset(resource_ids) => match resource_ids { + ResourceIds::Any => vec![Resource::Asset(ResourceAction::Delete(ResourceId::Any))], + ResourceIds::Ids(ids) => ids + .iter() + .map(|id| Resource::Asset(ResourceAction::Delete(ResourceId::Id(*id)))) + .collect::<_>(), + }, } } } diff --git a/core/station/impl/src/mappers/resource.rs b/core/station/impl/src/mappers/resource.rs index acb91cb54..4050b131a 100644 --- a/core/station/impl/src/mappers/resource.rs +++ b/core/station/impl/src/mappers/resource.rs @@ -28,6 +28,7 @@ impl From for Resource { station_api::ResourceDTO::Notification(action) => Resource::Notification(action.into()), station_api::ResourceDTO::Request(action) => Resource::Request(action.into()), station_api::ResourceDTO::System(action) => Resource::System(action.into()), + station_api::ResourceDTO::Asset(action) => Resource::Asset(action.into()), } } } @@ -49,6 +50,7 @@ impl From for station_api::ResourceDTO { Resource::Notification(action) => station_api::ResourceDTO::Notification(action.into()), Resource::Request(action) => station_api::ResourceDTO::Request(action.into()), Resource::System(action) => station_api::ResourceDTO::System(action.into()), + Resource::Asset(action) => station_api::ResourceDTO::Asset(action.into()), } } } diff --git a/core/station/impl/src/migration.rs b/core/station/impl/src/migration.rs index a81ea2063..bf9a617bf 100644 --- a/core/station/impl/src/migration.rs +++ b/core/station/impl/src/migration.rs @@ -1,32 +1,28 @@ +use std::collections::BTreeSet; + +use orbit_essentials::model::ModelKey; +use orbit_essentials::repository::Repository; +use uuid::Uuid; + use crate::core::ic_cdk::api::trap; -use crate::core::{read_system_info, write_system_info, Memory}; -use crate::models::permission::{Permission, PermissionKey}; +use crate::core::{read_system_info, write_system_info}; + +use crate::models::permission::AuthScope; use crate::models::request_specifier::RequestSpecifier; -use crate::models::resource::{ExternalCanisterResourceAction, Resource, SystemResourceAction}; +use crate::models::resource::{ + Resource, ResourceAction, ResourceId, ResourceIds, SystemResourceAction, +}; use crate::models::{ - Account, AccountKey, AddressBookEntry, AddressBookEntryKey, ExternalCanister, - ExternalCanisterKey, Request, RequestKey, RequestOperation, RequestPolicy, User, UserGroup, - UserKey, + AddRequestPolicyOperationInput, Asset, Blockchain, BlockchainStandard, + EditPermissionOperationInput, Metadata, }; -use crate::repositories::permission::{PermissionRepository, PERMISSION_REPOSITORY}; +use crate::repositories::permission::PERMISSION_REPOSITORY; use crate::repositories::{ - AccountRepository, AddressBookRepository, ExternalCanisterRepository, RequestPolicyRepository, - RequestRepository, UserGroupRepository, UserRepository, ACCOUNT_REPOSITORY, - ADDRESS_BOOK_REPOSITORY, EXTERNAL_CANISTER_REPOSITORY, REQUEST_POLICY_REPOSITORY, - USER_GROUP_REPOSITORY, USER_REPOSITORY, + ASSET_REPOSITORY, REQUEST_POLICY_REPOSITORY, USER_GROUP_REPOSITORY, USER_REPOSITORY, }; -use crate::{concat_str_arrays, STABLE_MEMORY_VERSION}; -use crate::{core::with_memory_manager, repositories::REQUEST_REPOSITORY}; -use ic_stable_structures::memory_manager::{MemoryId, VirtualMemory}; -use ic_stable_structures::Memory as DefaultMemoryTrait; -use orbit_essentials::model::ModelKey; -use orbit_essentials::repository::{IndexedRepository, RebuildRepository, Repository, StableDb}; -use orbit_essentials::storable; -use orbit_essentials::types::UUID; -use serde::de::{self, EnumAccess, VariantAccess, Visitor}; -use serde::{Deserialize, Deserializer}; -use std::fmt; -use strum::VariantNames; +use crate::services::permission::PERMISSION_SERVICE; +use crate::services::REQUEST_POLICY_SERVICE; +use crate::STABLE_MEMORY_VERSION; /// Handles stable memory schema migrations for the station canister. /// @@ -68,506 +64,81 @@ impl MigrationHandler { /// /// Please include the migration steps in the `apply_migration` function. fn apply_migration() { - // step 1: clear unused memory ids - with_memory_manager(|memory_manager| { - for memory_id in [ - MemoryId::new(3), // USER_IDENTITY_INDEX_MEMORY_ID, - MemoryId::new(5), // REQUEST_EXPIRATION_TIME_INDEX_MEMORY_ID - MemoryId::new(8), // REQUEST_APPROVER_INDEX_MEMORY_ID - MemoryId::new(9), // REQUEST_STATUS_INDEX_MEMORY_ID - MemoryId::new(10), // REQUEST_SCHEDULED_INDEX_MEMORY_ID - MemoryId::new(15), // USER_GROUP_NAME_INDEX_MEMORY_ID - MemoryId::new(18), // USER_STATUS_GROUP_INDEX_MEMORY_ID - MemoryId::new(20), // ADDRESS_BOOK_INDEX_MEMORY_ID - MemoryId::new(21), // REQUEST_REQUESTER_INDEX_MEMORY_ID - MemoryId::new(22), // REQUEST_CREATION_TIME_INDEX_MEMORY_ID - MemoryId::new(23), // REQUEST_KEY_CREATION_TIME_INDEX_MEMORY_ID - MemoryId::new(24), // REQUEST_KEY_EXPIRATION_TIME_INDEX_MEMORY_ID - MemoryId::new(25), // REQUEST_SORT_INDEX_MEMORY_ID - MemoryId::new(26), // REQUEST_STATUS_MODIFICATION_INDEX_MEMORY_ID - MemoryId::new(27), // NAME_TO_ACCOUNT_ID_INDEX_MEMORY_ID - MemoryId::new(28), // NAME_TO_USER_ID_INDEX_MEMORY_ID - MemoryId::new(29), // OPERATION_TYPE_TO_REQUEST_ID_INDEX_MEMORY_ID - MemoryId::new(34), // EXTERNAL_CANISTER_INDEX_MEMORY_ID - // The following memory ids are still in use for the same purpose, but the datatype - // have changed and the memory needs to be cleaned up and rebuilt later. - MemoryId::new(30), // REQUEST_RESOURCE_INDEX_MEMORY_ID - MemoryId::new(31), // POLICY_RESOURCE_INDEX_MEMORY_ID - ] { - // This cleans up the memory by writing a single zero byte to the memory id, - // this will make the memory id available for reuse in the future. - // - // This makes sure that if `init` is called on the memory id, it will make sure - // it can be reused with a different datatype. - let memory = memory_manager.get(memory_id); - if memory.size() > 0 { - // This marks the memory as unused, this is because the StableBTreeMap - // implementation uses the first three bytes of the memory to store the MAGIC value [66, 84, 82] - // that indicates that the memory is used by the StableBTreeMap, so adding a single different byte - // in those first three bytes will make the memory available for reuse. - memory.write(0, &[0]); - } - } - }); - - // step 2: rebuilds the repositories to ensure the data is up-to-date - USER_GROUP_REPOSITORY.rebuild(); - USER_REPOSITORY.rebuild(); - ACCOUNT_REPOSITORY.rebuild(); - EXTERNAL_CANISTER_REPOSITORY.rebuild(); - ADDRESS_BOOK_REPOSITORY.rebuild(); - PERMISSION_REPOSITORY.rebuild(); - REQUEST_POLICY_REPOSITORY.rebuild(); - REQUEST_REPOSITORY.rebuild(); -} - -impl<'de> Deserialize<'de> for Resource { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - const ENUM_NAME: &str = "Resource"; - - const CURRENT_VARIANTS: &[&str] = Resource::VARIANTS; - const REMOVED_VARIANTS: [&str; 1] = ["ChangeCanister"]; - - // IMPORTANT: The size of the array must be hardcoded, to make sure it can be checked at compile-time. - static EXPECTED_VARIANTS: [&str; 11] = { - let variants: [&str; CURRENT_VARIANTS.len() + REMOVED_VARIANTS.len()] = [""; 11]; - concat_str_arrays!(CURRENT_VARIANTS, REMOVED_VARIANTS); - - variants - }; - - // Define the old version of the types for migration purposes - #[storable] - #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] - pub enum OldExternalCanisterResourceAction { - Create(OldCreateCanisterTarget), - } - - #[storable] - #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] - pub enum OldCreateCanisterTarget { - Any, - } - - #[storable] - #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] - pub enum OldChangeCanisterResourceAction { - Create, - } - - /// This enum facilitates the deserialization of the ExternalCanisterResourceAction enum. - /// - /// By creating it as an untagged enum, we can handle both the old and new formats of the enum and - /// serde will automatically choose the correct format based on the input data. - #[derive(Deserialize)] - #[serde(untagged)] - enum ExternalCanisterActionWrapper { - NewFormat(ExternalCanisterResourceAction), - OldFormat(OldExternalCanisterResourceAction), - } - - struct ResourceVisitor; - - impl<'de> Visitor<'de> for ResourceVisitor { - type Value = Resource; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str(&format!("a valid {} enum variant", ENUM_NAME)) - } - - fn visit_enum(self, data: A) -> Result - where - A: EnumAccess<'de>, - { - let (variant, variant_access) = data.variant::()?; - - // Due to the fact that serde serialization uses a string representation of the enum variant, - // it is not possible to do a compile-time check for all variants of the enum. - match variant.as_str() { - // First the new formats - "ExternalCanister" => { - // Deserialize into the wrapper, which can handle both formats - let wrapper = - variant_access.newtype_variant::()?; - - // Try deserializing as the new format - match wrapper { - ExternalCanisterActionWrapper::NewFormat(new_format) => { - Ok(Resource::ExternalCanister(new_format)) - } - ExternalCanisterActionWrapper::OldFormat(_) => Ok( - Resource::ExternalCanister(ExternalCanisterResourceAction::Create), - ), - } - } - // `ChangeCanister` does not exist anymore, so we need to handle it here - "ChangeCanister" => { - // Consume the old format variant, this is to make sure there is no - // trailing data is left in the end of the deserialization, which would cause an error. - // - // The use of `Option`` is to make sure that the deserialization is successful. - let _ = variant_access.newtype_variant::(); - // The `ChangeCanister` variant was removed, so we need to handle it here - // and map it to the correct variant. - Ok(Resource::System(SystemResourceAction::Upgrade)) - } - // Then all the default cases - "Permission" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::Permission(value)) - } - "Account" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::Account(value)) - } - "AddressBook" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::AddressBook(value)) - } - "Notification" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::Notification(value)) - } - "Request" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::Request(value)) - } - "RequestPolicy" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::RequestPolicy(value)) - } - "System" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::System(value)) - } - "User" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::User(value)) - } - "UserGroup" => { - let value = variant_access.newtype_variant()?; - Ok(Resource::UserGroup(value)) - } - _ => Err(de::Error::unknown_variant(&variant, &EXPECTED_VARIANTS)), - } - } - } - - deserializer.deserialize_enum(ENUM_NAME, &EXPECTED_VARIANTS, ResourceVisitor) + // add new asset permissions: resources available to all users + let public_resources = [ + Resource::Asset(ResourceAction::List), + Resource::Asset(ResourceAction::Read(ResourceId::Any)), + ]; + + // build cache so that model validation can pass + USER_GROUP_REPOSITORY.build_cache(); + USER_REPOSITORY.build_cache(); + PERMISSION_REPOSITORY.build_cache(); + + for resource in public_resources { + let _ = PERMISSION_SERVICE.edit_permission(EditPermissionOperationInput { + resource, + auth_scope: Some(AuthScope::Authenticated), + user_groups: None, + users: None, + }); } -} - -impl<'de> Deserialize<'de> for RequestSpecifier { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - const ENUM_NAME: &str = "RequestSpecifier"; - - const CURRENT_VARIANTS: &[&str] = RequestSpecifier::VARIANTS; - const REMOVED_VARIANTS: [&str; 1] = ["ChangeCanister"]; - // IMPORTANT: The size of the array must be hardcoded, to make sure it can be checked at compile-time. - static EXPECTED_VARIANTS: [&str; 23] = { - let variants: [&str; CURRENT_VARIANTS.len() + REMOVED_VARIANTS.len()] = - concat_str_arrays!(CURRENT_VARIANTS, REMOVED_VARIANTS); - - variants - }; - - // Define the old version of the types for migration purposes - #[derive(Deserialize)] - enum OldCreateExternalCanisterTarget { - Any, - } - - struct RequestSpecifierVisitor; - - impl<'de> Visitor<'de> for RequestSpecifierVisitor { - type Value = RequestSpecifier; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str(&format!("a valid {} enum variant", ENUM_NAME)) - } - - fn visit_enum(self, data: A) -> Result - where - A: EnumAccess<'de>, - { - let (variant, variant_access) = data.variant::()?; - - // Due to the fact that serde serialization uses a string representation of the enum variant, - // it is not possible to do a compile-time check for all variants of the enum. - match variant.as_str() { - // First the new formats - "CreateExternalCanister" => { - // Even though the value of the variant is not used, we still need to consume it - // to make sure there is no trailing data left in the end of the deserialization. - let _ = variant_access - .newtype_variant::>(); - - Ok(RequestSpecifier::CreateExternalCanister) - } - // `ChangeCanister` does not exist anymore, so we need to handle it here - "ChangeCanister" => Ok(RequestSpecifier::SystemUpgrade), - // Then all the default cases - "AddAccount" => Ok(RequestSpecifier::AddAccount), - "AddUser" => Ok(RequestSpecifier::AddUser), - "EditAccount" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::EditAccount(value)) - } - "EditUser" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::EditUser(value)) - } - "AddAddressBookEntry" => Ok(RequestSpecifier::AddAddressBookEntry), - "EditAddressBookEntry" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::EditAddressBookEntry(value)) - } - "RemoveAddressBookEntry" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::RemoveAddressBookEntry(value)) - } - "Transfer" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::Transfer(value)) - } - "SystemUpgrade" => Ok(RequestSpecifier::SystemUpgrade), - "SetDisasterRecovery" => Ok(RequestSpecifier::SetDisasterRecovery), - "ChangeExternalCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::ChangeExternalCanister(value)) - } - "CallExternalCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::CallExternalCanister(value)) - } - "EditPermission" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::EditPermission(value)) - } - "AddRequestPolicy" => Ok(RequestSpecifier::AddRequestPolicy), - "EditRequestPolicy" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::EditRequestPolicy(value)) - } - "RemoveRequestPolicy" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::RemoveRequestPolicy(value)) - } - "AddUserGroup" => Ok(RequestSpecifier::AddUserGroup), - "EditUserGroup" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::EditUserGroup(value)) - } - "RemoveUserGroup" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::RemoveUserGroup(value)) - } - "ManageSystemInfo" => Ok(RequestSpecifier::ManageSystemInfo), - "FundExternalCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestSpecifier::FundExternalCanister(value)) - } - _ => Err(de::Error::unknown_variant(&variant, &EXPECTED_VARIANTS)), - } - } + // add new asset permissions: inherit config from ManageSystemInfo + let manage_system_info_permissions_allow = PERMISSION_SERVICE + .get_permission(&Resource::System(SystemResourceAction::ManageSystemInfo)) + .allow; + + let sensitive_resources = [ + Resource::Asset(ResourceAction::Create), + Resource::Asset(ResourceAction::Update(ResourceId::Any)), + Resource::Asset(ResourceAction::Delete(ResourceId::Any)), + ]; + + for resource in sensitive_resources { + if let Err(err) = PERMISSION_SERVICE.edit_permission(EditPermissionOperationInput { + resource, + auth_scope: Some(manage_system_info_permissions_allow.auth_scope.clone()), + user_groups: Some(manage_system_info_permissions_allow.user_groups.clone()), + users: Some(manage_system_info_permissions_allow.users.clone()), + }) { + ic_cdk::println!("Failed to create new asset permission: {:?}", err); } - - deserializer.deserialize_enum(ENUM_NAME, &EXPECTED_VARIANTS, RequestSpecifierVisitor) } -} - -impl<'de> Deserialize<'de> for RequestOperation { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - const ENUM_NAME: &str = "RequestOperation"; - - const CURRENT_VARIANTS: &[&str] = RequestOperation::VARIANTS; - const REMOVED_VARIANTS: [&str; 1] = ["ChangeCanister"]; - - // IMPORTANT: The size of the array must be hardcoded, to make sure it can be checked at compile-time. - static EXPECTED_VARIANTS: [&str; 24] = { - let variants: [&str; CURRENT_VARIANTS.len() + REMOVED_VARIANTS.len()] = - concat_str_arrays!(CURRENT_VARIANTS, REMOVED_VARIANTS); - - variants - }; - struct RequestOperationVisitor; - - impl<'de> Visitor<'de> for RequestOperationVisitor { - type Value = RequestOperation; - - fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { - formatter.write_str(&format!("a valid {} enum variant", ENUM_NAME)) - } - - fn visit_enum(self, data: A) -> Result - where - A: EnumAccess<'de>, + // add new asset policies + let policy_specifiers = [ + RequestSpecifier::AddAsset, + RequestSpecifier::EditAsset(ResourceIds::Any), + RequestSpecifier::RemoveAsset(ResourceIds::Any), + ]; + + let policies_to_copy = REQUEST_POLICY_REPOSITORY + .find_by_resource(Resource::System(SystemResourceAction::ManageSystemInfo)); + + for policy in policies_to_copy { + for specifier in policy_specifiers.iter() { + if let Err(err) = + REQUEST_POLICY_SERVICE.add_request_policy(AddRequestPolicyOperationInput { + specifier: specifier.clone(), + rule: policy.rule.clone(), + }) { - let (variant, variant_access) = data.variant::()?; - - // Due to the fact that serde serialization uses a string representation of the enum variant, - // it is not possible to do a compile-time check for all variants of the enum. - match variant.as_str() { - // First the new formats - // `ChangeCanister` does not exist anymore, so we need to handle it here - "ChangeCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::SystemUpgrade(value)) - } - // Then all the default cases - "Transfer" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::Transfer(value)) - } - "AddAccount" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::AddAccount(value)) - } - "EditAccount" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::EditAccount(value)) - } - "AddAddressBookEntry" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::AddAddressBookEntry(value)) - } - "EditAddressBookEntry" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::EditAddressBookEntry(value)) - } - "RemoveAddressBookEntry" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::RemoveAddressBookEntry(value)) - } - "AddUser" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::AddUser(value)) - } - "EditUser" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::EditUser(value)) - } - "EditPermission" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::EditPermission(value)) - } - "AddUserGroup" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::AddUserGroup(value)) - } - "EditUserGroup" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::EditUserGroup(value)) - } - "RemoveUserGroup" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::RemoveUserGroup(value)) - } - "SystemUpgrade" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::SystemUpgrade(value)) - } - "ChangeExternalCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::ChangeExternalCanister(value)) - } - "ConfigureExternalCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::ConfigureExternalCanister(value)) - } - "CreateExternalCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::CreateExternalCanister(value)) - } - "CallExternalCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::CallExternalCanister(value)) - } - "FundExternalCanister" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::FundExternalCanister(value)) - } - "AddRequestPolicy" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::AddRequestPolicy(value)) - } - "EditRequestPolicy" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::EditRequestPolicy(value)) - } - "RemoveRequestPolicy" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::RemoveRequestPolicy(value)) - } - "ManageSystemInfo" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::ManageSystemInfo(value)) - } - "SetDisasterRecovery" => { - let value = variant_access.newtype_variant()?; - Ok(RequestOperation::SetDisasterRecovery(value)) - } - _ => Err(de::Error::unknown_variant(&variant, &EXPECTED_VARIANTS)), - } - } - } - - deserializer.deserialize_enum(ENUM_NAME, &EXPECTED_VARIANTS, RequestOperationVisitor) - } -} - -// Repositories should only implement the `RebuildRepository` trait if they are affected by the migration, -// otherwise, they should not implement the trait. -// -// The ones affected should have the implementation here. - -impl RebuildRepository> for RequestRepository { - fn rebuild(&self) { - let mut requests = Vec::with_capacity(self.len()); - Self::with_db(|db| db.iter().for_each(|(_, v)| requests.push(v))); - - // Then clear the repository to drop the existing data. - Self::with_db(|db| db.clear_new()); - - // Clear the indexes to avoid duplicates. - self.clear_indexes(); - - for mut request in requests.into_iter() { - // Then add the updated indexes. - self.add_entry_indexes(&request); - // Clear the module field if the request is finalized to save memory. - if request.is_finalized() { - if let RequestOperation::SystemUpgrade(operation) = &mut request.operation { - operation.input.module = Vec::new(); - } + ic_cdk::println!("Failed to create new asset policy: {:?}", err); } - - Self::with_db(|db| db.insert(request.key(), request)); } } -} -impl RebuildRepository> for PermissionRepository {} -impl RebuildRepository> for AccountRepository {} -impl RebuildRepository> - for AddressBookRepository -{ -} -impl RebuildRepository> - for ExternalCanisterRepository -{ + // add ICP asset + let icp_asset = Asset { + blockchain: Blockchain::InternetComputer, + decimals: 8, + id: Uuid::new_v4().as_bytes().to_owned(), + metadata: Metadata::default(), + name: "Internet Computer".to_string(), + standards: BTreeSet::from([BlockchainStandard::Native]), + symbol: "ICP".to_string(), + }; + + ASSET_REPOSITORY.insert(icp_asset.key(), icp_asset); } -impl RebuildRepository> for UserGroupRepository {} -impl RebuildRepository> for UserRepository {} -impl RebuildRepository> for RequestPolicyRepository {} diff --git a/core/station/impl/src/models/asset.rs b/core/station/impl/src/models/asset.rs index da5626c04..cb1446302 100644 --- a/core/station/impl/src/models/asset.rs +++ b/core/station/impl/src/models/asset.rs @@ -5,7 +5,7 @@ use orbit_essentials::{ }; use super::{Blockchain, BlockchainStandard}; -use crate::{errors::AssetError, models::Metadata}; +use crate::{errors::AssetError, models::Metadata, repositories::ASSET_REPOSITORY}; use std::{ collections::BTreeSet, hash::{Hash, Hasher}, @@ -60,6 +60,13 @@ impl Hash for Asset { } } +#[derive(Debug, Clone)] +pub struct AssetCallerPrivileges { + pub id: AssetId, + pub can_edit: bool, + pub can_delete: bool, +} + #[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct AssetEntryKey { @@ -102,11 +109,31 @@ fn validate_decimals(decimals: u32) -> ModelValidatorResult { Ok(()) } +fn validate_uniqueness( + asset_id: &AssetId, + symbol: &str, + blockchain: &Blockchain, +) -> ModelValidatorResult { + if let Some(existing_asset_id) = + ASSET_REPOSITORY.exists_unique(blockchain.to_string().as_str(), symbol) + { + if existing_asset_id != *asset_id { + return Err(AssetError::AlreadyExists { + symbol: symbol.to_string(), + blockchain: blockchain.to_string(), + }); + } + } + + Ok(()) +} + impl ModelValidator for Asset { fn validate(&self) -> ModelValidatorResult { validate_symbol(&self.symbol)?; validate_name(&self.name)?; validate_decimals(self.decimals)?; + validate_uniqueness(&self.id, &self.symbol, &self.blockchain)?; self.metadata.validate()?; @@ -139,6 +166,8 @@ pub mod asset_test_utils { #[cfg(test)] mod test { + use orbit_essentials::repository::Repository; + use super::*; #[test] @@ -173,4 +202,23 @@ mod test { asset.decimals = Asset::DECIMALS_RANGE.1 + 1; assert!(asset.validate().is_err()); } + + #[test] + fn test_validate_uniqueness() { + let mut asset = asset_test_utils::mock_asset(); + assert!(asset.validate().is_ok()); + + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + + // this passes uniqueness test because the asset id is the same + assert!(asset.validate().is_ok()); + + // this fails uniqueness test because the asset id is different + asset.id = [1; 16]; + + assert!(matches!( + asset.validate().expect_err("Asset should not be unique"), + AssetError::AlreadyExists { .. } + )); + } } diff --git a/core/station/impl/src/models/indexes/unique_index.rs b/core/station/impl/src/models/indexes/unique_index.rs index 67d02cd29..eaa1f443c 100644 --- a/core/station/impl/src/models/indexes/unique_index.rs +++ b/core/station/impl/src/models/indexes/unique_index.rs @@ -86,19 +86,23 @@ impl UserGroup { impl Asset { /// Converts the asset to it's unique index by name. - fn to_unique_index_by_symbol_blockchain(&self) -> (UniqueIndexKey, UUID) { + fn to_unique_index(&self) -> (UniqueIndexKey, UUID) { ( - UniqueIndexKey::AssetSymbolBlockchain( - self.symbol.to_uppercase(), // symbol is not case sensitive - self.blockchain.to_string(), - ), + Self::to_unique_index_by_symbol_blockchain(&self.symbol, self.blockchain.to_string()), self.id, ) } + pub fn to_unique_index_by_symbol_blockchain( + symbol: &str, + blockchain: String, + ) -> UniqueIndexKey { + UniqueIndexKey::AssetSymbolBlockchain(symbol.to_uppercase(), blockchain.to_string()) + } + /// Extracts all unique indexes for the asset. pub fn to_unique_indexes(&self) -> Vec<(UniqueIndexKey, UUID)> { - vec![self.to_unique_index_by_symbol_blockchain()] + vec![self.to_unique_index()] } } diff --git a/core/station/impl/src/models/request.rs b/core/station/impl/src/models/request.rs index 8a4194f0e..ec07c5c36 100644 --- a/core/station/impl/src/models/request.rs +++ b/core/station/impl/src/models/request.rs @@ -13,8 +13,8 @@ use crate::core::request::{ RequestApprovalRightsEvaluator, RequestEvaluator, RequestPossibleApproversFinder, }; use crate::core::validation::{ - EnsureAccount, EnsureAddressBookEntry, EnsureIdExists, EnsureRequestPolicy, EnsureUser, - EnsureUserGroup, + EnsureAccount, EnsureAddressBookEntry, EnsureAsset, EnsureIdExists, EnsureRequestPolicy, + EnsureUser, EnsureUserGroup, }; use crate::errors::{EvaluateError, RequestError, ValidationError}; use crate::models::resource::{ExecutionMethodResourceTarget, ValidationMethodResourceTarget}; @@ -248,6 +248,13 @@ fn validate_request_operation_foreign_keys( EnsureUserGroup::id_exists(&committee.user_group_id)?; } } + RequestOperation::AddAsset(_) => (), + RequestOperation::EditAsset(op) => { + EnsureAsset::id_exists(&op.input.asset_id)?; + } + RequestOperation::RemoveAsset(op) => { + EnsureAsset::id_exists(&op.input.asset_id)?; + } } Ok(()) } diff --git a/core/station/impl/src/models/request_operation.rs b/core/station/impl/src/models/request_operation.rs index eacbc375f..627e86c40 100644 --- a/core/station/impl/src/models/request_operation.rs +++ b/core/station/impl/src/models/request_operation.rs @@ -3,7 +3,7 @@ use super::{ request_policy_rule::{RequestPolicyRule, RequestPolicyRuleInput}, request_specifier::RequestSpecifier, resource::{Resource, ValidationMethodResourceTarget}, - AccountId, AddressBookEntryId, Blockchain, BlockchainStandard, ChangeMetadata, + AccountId, AddressBookEntryId, AssetId, Blockchain, BlockchainStandard, ChangeMetadata, CycleObtainStrategy, DisasterRecoveryCommittee, ExternalCanisterCallPermission, ExternalCanisterState, MetadataItem, UserGroupId, UserId, UserStatus, }; @@ -16,7 +16,7 @@ use orbit_essentials::model::{ModelValidator, ModelValidatorResult}; use orbit_essentials::{storable, types::UUID}; use std::fmt::Display; -#[storable(skip_deserialize = true)] +#[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, strum::VariantNames)] #[strum(serialize_all = "PascalCase")] pub enum RequestOperation { @@ -43,6 +43,9 @@ pub enum RequestOperation { RemoveRequestPolicy(RemoveRequestPolicyOperation), ManageSystemInfo(ManageSystemInfoOperation), SetDisasterRecovery(SetDisasterRecoveryOperation), + AddAsset(AddAssetOperation), + EditAsset(EditAssetOperation), + RemoveAsset(RemoveAssetOperation), } impl Display for RequestOperation { @@ -73,10 +76,61 @@ impl Display for RequestOperation { RequestOperation::RemoveRequestPolicy(_) => write!(f, "remove_request_policy"), RequestOperation::ManageSystemInfo(_) => write!(f, "manage_system_info"), RequestOperation::SetDisasterRecovery(_) => write!(f, "set_disaster_recovery"), + RequestOperation::AddAsset(_) => write!(f, "add_asset"), + RequestOperation::EditAsset(_) => write!(f, "edit_asset"), + RequestOperation::RemoveAsset(_) => write!(f, "remove_asset"), } } } +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct AddAssetOperation { + pub asset_id: Option, + pub input: AddAssetOperationInput, +} + +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct AddAssetOperationInput { + pub name: String, + pub symbol: String, + pub decimals: u32, + pub metadata: Metadata, + pub blockchain: Blockchain, + pub standards: Vec, +} + +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct EditAssetOperation { + pub input: EditAssetOperationInput, +} + +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct EditAssetOperationInput { + pub asset_id: AssetId, + pub name: Option, + pub symbol: Option, + pub decimals: Option, + pub change_metadata: Option, + pub blockchain: Option, + pub standards: Option>, +} + +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct RemoveAssetOperation { + pub input: RemoveAssetOperationInput, +} + +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct RemoveAssetOperationInput { + pub asset_id: AssetId, +} + #[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct TransferOperation { diff --git a/core/station/impl/src/models/request_operation_filter_type.rs b/core/station/impl/src/models/request_operation_filter_type.rs index e7221cb66..746120ba1 100644 --- a/core/station/impl/src/models/request_operation_filter_type.rs +++ b/core/station/impl/src/models/request_operation_filter_type.rs @@ -28,6 +28,9 @@ pub enum RequestOperationFilterType { ManageSystemInfo, ConfigureExternalCanister(Principal), FundExternalCanister(Principal), + AddAsset, + EditAsset, + RemoveAsset, } impl From for RequestOperationFilterType { @@ -80,6 +83,9 @@ impl From for RequestOperationFilterType { RequestOperation::FundExternalCanister(operation) => { RequestOperationFilterType::FundExternalCanister(operation.canister_id) } + RequestOperation::AddAsset(_) => RequestOperationFilterType::AddAsset, + RequestOperation::EditAsset(_) => RequestOperationFilterType::EditAsset, + RequestOperation::RemoveAsset(_) => RequestOperationFilterType::RemoveAsset, } } } diff --git a/core/station/impl/src/models/request_operation_type.rs b/core/station/impl/src/models/request_operation_type.rs index bf027f6a3..90f6fd86f 100644 --- a/core/station/impl/src/models/request_operation_type.rs +++ b/core/station/impl/src/models/request_operation_type.rs @@ -33,6 +33,9 @@ pub enum RequestOperationType { SetDisasterRecovery = 23, ConfigureExternalCanister = 24, FundExternalCanister = 25, + AddAsset = 26, + EditAsset = 27, + RemoveAsset = 28, } /// A helper enum to filter the requests based on the operation type and @@ -62,6 +65,9 @@ pub enum ListRequestsOperationType { EditAddressBookEntry, RemoveAddressBookEntry, ManageSystemInfo, + AddAsset, + EditAsset, + RemoveAsset, } impl PartialEq for RequestOperationFilterType { @@ -164,6 +170,15 @@ impl PartialEq for RequestOperationFilterType { ListRequestsOperationType::ManageSystemInfo => { matches!(self, RequestOperationFilterType::ManageSystemInfo) } + ListRequestsOperationType::AddAsset => { + matches!(self, RequestOperationFilterType::AddAsset) + } + ListRequestsOperationType::EditAsset => { + matches!(self, RequestOperationFilterType::EditAsset) + } + ListRequestsOperationType::RemoveAsset => { + matches!(self, RequestOperationFilterType::RemoveAsset) + } } } } @@ -231,6 +246,9 @@ impl Display for RequestOperationType { write!(f, "configure_external_canister") } RequestOperationType::FundExternalCanister => write!(f, "fund_external_canister"), + RequestOperationType::AddAsset => write!(f, "add_asset"), + RequestOperationType::EditAsset => write!(f, "edit_asset"), + RequestOperationType::RemoveAsset => write!(f, "remove_asset"), } } } diff --git a/core/station/impl/src/models/request_specifier.rs b/core/station/impl/src/models/request_specifier.rs index 646520bca..53df45068 100644 --- a/core/station/impl/src/models/request_specifier.rs +++ b/core/station/impl/src/models/request_specifier.rs @@ -1,7 +1,7 @@ use super::resource::{Resource, ResourceIds}; use super::{MetadataItem, Request, RequestId, RequestOperation, RequestOperationType}; use crate::core::validation::{ - EnsureAccount, EnsureAddressBookEntry, EnsureIdExists, EnsureRequestPolicy, + EnsureAccount, EnsureAddressBookEntry, EnsureAsset, EnsureIdExists, EnsureRequestPolicy, EnsureResourceIdExists, EnsureUser, EnsureUserGroup, }; use crate::errors::ValidationError; @@ -50,7 +50,7 @@ pub enum ResourceSpecifier { Resource(Resource), } -#[storable(skip_deserialize = true)] +#[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, strum::VariantNames)] #[strum(serialize_all = "PascalCase")] pub enum RequestSpecifier { @@ -76,6 +76,9 @@ pub enum RequestSpecifier { RemoveUserGroup(ResourceIds), ManageSystemInfo, SystemUpgrade, + AddAsset, + EditAsset(ResourceIds), + RemoveAsset(ResourceIds), } impl ModelValidator for RequestSpecifier { @@ -91,7 +94,8 @@ impl ModelValidator for RequestSpecifier { | RequestSpecifier::AddRequestPolicy | RequestSpecifier::ManageSystemInfo | RequestSpecifier::SetDisasterRecovery - | RequestSpecifier::AddUserGroup => (), + | RequestSpecifier::AddUserGroup + | RequestSpecifier::AddAsset => (), RequestSpecifier::CallExternalCanister(target) => { target.validate()?; @@ -121,6 +125,11 @@ impl ModelValidator for RequestSpecifier { | RequestSpecifier::RemoveUserGroup(resource_ids) => { EnsureUserGroup::resource_ids_exist(resource_ids)? } + + RequestSpecifier::EditAsset(resource_ids) + | RequestSpecifier::RemoveAsset(resource_ids) => { + EnsureAsset::resource_ids_exist(resource_ids)? + } } Ok(()) } @@ -157,6 +166,10 @@ impl From<&RequestSpecifier> for RequestOperationType { RequestSpecifier::RemoveUserGroup(_) => RequestOperationType::RemoveUserGroup, RequestSpecifier::ManageSystemInfo => RequestOperationType::ManageSystemInfo, RequestSpecifier::SetDisasterRecovery => RequestOperationType::SetDisasterRecovery, + + RequestSpecifier::AddAsset => RequestOperationType::AddAsset, + RequestSpecifier::EditAsset(_) => RequestOperationType::EditAsset, + RequestSpecifier::RemoveAsset(_) => RequestOperationType::RemoveAsset, } } } diff --git a/core/station/impl/src/models/resource.rs b/core/station/impl/src/models/resource.rs index 9ffd9dcb7..f58b11f63 100644 --- a/core/station/impl/src/models/resource.rs +++ b/core/station/impl/src/models/resource.rs @@ -7,6 +7,7 @@ use orbit_essentials::{ use std::fmt::{Display, Formatter}; use uuid::Uuid; +use crate::core::validation::EnsureAsset; use crate::{ core::validation::{ EnsureAccount, EnsureAddressBookEntry, EnsureNotification, EnsureRequest, @@ -19,7 +20,7 @@ use crate::{ /// The deserile implementation is available in the migration module for the `Resource` enum, this is /// because the enum had a backward incompatible change in the past and the migration module is handling /// the deserialization of the old data. -#[storable(skip_deserialize = true)] +#[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, strum::VariantNames)] #[strum(serialize_all = "PascalCase")] pub enum Resource { @@ -33,6 +34,7 @@ pub enum Resource { System(SystemResourceAction), User(UserResourceAction), UserGroup(ResourceAction), + Asset(ResourceAction), } impl ModelValidator for Resource { @@ -106,6 +108,14 @@ impl ModelValidator for Resource { EnsureUserGroup::resource_id_exists(resource_id)? } }, + Resource::Asset(action) => match action { + ResourceAction::List | ResourceAction::Create => (), + ResourceAction::Read(resource_id) + | ResourceAction::Update(resource_id) + | ResourceAction::Delete(resource_id) => { + EnsureAsset::resource_id_exists(resource_id)? + } + }, } Ok(()) } @@ -614,6 +624,38 @@ impl Resource { vec![Resource::UserGroup(ResourceAction::Delete(ResourceId::Any))] } }, + + Resource::Asset(action) => match action { + ResourceAction::Create => vec![Resource::Asset(ResourceAction::Create)], + ResourceAction::Delete(ResourceId::Id(id)) => { + vec![ + Resource::Asset(ResourceAction::Delete(ResourceId::Id(*id))), + Resource::Asset(ResourceAction::Delete(ResourceId::Any)), + ] + } + ResourceAction::List => vec![Resource::Asset(ResourceAction::List)], + ResourceAction::Read(ResourceId::Id(id)) => { + vec![ + Resource::Asset(ResourceAction::Read(ResourceId::Id(*id))), + Resource::Asset(ResourceAction::Read(ResourceId::Any)), + ] + } + ResourceAction::Update(ResourceId::Id(id)) => { + vec![ + Resource::Asset(ResourceAction::Update(ResourceId::Id(*id))), + Resource::Asset(ResourceAction::Update(ResourceId::Any)), + ] + } + ResourceAction::Update(ResourceId::Any) => { + vec![Resource::Asset(ResourceAction::Update(ResourceId::Any))] + } + ResourceAction::Read(ResourceId::Any) => { + vec![Resource::Asset(ResourceAction::Read(ResourceId::Any))] + } + ResourceAction::Delete(ResourceId::Any) => { + vec![Resource::Asset(ResourceAction::Delete(ResourceId::Any))] + } + }, } } } @@ -633,6 +675,7 @@ impl Display for Resource { Resource::System(action) => write!(f, "System({})", action), Resource::User(action) => write!(f, "User({})", action), Resource::UserGroup(action) => write!(f, "UserGroup({})", action), + Resource::Asset(action) => write!(f, "Asset({})", action), } } } diff --git a/core/station/impl/src/repositories/asset.rs b/core/station/impl/src/repositories/asset.rs index 9e253dbc8..ecd30baaa 100644 --- a/core/station/impl/src/repositories/asset.rs +++ b/core/station/impl/src/repositories/asset.rs @@ -175,6 +175,12 @@ impl AssetRepository { }); }); } + + pub fn exists_unique(&self, blockchain: &str, symbol: &str) -> Option { + let key = Asset::to_unique_index_by_symbol_blockchain(symbol, blockchain.to_owned()); + + self.unique_index.get(&key) + } } #[cfg(test)] @@ -195,4 +201,24 @@ mod tests { assert!(repository.remove(&asset.id).is_some()); assert!(repository.get(&asset.id).is_none()); } + + #[test] + fn test_unqiueness() { + let repository = AssetRepository::default(); + let asset = asset_test_utils::mock_asset(); + + assert!(repository + .exists_unique(&asset.blockchain.to_string(), &asset.symbol) + .is_none()); + + repository.insert(asset.id.to_owned(), asset.clone()); + + assert!(repository.exists_unique("icp", "icp").is_some()); + + assert!(repository.exists_unique("icp", "ICP").is_some()); + + assert!(repository.exists_unique("icp", "ICP2").is_none()); + + assert!(repository.exists_unique("eth", "ICP").is_none()); + } } diff --git a/core/station/impl/src/services/asset.rs b/core/station/impl/src/services/asset.rs new file mode 100644 index 000000000..25c3387e1 --- /dev/null +++ b/core/station/impl/src/services/asset.rs @@ -0,0 +1,296 @@ +use std::sync::Arc; + +use crate::{ + core::{authorization::Authorization, utils::retain_accessible_resources, CallContext}, + errors::AssetError, + models::{ + resource::{Resource, ResourceAction, ResourceId}, + AddAssetOperationInput, Asset, AssetCallerPrivileges, AssetId, EditAssetOperationInput, + RemoveAssetOperationInput, + }, + repositories::{AssetRepository, ASSET_REPOSITORY}, +}; +use lazy_static::lazy_static; +use orbit_essentials::{ + api::ServiceResult, + model::ModelValidator, + pagination::{paginated_items, PaginatedData, PaginatedItemsArgs}, + repository::Repository, +}; +use station_api::ListAssetsInput; +use uuid::Uuid; + +lazy_static! { + pub static ref ASSET_SERVICE: Arc = + Arc::new(AssetService::new(Arc::clone(&ASSET_REPOSITORY),)); +} + +#[derive(Default, Debug)] +pub struct AssetService { + asset_repository: Arc, +} + +impl AssetService { + pub const DEFAULT_LIST_ASSETS_LIMIT: u16 = 100; + pub const MAX_LIST_ASSETS_LIMIT: u16 = 1000; + + pub fn new(asset_repository: Arc) -> Self { + Self { asset_repository } + } + + pub fn get(&self, asset_id: &AssetId) -> ServiceResult { + let asset = self + .asset_repository + .get(asset_id) + .ok_or(AssetError::NotFound { + id: Uuid::from_bytes(*asset_id).hyphenated().to_string(), + })?; + + Ok(asset) + } + + pub fn create(&self, input: AddAssetOperationInput) -> ServiceResult { + let id = Uuid::new_v4(); + let asset = Asset { + id: *id.as_bytes(), + blockchain: input.blockchain, + standards: input.standards.into_iter().collect(), + symbol: input.symbol, + name: input.name, + decimals: input.decimals, + metadata: input.metadata, + }; + + asset.validate()?; + + self.asset_repository.insert(asset.id, asset.clone()); + + Ok(asset) + } + + pub fn edit(&self, input: EditAssetOperationInput) -> ServiceResult { + let mut asset = self.get(&input.asset_id)?; + + if let Some(name) = input.name { + asset.name = name; + } + + if let Some(symbol) = input.symbol { + asset.symbol = symbol; + } + + if let Some(decimals) = input.decimals { + asset.decimals = decimals; + } + + if let Some(change_metadata) = input.change_metadata { + asset.metadata.change(change_metadata); + } + + if let Some(blockchain) = input.blockchain { + asset.blockchain = blockchain; + } + + if let Some(standards) = input.standards { + asset.standards = standards.into_iter().collect(); + } + + asset.validate()?; + + self.asset_repository.insert(asset.id, asset.clone()); + + Ok(asset) + } + + pub fn remove(&self, input: RemoveAssetOperationInput) -> ServiceResult { + let asset = self.get(&input.asset_id)?; + + self.asset_repository.remove(&input.asset_id); + + Ok(asset) + } + + pub async fn get_caller_privileges_for_asset( + &self, + asset_id: &AssetId, + ctx: &CallContext, + ) -> ServiceResult { + Ok(AssetCallerPrivileges { + id: *asset_id, + can_edit: Authorization::is_allowed( + ctx, + &Resource::Asset(ResourceAction::Update(ResourceId::Id(*asset_id))), + ), + can_delete: Authorization::is_allowed( + ctx, + &Resource::Asset(ResourceAction::Delete(ResourceId::Id(*asset_id))), + ), + }) + } + + pub fn list( + &self, + input: ListAssetsInput, + ctx: Option<&CallContext>, + ) -> ServiceResult> { + let mut assets = self.asset_repository.list(); + + if let Some(ctx) = ctx { + // filter out assets that the caller does not have access to read + retain_accessible_resources(ctx, &mut assets, |asset| { + Resource::Asset(crate::models::resource::ResourceAction::Read( + crate::models::resource::ResourceId::Id(asset.id), + )) + }); + } + + let result = paginated_items(PaginatedItemsArgs { + offset: input.paginate.to_owned().and_then(|p| p.offset), + limit: input.paginate.and_then(|p| p.limit), + default_limit: Some(Self::DEFAULT_LIST_ASSETS_LIMIT), + max_limit: Some(Self::MAX_LIST_ASSETS_LIMIT), + items: &assets, + })?; + + Ok(result) + } +} + +#[cfg(test)] +mod tests { + use orbit_essentials::repository::Repository; + use station_api::ListAssetsInput; + + use crate::{ + models::{asset_test_utils::mock_asset, AddAssetOperationInput, BlockchainStandard}, + repositories::ASSET_REPOSITORY, + }; + + use super::AssetService; + + #[tokio::test] + async fn test_asset_creation() { + let service = AssetService::default(); + + service + .create(AddAssetOperationInput { + blockchain: crate::models::Blockchain::InternetComputer, + standards: vec![BlockchainStandard::Native], + decimals: 8, + metadata: Default::default(), + name: "ICP".to_string(), + symbol: "ICP".to_string(), + }) + .expect("Failed to create asset"); + + let assets = ASSET_REPOSITORY.list(); + + assert_eq!(assets.len(), 1); + assert_eq!(assets[0].name, "ICP"); + } + + #[tokio::test] + async fn test_asset_edit() { + let service = AssetService::default(); + let mut mock_asset = mock_asset(); + mock_asset.name = "Bitcoin".to_string(); + ASSET_REPOSITORY.insert(mock_asset.id, mock_asset.clone()); + + service + .edit(crate::models::EditAssetOperationInput { + asset_id: mock_asset.id, + name: Some("Internet Computer".to_string()), + symbol: Some("ICP".to_string()), + decimals: Some(8), + change_metadata: None, + blockchain: None, + standards: None, + }) + .expect("Failed to edit asset"); + + let assets = ASSET_REPOSITORY.list(); + + assert_eq!(assets.len(), 1); + assert_eq!(assets[0].name, "Internet Computer"); + } + + #[tokio::test] + async fn test_asset_remove() { + let service = AssetService::default(); + let mock_asset = mock_asset(); + ASSET_REPOSITORY.insert(mock_asset.id, mock_asset.clone()); + + service + .remove(crate::models::RemoveAssetOperationInput { + asset_id: mock_asset.id, + }) + .expect("Failed to remove asset"); + + let assets = ASSET_REPOSITORY.list(); + + assert_eq!(assets.len(), 0); + } + + #[tokio::test] + async fn test_asset_list() { + let service = AssetService::default(); + let mock_asset = mock_asset(); + ASSET_REPOSITORY.insert(mock_asset.id, mock_asset.clone()); + + let assets = service + .list(ListAssetsInput { paginate: None }, None) + .expect("Failed to list assets"); + + assert_eq!(assets.items.len(), 1); + assert_eq!(assets.items[0].name, "Internet Computer"); + } + + #[tokio::test] + async fn test_asset_get() { + let service = AssetService::default(); + let mock_asset = mock_asset(); + ASSET_REPOSITORY.insert(mock_asset.id, mock_asset.clone()); + + let asset = service.get(&mock_asset.id).expect("Failed to get asset"); + + assert_eq!(asset.name, "Internet Computer"); + } + + #[tokio::test] + async fn test_asset_uniqueness() { + let service = AssetService::default(); + + service + .create(AddAssetOperationInput { + blockchain: crate::models::Blockchain::InternetComputer, + standards: vec![BlockchainStandard::Native], + decimals: 8, + metadata: Default::default(), + name: "ICP".to_string(), + symbol: "ICP".to_string(), + }) + .expect("Failed to create asset"); + + service + .create(AddAssetOperationInput { + blockchain: crate::models::Blockchain::InternetComputer, + standards: vec![BlockchainStandard::Native], + decimals: 8, + metadata: Default::default(), + name: "ICP".to_string(), + symbol: "ICP".to_string(), + }) + .expect_err("Asset with the same symbol and blockchain should not be allowed"); + + service + .create(AddAssetOperationInput { + blockchain: crate::models::Blockchain::InternetComputer, + standards: vec![BlockchainStandard::Native], + decimals: 8, + metadata: Default::default(), + name: "ICP".to_string(), + symbol: "ICP2".to_string(), + }) + .expect("Failed to create asset"); + } +} diff --git a/core/station/impl/src/services/external_canister.rs b/core/station/impl/src/services/external_canister.rs index 687d6cc09..f6c79d074 100644 --- a/core/station/impl/src/services/external_canister.rs +++ b/core/station/impl/src/services/external_canister.rs @@ -326,7 +326,7 @@ impl ExternalCanisterService { }, ); - // filter out requests that the caller does not have access to read + // filter out external canisters that the caller does not have access to read retain_accessible_resources(ctx, &mut found_ids, |id| { Resource::ExternalCanister(ExternalCanisterResourceAction::Read( ExternalCanisterId::Canister(*id), diff --git a/core/station/impl/src/services/mod.rs b/core/station/impl/src/services/mod.rs index 568f7a67c..ea80e5553 100644 --- a/core/station/impl/src/services/mod.rs +++ b/core/station/impl/src/services/mod.rs @@ -37,3 +37,6 @@ pub mod permission; mod disaster_recovery; pub use disaster_recovery::*; + +mod asset; +pub use asset::*; diff --git a/scripts/benchmark-canister.sh b/scripts/benchmark-canister.sh index 87626bdf3..841225d99 100755 --- a/scripts/benchmark-canister.sh +++ b/scripts/benchmark-canister.sh @@ -25,7 +25,7 @@ print_message "Benchmarking canister at $CANISTER_PATH" # Install canbench if not already installed if ! cargo install --list | grep -q canbench; then print_message "Installing canbench..." - cargo install canbench --version 0.1.4 + cargo install canbench --version 0.1.5 fi # Changes to the canister path diff --git a/tests/integration/assets/station-memory-v1.bin b/tests/integration/assets/station-memory-v1.bin new file mode 100644 index 0000000000000000000000000000000000000000..1c10bba4c1124a927ca2f8ae670a6856a560fb02 GIT binary patch literal 2282384 zcmeFZXIPWjyZ`%}VU$r6#z91-jWU8r6Ompr7GR_*y#$aN>4aWFu+f`>^d=&`mxNAK zAOQkF=@1}72%(1%LI`Px+54R9?ET_@Ui|lY@!$J0FV>YSE6qh?-cDgJ^@_k6pS03A6Jztnkyw)kX59V>M67z|3A~qV% z<=TW|p0CF^({I1ERBFXP7&SAV>)8h${1JN)M_vO!DZkT>NTNTM?sc zr5D=t?&5gBjjDEQZVyNL(N(B7t zH+!!jw*iMC`%63lWM*dH!hFS5*sksk+%w$dQtm}huW{!N+scZ?fx8>ClXlVVKqJA> znOiCIG`gk*K%+jccc-MgTN00KM4FF z@Poh)0zU}+Pa^P~lNg6!{LRi<`1qu_n6p61*{XF^BH|WI*y_RiDq(CBh9lu$pE#xY zs5QSHxA7Syq{D+LBAbCq69fFaUi)9;aMV=$Uw5AL9Q|y2v@UMcu?E~7=NucwIWWf0 zH+YOXYCr4UkDB`m_cX-qW%)Jy;QbCNAsffo1_{$d5fgXKRskEhNmhjLN9H3l$c6q&SYW#5uLIh z3HqicNtyKOc*?UMbPC@VE08VKIm{($jik-Q?;4hrfb8= zR^%LRk4f^X>^-bab@>KRNJTb#yGor=?(> zmtLzD7`f_nUlk!6p6ef~trG$JyM9{uX8i2F38^}%?2lW=TS1cU?{Uq` zz`;(>q@uS!QS>xEh$9@@IMY)zKf?!H=9b1l1k#AUZ&GOUzKMHJZ9>tkfS*HZrF}v> z=B&s zLSBK>grOXM56Ev5D@TK`)k+O#7gZTpzhcT0t{E2N)5ZVKssE$%2Z8@t1lX9~p67NJ zQ%OIA`14L>o!uCmtn44>?{Emz+6Qv|^7?CC`R{pEUUeOpc2}Jmztzu?Q|!$i=#1XZ z{5sxhe%CSHel!&+3or@k?&-Gnls8DTjOdP7NrkD%^BlVOWlb^|Q8@QHr8R4>5w*3; z90gzCiR;Pt7CpFW$A#Z~?ENg)a1n0D?-yqZql?dE z%+EWJS%)vU;MOeiBH3@bsdS5)8|WScx2jOlw%>sQ?qq9KzYPge9v5w1jTlQOX&IEz zWQK-iu>CSvL`|NrTIeL!_g3mKhnfD9fvpF_k&c6gEjE))qPJG;9oR<+#mooNJGkhG z*UTYzox&Mvt8C=z#KhIKu_+CqUS&7*cH2n=MA5;XtRsu% zKvZti{@4~(byc)KhH^rgZ9B z>-GM~evq*^}Sz)YSk& z>LD!fIyB0;Vs{3>=Xk|kHwdw--pmO09%n`18h2;tcEJb-rH>41mQO^A;=q!I0SPSO zxT|E~WKp12o=H&DNHLzUNttUwjTD4$=XfY?p{CQSLPo4}!)$v>p$j0StG3xq(49Hk z`rI1HIY^bQLCpZ9)bwWdcx$fgyG`nSDeN=ljE_&Gm4!xu;$}4#0Wqd^MF#1Rp0C-> zx90vF`bae_efv&2_wLZU42X8I6k$K6^|4fTK&E%qyiEC{GT?~P@PK#In}&;u1ZPDv z-?e>uXzOqubbT9H8wDCI2n23@7n%x+KqcF=p?%3!b)n)`15+ZlYUQv1Lqj1&bq#e6 z<8|hFr@w2i$!M0ts;E61EgCh2B8s5o?c-(YsjQyUY!nRx4Jg(di=e&Dc7*hCR9iDc z#ye8x`AJ2ppe3_D_`=34xX;c*g*V#M7QYK7LR>I!?0Z8e)A4p5Vj5x74mjo*Id0*& z5Co-T9mf_sGA%iyEFaE6AD4C%wuHl6pYuB&GJ)GHI_RBObt80H&L?tlr-bh=9R?Z~ z9zGqXe@#W(dYEX3ZGA;&?}Sok@>?uNqBlSA!N+xR>{)84=v@!y2Q%IBJ`>2H2l;6f z&|)!!rKaDrc9WJ@I_||KvY=jq@@+EnsOdtA1hFUi9ie;N#DxWY><$Hwh~9sr zK*PaCMcde$lVD1hF_SMA;WEo9R9)u*v6!_wqeCus9-xAdMP7M7z;TX-kbwlk-;wds za$eqjK~;8Q3A)TgS{Yi+V^UA(h2Bz7y{Xu@TK`hmlbtPd65+gwi&l&cGz8ivaer1KxCgJ^XE|gCwdIh`NzScsDuFO0f zxe|vUCSsx_3!vW{v+KLoLVq(!^ksB6^F=XEoP4WBLCq*Qk`svo=W06UTX_ez6q^+}WG#_uqq^$_CEqM=lfmx;>Ty`TbNWa{y*=1R>qvWF7*w$;-<=r6kVyUZ1GV(O~Xa z>o_mqxR;2FAVCqG;Rr2WQFVlitMm??WW4Cb@WAT<{l8%B95l2vOM3ngtz~pNR?*Px z9>>W@fqEoj-fAEcoBfftxcJch%VyGu_Oj zz4dnp@5SIMvN);8Q9Wuwus(t!$6)zaw1j+REd53P1IH-*0wIN-b&Oe}c($!9`Pv;o z#o%8Vthe`}ilX0+UyW;~g)B02H zIWv_9!k0c&hLVL@ySl4O@k!I%$y(u#-TY6?boD$HRTj!pkFXwYH zuR~uuU+PB8N1HkeuT1BvcU~9wJxYNdYdmyQ+2a2Emzj``xon{~1G>GY^^g8@kQw_Mqafw>WRHJM(ykh*tSXXkp~Sq!gEK&qY? z-kFLpH4YecSI&?opgZnLW$OA`pZ1YWK)oANPNF+2TO|qr>n6u-;p4R*r%dZ}-r*M~yv3IW z7llDlQEd-s0A_g_ggneL>GZatd;}Fg>w;%0Ly83}qHc7J?HcgfXwp%D8V8&{V{N=5 ziLNLqdQ6uuJXm>x&lZ`~*KpR^sUiYYA~wzgm@85|dLy`|Ol6OTmgs}53_exgAvjus zi6!wuHPI0qYC4%xq!;Y|+^*k4oN|7)*J3Kcadn<;yFlN7xP# zYUrLlZ~9ZQBNd}SSf07Tqq3!1%S5o)KD{^7q5;+!Wm|REYry#&&%n{ezm&C8AJ-|n zC>kpc=)-L5XY?N>3qC4;W8UIX{cJFC)6h^TV7IbA*HT{12+b%$`2 zG3R_ktT<-yBkbc+S|{X z5jV^JoVFYHl$Z)oOxSs!J}K>?4KMuDZ1~Sy$hprk_Z5mCdD8W(#X16ZDByEtQxxe__Kb0+oaF8mD7Raf2T*t<|mCszH?q404j`5F-$FcuZY{s z$7|ThX5I0~8-qIoliz1L_nPZ_c34-9T6^9Id8J=wEhTsrcE8F7lbx=sC`+xXRh^uy znbR*f^@7oKl`>X&VD3$(RTXm)Rg<+UE{->qSKfS!*L$0=Q<*pEY@X6*zJS(GUa1TF zO8w(Wna00b#co3_o>|-Iiu!*U)CPr0|G8wFCk%S)Ce?~lO7}0E7(vRFM zcS1weT)$}aQULN0+L8%C4GGMO{>prco)Tk>=VlyLI+VYa7`>ZnQsyihOOMbV>VNX_ zN?fyHo-9(ku)$)JOz-`;boDw9*t*K?4)_=O>ETmmMAhKbmN?IXo2V%riP3=^yK0c_ zD;M$IXk}S}trXR$dgR<+rd8%Hd$m^1L2~Z`sGhd6tK-_IaF)+g5O3_F zO0R-Uz%vv2<+GJYa192-DFo7b5hMarJw!^HyVPak3#1an1IqI5 zR;NTXJ$^JXZP;#&Mmg1+1m{e9r2xID9fqss|3j_HvA4JQsi#_?c%AbLoa4xG78A+{l+=}|6#p7q>7MC7bIfVONopHvaO zFCXYv+=@QMXIXq$rCdlzb|DLpTRPPcmj;lFAGx$5aB52 zXEIhv1Mb3tXGibP+m82_JyQ@OGRe(S`pUO z{R5WWa&M=3z<*2KAQ<*c8m_#ox?uHj;4Z)3n68}Q%-3A~GLyi!qw1$!@x!V(nYESG zYU@e@KCv0*J(i{DQBu?}y-7wWPOj_$<&cCRsrtY0IZx6Iz8FeO*aoaQ2I5Dzg1&Ve zF-?TKpKX8K9;YJ!ervg<+Su$<%dcgP>0=_hA{0{@K&JRfx#xh5v0`t{5)`m%%r&%gg%Z=qPjgXnCD<+A# z?2F~z7qo?uv08mb%kj5wB>x(HF8X}i>x`Lg9DTW{Jxv@gavA9(*e1i<7NhY+X}M*Y zwOm50!@&L=;SnLnX}3PmOm0AG0(dK8P<=^Y0I%p#(bQa4Y}W%V8NSjs9=!A0nf@

=S~{N_@Olozj4__K4V!MCqXV?T!F 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�PT(c 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�xU0C?s;*uA*1@dg)SR4Cz_>H8q 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

Il{~!#IpE#x(8_Jh;2NyAzz?1b24` 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 z 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

dT&fS3?~qlfo7&H42MMpr(|d=2||l(ZKNiA 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 z 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 z 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 z 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%0Ac<1El`8~y3w}5Q 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

?ws5r@~2>Diq_2 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 xyN?gemxv*feuI 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

-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 z zgOF9JARqp21B0Ye@*qC!z&y*kUOL^Kt6h>6NJ3k?8{Pca7*$35-&ds6%c^^|(`lQ+ zI<$ALEw2^^^nC-(oMTBo%F;*_$CAj$TTn|HgZ@a1aq4CJ1IzN?p;#fo#qkbPFkB^d zKT?wpdfS+QFDj9)rU=0xiR!@szE2 zy1=);kmYNCluMyAc~HJVu9VJXv!E6~M53n^0Zv{|IJHE1Eqpr-P77d%)xsu(~V+?ZHFpY(qI3#RFi(kFi``y`2l{Nb$YZ zJmJ)R!(=;afo+{F!l<_|Op!A5rOk`5XfTAkp2LC#5+9e z9B92tkLh6ERt)bamOs7m{3@|_38DRi@INVA#?!4(?YF}8Rv+@)p>x$@Ys*0Z>2Gu- zqgkSmy#;5)!wJDo@8Z`P?IfD-?smk$V%pmQ(Bx1p235XLuaDzkhH&_mRjq9QmoQ(b z)R_d{-vWVUW=0nBSP6!CI~xC>_ILb)sE<5z0^X_4Sqiw95Y1A4a#|QL82PeF_IDS9 zY>Q3MsDSM26#`~Q@>@WyeRvh{U3 zl=wQMUZD7~#Qs))D`^OWu8H3n!H`oho^7!(!p2tN_A+|i02MEfW!z`borHh*3y){; zr}5g@-3i{-Q$XHXgwRMqqoGg_2=YgCe=fSC-Ndhy=y!(~x!@1ImE5)IxMhH>!zzSJ6@B za4uXzPnRS1)F_SS@uSQ!U+HNA4y(Km?I>SOXZ)(tv&^a+moORBV2;q5w;B?jgX+Gu z$~)Pu+7Rvgd7;Ebt>i!zv{xC2Lf>d;NecN5aIF&E%!7b|igI4Ts0%`51z6Syol1ds z9EjVjZ@Y9^7^wm*RP^+U>I-qV!pc%(e!}xq$b*7^H}XtNTlXm!be&>Dl0$7i=70un zh%e)9;Hrfh5Wxh-vJLaeLL{wH5{JRi-%-e#wq5O%d$Aq$DiDE96|}vFrG}9~(Gp*5 zvl?OHd~5x|EG z7WORknd(qg-vTu@!pYI_><`p5J$)ueK~#k$O+Qe!KsK17H6gRRDO=*mojE3|%+Pqb1 z)5BKf>l1C1MPTJ1_p^$W<*^qT9YYslJ>NhO9H1ByI>1;aU?R;>sJ67yo~246_UPX2}e<7}gPI-XyZ7l1=n38#fj19~x@!=?DhUU=imsq3Z)3WvJRWKfG~ zbUj!OwC&iy&YHsA6kLj1--y-h47gNA{AowkS)RLtL& zhyNPf`p*co8~P#0@$Ru*Z9*?PdoiaqVYDT&?&|JH5M9jS>Fso$2F3c-jsu6F=~pqF zt_B>X{QYhgrZ-YeReLbv0SJ34qHTj@+B5Fr zhRM-_$9KAAF&Jn3V3epnsz7ux;Q|q?dm3WiLzx7&368HQY$^v$<)B}fT8Gehz0%*N z-;=fpQ;2V>7#hYY%=!<$RsA3q(NNz5!*6Y=SN*v@Bb;7yLq%3}ybc`FQYfoHTDH6CQ=vcUEuTF%PVB2~e0}3;W~xHy}4%zbM# z&C=}xtEcy~yz0MhxDg>yXR z|2QjVT>uuhgqpT)uYeb7GE=Scf}?#5KqC>#&=R85u)=-X$ExTdXSlokF2W)Fa)uOW07 z*RCPREZQy1fcV$onGf@*;K+3dl?eHDL#sv^_Gt=5N{n|C6kk)xC5wSG_!Ek>BGZBD zFvO;Wy0dV0CEv`%8EADn&FX<(H>8K|P_mWbj6_A$hydN@2nc$$yA=afTFivq$&z;} zS+3v&j1Yj8*yzU-CbDf7*AR~ZHL``(J}p$043^iRLe~qu zA{&RSn#IJ8$rb(Kt+f9zo;i$?jI-k+p=77Uwb16x@TWF5uT1%7 zsLXnXd;?Fo3iS{iYIYiKqRBv~MR8Hygb*pjXyp&h=HZ=;zci!HhW353*P3K99r`QtzIBg0oB*q#{0p`7dd%g4THSkrVR9xyzx9WsDW}8A4}M z@d5aA!Jylo)ek7{GE3*J%8MX5aA-qCR@^{S7Pncw0r^{|JSJ1$;wX10ZS9|3pm61L$cS z4yZI**#kS>gOf|lNWaoJTRu#i+p&%x5L#~<%7-$2Ks^0pb1|_H1d&%J#@!crHB-bw zxIen}fkv;O0=IEl_}Tz^$j$R_ghA$oJ312sk}?}0e>=;<`v-O1Y4xHvV2vm31VqOd zOR=$BQqpydSCGmNke*6As~&4B2yQNb0hb~!s{F|9_h5pe4q~K6%8N55b|1%C6>6`)BPD?Ik&p^t;MoWFlgka zSXeI$-)!LCQq$-H{T`(CC1_JlzW)ekj=-)}zC60g$Bv%0|98|%K?qlPv?>$?LS!Kv zStX2qJ3k2y8)G?In{YMVxihC#65fauZ!}_Emt)XSHEwsI4$xqGgJ~zDvQ%vfjec`lrI zP5)QWLk)B>ZR)SqP=AIVzS+1|*>@j};wy~24I^x4ncnxgv!J!C)?TA_Z(`a2^9SJ` zboT`-?$*UU7shLDV@P%WtATcyM=tKJXM-PO&91Z{+LM-=DN-BSU^e+_=ku295{`H` ze#bv(^&S5p>f?D_%1c+h2^uzkgTkT_cqnR*yG1sa68;Y#!SlVPItopy-72QHlsAUg|UiTViL2~r&H9n&- zO#2MmhtNtYm|7hxQhjBGhL*v9bhiA71JG0>689`@-N8_Om$* z1RFuzgUsrDPRi`i%jSX+2&gB^s=jV^7?*y9xo;SMCASo4c3|KT2v~--9C#zwjLmAK*gq_*2-Y&brApHwVW0+RmaS>ew)MAgn ze&BW%TcG9?`V-PjGPHNDJFMu{rbzZj)tx3FnBmOfo+Vf*vC_C0?V1n3nisJC0IFDr z9P?~yxPT5v;~%vBj(^bhfASYfqcuNZCA081V=T(;rp2FEbZsd@uh3v(TSFmtIjZ~A zEzxF8B6@G8{p5G9ex$wQl|>g-$muOoy~bShjuxlGkL&QFEH1JmBM}<*UPxni%Llrq zx+wuz3)_=OMNYN~f?7)_f5t^)8=#XLnUhPpm!7=I<vlzWz%Hkq zhjFf{f3Q1GHeP_$RY>Zx`&eOurwmP7m#xv<>3mx0S_{ZmAz!VbQ^@6lIGie-(Ax3{ zL*IkGO=YZ?>3Ukt8 z)szm_!yav-pT`j-WmT~Ofho6eAO)hm?W}$%IxM`OoBZ33F=xg#YFBFlYPP{PQ&fAA z1sn^^7l`VNr`x0i&0>~{C7L^0iG|)V&?mj$l_sk)gs$?(Kq z**6$l7weXkIv}*iVR%{9j~Bk^Ncx}5zvZ~F)wbV1n=vn8LK()@n@mT)LE}m8cF0T! z61|~liy@&OM}35soF9I+H0<^BaAGsu%YqA@4_|6BuKOsM%DAest}2CGhe*NW?S{Nu zEV3qYXC=#U`vGqKu0jm2k(6Gg9>g_>w4?M;nY((pi%KTk7S}g`cADYDC?#QUF7M#e zFP2i>2D|4Kcsx_(NssG_@9Lfzc5 zFkbKDG1h`8`A^|iYq*dX{%ah{B*65m=AaZGHpfx|Qdzb_E|}DxIsBdqFnhtGpMp&) zYY~;wi8^6YnXMdeUyGdSfQawXMk~fMN8trZMH;7SWERoWNy|9+84rp|K-VY!s&5H| z2{DQ(Ze3tpoJbL97l40b!5Q5SfS5uSdO|=>PyWcj0JGB^mC=0ZG(FGOB7_1Q6T>?h zhhv@v*UqAsb1eMxA11XuOm6R?rz%3wOWH7)-Oi=)GNhpww3m|+jWfu`xt4>~88K!t z1h?K;X%D2B#-J%)3t~*WG=gav%cB+fw+5+qvnp&?8S&5DmJfPov2N;z3rK4j(?jTD zu7x2e+2kJI^XfMq=eOKYp8DEL%0JvVHyqt;jEWUg9;9KMeKwT1&shEfcnHoQ3-Lm6 z5be+CZE_miMU#Ss6U4{?SXw6#ZhXZ6N@5=rK;@#6`CD3aAB#k*_orl?b<8{YzT+Qs z{f>Xo?Z1zU7+x3V?yhJ68L>dXseY>fSenJL?WXw5@{d5TK}7swknR=7h|Gq9K(}&<|T%7gf?rS zGgdIu&}#;@07mfGqr#K8TYP3blj{(on*lqUgu#b2 zfef=eR~;=sM+t|~#$r5xK)5pEELvM`*aGz87>c_C=59preJ#^4jiGz?f$2KKAE8?7 zb_h5i4!&#((@8Jn@;4k7oZ)+WmETSG!x^w3jf$d)&+tz*;dcVuvtV#4@>e2z?Ol$F z-(n^i2fsPf{mHT>`opKP79qY2dImG)?4ifj@aP2^TL|HIa8Khx{AT*dz#wad!lMar zY=glMaM}}x_72$;r_jD*w)V{{R4)~g)fa2f)31oUGF&W*N|6n~1Sb%R50;mdgRxTp zCk~gg!?+PJv!MGSE|hgNoar;%k;|f4LCy?>tPilHBZN+-@x(#2z79J$YA-96O2y~2eBo(GzX!VX*rkoj4U5r?GghpyV{!J zm1nRutsGo>3q)%ajepSdJN`k`#~`$bYO`@w|A1LhB{{T}C9sNGjO}0d$jho!3Ao@O zl*h-6vKtc321AL?X#fF)ZhS!LHrq?k4J@TPx_;5Bc|V8H1|e1n_?GRLC4^mj3Hj(-MZ?s*J)S%Cspd zd_vX3BmgTWq-aS|gXy!q6&5eU_jP!FC#Wnwj3*l=cP|`bdSK5gNlsZ;2w7?cD(9hF zQ!VW8F?|)n z@W-e0Qib-XLPc2|x)Aa2xfLOiX#ZNv8sI3b2C{f>M+!AviBJoCpNNW#gX1dqeVi`7 z2-y=`{fMQ_#C6QP ziAtb8uPh{@7Cz=gSR90;C{LAb?*}mrQ12hHJm;2q<2YXNM|vXn5L{ym>Ck#^v7!wq z53YmVBM9@Mh1^fY2wPxP%5R>HEtFyO1EF4E33;ON5Bh$`KZyDm?2dS-g7RftJ^}Gw zOf?()FhCMSd=S?N41Snu)TFTEyMn|TT~~0R>P@W*p{Mm=yqfz-YpImEnUJSpLHq2i z?G>zRi^80=imn-XZZqQTBOpEs%KIba?p n4g%t+n3>B)Wj^6zcaD1rYGqDWJHiFjU_rkXQSe*H`=Zss zsEnYida3gAErU5v2HOjx$L|?_3)_88YSlK!;H5re3;7YhaQL&?mA+w|bR_Wl&Gblim#gn{2B5IC| z^AMP{1C1>YO{z#)0++J~wtnzsg}ejTbi&snH77#j&s=KfMyeiVXG1bS2!sBOutdH& zu>A@O^VoJiv}q!wTAtegC4AlB?HM0yZT#L zg;1bmsKZdx?skf%RH^lr8M!maEmDs2X}Dh;zx~NJ;&#ISH--&zgDI~!>=i=iYQqqn z2FZ`Yt%%GFB$LdxXmavt10E=q;Vx)CKkgny;~xz8j(-sKk+w*kzIS@o#V3@<`Nlv1Xh|G`fKS z7WYA6_o3I?(ddo_*5?0fCX&hqI!N;6-M7x$d zwK?64Th|z3SaSN#W67mCUCj`B%Yj5QqC!{Tds%at0~yyQLBj~=>___iDu_GFxR@r8 zJiXy2KqIy=xC2(99WYmaMjzkZ2)B)$dbS8C?}~wh>P?G#RXw4Q+vk&Y3g^f*H{0>`*w&$JL-7IBTM}W;es=o7yh6(KZwQ46^w8_=xi!#w4sg zL7=T-JV{*T2zaSP_f58wR2T-l;IEYKiJe28(SiEcLr5bBs>vBeNMD<5M5j_^vNx#!5Bt8 z5M};_wgt`dw_(74#33I?R;sLY+De;h@;n?MfK5KmFo5II$V)z=w?#gk$2Zn9aP_j` z(E6)z`8As4n-+&u9p}~q;uRjbj73;F#(4}0z2nLO zT2qkD#JGs}BQ7ep4}Ue}!zhT!jI46tMYFk#aah3#^?#5dju+)U8_Fge2~p`12_9%h!lI2KbQ$(Mq5?2a(XfQ z9nOqbjTqQ4678x9#j7D=4byQNd{raH72hhE9zYhInSDCoMl#_?c-7sm;oXNN}-Sl%4Tx?I?AR1hOIH(y4Y5JaV zJ3L*;?FxY>A0e=m?Jj;oJMW+qGps_u6AQz7i8g$*ml_?`Pk~K0=v+zS{h4=CLV$K* z>O%4sc%B(~*NgTCB}RP5KZyD`i)ChR^{zea1GIR;FtL>L-5wghxsC|mO+zc@V3`sLLZDqs6JE5YTA-t6(4_vZB zB+7v5jGMkMSeYBNxCGHQ!4OotXF7&)5Nq24Axq)$9SEssmCQy91n7~~bI}%xYRq=v z;l2iZ{8%9d;oLU>)jk)A*zO~|cq+k)o(h4jBDOsV%03{(8%%eJp-#DRIj7!OAKzC1V*JBt=P)Ym7?wv1}YhuN7xM?Xr-&?*|xSb#DVayyv_@hnp zt)5CvbZ#8~Un0wdzLqd?Aw+4VU7J1o}?^O!sZ;JxxXq9*>TmEYzhHwENe+ibo z;10IC-EV#Bu|0o zt*r{kAf)!xVBY!|zR7T_B+-}OtNB*fZ{cf(TcBoj*CrNRP-w<7hAOPtDVDc-8n=^= zE4_IryG0cC+cL<4Nr_z7Xcs?X}(13MPBZ~Noe46e0hO3iw1g0!)A$AiT6A_wg@by>MCip_yiojBHNz%tLbJ+HXl%HN zrv>2XaAyx(o-o4{{cO=RO6Pl`0HgoGKlt@K{z25og4kppgou;93E`5n3N;lsh^Z4H zD0@j}*$FhNLVabCZFftd)_KfWt8msc1VOHYtJ~4fzk^u&O|&xE72^7%*H08jYhY0q z(eBdlREYaKA*>ow)$z&pWlaY4xbU@6I}9o6&;`u zv$qm;XJeNOydZX+K{3@vGCO!v8ijW*tdd`z_EK7whE#H+2I?Xx^V{xBEZgNvjJAH{ zFi>zIV{Bq?gbTR^AD=Mhk5D9_kr#|TE01f7@h3b}eXEI+%l+*c(-qY`P_djiKp}_I}G! zq8_8@0qx&RryKIu1^B%b#_Bjp1-wqX3ULfIRL5q$eCW9$>hplRqVW&Le#bwE`uH9z zS1|lU7;zeLUqvel@K9?v9a)u)v{bkhwn|oX=w`;92Od>H_b`btp3W2>PT3%EUrU{A_t5&SO^j>=u*_3dFJyFwv z^mQ5!`G@-)+a>g37Aj@ob|S1Q-zLGQKC?nAs%HtqOEHp4v_H{sU_KzOQFx&>s*lqU zy{W(;s$fTrXjcjJBiwK{1j=yziN#9ib)%I5@yONpVhp>`$@h$JEq$s$pteif1qj>~ zk*V%*M|0P5kGrfk)Ma`ThVPKrsN7cgbATJa(MCrWCR4cO6;499S^YdMV6_L@T^g?Z z#;rp!^3vKVj)3v^`QjEP0CbTzu3YcIs>7BKsVKi|YcQ`9kD%&j?o=g+e0YsH!D#zD z7J3!A*pPXA5=-~Yu%^Vv!LZJW za6bmvN^}C2JKsBmuh+Q-G11G52&9v}BNakZ@1hM9i&sI4>xeTcJ?65bw0meowE&1D zRzVdMTB`CCb7*FUpaR&-?6f8)lpI6&=Pk-JK0m8i%Jp(cy3Ajb{ZXS95c@9@OYLgK zaaUq;OF4!jXwaw8{-E2$@AwB%AAdy;epeO8oeX3zUM9a#;j+Q0tOg{SlxADeXBPp3 zdccb6uA(nmv=^mRjlRXqL(MUx(ujOM=Kc=e9Oc=+QU6~N(=TwnpuG{aL^}nGrcyQp z{HmssaHWogyY`WEnFXIS4RtNbfK>~+jH(`=VlFw(P?S%1&uXS5g|-V8qM@LqTo~Gq z+$GGwTxj)bE4kheUiC5e($x#{?l6$528A=!-nbHZqPYr`dFJ7E1jZI}*F8}jF`Cr@*1bta&$GT zFsD$pkq3EMGRD>9?n-0eoYL#?WScH{f2PwqxcQ2?9xyikKT96GaHU) zLVkxTZf6Qm)MO%<2)f4+hL!>nmcpGI3~jk96pT)Eq3?uzDdSm#tSA<=GRTs+^;bge zu6yA`hC@qw)^x~OEX+%6+}++{CX(;6K>x(Fuo}A7^|*opK~ul{S1}o{p`T;j0N%uV=^OV z&;-e{Uj!+MxDp>89)|UaSu)Jz-XkbU-5{LVbsnf?OT$h!MQRn)n}PdB$T@n;}RRhF#JIs(QMHXjXA(740$g!%=UvnDlfDT z^_%a>6799cSCKsPNo zCc2zTS-c9ANWhn+4Pc`eqfrh>Em)8WN+-IGehe)SUkap7@zZ5cw{|K7q#`mOY;XF$ zRn4fz@U#cGO|P=m5&B>JQ48I;jT?){Q#D|U@(}ajTeQ3O$j%L})5%I776%7ob(#Y zPG))ADkZxwh&F?mrFhG4=tDd7S*YqYtUl>g z+DS)8k74p0T4*Og{UAgr6ym~>+CcZU*x~00YlY=H+=D%(J>aP)`cVxR+K*2U-SpT@ z6~9=GrhYW3(D$pzp%tGl8xVO;1bQBBB*2KTBG2mh&74*u;2;fg-V+OL&<6M%ZX5*( z-Jvlp^J!W-{GeIO8}f=WXPmkKPVVrSzD@9a}sY=5jGyRba~+| z4@9y;4N^9Kb3-;8WiJ541e-hQI-4`zPHKZyEx&z5kd zqaGRpFB2lbQ9&#a%E6N9b|9;A07`p1W_#ONxv?Un&2O6rvno@E$$t#F#&<0i(A zqTwL|{~0O@xyRl-o7&!G77rWQZA;3 z!i3$lpdIJ0XiOqLX?C6H-Ur*J|8$M<|CSvHE;P|eMc};nLa(<%0!nCW@TQ9Kjsf>; z;@vyYi9kcn!*P|%P;Ag%bS$x@x|D!`M_A1Z_>|u2HR~`{n-4`8YXgRVn(q73tP0K@q9vpe{ZA3}>4|(nzkA zRq+iHVLW{e<7JkWn9O4@(p2mAjU7o3HPEq~ED+|x&Vh!3&=$`$+m>7$fL>t~i~M=0 z0X%%hqoBDVn8OAra1;5Jwb`qx)jClvw`KfJfvIle8%5#X$0R5D@YOFo^oJMZthW56 zcX0?o4T|fFLcC_VtE9U|EI?NBP%HSil)n-hoW>y@Xb1f#1aBKNHdh+M21RoBK>_n} z^@37wGoWBg(I^#7E{&r9#TfJgbQ(S^psB8wkd`or;f+Fp6{)R=FoATEIZ5^103nqSXjRwVb3cKkY_5K?u#Xshp2h*J{{66j!KnA)qmts zf*AtwBAZc#!*J>`E97!8U$`|>F{+02)x!%p)kY?J(Vi_<-2H;Vxv4JPDuI5&er*Un zWKh53KW<_-31Ce_WjR>>R7!eNIQ$qi>vL<;P0llYNLe67kz13QFMg6?1F$uNuSNNlAp^3ZovbZQ?e^N3+o zfpJ4z;h4zjzb!gdBs>XLErYztl+u(ZF3|i_n>Gsadm(v-0ROX^%+DiUwTz4wW)xu#Vd)>li3XZ~I|OnFVTL{9~Bghq0DD&xqb2j-*gO z4LXO?!eC}4#bo?qHRaFYjxr(s_Eu|1sP6grr{I-;t&+4#3Fxqu0?c|Xdu-uc17XeI zNWTqV&alIdG*%kA70m)8CY<4u?yq1wnLG#sRMd5$+Y`yvG044%H_yCc(kg`6%yL!2 zZ97;8rzdGh!8fN7Om><~hR6gBsFT+k$YdJ=eakF0+U1PnW=G>6Ec}jt5cLtmITV*B zvg@S44lMIqd9!=ku~&7;r*2p<=pn(OEL| zuD*rgsCfO4p|qOOUb~K>GtX7jss-xb!D@@$zz|ET$iftidyt>m+*_pl1x5Z~IZT;x z-9uGqARBbP*Lo%v%6A$wxne>3i{S9sKpgjP&@==kN{15lvpMRsz4P3J{a4*9;R4P> z)(;Hm{5j8+riVqA-L(mt*(@>ux#rmXRx5^8Rspz++|@_|q`093TGqzuCN1|5L?Qf)ZVrZXKGGEku|qu7k-lZ1X{Yd$RnU^2OdP^ZJB)_>%r^`g*sm+Y0S zY@&?pP4-umRrZd`D4S4rWREncB=mp2UY#HRhlg`M=ktEQ@B6y1b>Hv%zOL8R09AX} z#eZ+0>9yE<@dSXP`)38IJW9R;G;9BUKhCvDI zyeU2TPbD+{%*-$z9ot}lz+I{^A*b7(7D^$io=@;pcYgW={~-P&0>9_d5IUA#2Kk>G z$Z?KCIm^dzpW}4U<0Q=OOePXs=k~d+l@Z>yLQqzv*|pi~RLMubyYP%aQjL zw5&dj&gAdr|z;225-gmmvddyDVtUizxF7tXM(u12Ojb*tlMKYIynZU*)}w z@UbA8b`cRNBk`lNhnyg|biR`yEWEiF1oj!?mW^X(vpK z>c=#u#P9KVxIIu`gXU^+-&cr38zjQp{3~s&i+roX(&8xm^Rx8!CX@dg7=8gLXbC;# z7?gHAvqNDkC@6(a4hoAh#L%#cxExH4B2z91Me9ial@LTuWT=hABT$uvUU$1#A7Pc1 zahX~SUUdzof3d3aNm08MFy)f6pd)FYeZx>G#yEGok-ciu-G#@ z>GAh3u(~MC|5-dY19!H-RWh?`Hco^72)OoV78U3D`2!=b>KN$b$W_%$U!eUuh`uJh zD-(wI_vi6J{nE2O+Gd}nw??75PNG*i6(tXjL@e9k*#gAU2jT8?>C=W>>FunSUMbTc zeM4YUYm=PEs5pVtmQZ9V9p8e0uNl%p9}$dFZCqCjeIKp(G$Jm_g=6bDr!EU@uL+}0 zF@jH0($Oo12@&2#Zo>p?v-48;CzY`Ps$*QEy{NAiYp}Wo+@big2d;T4pk3l)@4zM% zDqQDqlQPi%HzTt z%}L^66``vPv!)DWc^nG0GYsWDsZ4Tau(4>@W@?hFZdNlR2N4b67(pW-+=Eq^Y?XxeLl=qN%`S;m|fhs7AtRNkY<<4R(^=tEN5%jq}&!}2$QHcH`Su})IMKp~RlEy$jg;`(e+zxH3 zY$%wY!iq#;T|)X^*|qabT%zF*5h9%zPrV!C%J&oQo#gwckoS)14~;A%a5>-Q{-VD z)Hb`LqpCP~v?N+Oj}^*uaQ2R?1YCrm+K_n&<~0!f$2P_^f=0TBdP(_KNq%|{UJfH3 zg=KM$-+X|o%z>k$!}ICk;Sv65L`!)bD*u+2At^BT=B|xV0vFwfHnoZWCCb$X5wGUo zx2z2WfHey5Hp+3&tD`ZkdQ6Xt=pf*?IzsW+^xV{dMEO$lLuF&8^wSBL;T-D=@zEMZN|8k z`QoI1PlN@TVvJr>UKv1(>7%M^k>^7q4ShJ@2{zWJr)u=O2(w+wUxJSO@2}1nStqn* zw$BmDx;ET%2)w_rAC7MIx zj)X&XTsh)zmq%~uF+8v<+G*6H$xO89ohH~!e5Ef z&*S^`J|x-zr31X5FDS1`Oo2M*-^XO58eZGH*`|=xt?*``Yhmj+rmu@n3*%PhSyu45 z9{*Q4QfZK3T)#u+f6(_`gm>02$FiX&@xPDy>Qu(?4W6QuQEs}@k^=f(adZ*)rglA$ z>)86w41WZcu*l5~^j^&CPTJ3gv-z8c+MvZvxwkvltEa)$z8TB6>$&qKEI$teAItr> zP_#^lbU$uN0HKetm&;BNe9Lv-ma()rq1d;bxPz}z{3dX73ubl6P-cr=v>|Ic1G+q= z@@*4wtN#l_qMa~P2{!&0+R)G00P8T(E1`W-jBAd!$O%YXjYiL8M44bw5ufQOB&dL^ z+o<4i4eg>)Z9Wrzaa`CLTpnem^(JH3YQkY;_haLP^uuvy6*}bE2 z3(^veT28Zi!!_oi*?BO8B}(_U-#gdIT%Mh=GI9J zaT5b+i7ZuM;AuQl6Z9gxE5)4QnU7;q!^3Qhqb#EmMAIj<@HAR5!X*q&8qr=wph~;g z?L=eQomM83pbWdy(O@SV3-Gis4^8)qw>(Oz0()9Z@AhHqZnW-uhZLV;c#{xdhs5-+ zdSjL7H#<_?tHsD~SdY-6J97tVyE-)M?BuJDy>GP1TUm8{`2>6~5(cHo;LsL97WYzZ zXN3=E;8ez@&Y6*c73JZ z@VF~%yAG>P!I<7IH=>oq9+x8kn>>!8eHCuSg|AaH1LO=FQ-{9E&|00oz5tKM!Ffe# zeBiRa)A@OqyRISf(oWu1-fm_FRG*(Yoa@$2p;(Er?9%XgEbi(<=+k*zuV|;zwG4$* z#?oRZEOxMA308(Rsf>QO3sY}}z`nz{?>nNpDXl1{Z&GZi@gICyGglHG2`PPG_+nVy z2v^GPyK3XkV7kcy+gn5Lbyv3T;1t6aGIE{1NjX*mJ87RH$E#+|p)=}(bCv4Vx{aM&w2Xb`K zd`cCxeeFZLAOkg|!KlEAR;*l`lu>?@{tIt(mqpn2$NnH<(-ZuI_>WET{l`$sE!=+E zA!4fZ+=Ou{@&8L?t23b8w63k%QjB^uM&D00)f0V(=5Q#i(G1QKl6Y< zICG=QtD$)**H80ZKd%1w*AM! zlMhDSN4qZ=qWBst5SZkMR$_c!GZr|52c?Waq((hep&L z$}o$@YEiBjsgC@W-|@81gr8Dk1J&Tf9{4ZZV;zN@LWQaz*P(`_1Rq9lS7%}3g^(i^ zA7-MHWUg*TZ?Ysqofo;{Q!|wPC=3v!+*OS65zQZ9D4)^J=LWgBf+A){?Z=>Fxvk-A zY_i+61B~t!h9z@U4_*1FJS8M{MI7>`hXwk}k)v3H+S4ebK`j%pyb4g*$O7;+c!< zt&`&abD+~imcoM<1XGR|C=Msi;NA|Qmsug?Ph_LBa3N6aPyvO=tFCJoLJSE z8}=)2_>A_S+J)Ctp`xG@7fv{2J*ZUy?$Msau_Qb^(lrz)u(l)0bpe_ypg6{0Z`%!6@P!h>oZQ(7D-tkK zGX}Tbb#&^6?FmvK;8XNMU4u8Aok7v1W4LS*5EDXkIlBG`=are!Hej_hn2|2^Yu%@) z{RZ@~p@rT6U1!H45-Hwr*^&C8O*-!nmWqLvO(^l7=@A44uIa2I1JG7b0Tw^+A^ypz z1)=9R7#Vp5X>nD3QyOPq>)mfc_6&NvzRODIC}OyT+;j6YBcnQmk6Vx5XeKjO))>Oc zqkSz%6Xv^CUOyqw;>i5~#<-PeUxam|xl#d5{Q)Z&fi2(Vx@zZD;YpoPE1+kg zb0qU|wQ0DS5+1Nwf-FihxO#ZX8ZHj;Q<#(xrD{U2{ftJY0Oh_anN1zd_FV4g4TAeD z^-4gUaBu!h6mlkmx{+|DCN_K(+KYvU3GoAa=<=8YnyUzthzd)NMZSqne9qj}3#V`b z7yL;a3!-73Mw+59f_ABEh{YQ)qXg2gl}tH(dTU?l7vUFpco2iBK-&+Xezn7Q1@of3 z$~_EmgE5FUJ6#Y6N=VA=O_zzWIQIXc%iWzT@GSzF62@gPRN9j`VgfefT!CV{Bkz<6 zE^N?Rc!HiNNi#YvO!JeSy?oc3@@Ke1i>^$@1JC1vTJlPL1<%?&3i4_r2PIBVrVF8A zze^8`v5*oBCMQF$5ynKaV*VY5kML{jYMN=ps0F5Z*vESmC`%L$suJ;RhL9J9d6ToDYU++QgL%){+OrNC$>vTS<61&Ai$ zaSy`;O35YV@@draIcFl@_HN5U);9fM$WBKV?%~@~DUfDmWV%1S>o{&>fMubrM>v`u zF%&_@%@k{s1i=px!mX+q{~jHKrW|JME79D5)dE488_sLtJ_#LYfE1rsyh%FzZ&p=n zSVgNjVDL4RZY|^K5nfCPJ4S@nDu%i(eb}0SvE^qXE$b@vU-7dhBFgB30iVOGye|E9 z$MCR?P|jbNa5^yDT&|nD%@L$$99LR{Hu9h;1z_W9cs2-X9$>L5x2j->aS6G7C7M$! zT_mHRY*XU!e9|x=N!XCe0D_P44|YAlKZyUh6tg~t5uHYAFNRGC(UTjHrHzgbPBGho zHe6%Lu`XOzZTs&HqxTGa`3W7Efa>YBVT*zF1QRaA(0sJH%Y~wIhLH(fCt@nCX4Hvn z9h#ELPQqi?z}SEQ>BSIQx>!{oW85u)_50~LqhW?x<7v9#P4duLL)X#L-hEf}dL~+` zayY^`tBx4hp>ob|9+V`rLz!ly9Obcv?tTTxo(_MyMtKCe5x{)Zt`*1Zfj&2ZS?1-{n`l$MuK9k2X-S$_V{#PrXG;EF=BC$ivW*x_FIt_Hj2QteK_$z-8ne`N3m|BY6sKnWd{Xw1bh%Z7E;Y_97jgX?Kc=U5Z$ZDUlmZ;7Ks00N-r+@bDN3*RYBgnXsWOd z2L{oeV1^bz=un*ZVN{|(tSwL_l=pI9L%KgN6mEfw{t~C6+ev7>Bs?sMG6;NX5&SJi zD{mp)QyBOj=cxWI;K~>bjymLru;eSLVGK+=i!wDZEO}F&9ZiEZnd!Dh(d+$GnBftw z{ZFu3Ke?#V9xt90a;vE8HYr?LP21v)U8!OwO0p!>O8FT7V9yi$gZPgKP*n#;#bA;n z@Crl2;&il-FMOQJQ%n`w?S?OVmySQ67ZoHE*v4W8q*%72^eSd6i;EUEbX542 z3`s-fgb1vOz~ajz-{Sb1GlCwUiMU$3=5%(nVHBgUgs<$3*Q<)Imx)oCVg(2*Sw&em zv*FFW)ZAPM$1U)%-A*5#9dgFn=D&tFWx~0%LLUK{`CtZ2Xg_^)gG9iKVMYPOt2pXM zFrljp8*F4~bDbUk3Jp~af2pq8+c4!>98*v9BR}<+(uW$62>26K1Lcp0SYehJdR~K` z3VrDV^g!?ue=3PE7C(K@H8E;9oa&ZQ1=hf*%dBHm(qI(hT&UBF1jyi&i#P3r89yOX z#k(sLw<15AV#Om-yQ?VQGwCp}*P!|W%x}U2QxNE}&>#hT?u5_!nue9^u_&FZ4|H;c zmsK!Yk%Z+TuD8x$OE7e8U))r_rZ$vHpi9FrkAoQOL4Pidcmy`z7jJeOnx`d288?Ip zI?)_Pi=EN8moTtzy&X}X`&0spyPn6=>iW^Di0nR8Kft1;Wfh_S5h`2|g0I2b_Co&t z9}a@^-a1j?)AWh>vJku~7rLf{ZS(o#MTq{?m6+$JViW@$8hjRcegX|m;D0OMP|I*} z!;t#VaJ5WmF6g=!k>Iz^R=DS&_Tvey8y`A{Wtz9NDbK2^ubK}_U|v5sd^)!P@o1)^ zs&l`F6Yl7W4Lj(mf?dIzP8}G;xM$&7CLu*t*eu338(Ae4^XWyKFd!CN=;H)RMT$LH zA2c}d1pnZ`|D88pw-gFg|uJP;ZO!TU?p;d0s-&iPDqXn5m zCc89Dg(!IT2ihU1wz8pe4C8x?C5uXw6=e)p96E82E|xJ@Q0f@sn7LC`NG70%f5Ltdjc^!2m=pt7HDjv&o_d>Dc$mVJao)nMz8(QNd z_;d~4w`AypyivIq3Jx&k=7X0iBmIpFt<8e>tsQwY8Kr4RAN5#Seqs#izR0aMW^)WS zDnhsodQv?S`K}Y*R6EBXeHb>TqRIPEFxcP`EzzBq@weZF5)nRX`q^(%yXf%?7v|zP zAqKk~2Ll#+zww`B@Z?*@pU0Ml2_qgu|&xYprzpb=io+#7&$|nR4NaINa?AJYFRg!^_VU`7oLh zo^p|i7x;4tSI30h$sBdw@G<_uktg^E@gI@YTbSDOVN*0>?1y{WiTWIH5|ds|3F1fU z3eW4~)0EK;ggnd8rYYIbmA7kzM-kZ3E)=l@%&lN?TvcJ1R0b>0Cy6LmK^0z)ph905 zm*LB}u!ms7LMa@N+#VBO$>8pz6Av=b>a!NiDF=g3H%QZAW|+P(=Dc188{yFRq2Y&o zAifHVf6sLuFCt|hQ*T0ZRMdpa$s!KWSkxm%QT~)W6dPBA=nxeyntZ3F4RowXz zb^O?&LywHjIvQHmG4_nysJObJ_@eSY1E_^rR}@|^h3N^0qp2)g9#6EWyq80+8~TL69X9O$$Vl8*!&?6jTe#!Sc9n{ zVFN1nlPkw%6xLW_@9e4+_q%%aaA3;27{zL*wZGvwo&M<@ohR67XnRKIr^=w6 z<}Vs)&9@FAs+jnX-1RTIbkK0AnQ_NLzq}Xf3YkbjXH~Rxt>ZmZy)EpB;MWi)zE(-$ z?QEp5hw&^5%VJ^G6?#~RU`L>eO`N=4(eE9~6w0BUpJ$Nq8a$j%RE0XYF3d_rkV@b&0sEta&( zZ5|wlEL)*_O}sgyGTvnoT-VSg0RkwLhEbKH2cPAyq9XE9j_Zq>Q>%6HmQ^6Ga+KDfy;o4uS=ROCKf2oep&NqzuOz@+t zuJ7R67ieS-R{Abu|HRbsYS)mDyU^`SxHy&P%Z%h#p}b4N(G(2nK3(p?wu>0js3a|Z z6^A=G!Ah&0^DEki4Uw+BQ89&~0fHg_dPB~O2)!GEUWe7(fYe$vvH^7XWUMh4AlzRV zgpRo`APAMr>W3;Sxvq>MzizV-(>=?Tz4YokmNJdpb3N7980a=`t;P6N;~`%p zACJT1cKD-7p>`DA-(vW)5Z-)jP-u!m3tOAq1(jb@eG~0<97CnEz?Is@`rf_&TT6;JN z+Odz0vKyF5{2B+YMT~=HS4FbcxQn8f4P8>D#2*ai=~I!0RDG5|rtwMPM(>2r6Zw!V zSCm4Zl&1_(a0Zv48UfdTU^1B>Mm)wpIQazsApRqa`<)56G;C7@ZyrW9gf&o4zy2IU zC9}Z(lVNdc%&~-X$+TCzi@sN=IyFgI0^f;3&vgzE=)N>^?O}w?)r@c%qq)x*KVk{6 z5>png_HZ;L7xtrg$E+}9jDd>uroPU*jb)PZ$U1m9z-dm4x%CMATVhW%Hx$+4X+FxN z9ofZ&rwnl{%cgdP)(O=p3?yr|s|!kJ;Wbw6XAMSDeE@#;kgJxE)PA@eh4S^#{} z`3-zN8UE6nqsnwnaO~&#P*{)$=h22oC?6{ty}wOGu;;j^2im_DlP7I2F^kGh+(iaP z0!S=|We4Sp>fLcGx==AmLdR)WwD)-fJ|8e*T7~d)jC0nuGX7gwcu)D^Pnj_bz?>1` zdU{t0nvNaqK4T3@Li^w-FBH(t3K zyb*5wHJbPmB3oeq!JD4nc>Z`bOiXPwf$FqV2MP5KAEiUj1zPf|$~2}m-r6fLW1b5F z$O1cJb!Bx<9nBpA%e)NHtHQ{nJ`1WD%Bj4zR{mPt_4PTTTxltsS#CO5i`PGdn>o&{ z!T!27?>E1X)Rcu?IQ*rG&!^zN;Ha``YwLzKX#Pftz`JBv&fbPa%|`P&*ojI2L8tiIXhq;}I1=5DNN0m!V%TTTY;QY|pyf zvVyZ0`(Wx(n2?y89;8FS><_ob=z6CVI12-7h&|RrE+-l8Oa&%Ytq68?H%@F-X05cKHy(nl$tPz%}8Yt@=%z?O)PXf{K*8LP8kwt9-dwy5HCA} zrZc`|o9hhKj7o_cxPVZef~J#mQ)H98eee~i-i;6WYA3K6q^Sf3VY?nQXF5LgX9k5A(|K`o)@L2~@KpdnOH zWwHxF{EDViIW+W5fqd#P{QyrEL&tqlh64DKH) zJB=s0({fQ)om_#c3peyIgg0dtFNEe5VtQS!IWB_(JDz4VSy9c7Xn{0-4*Ih<63x>A zUt8qd125FX_>a|@ScVydW2vtVO3g4-+|R;mGvO_eQ_|L z7n;=-Q7(Y>Pvb|HhXHAjlrVN@aqnjaO$W5frJw(X9hDi}Vuvm1@Jy?U1Go;AcKQca zy@D!ifiKNnd6nc`Hk0T~drzYs4Z(*eUMt z%GVO10DBA}qgDG`sZ?8ceFATHZ^k?hqdS)ntb!|4_M-*23I33>RxqdnJc1d!k<{gS>Y)EBC7RFKNS)}MO*FXj9V|VL zO|Zs~7CN$WSzd9mQ6;E;_uoDqNG4zs*ldSd zmrWC``e%u7uG%EnhadO`0*f%_AMGxL&VvP}#Cmo^!{t;4c%KR<7UGD1z$-O&K9FiF z4^AvBn9x$k=T&eA0@i+0VM{_*@4!ry6AD!%=|cpuU3v7qF`=n`UjVW1Kc(-Nm@wPQFrF^dV<1N8uw@jL}zn()oN2uy#LcfdN(>w=Vc++v0eFN<}I z38hkTWnFYi2&nJfl2;jO-gLCN00G|*KV@)+wFW<*(f(++ehW6JuHQ8j@+A6k6TuBb zl6P>y)nVjLgOYs-f#aD$hI@~7H|n<=f|T*A?ei;0u^M+R!soO`&r0K0|1qHBS#akgD1`uHw_PU=DDt30E^ zSPeYS+=mg(nNU<-t24`kM{KkK!^orivE$dnl=KMeW6ZjPvxqw552|u2B|W3*{~&%Q z7k0ECiToX|2wkWuHocvBbY%EFt$feY@J=%HV7SYwZ03m$jI5$7`UQ04>2NU$7rY;) zKZSZc)QNADk5{V1_ zjsDjW$5!vw{E7SMhsQpI9Ixplzmd-vDkIn&kh_Da>kOn;2%Y2TP{Bz3bZF8ROBiYx zbEfY_E+N=*BXEK>} z#3^VN&ue_3%v{ML824D@a)$p0@bO#2A?>j|#B9Gwi}NfB>$9WbtFeb?Qe&v=k*fST z=l$?uFKRQ3@d|OPBs}QL@3zLY%8VZszW(Q+G5L+ z!qumpAR;`1%Sfe!!mJ9$Idg5CvDB+N7VsVl(u$e59qm1Gbmy~SRvfk|+_#QMN;QtY z!o3xM(C@tr`NWlYmCMnXN1MUZ)r?d-rzaxuj>ll+FxaY?YC<^M!75eI$&Hk%xzbZ{ zE-1)ZkvYKKY-6$c8(OA}r1 z(Si=>VKhl*tYkth7F1a>FYkV!`F6}S@6yKKn06I; z`7N;feb?takPMPXqzlhGedk6SqNTU=$BQHwrVqVbzS(sqYbvS z9qU#V^y6r3Srn<9|EdXZo??!e3dgIld}*j`C;f-`I&vsmO40trNgIbhicOBM!!{Bbx#siw2r@~)pu*QO{30KhUZ`@dhjuh%E z*gDRLTz^gA!g{QqV*=}VFJgytIE50F#VL+s{Z{xOl^^;MOKM5On*}%Z2=6t3pM`xs z{t1_uRoX6*|d|a3kONR?xwzi+QfUjbaYogJslCII-8!i*! z2mdC8M;RdSYZP23?ztJoOORRwi#o`_x8hO-#Xd3}A`tRldsosp;)WOFaVx;ZA3~1| zxQUlxWKYC9mPWgw@EN7Y0uAejIxWV_G{aPX#&vv-qEtaG+w*i!-1|hPm4=x9JOtK~ zj&G~>({{9{nNt!c(_K46pg7QqdaL-zV4g!5%W1<)=)6)d6Dst5hf$sL3o9k@62{;x zo8mf-&;W2ikH64VmrLE`gm59J=mp?N7?oOEJ}~fN`lQhQg6sXfidW0*st?-{#L}eP zn^_Pjzd+G_I{vR1)i|a`p`3h%8WA$m&IKownRY5J1BwWKT6+F?3UykGKgor52#iqq zI#1(Lq((n8d@>JbU}%~b+6%9B8tVqtZOnteY|1dsxQ_Bmj&G@jX6HA&(^+~Jc+3UY zOser1|KR5*_y_SHp{pov?kNAhH~Dp#DQ7VVkOd>Luyrt`kU>H7p=Og1RaZ3UH69z3 z0*6`DwhyFfA|mudcD=wn1q}re+Mj$T)|pLz^q`P{F%l%g+*FhCJDq%G()u$!s!)-} zK4TcweO^_Uzc&^p+IxuDG%LYx;1k9(?Q^mZkR_ zv*3&WgplbjsJV=mGt>VzShG^t7N6s+3v2nH6-9St4|V5a8^sC=FB1!8-jzZchRaEviQX8l*2PFv(BQO_INyUq9boMV=s(M+ ztJqZ`cy^subEm`vy7A>I%L~!n-Np?pf?jSuGpF$7yjFS$y>K0(TGK zLN^wKo8q6k?UbkmD90~8NIe`wGflCoX$C=U6&mSi=Paxkin+8z@n)uC0rYqL)pu#G zo&%%)`wdwUPPWx+D@7+ADfJhnDD>dq+RyO(q^K~sqz2pco=q~pb>I+A~t zZbtL3hf`g;r1i%2c%FX^?o{=GY)`|^_s3EnI#uysg!;Rnm{!7;Zwvv~oZAYaO}kM= zRSdfnMH`FY^rv`-7qP&1XhoRtI>YJ5kQAWS9)&B0OB^Ch;Iwg(n9C4`eiariabe)o zuDJ8IBIJ0ZDU8;=q7(T4!$0`#3I0L+$KE)?8Z>b?ydQ@hUW1yPxPPIpJqM#T^xL+lV)I&c{;MS&KF}s+A+VisuHqak&t9$^} zPah($NlK=F1~;@1HV(o<8u9E=W}Mb={9SDWv@`t4HCNjz#BW80m4rFvL(9b8#<`E3 zwD!`qJU0(_cDEpvRD6E6;jxNB%l^ckbkDeCTybt!f#ywg%_aU;$<3#dL&Y{1@Xd{L z{@#1AZ9{u9nkpL2?`@2`gaM&D*|jU1X9%miw_OEEy`8*n59H*8Q!VCGSt1Mwp(ygkl^~T*?Hp=q%xS++}>-rYv{~JNm3lsU6CKnEK zMq;=)8)g)DRop4)qY7^1cNk48B60sxyZ0Rj&9sh({Lx5QU890#Yc2d znh2f?bNm!s-=_p5GVWNFRCK<{v!O;DLwgQh-{Y}qJTQrF*QJHnFI;4C8-`i}rL36% zeHuv{Wn4$TxMS8Z*HGJ$#PH=vm z9xKxH8VDH&dj}!R5p=0T!sk*m?rcnEIXw+z$7O1nEZnS~uJNmEvx2M(dbWHv~`6n(i_F!5>fX5B`i_9}L97Os9)pXzC~!^aou}g0j&x zy#`X=;h%~L*FY$9!|XKZ+Z{uB|H1F2$l*nLU+$oikI=89cm-Y)>Z4+-U5e#XqW~}B za}iW<4deVgluOE_xdBrfgAlS{E}x-1WyA7B2^^}g7q9Uy|MfiXRYJSvW;Fhy zA&nauRj3W?teIHdh0r7=>y}YGla(iD<81rjAP@7#j?k+jU8*HI0`a~#&nOEfl+I@q zfaFT9>*2P+8Z)4N%?$?fJ}aS7;A1x&nhT?4k>=k;L1iS$#*z| zd&VJBNUhD%Pg3v+ub&Jx6hDVT9%yo~1&C{9thdahekb6C1pg;l4!t)0oU3jt3 z*~@U4r=jGFuq`f;tCE-Z))pF(!Zjm@`{iQ}1HHi`^DyugP*DoMCrGclh*uu(h7+Q` zi^8DZ#k=?(+w1Af2f-VF;(?Jx^k<2bhU&s2D{x2ueFi#3*Rnd zRy^m5Qe~jvA0(NH?{9j8Azk zQ1}$&bO+U0CEb!ZRdb{wX$u)6>vtNe=9Q9ic^cwt=V6(5;nf?FuJF?Uij|etlG`qa z;fZMFWdvFblh1>4D!$|eCsNljHu3l2y*QVO{0?i$%SgI8*H?h>ZIECi6!k4w(@g8a zIMne%xE@1?CvezXXn38M4?-<0`_v8w!d)!9TeF1pgrZV+R;gS;y5$ znEh0mtpzsldiXvqc9|y`iZB-<=Z1cX!&`AEMSl2nje$2}BFxF}zK%+JhR=KPhaWOX zVZt$?#KN?R&{|I!KilBzD%8CevKkn=r$WMou=-IB(3_8nd`qKyRTKBw&^kTM{Yy6& zT{?u+tc_6g2CaUN{&qlHwG!&gqHwM2u>Ty+CG-J$CoFBR(e(})(=;c9&0|Op`TPMb z{o;anH~D>nNus!*aMNSwD^#;GU09zOGOlUMTeUlnU}Yx};uyyn3UHm{7Zi*QX_ST;n~@tPR)@1VTJG(>(sSIv;P>o{n2}i zN3iTFN_45|G!AY2=`Fe(r1V3XiW`M#egt2xLY{D5#yHZ&y#FAyO-ITq7^qNzhBQ3M ziMh>PWoQSA`6r%C(8J#t7PM##ay8-`IALZTU z!Sdl9Z4vKv-M_MU{VB{|T4@LvFgH>?{yeAti$z=SL0JqNISekP;kjEei7fK{rqau1E`PtU?e%)?mz z`=_c#Dww&-tANTlhiS00qhWM9h6g~0#Q*DzH0Cq#_fdfC&I>94*>f26RYcdrAnboW z!9RHP1pgrZqeAW}4|tjp6+>-X;9>RD=h`4}HEXJtKy(qztXyJz;9EXqnt^T-rxq0{ zblhY{(QTbtKp3&;f~v8t4$YEaEQ7t1!11TbaHn@KOBIVt0%Si&mh|{_yA}dLA35WPq0?;PhTior!3yHeI(c&P9JBo6y#$VZeHr zvx>sztBh0FO0+5VyxA$2ZG>R%Z4mj=!wNFkg}f-pyDHKa;4vrvu;%n&EwTvY@)#?XN6XmJ`O=f$;r zYERuLG)+rm+W6J3NcR|8q(VYjzoyr;r`Q28PvHXApQn2$`}3)bu%ELA&nJO9vhjKHU|AS8IJfmA+o4 z_p5MhCY-pBvOmT@NR;O>{z3f5#VFY|7+4KBS*-({vMFG~BZy-${A~fxen2={ZQbLV zQuq6!X{uVVJPeEqz0yL((oi!kLaJ^krxLEl&v&vKdSkBGYt!+PM-7A@&R3D3*YC=KVSPlUHQIbSR0W%UTp7i>>}e*YrVbEWXjn1f zo4%0TXt&Bwn~7-tLt6P4dKEscl%>)rZ5t!6s7U7|79{s+e3QfKFF4|%iE%Dlz?1XX zUe;*)lu>YZD)vo%`QOl)9a!ral;oZP6!$Ll7D7{`@e>pdgy(PL zFG@4iDKK17MLQKF#?^Hx<5SS3ej}Zx^C}d)O=sUb%&;*d$>>C6)vf=b z#5JV%(>?`!!*h}M(o(W$jL5}@> z^tByv^hl4#5Gdsu)JUL?Dm`7tp^+_|7&z9i^{?^!ECZ9_Pld77VBUFp8iAWtK)DKG zSMYWx#kj-D6zKDLyzmD&pB}NUHG9mdrGL_3N-N;f80k0uc0hc!p?M# zO`H#Rlrf@$!AlXTQk&XEqL^io>JjfIj5PM#hw$eHBUzr%wWyEK*me3G2!Fcqvj&QO zgt2J0+RUu>mNDIXASgCv6Y}gXy1L6BCykd-757fUpkPg}Dhn^Q3%V5c>&h2c+BVNL zOJPqH?=%i{br zoBi5CP|}v3cRE*QPb!ACl>a*+c?uq|L@1Y16-lDy1-?{P<;a61WuxPWM;#^S03Z}l$H7*4BC-WMvRcbk7H@<6wmBc4%=*6 z*>1q!g|SWw?Z&_wAjh6?ZyiG0YY>y>3i?e2&9@jcJ8>0pC}VLgr_g2<t66E*E5Ppm1(XPCxEJd&Kv7Xpy2*FM;jCBEsw7_#yz93Sspv(O zjoTv1#hC68zglU#Z@l++FBuYVq?0a-Vt~0Up?7^u-;4hrLT^_mZ2rq9!3qq*Dmo?e zAA0#M#SqRi%I&C>F0#H9B*a}`Jn7@vhnT{3l=!zw#NqvkioFhnpZhRr0W)Jp+L^%v-5JYNK9xYr*I+j5>GUllyB@|+rZS=pFl)Ed zAr>(y&t)44MNDty8;1Q%O2jYa=Iv6IoK`fWDE1uQimszXokFyrgWFtOYzwcRp-*jO z{Hubn=O#u4}Xi33S_W^rT3zO8jol(BFp1LIfM=6=F@t%2RwDDvo%lIbxIg#XigLI5sPLz%nl-`ibTLvsj>)zDTp?WP_fE5#5NQg9f4t0GCFxX1xn(+ShX;UDbS&kHnYRc7~E!_#Ee>b z$_Jd5xsXL+GZ%U*gN!FY#d6H3J*`zrjM)k2_#%WAby)P_w-5eZe@MiSnGGm#cQ+LX4rAi$x%=Dkzm!r_K0%6UvTpkM_)kVKNK)kKrj5 z{>F^tLdN-+K-N3|VVVI(Muk@&;~%7Z><@aze{`bhRR*^<{FuV5h+iu++=*l+<| zm}GR1n<2BH>b~T$;mlg)!}BRZ_Y_F!Z)A4~*Lj|CJ?Ds4$_b{7gG;$x^|P$^InSaN zZD@6d64!HaF*9VI$A%7h6XKj}_1(Y;ObodrXUF@8zb zyK4b7b`Yc0x~7>SRgPhIJK%mrlyV7N*dHy(kqDG$d6*UJ(3ABT^(y+fgc^23zqg_n zGnLcu9aB?JOtcU?tj z)4;+qh~_%?pMb`#ivCLJqq?t9k_|dHQ{mSxp<+^&ZNK{%LbB+BIw=05mqF}r3Ev*g zeJN~>h0pbc0Y|HTPzZw#5q}r>V@j18&{3&?T8=7>=X=*s znx$oUdG0F((>@5bQ#xg%Ewf8LZa<3xuEzI)!&nwC^|h*7xkS)}FenvU}k-ce-QWBAG{y`aV-<^ zW*-#~s3{xX0^fh46rgkv6=nBc6fg_!#LaC4Oby~W(HmT#u8(tpK!7#$oC9%%VZFQ683=Rj1T zbYv>-Q*!hiS{{Rqo#no|=;;aiJdWq2KwNSQ->xvNji}42Q2;w{n%9P}g8yi=llZ-Un8P-j3tndMbtu=lfe9CjK zVU{-;Gyqof9a@xESYv4CCBs=<;_klm_8hF7A77UAD*AO%76p@E$pE7Y;)&{_X+JAZ zCk;Z&jrg9!1_a{VkuQ6=#7ZA{l$UE0(OkV4U4*v9p-zm>MPm`ub@-emC39j|6go4~ zRVn6{hOKCy)@eoWL&*{BXE5!I!_Kp+Ks`FFgw3*y=v#+Q^rao8lnZ9|QgRGL#lNQW zm9jJY@?b&NFS^1F1rhEQpWVD^cm_&?A=+2N%gIzGZy7^Wh~R11B81X7Pp^hg;~w)elgra|rJhfjvh!6>@v{AUWT4hW4RQ+t|AUTHPGx z(j#~`A4Xk8%Y<)Uon=5V<54fgC6S z>*&M^7(57#tcW=aymM+wzgIlPiuXrkHVSPj9D2neqK9ea6VjraU0h7`CS=Z_#eTGS z3qg%TxX;GpgA8GSuhZT;+<6IAxyHW|2GB1PItWkZDeupH#K3x^Beh)~N3eM3@p?I3 zKjn7ltE}7p&?s!>1^9;sv@wnw1?92~zcJO-pN8>S2SOYKMIrHnUJfmws}n}>@52L? z;FQ*^N0D%IBi5dVyw%*PDE&Q{(3dz3C2zNaE+rWUT6iw3Nb5bSK8BKC6k|lx7O+p% z%|_u>hvWL5azUR(co6{OBB1myy5r!#xRZIaqfz}38`Zy3@bC)MuCDA5I&56S4H_Sz`kWSS8CDKAwh5#40n^G2}RPml!l5>6*2_2#90bj4`N&UaBYv! z&DHSk!vr|)_nZNjnSX_x9(NQ|SOdq3q2QNeAff}DZi_$&;^`1AOhI$C9TjQmEG}2Hlm1}U}t?6MTU_62>%|XY?!PpNIuA%X37*a*FV+Owm zgjUfuB>|>SL~I{Jvoeet$Dpmv@eGR~qPQcHH(^i0$E|M(jfaNMT(EHltPpavFjE^i zzv2bPqg4Bvj#K>@N4uJVX?e1oxpX!j?WA$PW~k(k;T|s-t%2xJ&^i}~`^m$x)Z8PG zu4f>K6o(|y%#n}r53)Y?2Or0OtPWtx!B%x~p>>&%|J%V}&VskHZ-N!6myC?A( zgRJ+Scg}8lC-n$7)Un@Iv_ux4;V6x&1Xg$#*Sp;nQ~TnuUg3GwJkEpSoJ1wRp`*qu z4OEzU2{S;~)O`4xhxGkRlRH!EwD0pW@Auq&tb;t8hGW2Cb1lJr})SO%e zchSh<Mj@k-1X+B?3A!3nxz4Yo4^KfvB`3Rt0XOQj%uw?q4n8r@-` z3l=MJ?FZv9m!a>sQHM_%`1cMv(cAo5nmYvPlSO8pI3}JRIGER?5#Dxs1Tu%m=SDc6 z3N)$Utls&I`yPbPW*#|4!^@p5UWTSmAht&St`^2y%kR7e(AB<9Ul7>In`uzsQC!Na zIt05I#ST|z`_~wFvtY$71~3Ze*%so~BlNwHdkh1=!9VS$w}tR&@cjy;i~r-GXI6ME zB_hj-Vs>Yu#Mvo;XeG7)7aYeWq$TBw&gFhwhX1a z?FvrsLMGP)8g!PS?d5XA_ybox@;RT+Ix_ATnDVFX`7GCVI`ZW*@}*vLLM~Qe$b;x{ ztwFfSrb&exc@85UgkEl;t9|^N%cpFZ@LEHHzk^<0<)@(Eax>uFg1P~-IteVxjlxsu zbxRnQh91CQ+DiAo;gj#NE^LcBKZ205aP}uS*B9sJ2e^Poi^UpuI#&7q2}V zg>rQ=>|HNh;}KZ?3wlwN2m7QpKIM~oZ6D`+><`w)f4oSCeZrswzK}0+_||p4en)yE~R3Rpw~*SK~)S9sJ`S*zp9PIL$qTk z+x+)cO!ou>t(8iU;^@{0gA5H%>5>%dP(K2TwBtU<0598;)8}sVn~1<3SY$SD@2I5B z(ePPvywGBLEK0wBIvuAv>b}%d)*zRY%f+?K&<2Ez6D3PI;JFO5%RP)^G53}Z1JluU zHCn!@J$nI#e;O8N;I@|VxsMzH0I9Ch;n{7mnH=)x(>b1;451pvO30LZK+AF6?CaWYCqiAr!+B% z0aX<02OS<)U9l!o9$ELgkL9@@wQ5d|xlp5i4(}WXvCUDxHl0rpAN{kMR%kKK2JY<3Hk+XS&?v zQ9f;^^NDnQ)ydaNOWtBg|JGiIHSpe;B0M^B*9oq^&oKJCTtDkjyHlEgz<6;X>JT3M?n2XR?M4O4C?^CzB9g0)5Ch&>fp_k zOHjC!F5ZLf&(fpNsXs=(b)fZbS|bt)3r(WX=i z=G1rTnD_8)J5Y)SF!2yl?2*>B96CbiB37U~ggPpGEhR_2z&%ruVNU#3HE&l7l`eDm zJJtcRO_VQb^veFozM!lB?n2B0-zoy-m)Im8ZT2%36w7|~Ewq}L#^Y|en%0jrM~VJa6(v)QozsB6%u zn9T#8?1Hm;33*@Qa}Iv4GOqV~$o*p+`4sM_#K=v9QneE)|Krz5my?@~EL08RJmdHa zZKiDY52(Q$x@pQnbU44;^0;a&SHuK0N9MvHYdFwGsOTTMep+7`t0(?&%-U{;GP7yt zW0&c)GK%IuMBPuh(6~^J*2d7>v$2p^81rpU8(Ex?t5V~&G1Vr>ZZ-F-VevmqitQn)+EYSoChgi!GW<}Q*?9u3n(O^KuSX{ z4+&$Fx!PYgp6SXxE$uNq??l zpb26iW-Gi?+U@p;D6D=H8uokGE-=uZ(E=hytID~8?mU#D6Hf47V-KpDVSc8Al3dLx zC%v5yS}-p}v;I3)e9nNb zYZ+2k<2X)$Rb;XH#o5`ev+7`>tWlw)iOZMDhDg&MZc|C6-#mSm!ya-tA?AF)FZA#^hq#9vPQanU{Mvu=5brV7N4jA_ZnpV&y z&oYl7_KQW2tfhevGkwt&YUJmSG2_nUa2`#{)Pz6?Lcd1==(n z$^HrBjxbui!Dhjge}~jN;&#XLZ=VrIXTa^F*vNaRtdMK!L6_>6+)ovYdMk?dq^p^i zwXfU=^XF>wA)lcIgi%(5LHxpEWIBt6vM$+p6V^+rrR3gl0DBo}{L=3J`N1}i>*1uHQtH*9!^HU?nh3UFT<+Q(otLm5UnZk`{yB!Z%f zVO?@u$&_#^!qq(avLll1tX~DgNqq@`eF79-sory7^f44DyTafLC8BNMbAN?jPrJ5# z7vW5?qC6Ux5O=WOp9_X{x@9AZ9%oT@og9k;nevQv659L>&`^-4@397h0^e{&C^w!3SCqdLviSm2`CphoJtTIRZ`PpjZP3W)(TMd> z+Y!m?b+dFRnZV(=_25B=Xct$R~$QoMf+^mQoutg@;{3_tY%eeLfOtCevBiXva^pxd6_?VW-RjSlZb zIq|eJG#=6>b|PAM&b4$ym>eBuC*iVQOHN_qFB``x7d;I&G|N*)A*>W$2CbT>>odx) z3}8M5-Oc7ykw$3ek(7KG<9zT+7&CC(#=O`W0n__HYGqH(1(0L~sJH;h1>o@eF3dOC zGf;gNjkRH$_U3;I`7*>9#Lxc3LOT9l5#w&ex zBmVa%II<*^i{{6B&Vb5;05d7%17EcVSGXH%UBXQ{Xh=x$%(n`HP7>EumaVfC{NN7>$n*a?OrD?1YYpF5e&s4C3 ztl5hhnMF*07Xmaf3_3-wB{45C2v&!ktcjQJGWhMg=oR!|75E#Vo?qu*s-6 z#4KgNKPYOg9@Ib1cfM5Yu|K#Q{}E-n#2`pFqRCy5{#s3J_MQnFsRA+crc*V)kEnj^p7$VwCcfG3L7C@36Vfy;7EhpRH;57uqZ6oyz8D!vF?3 zIxL97AM|jEg^{?h;yifW#n$GyaGuitM&L^*f zY6&uZpYaT#`yBASwo8~D^p4VEbh$om?i7D3UAwnq92%hTjiMOfe3!BwhfkjeXOA#l zv}NEoP^L~yE1R9*chi53WjMu|?LXu1<*EF7*4%&{)eYLAzy$riA;9}NK4DdBi{Z^g zKdIUmK;b91BEF9*C>#HMT*zkVTADIkPl9q+WVXs0PS)%19oQ7)j& zd@4lwvFk)m2_>SQ{9PnWiGnW+!p5Xd<|D8x9iwZC?7;?4z=z^0mlL7dI1s-zSsEJ5 z${p{aK3!1-_DVA_A{I>AF0uS9`l4>6A z0@zK@jTz|@G+Ha5Rn8g94YyXJc{@Yrl+0_N`(i^uq{q-i9pX!ih8_Ye`NRb!zw*9A z8ST3-|YAgGoS)SG8Fj4S2;ma^C5?Xq4=jKp0?(zG=-I9;}LB#X_eVlIaw#Cjjcsm@4 z#ETBl@w01kS3pe{pqHgkvd!tCelSek$>mch=oVL+?Z)NF*w`1))6B?edwH>F0@F&M zgbmYS&pTW}gqp&F!oA|X=<2LwyE>HmEv)*j&^j@Wr#bwe>HX_Tu1Ty^K?N1`!avr) zLh_&%d9kfp{5u1Wiy_zVk-$b~vH5&%=IP`xpAXRe3?{sX$n>i5P%h$UbI__Pea*zq zmSk`m#byLBoCjMZLELSTaC?5v{Yn%hG&E#uwB(! z%j43NGy4-B=DKSLY(d^CQe7yO7e+HtflUz%t@WY ze_&yshu%^Ad6*ex3sdcp^j3MDdCzpHa7KQPVs%p)!zmgTW?;sd0nbM<=)VzPNw|M1 zJ+}267Me{3IafpPbVgDNzt}3|%8(%zuD+ZO?&kt#IXxXupr^^0^Kr-A-)F2ET^YK) zO3T~Ov2PezDfn=lQT0K$X2DVg8tJrk9aoy5LF?%9GpwwJ!R)uV!dMrTK?*BUIjd=% zp)Mw|KC6MF5)#Dv$(u?nS)WnY-Q$D`WVT2VqWfJ%=IwNu9M1u;fn|{#VAgQs!iT*wckR zzCaZ^A@rqaX+{RrnDMF#&l*Exx5FPV!^!M(y3HP=6E|mQZF!4a#hRfozq30iKBLPc zHH3EFeYGFk(xFs46B;gQ3{Ng|e#2$PrvP^)$n&eP0g>uFuctJ_11)TsH$kmE7_ zLFvc-AbtEt*!4g7u>A#toi10$4%qRHSi(IN+|yce@DT! z#JH|iE*5!(1{7Yu7B4Zw-eFx*FSI_u<35GsxQ_moaLtp+jIAlY>vyLIe@8!OQM`B8-TO3a`!3Dm{hEF0<$x|5RWn-5;ot8$la(oLXp;f(LyU)8glfo&E z`yhOH{Hf@4nA6x1XkR11aTvvHCdBqI>=FY%$Z+>Mk=~JKh)$))7_0JOZ#<7*&mEZ1XnW$7PV#AwOsLN1kBp($}_cL=YIG@ z0@zD1glfetxle^y>!K=mtW0N&DchE@kM_~|-&pD>gIhdLD?h5t+}6mjBmrF)WLPh< zxVRj4@dC&JO$J)%ZgA;!OoW6~)lLA9+ZbN)Jbh@*pb{h1X!AuLK5OuXmEPZ;>{aCJ zc$ePTPp<#R)>}Ylb$o5#gg`tYoAdLUDI@N^xnC;!xb(p}0GJ zf7d2|c)qp1#UioH z7NnmEK}|(WNzCuR(9Whxrn5NZ&!et{{wT_~e{rp_7cDR10jL3;RE5?;2zgckT9hW+TkH99E}VX%`gQU5!bUO~%D z$jhi2^OtJmDlY7^l?h1ZdIrT|<{0Hl2e9(eWcdhP{*8xp&QXD%!lzjpiM|QGqXbl@ z!0gAn+*T7UZBkWk~E(%D|8YL2Z zW(3;!t%|F8;jToYUdt>v<~VroN=_;I4ga9y+X`7X#0{z#XbrUH7!T)# zuMaInNQgdFAWcchg$>*(fuUHPM5@B0QZckd?x#pgc}b4i{=pYIZ2XyTn!@HyG<}l| z2`|RX`#7o$>Niyxs6 zYH!tqJB8g8AFEW7(sqU>*|ESdE^Z5D7)jk<+Hkz;hWX&>xA|DHuFH^6CIY80m<9{u zhqhZu=BFyYAyhT=;JWQfe`oKVyHKqpsOo&KcS5cMK!wK_sLE?C3qyN|RS7qZx`v2; zA{MxdhBjK3Q3)iy3t|W0N!s(*U~DiY--wqbxT`+{PmWjVho6`f2NkdC>wy+P?s7&t zm^aHAjA;@+rIS5f9b$?h^nWbzZx@VfkM^H5bcqbs({=nMx#gU)1)!%XXnjRw2-^HB zu6>pb`VBn#!xfK5(|TkfV&5pRdEJ!@J0AM=sVh!Mde`A^6CvB`v}%WyU}$EQ&;>X1 z5%+q*yDeg@ig4owvGs3smyYLKDeInmw zkNGSr3RsyOZIZtcpm2y=9f|aAGx5G=hAx2rtHX%?f;R%6G`d~#5SAC)xVV&&U9`}b zPH2JvPlV7l1G6t}!pq3*+pL1M@|5lgn)9*kzuZUM$_#IVd^h2nr$S$Qq}&EI=>UKA z@BqI15$TN)HeOs5U}jvax?UUm`%fjXfJN$KNy2+98|x};d%@SY=}6(&oefdx1^n5H znsrBWI>6dAeptUk!OPF*hqtVDH{eXmM0lkM%ZGt#&T>400Sz{43n zTu?D1LbJjGUc_f655y0xZ(&Unntd2 zLp9Xl5DvRHpM}q~)$-ewadVzFReT^C-P>ph-;*sgW4%Rl6>wX8ggt46Ma#RpQQWc7 zFi9^V{x%p`8a!AgbV;v6H!~xX@u^i;-5*~b++K)AJW<;_ELVCClfp94` z^F$IJdkA$xZQjd6Dfy?=qr41iAN(%ha_ZEY>dP1op5Ue>nf*#fhmi6QTxaqA$?(Mm z%zWOA=>)2&ZLADf$=}d8no*?F!KMs&2~+D^rjQj7Qy#MW^IsJ(QZuxt0X~>fZzU-y z;s{W61E5>yoEcisR^jHSt?&M)sUgu^GFIFND^Tnm|cj!R*6~# zm$kMU<^Ew)8kU}SE=(XsahOB%qaMGw(^06ibLst%P$^u&C3u+>#^%P+L~A403o0MN z;)c|+mOF(48K*qyv$(rg-C2DE>ze3z?mWL^dGq(+pr67n>u!Lfj2dXoRAp*Pz5j zy`4?sUYgJ%Agf= z3NC=w8q7`?>9-@SA8v``dM8lQP9Zp0KEnMOPIqZhTtz#MHW>403l1wU=qL0x3!3{8 zC2yoCrEN^p$+>A2O4g2rV^&Pcae0*OUrnUrg*esK*yDDF)X?1sFc85yR{M2{Ek^no zVnt!}r6_7&1I{imM5tf!327L?0juKl$u?{AVynvyqc0_+bS!A9;t>w8u&hE0>oH;B zd7QQaG~?*y3>+P7h=(&!)K^M%PH&K_9UwzZbf%N$D7QZMaIeDPV<&AsK*}) ziDq;^(O_4!Wu?m|z>g}1dh!&7NXyXn7{XyLMxae_rRTHNA@rE_c=GMAzKBZ`Xz4A2 zh^oM7p1D&I2uX8c0|;-1G;_PX!N_DP4~#*nR->Nt{FyIDx~2YfyPQU9@<7o@L2gG` zox05KdXyrieNa5g+x&qZwz1m4E8VehMm!Q#JjBBKU;IQ7F8_e!n(+CrV7K4f55@~u zoy>uLh%rqNzcP@OvdL}D?BP>{mIxZ@cfE1Mm5P4J8j>l!27 zq_Dk%_W0wNzHN)L9jS59at@(r?U>t@3WuFSNGZrzzhky(VOgTepHvRq3ojJ51OrWn zlU{+`+QZk8xSqlEP>=pPdePvDxVCATgw{*i8=TThQsd-GF|Ly|KFrcm|8T!VK(JUc zkiq7H^Rfcf;`~8xbK#JX8)2L?9PkM`?eMW$CfjNLrQ*MO`=NYq82AvFT8bIsEvp-4 zUS)&TSLom$zN>}@u4eHCf5qaq=X_P0wjN+^Qw;+^W&f74A{plz#o>#sFtegUA!fR( zfp8;%Ew2}#djbhK2Kl)$Q9L8Ik<3#1YHP|8DtQLW6)(ZG3ZIR6(Ws zb~D0E?r0FRP<>0*&t-Mc3PV;GgOhv9l|wM+Z!cP2Y*=%v5XK>RwAGU0Gcy*YaINA> z9-C|w0x=!&6@+C+tZ;T`{weQiv(;|635V)2J9Ol!J27`3in+TfB-}OJJUykFdSC9o zVRvV;Gltw+Bj}+dbeSF=Y(_p6tY%&sG`Bh0k==?it%K#;q9S2)7w-AbcFfv@DUl!$ zaka2IuIEB-;nZ}A93O-1UTNorHgV~;xM%NkeI^i=S@_p(Ooq28~V2k z$=-vjbC91yWjJ!d=XqYKngNVxC5wdLTzoE$fbpyaLUWX}7aBp=kPyXvrjzM3ai?Qhh)OlakOGOnjD18<<(bDD(?!^dM#+`y33iWtb@bt|V(ia9kM ze-}bFI&e`|!yIVu2XT|RD+Su{jtRAfAy@CdR@06Zez`mZ@(&U0W`E#XqR}4gVnKV>FB&4H+LoxGx3fw4Omk z`{IfA!1948U@nZk9|pP`09>4hlrv1wIYb_e2zRTdR-0YgD_;nQ#8I2Wm=VAf$FD=H?%+NDH z+w{Rz*MN@hD4c4%jzQ@Jx%42GRiw=6o`vykdT4kQp{M{N%VX2UTtvM9eXN7#bTMp; zJuqdU&`*4|B?nQ+!#Gp?cW@N zlS*M5wR_O^W`^C?4X3saWn5q|K*IcZ65C>32Xc#wSnfiN{$=f%P2g{WcuI(2&3Eww zTsl9-umR&1K5%6#cl;mrmDb`Y1kQd|={c%kTF>em>ZENJ!+nYX7r@P}hONd#7XS-; zTWnx*6#KK4N;ylXt8o+?Q9u>II*Cp#aDP&=#_Dm7cD;phpqR^|JUbIjxzD1l9VSF> zn?Ir#)WCL@e&xLxPIdUW2%VUu9lqEo)eJnyB_*B3ML&9=RVmD-b0I#V>y_tHe3n&f ztpd?&rl`!gfxUX!%>l2M_*iV+csDE}mevpG?w1-IBMhD^F{^!n&fE_|Dn;;FLct(N z=Yl5=wV5ET{rGUu6_11XwK^kAbrs_;jWx_;4V>DYk8QAkHGH}FE*w^Vf!I`$Gy!a? zgyJX|-V`Ra;=Uv_*Tv2l2J!79OTsE)RamLB>FR|sjxkVGUnP~Q1jC6uE_Ilpd89_K zyL`hxsQC^5Am$_CcY@!{qr9Q=%!*C1%4VSqH9dl^Pv527KRP;igSBh9lME48!ZuZ@ zH7~A1SS3Jwn|9T)sw6p?8dN9ZJIHPtQzYgHPvo(E?y=bDA^gu{X7%FAYTC{i{zBs0 zE#$o+9x8lBukLs_{XREb@ zw(_EJg>4~QC8ILYNkjBjS@6{{?F_+mp9|k!AN>%Felb3EgB)d(XL9-D&~YUW?{s>1 z&{Yi7@8>RshpM82i5AOd?4OvoDnS#q*>cd!HG`VFXs@?f-Hq57%!MdB@X_`k!Q+1R zCa;~gbIj@In0E(3|8B-o8a>^Q{x%noN_hjxPaA@WQwT9M2kaK^UjqIwrMur%m~a?_ zDTL0ogh$=o`aon$VU$n-p$53Mq3GlwRG=~bx)TpSKt;;%OyAguHa~nH2Zv6e!rE5G+O%0k@ z<+=p8Y#eL)TJdr+ISG)d3pVsc+f!cd>`q17!0h-!b7#xsC`EM%3!`5M9WinemlP>m`A^g`89F#{P?0ChSC&k z8pi{hQG>^Z+^rIy1{qS+H6r3jIjRX!IRPOw=GJ=9T-2%#=sYJqO23&QDqih{Agxrh zuCf)Pd5x;QMWws*d!a?DRzyR7he_jb*?NmlhtQO0Ul*obHEar1?Hxr6GZ5WqT3E_Y zp#e`}z8nCR?2Pw8dWS8jbiJJqRQ2T^9ft_PcQd2vi?V2)E(jurr{V1B5{_nb7%XjN z;f3dwg%-!W@O_4T%GH)n%7N*Xx80?q*8E@|Q^C(V2xN*kws#$7FAa4`{b{BQ`ZJhG zB{R3qVwi7@fMu4Za$A@sw(HfM=Jr{#?AUProKHwX2)9slH-rwKhS?VJTtB+p=~~97 zkrbGILS~~kG@~<{Ujy7O-8BeKOt%C=5<2@c+&r#{zm+D-PN$<;I&A-jf6(9?{z1&g zPEh#*TBmUlyTmYdBiN)`??Sm|>0@&H4`^X5 z6GbkZkC4aKFm)fn9@8PaX+9R?(^bXF{zY0&+a`0l;S=Nv4EG{Gg|s;mU#fSGhnBXz zPdOMj;9nB{ENZVhiy=Yz(*pF=y8I;VWulq+xVRhqpNs}R#7XprmhF71%fxk1HF{L^ zAP-8pkM^%v@#-WIn zp?R?#MAU!_$yQZaue~USs^|Y<^n&`|U%XfJSDIFn6 z??am{l%%jH_p*Icn>z~AZHG|wd6y111lXmu&P5#hF?)$AO*^M?jc@UUvn+#_E-ZsD zBSh@S!6^`{Bpef%_sU4vlLl{Dk*n^gcna4;Zi#TdhXu( z8Dhi;JGU*5Zr*kK{etizDp|D=9_z{(C&4Y!YqK}2r&UY)qP`jD% z|9cj#l?@tL$2%F|{rAY{EV@%5$PguOL5H3@h{m7BbMQLPe6NVs0rYSaoyoxMo2*7< zb5F)i{E*>`&4$m{w5n_ehex=Mp3Jh^ZBy9VW(%0Dgi?O8+>*Jb(UZdHr>14K9kcQf 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

L{0))=0h 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

cJltXm9x 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

VXe3!l0MW~ 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 CL?b6`UqNwO-mU>b!MW3@Fomg?^e&zFJK}u zG$C-D2FSUHv1;pJq!Dr`gV1`qLlLg2sJma{H(y&e!R=_5P53FbaKHtgp=dT?1R`vW z3kZ=~(RK`i*~O>JOnNL0W@lO#`0c-pr7F{@YYYbeQF6hJf6?n^V-#U`i+AV#jDK+D z3;sd;N4GwZ;P;R#_jAulboD!8T!kRPO(O8F4$=$cAeJn>4-+Swc#(wtHxbbd4G1GT z{=}j)1yORUXTXO0!}#z&%rOljD9oyxl^8x+KxxM;$rdyot}Q}qLzzf-od+}LL#~Su z(~ep-U4Il^5*O~ptoPf7@F_Dbg^`{`n8mEzr6p6mVMWRd@u3NBcqlFIv*P`!sAOQM z0O|9yE~PW}sjra!3**?Et;};DqtWb2i{h?6$qRbhyCh?vN6oljTkXzf=9(4piwIy! zEMMuBZ*kWz3NJq8O2*JaX$wDpnl?%^%G=z;W8@seNvn&ezd>RzjIgk(0a2-9@v$$> z7P93;(6eK#^0OfcnkdMN%-`SG`t#Xoh0jlrJ9US6BQuW_$p z`0B2GUC@F_HTs1WC4z2>ST@B5WV_Gh_hKxnDCvpfl8cGJRSdLDtrm2lo&8t1OAc&4 z5h~I%;v=F`E*d@U8ifjMJBWehX85Y>e1=V(HcpdY5Xm>jCZ7U35<1aVEV#Kn`5YGv z(nbt$u%#-!px=y`=wWs~3B@<=#kw%ez}$usEN;{PB-Ap?2-EYp^xh0^8e#ZrLpR@m z;Vnh(Gck@+uD2iNb%E78BOz=hCO4NU)dyjR20L21dRlkf2OQl{BDuyi5c}9<{9xx9 zNDCGwKzd3rk%yMXIp0ni>RIvoYkr-aY2~8-aC@puOht> zOWmP}?$3n(a6`Q?y|zf;GycI}U+@p&KQ_QDOA9w7KrmaL82l@Ods%U)MAG90+r6?` z31IeG6)y+a7DpMBt+5zkR?jg|xREH^3Cytwc6AmbIvymx#d_GUXiB#8o2lse=_eSP zVE5WnPy8IOM!EN@@oLG&CcW)IRBMu-7Ax3^*VqtI0^R+do<<^sddBH?2Ni9^9tDoN!*b#7Vtw<74hs<8RwgI#qjStyhv4SWy_}P_XPv6dp zZ}|A9hM&eaydl2f{P7JZwuT?ZPj1tvhDQ-P^-xz5v3<`?jZ8o~o62f8*R<&+V^k^a zWkU`VT#xu^>*wNjT`v1R8M+{~7<__80tv z_>XSNCzHJsZ-|}a<=i1&&b3UQGw|vZ%2>OKAeG@EW|W<(Fw+6R{XmyE)DX!_VggFZ zofc!6VgKOMNl@8k<4I0}Ggh~sx40~!tlQn)*ZSvboEzh94_j?;u%`(y=y`m2j|G=x#EBacFMqPC6+E~e3r`0=$MLd{*2K9NAJDySliZa(qpr9D8@F_@ak zhc>xLxLxnv7Q_TV9Dw6-;7w27?0QT?{YQ{lUy-RWBT4?yTjjORG{G&C13_g z+1{%lGcV2$79BAopS?!Q%x@Ahq|=63q!Z~Cw!*JxG~11esv@0MuyYasOhQ?%ehyX4 ze->s*GGd}%hUX^3AQrGMxNZqkzk3jYTA}1w%yc6+mP97onZIEFsrDYku8;~sW>~}c z=$`O%2iCm>+}p!|<;BQxgR%6)A~FyZ_wapECi$EZ?s3;b5ZMeXzwgf9!(5eE7Kq8w zG^6dPI00KB{s~6XlRO&b?8j7+5x+$~I*0xy5<*q{Qca1(s<575JjHvFfmOW8WiLof&L3ngeA_opHxQ2vf6MXAfrd-i}Sj+C#=setVu?v%3Rc zmbcTzedWVnO3N(65X&*(>5Q$ok@MEIzq{*iPt2+T()x=ICo;Mv@~jz1XgPiV#Fq6Z z)IS$vm`(cvE=cBUneE*~^T3 zvCh4a0?G;YS2K-(M5W^stlKR5k`5S0d!1eHE)mH z8go-o%auswhK4c1;#}DsQyfL(FY#~jLKeX{9@C~0a_$m z&wM=LjK)_!;~(7rf`1VIQ3pWzLzsF;22$GFmGCk0+#jq$d#aJ_4z<+r3M{2_i0S39 zg96^nSkw=zjjDH=xTTe`BQD~MjCcf||C&*4wVJ~>wDA&(bEbUOh>nW@UEpVFW0Uwh zy=5m?XXrhw%4eYM(6_p*9&E*0xy}A4_PG&xo}`}%?y09cDaen<$S6IdD2f^%5lrqF zRiF;CzO}NCi5LU_L~ZAM4A!MvsLHvX3}7}4xddvqQmZsBv>n~oL)4zLts z>=c4g3}SZw*g1GXU$-m52*M^aht_CZ{M32a-z-9OBiM3vHSDnxmZyJ-In82*W%=fw z)eCn*uw&`C2x3p?hrWwNqV8)9qKK8A4Mdh_MF{Fm5UFd}K3Nz`rbuL|DUjyq5r@M5 zWK@D@T*+o|CoRrroe~AiP}JAhGE1%zM(#4E#yZLgHw5L^1nh3y+=Z!*LNa<$G24Tv zF*(Fs=_icp4i9A;jTb^l-%rqiDsej!fj$@?+;hIoNxU5>@)tiuG>NB?l97JQw6rY@ z_uY3<20xR+7)$FqGxy=BGnY7|L+mL02;x_olj@9iA%W&vJN%3arY0-%VJvr}KjQ9z2i@{vZX39* zA(u_Vv}Pi%8O(M#CQ*UUPE}l@Z=h`Xn!T#)Y8aA9vC3As%o}0OL=u9}q0WRXiA`82 zW)g5->DeQ~ol%k5uXF%UO#tS!nJK1GVE}EH=du|F#iut1?Qy$7n6vQGyeG;Y3_dl*8I&lU!wgA48_!SIe`JuK zE-3bY7tDyiAfH{(ola=zt(`Bc$7}H|h@S4#SpNCcLe!@QxM+I(1)rvKnNd8jz4dey zl!Ui1=oT(^LM z2;5A-z?-5I;KC0Lz(Td&!eiHNsv1pjF#LNk^K6GFH8FJk8|b&Zy{TJ7jGBX50U5&F zdUCY@+aKZ0McGaMM}++c^`~-G0%>{+Q^;Y|Fmv4`o~uQ@Gm%?sU=#I;{&fuyP46Pl zFa>QC^rk!&gWT%U28DTArT7_s=pJSpgj@vWLA1Cp9*ikD?d`P<+w%x6*vVY=B1x1V zsTk!W45@@3oP3z7$b|G&X_@X1s0Hh(S1)S~bH5jM+SGW3C)n9m zW_OTRXBgui+-ea6FH3w{!mO3yt(1)U=;auurn4v27@pH!&&RgsNg3Q$E>J445;x}} z)D(6;R0>0W&Eme5%a0gJKqicNtpQt=_r|#|)6zIMF3RwO^y2v|l+xKP2(lGwA>$wB z!6;K%aeG&6{h+152+9y>#28hXzC!(i*_}xXFI91u3^zZ5iQI5yeVM$T*(=kxvQZNw z@*lV)4Ja%L5Rkx$=CXg$+v{e?LqI5bkWE5d;XR+mT5|XnW&$*kFT*Gk#7_^I`VM=@ zYi)@5pPmsCvAAV3KH9nBeCukkLkm&1p6#9@;GAr?+7Z7O;a7q{9pvSDDlz&7l2vLZ zWB@~1N~*IpOsDsq3kXX0=t^fWEs5&l86SfVvf7Tg3(|qW^&G1a2+1?ZyT*F`cKN0tN?j&>k|6#aX8O zVaAr!D4a_1scNw6;)j+VU~^w1h-ql`ISq)Iq#ZXYz|CN367XIr#59p+Me?x@OH|c) zAA58eBW74SPm3z^&~j_SNgcfY3_{f~1g~5kJ5Ou8Y$;Ud7 zK4()`!w(6Rv1G(qw)`}VMpP%5_!dIbQCvr?D<9qe!tI~s_P%ln|CK{}LWg^a&$q%< zm4JJQe-B_W%^6Oz5UlE7Zs~4}fOp-91YG%qWned|)Gykr$%3w6u(4sYzwE4ogkb#n z1$yg)%-%4N286P1dYz@;D{J~6278UE?zP*_+DKo}*IO((k2@ZL#%G|bJFPf0L7j%Rb`JY5cs1Q{AsW;*c_*sWk~dQ?0+9~>4a$dxM5<| zy<{~WnS>;?*r@1hqm*}s<|?qg+Xm6U&~_CK8Oj@?>0x5_6--ol#anQYWPHC_X@4pC z>WHPRKEwP9VM^;Uim^y%8ajWj#LG3tvD=)x#|l#wHrFUFY)A}DL%Ss`bd6+mRR~!l z#M_wG4G&Z<6ao4-R}B;h%t7^I)JCI-pA4I3yO`ndoX%)64aVMtX*6J}W0}0FX>ZY> z;5bfTHN|OI`F!12!JpIFROI=D&u>s~N~D|1hj%RQoZR-TA{;NGJJU|-nFz_sBxe_8D zg8-GlgyOrXxy;79s52-t+zzFJ&yr) z+ZFD_)c7WLCwCn;qjpfNE<;?ILyf&x%|NB89!EKvl*UkjZI$<2+I5JSII3 zMg56(@9=jHRI|p-j9>}Bg?vg{&JZBa(-7%qR*9(y{Gj$9s?Fb&AXezM`w)5thF*fO zT@lfCXTeGx#e%$)y!m~7RzIzO&B1U|fL5_8IVzGHW(lkJn`?#T> zVJ-b_&kQ;p=TEd-n1FB7W3KhNZ3Qam!r5M%SV-wSs+ znU*-ov7+l1O>jF%jN&(8JatTG%k}`x-}N`(pU#X$c)~BOVm!U2hyRZ|c6w;n9m4PH zp+A*zP+&ip+4G{Eu%>0{I!^L0R?*uSC40i;v4h_Y@W68ZF{0B)`IqgZmbokF zxl9DVS7g#&vI`rM|2&ObwY5EuR%M`F80K=LwJ9T7?^vt7-p;gM2o`aJ%I!{jsGeVF!f7lAUP~EJPf^5%{{n3{s^gEn$l@b=LHS4t zE76DCBgRS=a?sQ81jsd=VK6U3(pAh~@7t#zg*l(r-Xj!u8I-XkB#U{zjC;0GDyYmpxg=9X0U)qH^QJaOl~NV>l38-ilm;8BOzU988VGT|==ak-92 zZ=n*L4H)l80yMNj<#=KU_|{U}zqXyuQzN*p79)?V!uL6_t$WyK5$%r*H?cLM7->A9 z2mDdeI^%HqHbz*z;YKr80WVyme6;@$|G+cdXZ!=NPak_B%fYT>kX1~!iQ%t}!i=Aa z4>WX(;*jb>e*XhT*dJS&gWY^^braycGZ6AjS3ra=B?-P$jG|tf!)aLf;3!%shsUHw zlry0+IsVt73D7w^0ihAkMyLa+~;fVT>vgvC$l1v@};_VnvbGTqaYE z=}kgSiGvtxPfR!u@<~YeUmSonRdUBgYFUVn+w1{1B_ho1X=+TuY{&T1=?*@$Ho8*D zr&SE1xxtrhu=ro_)Kr!ewH`Y^g}`oFR+mnn*5f|E^YaRV{yXB}69K65w~n{}Mc~Ta zK7u)sw@g%C$xo-z_DQHS1>4mKbx(Qd@WclM2 zbpw9vZZH1s8yTcXi!#SrURG@e{2O;>RC?l0#6Dce=V2B}k23t5+?I)H={%yko9g2l z1RFC|HqGTyuq!NN3l-_DbY*-96p65vb&TP62Hn#t=m#2((u)hH8rD-=qgOk|uvJY%2_HJW>;D=5 z!0&TBh>rh=A~&!QjdZE;u83G}DH&<6T-p<8Q@I~~@R1*xN3tM1yO;qm?7%>)Te5w6 zmeSRH5=K!oG=2!p3Lmm+C__>SvF49q5ahEOBuwds}4%bFZ zTJKI?1O^yQTUv}^9R1}pHj>6Z7@t^1zGF%U2)3$IuP9tmZ-aHpYp>8=(o#9bHOwvd zb5nfX7Ei9xi>~#A;=_@Q`$sp-SMV}eTUwPa3Y5{lo`l1;B?OK^;`xXOd9le!j9Mk6 zBkVO!0VcVEF%gM>#ze9f=~gh*!pkbB_Tk38ept&_=((X~%cWtB6@l7ohNE;7P9^XuXPkFmS=Dt3L&u!tGKiGKw@2j;8C#>$og{E)zMjtE-`$!QG$4wl7Y=~KSvmAMKt!)(5j!_S-$I1qZxh7 zW>BZ2D-cIM`V(;26Z)R>d4CWc_&FY=j{n#l8NtW2gJow!6pdA2ZtL-uyWCz7=^k;Z z*>yc5s6sB&Mv+c{%9#S)Jf8^nzX*mTqVbx_?VO;a3Sj)y>Dez3l zF62BX*84}`U4e3O^l4?#YdS}7}^d>}@;A7c194NI z1g#{bS-lNo>!uXBVMN3!D6=ARDq!%}Pw2Zo%g%1gO08>v1-mhXx|Y@^?7^}q>tAjc zb4MTkbYkE9Ae#Fj`y5kbMYDfAoO!Q_%{CIPy{~5UWf>o zXb?B-LZ>U_udiuT2TgVD5jhc7w2e^kCw3039U~Q}d`;}SuCYm1z%*6Kna9d9gdEff zKM^n4^C%BSQPzsLGGL%3F{yD}^9s>cH580YsGy8NR;on57X1pn_@aThZ$<@eEGaRA zL4gZ5>H!W^#sEp0GKNe@qy<}rw)~x!g;3CxIRzclhPj9oB&{LyZ)6IWEoo8s@j9*_ zfteqp(bO~n25(9`9Qlz~-2U9u)AbByngwjxoP`tJLoQ+>KTlUnxLELI4TKCo#6&3j zpQdU?mg*2}Hm9+9RW*9~Tga`5Tj@)fd4tk&`{NmXkWP1g`*#e2swMEreumvx70UwEUgCOQ2 zf}F?al>S}HD5)O0o8d^4BzUy>o^f2^r$WehJkxAMtV+**afXK_Ypqn-ep@>LpU0?@ z7(SLtm=mGbXZZDe3p?k~_#5E_??sJ6x%2=F?p{weSG^fnVYkoEE<6>bgG-Skm!`o{ zb{3F|8Bi8%FJS*OsR4{4$gjUQlWN(0Uy?t+}E0ufS6#$YCx1ljx)O$_S9FnSO* zTN-jlOT6t6a%#=+x7rEqJ(PY9jrTE-7$wIpabrRl({J{oaR3jQsW9WYbR+^rVHMvE zX02W<8ZD&Jh+pQ$G@mlQ5_)GJ?B+(;>+ZC|^Yc=q$&8T-8KOWqc`(9$pT*_>xQ4!j zD(%nDFegzH+*fArF%ggdV#HAWGrWJFDdcskMfV^E(41jmH(~K;)J{SGy-URT&36!GP z)CSL6Yvt0tXs(q&7Y7;_+&wIJSE%dmiSTc_TG7>xjCZZ^f2B@FCK*q2F|8GLo0%5z?9V*nWjgc8<4{Qg6dz0 z3O&;}pA(?kcl42lfwv}-0Lod%s(YR@)Wi(3E%y#EpzHF=xYg37Le4yNQW^VvYMIkY zoU6!BNm(4)_!~Z04J=`(-a;zXrw$^1WUR6|44OU-ulP~u8Pdf&;|-_dy{ zt9+vp;Kx8p=h6ELEA{?|QTIpbhoSkPp?7w;F$%{W%Q`v%cJOKjz*HRSDQ{e%A*-*T zScSKo$>q`^&0xbq>MJC>cDiTM|tU_>(_8 zs#xldUJ-~JN;Uu3D?}z!3=_KqXmBx%S;^%LMcW~ z_^%FTbBPu^U^owyC)vudN3)}!znE_UCBYg6^+V=<19QA-<)mWCE=MR<(!qLuzQC2^ zZRrsFXbSf&MQUCu!I(o}IBMy>ssmSQBJP4a&>+J;Si?$izu^FjD`?a7aLbmJWw`DnmkjXLvwy7W z-;imONCvdt(C6Rc9}kH-)3Al&;+)0kp3z<^TduaF_b1+{w3q5oLlE$L{P}^^$v$J? zV$9EUGGKICoj`=IhL`ky`_7B}+jCy%lGbe2jvN zT9mlXa#I7heIpocZv)Keht@j~gUZv{-)N(e{jwqPvmX~8iRIpGXjdR1doY-a_Uu`J zE{9u28?SKvjC)aFkMCU>)s>g!x(${rpu@M4_VQ~oZTz8Xpi_LvVEm|S(a1eaRxk;t z5cW7O8p1$(S;G8CMx<}@>Fl{m0s>MN8v4lWAG%ZC5u%M!l~fi&QDJWSfcfrY!28(_ zVjDSwv3=2AzTw9+{Hs*+cb49&SITt^ez!h?6#TB}xuyg%rJ<|>uY|g%YxU+Igi3?T zS?0P&;Jn?jyo0tw9$^L5qwbF(7Zs_Fdisww>VZ+VbN4d=%^YmBZ zrGV#3U@=9p&@;BI^)R-OF8JX>>}Vy;HxVNIbz_z|i`#bM*Lo#&&#<}$m-Z41?B~N! zb}+C##wXr~{_9#!^|$oU+{f+q$Jn0QQRj4nv6Wy|+steI$crY-kZvDZduSbU&mV=VV%7S=I0@x23+Qs0 zI~IhD=b6qV$=!VJj+Lx4cIJInDt({PmqeHxkJUF?1OVfMW6UxfYourav~k`?^V8}7 z79!kW?;ZvC@D+s+z%zzuhq;x>t#J?HkYz%KINW#@RmWf7(1d3YOaHZ!t!Fs=EWYc- zzjsjJYgZZ=omK_-Ri57-!9oQp@+Y74bX3yjx!ZE^hcT8y zY-7go?HuFTI4L4_;jy1FIKuLg#GnTecn_&dD;T>YBo1M4Q|)bL7DNB7gP(N9fpmta znxh@qST-dNaBo(wOUR%H6N^$<9_a|zAkG+1N7H!?1a{C46E_AJRy zvD=rnzaGL(7nt*M8b6Au^mWZ6P|aPTStd5((7QPL1{38#OsJ`!CH8VEag;vp+96OH z%Q;@c0CaU9TI*{Gk@W>{EuxhQ3~4$BQOD#4Kd6}NdKvj%E`F`;&}h`E>e7Pv_Ex1rVvrSQ(De+`A*;3ce!sENVd0=M7a3 z(9Ku|NfjSU+dck%<$C#s;n)o=Epj*>)0`&K)ez-sL|K_tbcUUajIyF6J-Lg+<8Pd4 zBHyT*bZW5So-{Jb&i?d21XcaaPkWhZa+b_`==!0{6phPnr-R}=2WhXq5vdJguF5LB z!X@INRx(NkwEfJ8{l5NxRGkHQR!8&p<3`f^0GD2>*`zde!0?EwkHmTlxc>ss5V8(J z(B8IgYFux|mKd&0#GlPFAGlLldH!(l7Ch=;XdR{CVIowuJtD3i;)z$8iIJ)Pb!S_c zyn_3xQJ>QFjiB+W_(;VIl0~!Haw&4)98%x;i;?|mUU2hB`@6(wxfv;*_* zJeS@#CX`{$Wc5M_1#h;}y^iOSM6l(c zfahe8*Mhg(J%Y}EK)+8gunShb@qx~gkD>ZW`96`I1=WBKy%ww&4yC7p`8L5Uq0>%d z%snvK(Fk{{#W>{A*M%$>BDpGxD_J-{!y8Oh-Ec@=VF%hdkWgoseV*CmKI43@qRLHN znJ9c=76_@2U9~gxmOl)-y`hDr3aY+@yBubCQ$H~bZNDYc0SO+$7YS*TbYuX$Tgb6! z7*7=pV(?RtIU8-PcA~Mu9C1;?bvO?tRCcyQua7VwvDTjmNkt+5#1jm{>s~|KRs~xf z=hT*T)*3F&FjV@UDEKbSYY5+UN4ti>(9;ZzM2IJLK(>G#1%VWOS%Rh-j)^q?okc1G_3p3G?nEG4@(qn}8}RrpJ#m;2J4pyK|6J6W;3 za+q-{U$k7=)SKOOgSEEAs2V8JS_64X08bCaQ3mx122e5%x~S@`Cu|!dH4WBOWv&0< z#Ts}&5cQqq4-200$Dal~u@~VU^<(B@JIq;H=N;EiJAn6)(+$H@(BV-T(xy}SpsbA; zVF62#(+*%WB~A$XXg3t?gbAxu(|Hs^YRRCAQ~oHB0iL5mFJn3fL#xBsy|AkQ!mW)t z{Rdrj(cg7U5DhWoS#DgYd!gjG5s0?D6$jMm&JT*|o9K#o#brVA(X~@Pjlpl=mgBp( zo=`;z)KH#p0L7dv4K_@~WQH7&0bjM63FL^yvro32u1xlFp@Kk*5bAk`a0&_TaJi#! zEVD4-_FwT2(thy=b7McI5hjOgh?6`!wry7K{ibIEp8y3=NLzWSCgO7edKl)VCS9F6fQ za;hENs}YyhE}%{Vg-y&Dw;Mo+>h=AC&a6gW+CV}*0|%8SEXZ^kYI)IRjKa2s_y3nAbKS$5zQauwW|CVE z6IX>m;6lXG0uhnh0|goVc*8htHCR?#!eAxZpNA(JX2&ic(1hl$tv8z6-cCv0Gw5T` zDbx7TawfLoMpiQ5Aw2qrveA%T6PCe$pgx;0gJ;!SSVZucHih?ILuQxA4Pd zNS9(&9I=MlAwj7iEA4pI9gIN7Zo4&+1|*?v{6!Er5{~AjK?Mq*Wjd&8@0hPWd>Fz< z14dU6NMD$?7+RIQu}!Fj7UzB14lt|Za`oC>7WT}Dgz?!!As{~=`o(jLf(2DFnkI`| zC6PCVZls?LR+RQ0jZH%ePxKO18)uTsKu3yUS4C;RnAK<74%ddL9JwG82lzxsqYo!t z)i5hLG{i3wV|2DHzBZhZX^Sy4?xUNbivMEU%H?sLr{O_%6mq_m3%dquo*?HMT-j!x z?LWlwYaA@D7M^Jlk~?bKsySfa5{O~-07F!{t{lvGf=;&#K^=a9cLhfSX#I!%tJ@sPj z%VFGGh*^O~P)lC5o;qrsAB_E`xuGMuXnklJz>`fPb*xiocR0n_7nO$LlO!>idEr3IrvgA zHV*%#od7;mUEF1iqn)Ses~PS78mPdjJpi}Tp6NC z=m!KkRa#HMGrJ6QKM(F@u&b-oh4={K2A<|MU3bIJ47T8smk8&M*}VXgt7CrE=<*W! zx!hn>X1N}K`tsjZI_w40#r^-3ZWv_?#cGxhGs-Jh?gf{zfL0FJ|p(Pu}dl-HJ zpBQY}{#THUR=E=-6`Xk%dij^WTH-A4Gu+8~eTT|r2AusL?GFw|r#|sRRRM(75z#ed z5GgUgKXghsk!LEo5s@nPR!mumv`Y9OSND6-(Hq-WI0Gg3t)B9aDE1P|;Zk9XF%0@Y z%(+RZk}0uS0uYv}n)znhNzO1-Vr(sf>Y}}#`l#k7mg7%hB?r5f&v4uJA4YTidxY?w zWk_Chh63o`X!v=CJ{1lR;f5>*v0e))&FBC6!uYka%ef)Mu_Eh;gcf2p-yxN5Na85N zO^mv{a)b0zx=*X{Rf6u{jC6^X2xF~y602=vC6xp}n#ePRr`Dl1UEMu@40keo{}Y$I zn^ERQSv%25Yq~k$!F?B97sZgMD9s^HLnm2kbwBnX?(I-?6y}Vj)m9OLgHoV;b)=`D z?Gr9>9A2b5TSwIy?F*Fe^Y3wtpVX1>c;c?T@(r_?g_I0npxY4cgRCq> z(nkC%9*O?yIee}k^xdG*fyRRzRwjEU9kntf+7DJqwIObAs^MV^>LJ?~{DZ7t{K1~s zk4#vpd3c$tg5iV@#bVV+K{x+{Q?743qM2DEbJc<0XV( za*2W%eOVu9TVwkgcP#KOr<)vP84U3Sp$NnOu?UGyVKg@nKfVsdACILh(#fn=*|oiS zav{br+TD*#D6Ee%H*;mYk)0}95KOV!-qweQ)3mndFQJ`Pw8Mb0T{n2f zyEKvv&FMiC9Sk|SlA!>dLW9QeyO%xpjiN{nG6OG!Y*n(#p`DLVt6ZQ|=alHeAGG+B zB{A%CCH--eDhSgMJ3QfICHksbDcdqQ)`6IyiXhil`Ixy-ot7q+!1dTScJM?sTc203D44~JwhwnqwG)8q-ndOA ze1ebeO{{w3!DRaOFn49=)-dlC$02M$g<-o;%(9}6W@ zXwf@=ynF|I4x5~#aZYKXkbfo>^_+o9snBc_{&kNBd-|yC*slQy;Ek{4s{X3Hv4Xhd z`qlN^?RaiMw52HMY6gD(g4@5S?w6s__?UJs z!i1Yg;TD$BmbT#1SR`ILTCL5$Bk1=DSd|m%;u{C58a&f8q<_*T#EW(1A|@4V4KVC z;FsRJ=|PzPHi*dLZ7>bpSv^wjC=9jLT5*!$0BoYQ?tboQpj^TC6pW5*hhhI9f$Ru; z6b$&rPSl>@43ETwBmAfCZZMv^9M+u|>#T`}q-VLU9UEoJshU)EuHEoJX&QvDML*C2|GA1sfl4ceko9oO8U5G7T9!9U3J#UI>>{isulP|NC0EKds~ z64DT5h?P9g)SedG0*FfhL z+_1vcP@ZN^_b4vLe}j)btU^jAEJg(z+aT^!sP$z=-rde4*3;e~+FwsEqu|Rj{L@DaYn~euzy#gf%2#JZf~pl*3n#GLP1m-#;9jVE6K;E}qgb3MB&i`b z-5dU&;7Lijj}X^Vcw$i5bm&ykZH6=Iu38OM0*Gr4CvyPonr6rL zD^QykXu<`{Mg7~}dwzz?tuO@z7GzLdY8;`)GtVYQZS5uX z5RKjz3x@>ZJr(d&lKJ7BTdxXDnu!L6p@UUS47;K85+W{!mE?3)y)C>llO^9Kr&Fq! z@5AD|(?U%~*}z@#fUHuuI>EOn!y!3VTL6L=z^c?LiZv(7gAc0pGY@_!a=r|6$6L$e ze1e(`K_*GXUT7n1$1*<_#KUF^AhRNYjOeKA9c|@;#%mLu;bfuxG&qwvO5;x*N%JaA zdcm+pJG;*QZgnKzkHh>0o!ACFQ&4=Msk0RgrCOus0v`8Me`UEc-dVtfSk+tVK>i#2s@H zH=saO1S=zsf-wwk2!gtdyL@Mn7aa`bYb>p0r+2Nn_xbY&lXyRdo5uYD5-PW<(8y&* zzlaJSrG;)%pKfNOPO~xganLF-$Vzx0ea?eE-E-r?w)eLxp^7>f?#^-g?coM^v$|^x zg~?!4Lqu5&i4}^4Nv?*5zBbID83rSF%cb|=6(p%^9>T1>oiP<-j>^OJI;cZ?zWT+@ z@JC-#a?j7u`z_5@<*Nk&YL1*U!@F-6#^Ra~4 zT_r1=dIwgi9M=LydIL_rbH4;(RCD-vU**$EU>nJiS3@g>Ivm~%QK3%l-ruLA@qB#( z*Q;`r7icC8&oy)@Vi3}-V5m9{pEFxYI-NS4fsGR(Cj+{h#@&fSn?KXKA}&<+X`NEA1ov5TMLETg(FE1-&LdvQyylabI;(!QB>WjHiJLI?uj+@<-$M6b3MPu zpp<9vqpiJ6kOPomM+0$1X;NcU^O$wPvSW@*X^DO%!rbt9E@!w^Bpjd!XfI_+sVG)C zLmh3Y(7$*Jz4^e};Ad_7MnP%HLI;(DyilWR(OyhY3y{ojFtY(paVJ90LlZxExbe!O8Q_Y0)5~90+=vS2elpq- zmW3xQ%qlSWp2h18goJJk^A^qCf|L1N<#=vJT-BVW2AhS}y~M(@;+ad)TV4cF6OCQY z+wDsW%2Kd*b9kguR63iwY$rj&J^ld*(IJSs8uTc5I6g|e!d`oFT7lyd@TZZ*&AfxC zRXn9_P@xEwR0L^yFGSzLbqeIcNw(C+6$-p%F8yW3&~mu+J}CAbv|%94H=)U!T3lqt zb>5`k+V&0zq={=GyfUey%Iq|P2P&eOPOmv58NmST?Jy%yJoh_y#+T+B;!djZxZVZU zqcvA79AUe?sijcayLMQC5E@fNFh8VXDrtlTps#~mhbX$Npz0NaSg^E#SN$Qbs@|>U zDaKs25Jzhl*{uj*cx&8>VE$75&b~g7GR-!La`Q6K97{?Fi;pmr@1egOpYzjGHV>rphd9ZN~+;X||FhJU2b324i8wBje&mmKMJx3kg540st#xCkNd@hu1NL)YBH zNY(T3MsNyrY#e)kY1$uxy-Y|!fY6>k7;5lfLk~-czSLwAYH!u*`yqcS=0v!Ed@bPi5{^Q+EkAR8 zG)A4&a96f7B`t#yy>SLQ_P>i0Im!Td-428zrPB#WLZ?&L0I45lKz9e=!F4nx6P>KV zepAq;>h~;DxrO@-^|I#q`*5xlAD6NWxMV1iOWX#z_KLRkncY&|YNN~xE$%2AeJ``L zvmQKB3uzxk{sPQB4P%E}yv|6b{l2 zaSVRBfg$VNiHaB~1JwZnym6L!xw9$a6|&-Ow=f*W-n2UM6NFggrRY4~Vwk*NBAB;v zP>SwwqYm77ZIEPR>F1`K9jG`JA*t1I8zNyy4J!^ub~}1ZiRpVWn7|eoNT>0k)IvqKL%dTw2`!NB~3@6rAZIA0Xc5e}is zSQb~d1rN#*R^;*4Xd=f!y&y}OKFw$+6Y|Zi7z$6T@4GG(ZKqnBAM#AiDk^hacU&oc z&BL%VAg5?@9E28U=Gn!(@jM2PmqX{PXEEctjBO-xTL`mjq87syFX!!cM1@+n`Zt~B4n^IrVi02uSbINaHlN$y+iAJtmY%Uh?BtfjSV~e`Zh4Bz zXx@CqBkS$f)BJr^wWKSnxaF^Sh(%~jM!4C|P>r`)#ot~i)w3`72j#!wAH;s7AGys0 zh7_I)B~w9}vaFnR#8kv>^kd?<0rASQF3Kkbm=ud(eyjj#C-F%CSc>v9II<3P?PLhR zsz_WJUAqifU0v-s=tvjDKgreclwi~0Q#7RX`C@k(S_Rk6OimP%&()$XnaJ)57Smd2Byjj z+QQF(;wbqKTu!7m}RS5J+Dgbx=f#JO9!O#{645E& z2`d?t$fBm|BP$gqY-AvhDd5==xOmwDr55^xSTgEpA5^m{N+^~*VO*S`9D?I}a6sP} zoY_fKZ6M=rjwVySMB7yq#tyLJtU7!=j-ID=i|}v7k<(bdZimKCfPYmW_#3xAm`Q0l zU&={Obs6ID;W3j;1(v1fxbG&S`h?8KDWb16s-GNYB{87m8&?0~0wkAqGlR4q^yj;U zTz_DLI^>)xR-I=H7_fOSXCt|K-BZ#p3Ro}HioC_ zyHg?P=P~5ggKlnp!9S?{75^aiqoE6TGyn?K5#9!W^vGm`sJm*IIE!pfOs{GJv`;>r z>ZEoJF)*sMsEyPkBcCf{Ib*P&)R;|I1Um*HD-dp2gaCfihSEq6m{-K0LV8#+&cxW) z6m+@@jpVd-9>*jhh78#U&Mtr}AAN$5#8yVt8M*vtFpAd^`7_L50baQ~J>NIq(ZfL6 z`_j!m%}pi{qc9++LtI+OS&w#~uxg>TVV<_bhr92>qV3FciS153VFoB9#Gx8U zWh=$=g5%+QN^`{%0_yq+gLjJU9AygR@m!W{ywwVk0_lU3>MYZrRm3cTjR$1Lv)t4-R zgsrVxd?BE#Tu8f_58AG%?W3wIj>ywkaKlF4K7XVAhA6BsgG+^n;hEy|qs^u7ExY)d zYwOR2lt}%N<>)j)qqlJ79)i_jG%ipFe>oZWN{Gvk3V(x%I#<_|i~FnuUt^q^cCUo4 zoZHV3pGQNdVxk+eN*-mq?(Z035$I`PCF~oaOWAGH>W;;2s@7CG%deb4uF+sVcstWpsgKZ!9FBMy5B<2A{4Ea)vP#=B$}Yi&+s_4kX&jUTvK?V*^dy6gqYK{Tc9I*V4rta^MXtebZ-+$iN9}O2tMlKEKHF>uQ zf&Qvi1WH>;N39IcW+=T&FT@Xh!9S?>75^aiBc5q#Y*(deD=jP&$nk%uZ63PW;g*ED zKEl6xYugWx5z3sN@xF(!XSVKG zigsqgq4%>hiT%p6azi|^iR5U&LfbJIX?vBQ4^k@O0P@>H@T@geg9ct$j7~-v_>)Pa zrXi~X(~%dl*V!cf00mo%#B=JLme zUWAh}qlH!|RS9k{##%&)+B@MvZu~`GSXPNUj=PqTw(FJ#5tWK$ zkc%uV@)z!&j%>~Z#A9%y~2cie* z`6fAb(A1DqHLBtMaQO+kP?zV2(|>d4gi&0>b&X4F$MF37!)yVQ7Y!@omc+qHX|Far zq>r)sHqy}nsDEZdxDxtbSu6IG)!q#Y@o6JtYA=86ji(vxGJnB8sPz^9AoinR8lhn} zU2RAInnt?%KCt-_v=D>H>Zy4+q~3DxBG4*rfB+qXqf-^nSGEE604}{VNbo%@+Xi`C z4bXiS-?%PX1)S3fCQKM$hZ*@UUu@|;j$kU}7s3zU#mv((=qa{mum>VWC@qwZpBl7lteHpX0ZnSd%-H;CY?5eZI8J+ zKp{lbcZ$c_t*(U(pF{*F=;^S_5(m}8Y7kflM!iP38cCt6By70~D^4@frSYV33YsPs z5@|zME3P4JC^~z0c(4!uJ?4=YxF$`je?Y`t%iirs*X>*yZ&awD<;(PB_UZ;B|K=ub z0=H0*_iVH;8`DH`S0OGAqq94sQ>v+GT~es}%SvYNu@q-{>1lTGBz!qem6ZlBz|~@O zwVa0*T6uE8HuM)_!6^4b0K}YBO|0et+`9_V4RlY!QL-kmq79?E=`x4l9TYsg0C{YJ zm+!3XvQ8j>Hb55+%Zu5|Rt1J!P9Z~*TM3jz;7pZ6FtD!B+MB6%g29I+g~<+HQqVmR z1xt&3XNDqp$0#yeDYU+j@t^7rco}|lMk|e=M4C%ceAmYduh0YXGh&?S+^axD(H^3D zz=sDsmDYpziOyK_Yb!Xu&k|+@5s(Q2&e$p7JH|6gk;{8%K=s5x?(#9rEpRA<8TpTJ zU>T1ej)YjMc85aMTq_Z|+|>!Q3=zur`dEpnPLS3TNnFKseS)YFf>`EgD>XXx(u#|0 zfw>ovm}4*kZ_gRK?Xtu+KK}x*754sx}^NIF|5D7>aS6*6(`3s~Ip# zW!S3n-CRcYJ=|Vv;FE{Y*U#XCts#FDovw<&Xfopbv=y3@VOK@T?xUfCft$zg0W@&U zEsSf`j($WlzSLuBT<281lIlg2t z>vZBBf>avg9|n%^w)tIr=LM zcUAr9t(z9X_7ol^9l`DMtD(drWpKO3hAFLT|5=CpMiI& z;ogK}wu^kwsI$y{rD*YqK?U}*B#0Kae}BXBG@tn4_HQc&ku|xi6-|Sc(9@;vh@5PG z1!y0P;pyBKe{cv>u46@S7NS7k;Br3D%00cs7N+yJSjihc9kH@yzjNz4rC>jYh6mbe z55kByDhQwfUL?M&tX#sbu8cC=uemJIhWw`#_d-x~6x~yN{zim#2~V@rj%Vtji+Z2R z=6;PvY@@h+3lja;V7b9~Vf@!E!7MK$uNTQ^uFC;FG+?gzw%a`oE=*%2AF(zvw&No1 zcNTd5(khco7Fat_;v8u+OxJ`-NT|7rV1QaTr8fnofaz73P*YIOa`p z+{$3vD0>jdsGhqAzSyOTv;E6BIwH+FIL`~PW1$uFNMHfy|Ke%{Ls7v_AGKGkWSlXy zKHg37R@vXX78s!Y<#eukkiBwm;+EI^6ydLTP^P$y33iGupwPN>vWW(!V>xFG?fnnr z+Z0K(=YK_jJwpo=@3D(3buBVZP`}4uaz5_Z3ybqH{$qh~d^PKpu?E(3$;}m(#o-9V zS6(}6IS5l-W&!C}u=ZqF_(tWkMg~|(+&U&48pc|#$}rTjpusfWLb29ZcGXcgGAx3IMyp7`_`KZyNE4WtgZ z%xhXm>f-`o#0UsJ85~}s$9uz*F*fJFWMO~XA`%rsO|}U~c3Au&X2!%;zal>Bp3<

rwZ^#~bpOL2_nBd^7-;krl4= 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%0A+?<|c#}(|G@TLpoQ4 ztH(6^IeJ+UN^_#&3V76hb#Hzq^SL5a%;ffS;aCbhQ^nVFXj^?6o(I2vLJ59?%nyyg zr(^em=ufuLD`S|Ja{Ci%a|G2`=KS!U4E8ZT|IL-_h_ojv_@QC_weNdAbV=f-7YzvD zhBKn^>-e|}(>lxD^L$3y6vi%xX`?)WF2_wg=eW`zl4*1w7p`;LK0|b=#{4;&KMQ#! zVb}s~5yjHeVN_G~-Ou1V8$eNCZ`h3HhU-ZXU5)n>ohF>51(n>r;fm_FVWtBQzKDXH zxWkTV80`($6j=`S8$J6Al;%SZ>x$3Ht04GmP8|@*DsmxTE%wafzM^+nRV{p&&fOky z8N>^YCb>XU5Ax;h&dQ_KzwcRBpiwRefK=BBu@t ze}wLp$+z5R?+4JIA7Ed;ut*UQ&m*_zA*FsyIu{`9@2X3cFzOjR+=`#sDtUG))J&&S zoc_+juVnnTUXY@o?ixP4smqP0Qo`J{+%uO2=~Tb?&kp-iRGUuE4dgk2j@-pR$Z*#m z9KZ8%DvCXwK2Mk~j;Zw;B80)-Jlllv2#1}o((0SMeA5PbO@(aTo?jOW`r^}EoZyQ? znUdiceuS0I4*wG!CAs$$Ix!XX(Z!xA4tCI;vqGIHo(57P9U4_JOik;q zSEhtEaXj_2o2m?rJ5(*Rxbg6Y)rv zqMRL(K2;^BqcNk}%nSovaq3B^(O&h#+_{*xs_^t$+NvW=fvMVnPl$?QM!A5G`67Iu zU_{obNKz}8!`zxPe4GisWlzRR1hsXHSz)MAng@sJibKf5z)FXKX+n`y;Wg?EGhady z^UiG6uPSZ)UM6X^%E-;m4AIJyu84vRO^gt{bzfZTa&)RzJk4H*j@IZ(eMXSW`%WjY z)t%T_A12ykSgy)=^z*81dKND4Gf>{kQOqL`aYue;UgZ$xVF1I@;3cj=X>J#47y(mr z8$PCYmIPeaBWSRaRByOA%cW-7~$8fyR69$awhh}|E8^1A0RN-@J{NyaZ zi%w(sZyUF@hC_Zwh62g3`WdWHad&S)_`iOm5R{Cnb`Ih;MNOSgqOHL~Dbq{aKAD-S z&E*MCCWXy0TpY}F{!0dDj`vMsO|sisy8sg@iHImflqs2&#f>m1Gpc+j9$sBFdTZc?~;X5#8lbJKid7GU|8PIqR9na5P+KJC3h9}edtV|i%lX!sE zX2n2tqfjK7H-LD|csur`ItxQ-xEhSV;i-QI%Y`Gx#c7+sAle%4y-sKl3zOF%g^$AA zNantFD)yU-1iMEemT8K@x=;JafC0RWeJ#Rli_*$K?s>?$XfH&CXAb5y&_1J^X_#cl|+h*4rOT zWr1mH7kO3^$?`&gV@yU zXhboVKlga`d^U_tlb-+kVg*8TsTi-A^EC0OQUUH?5nhNiYJ8sXa(uX+K#%(Tbi8A6 z`eJ*H@R0w*CTqgomEqI0M)kYOR5IFUn2Tt;9_HN5$jB;p_IMIs=L!4Kuw2GM0n3WX zDUDImRem;4$QRA?!m;bcuv@|$!3xw5)04ebAG}z905#5wJU@fS55q@Q5mAg+wn&<9 z9fs2UFos(Jk*)~kqG1&4o-Pi;Qst^e2=_O<>iL8i1Ul6rPW>1}ZLQhBnu^3u9t!P& z`rF2Lk09_(Fhup$kEn_XJ?u~^qvxTv8*DG;%ENk3X@y(|@!B-Xl?}n53PmEq!b}=o z{%GX89UWSVjs_zt<}*10G+7PVzfd?iQwmL}Ol3X+1f^@qo4j5a|gijx`m`NA~{?%`{|G~F$)ebAB-N&+&0k_ixy%h zZ}}8|7+kyw$vK#32dlQpU>37+Hl5+P5Cv9^;-=3bWgyml~4 z6p9VmVj6Z z!!V`%{2qotPB8@(P>rL(2zPE0)4_TEp1`uHo}&%cBh;J_IwT_0&>NIM&(AQt3b0h$ zTmupBzXlTeR)CbPwY8C!){le&aWH8nlkCB}hpJJ`OrcwvC~x3@X`s?0^s$k_ zsmAiy)R=HJ##OLaQHC%xq_4@u7In2~ZtfS3By!#gp=to>Gv7s zW9X-_6>H-md&9f?8C(^_I)YXj!&~x+l3>y>*QlpPZ%kyorTwEke_sCWq+`9y>e#14 zG~CLM+wX7}{~*_0fAGMakD8#CU`{n4N|4t|XF86;4iNaB@=d$B7+^mPW)w=B9je!1 z^@nUmRiGsw!>f!ds{p|z@gj9p$YvkjZaKW42@lq%Btxt=$*V9)RDhxx47or5*YhE< z5IxJ{f<`(Ub7ANfjpePuJ*tjvGn~oeSk8l)<6YcD2uh&9}jA)w- z>RH6L4guGITa-`Mn|WUD_%Pf|%R;?;Se1@pHiaQIXs;kG9&;fU9odx+H4=-Z=ZWG5>Kmg7e{v%y^%P@JK8d(k{U!Xz8Ief>}-QtJ_s5 zt`OF9Mk2-R;w{2)saz`R7lT*AZ|Pj&aTg+O&mAinTSdnB3|&;wTM3^l({(SpK7uud zL?qih0`e!p=IW8ATvfJu!vmq{=Y`U(7TwWsESXjhVCsS+P!+&u@Hn-zCTC#;OJb73 zvaDfJ8u_iBVNrx@9o2>01KcJQ(a%DII4t^CtgveYUEgQuo!ocd7aquW*B=zS^KoJf zhA{_QUx_M|MQp=ez>L(4ObDWdi>_vOIk7PcWN;Q{4+#E+&(G_u?KduuV4x#h@Te3E zo#x!!nuqr&{vW<}gxNJht4RFLL8FUor``72^SmGR8bKF*(E8Padj1_YuMW8sS@sa$ z_6b#z;p*B*%(oK%{_rcQg0T8SNWV;uq@AK&!tu;3A7D8(eOGT}HH?X_v;ozwg)VVn zWPErg4%HB@$_Nv@0IyXYb5xUH_hvxMgYjs~J=x!nHwd9aTquCPremzH`eeGd;E@$+ z{%FV>fo3XS?ac^GaJq{n4ndo@YRB&y{`{0*l=eIQ>J)G8v5N2JZDth$t3+4t;>(x9 z$3Ni5Ex$(Iq~Yb^nG~dP!<9O3+0~51QD4Q&-JqA#=*W8xu3zACi0injfedDX%x!zP zfHGd?|B*>)oJX;ZS*IORxy9I~Mj_rWY34d3xj!{k&?k&yW+JZ++Rz-qfJ&is1G3U& z9~xd7n;E*QVVHxRciV>7on^eQ{MsU3qKg*rG(3!tC@%a`* zxdDL}4C{5v1v&N8oM(T?h_dNz@K|^{(tD%Z_$dr?Rym2|CJH1OJ!g1oRi;p>rq1-o zo8doj?<$RG>+HH~Urdi>-Ejd!D2jvro9Bw)QLggzbr#T(jIF02;UdwUTL#1*<#*iz zaO+hD^|ax>%fppL+&CT<2WVT)oelVVq;u7@Zo7`h|Jxkz<$_2eR1El6FnIUym5b%S z>kq2j`KauuTh_+`iTKh}2;#m_E0Q*I#CYFUkT2SjVd2-FO-ohRIhUP13`4d)VePKaqh~Msoq+8Co=bxr{(#@S zz&JkU->X=ZHn7*|I4erY5(C80)G$6Rgm=P`&cJ=CNV*c0bK*i*VIw8s!=x2NL+hINzi-JmCx zFB%$o{vmm_DcoLO>QR2@fhJ6bLH%13a#A4{$gsPn$`&z<# z%$}_9@o=PZ1#r<>k;U8?+FHU*uemh6Di8@d6c8|&p`_#@&^H97-{c4br710sa}~%9 znCIbWZ)GcHb%Kh}N5zGj(V=o0H0~3g@521?P`Hqk%p27x4D3UM{(u*O!(jGH5YrTM z8wzzBxpvbC<2SU>7L3ATH0%fl`!^2{@vE{n69ryS-v`uBGti9?mjfZSFr4Mv2z0*d zSWaa|-klDU-IWg6gR;*)d3qrfWbwYoL3+#Xi28nlZ$tG3>yrl+eFOdpzi||bUd6%F zqv=jXx60G#5a-@J&Q$T0;t*OJv7lr+Z(rBv#Vd2@7iDbIZ;hn93kqLSsgelqipmw{ zg>~Q2UV*IqI^#oy(~PYaZnj!7qklJ!*Uzpl$hVH0Z@Bba4oLY$@QPnWFwznb%GP8? zKHLl)v*L)~rne;sps|oYRg806*q9l^DTA;EN7=U$d%#a0udxS3G3dbMDOp%5)eY^^ zKyev|Zj{7a@ADz(gZPARc;G2GyCog&p-H%z5dn@dQp4Yj>}z^_#%sI+h<_V`-Gy59 z#3&y3%f=UW+KRy~55q^&AKQdiX!HSt<>zG+WGrUT8MiY_09|bn%4a;kB0L|DPECcB z8sUtNeDfn$L3Rp{;Z(>K3FB0uVw^$;qEMyb7^+?=%h5uwurb<>B~RFwkwO0nlV&oa z=6=B}@8U6o!tf+KY7MAa#G{WR*T$h-0>rF#MZQr!fGU7N^?`_Qvxs$p5B|3P8M^zbQB^@cuM&Js0`L0@W254!O0pV`LE8Rr#8lfytgfG)& zVm!j0sT|727~uO=y(RqYE%k~tSd_kbQ@Oi;P`}7sfAH#^kF2xr4?iagcsvW{x`Gh~ zh}0`*;V4F>jQ$Wxq-SIgGSH%-T_$W{f>1arBN=A<^I>FKsLCl@iw%1+D1ajYi++R? z)M#wvAsQW?#(Qf*1<&Dv6hATKu?k378UfF>@N9?Vj-iL`(=bU4%cv8t7x9v38TRu? zd@tfDf@^IA$A644RNp?~`b>p71t~2@5A%iWNwicT0(~u@JxWRkCBm2K%1zAxuWmr2 zrl#(=%Johf*M?LDnEnxJ{i)xsRzZJ7IPhC|Jt5@R>vhgh4O}0cKkO4avjcn!ML|o> zD85w`%3_6SCZMi)7;j0~pUw3KRv?;|US5Iv2#fNgckKn=vJ0lvp|uBK?`)i99%#vy z85Z!OoSnxPaSu89(MWW6JpC`oj6ogdp`{Ew8*_g{yq+T12jCpE?>3sj?Sn^U;QHrA zXn7MBWBPjf4aT%N?1)$Jd}ikUt!VsC7EjHLDf}huWj!cp=r6;jtT?y*eE%9_TETOw z0jJ!puOO~(oMDmPGV1g`7*Rh;QE(B^Qq`gP0t?;iW0lQG*u5%J=y*X}Cu`80!G<$s zeKjw_7VQ>nT4+iqG6j*f`gVMor4wy7Cns&|V@%@3vjvv2CHYShgTW6sz({C$s1 zw6B-!^Qyj51a;^1U&;ML@OP7Wwrsc>qi+}L=U4PK&&PSRn0V5s>eZ0*PDzMwcZq57Jb9yB@3Jwwaos5>g zhhYwg)n*SP7t+g09G~9z-gnZ`QASb%9GqCF(_mN*)u)M1!}vIeX%6KN@l;nPvA#ww z1ha?;m&{xlso80UmN((|io|p}*d2YABy6Erci`;hAK< zA+-NXvtwL5Hrmq2^liDmF^v&F+Z*h@I_yw9%}QL!c<(h<2t{Ji#wYkt4AvLr{}3v~ zM!2co@%XALbUM#XtzbX3Erd@@i*5YL_fMt8`ktV*)`^T!&|wz{A9{{A&!%B#5_bJz zN-T@5S8%3cLt8X^%gMO=Mp?-6&^{;Jzs{3F&VNV=N0fRpj!Q0jC!SOrN6=w zxu|3O!K_Tg1y(`Tm%y2#+%Q0k#cyLA-QGJB%sXxmSyb9QGy*MJj~kXAv*6HcaGo$s z_@b}!$LneE)1&Z0{kTnMT_3~GdER=^daYC}&W3V88BxZm`U`Ix!zBSZe};lR6xu|_ zBCE$zu!%LU%S%@O6MS3?*XnbTHFxodP*J5)!OhO#-NqH+(X<%)V~mCE%md*NF)m3F z)}D_c=9yUJBKD7t#~FNy+B}u4Vv1?F+!m2PorGg+Zqp{RGmRPiIQ;)2(Jz~ixin5+ zZ*c2uRuMU)bc(6sg4>f>Bz#I&V#g?U5n3SdJee8zF&Zm`39r{%CHj&<1tl2b)=(=h z6iEtww3KX{Ha2w3L^~z;hO?&C{3k^ymKFx8*t+ztl^Y)$!FPM_;UAQ^>ksA?+1fUPMLX5-&+c8C_m+0bHHKm`jM=s;W25H5qS2$MLAZ5>JLg z(Mm6D#*G< z&=qI8rZES;p#bh7J?vfwZ`x-?aa(zY9SM7~@%2JhfAz!3C|Z~h!Lp)1-uRi&U+1)2 z!?V#$XVYkkkfcMjaKvaF<9SSxA|>pr2VjOdRpg|I@U)^d>qf(1<(52@HkzTl&uZqO z6#R?q;UR5(-k?tokrEl)W49*?;e8)S)VO3N+R7Cl3Z$9JRg? zo=QO(=E7V-RMvNVBgyAFGi;g#A)fcP$;>c6Q7elGrpl(VnAY|oCQ$!rj|p7+O}STYEAPF{5_#+ehQZVh>&Ft&=c)Dt%34nIX|w>z6A zS;aH0hRa2>h9fC(eMKlJXqg=NvNBLISQ{+zC1ZU)t{^Aj>$jkZ^!)vCD3~rieKo@) zEBvpJDy$C8#1el1e@{Rh+wqglQO8NFo0>;N;&#~P?}sw71N}Y(Ezv+?hT%=|jcPc<&xbg`Bi4qUFl<0nGDWMsI9-o8O3kD-D)FoN~0 z<}bj*Q8KVjya;5%Ma#pqPsd~RV2+Nflx|TV1_^w^$1031m+HA8;0}6^(`(~b&{-lq z2M+t0JoV004en^0iSvS!j@8^Mqzhr$9to4~;vbZ`>kr1>`4~n;C3F8Zy2+afmf_B| z?l>DBVEg-l1k6K7hRx{vSLWYQNvsexWd^-Yj^@Ur=y^*g{ymVK04-fZ^F-Qedz<^C z>HWCVIFuDPD0ELkNvdi;X%Q3R02j&a!#ss;}+J=1nIy{ra z^6h4dQ*Mfd8A+H)T{u@X{4c@rfJf;jpQ2e6*HT&2w19O-3%PJK=2MEM^1+MGph3`m ztzCmdhdZzTKi*8mJ5`F)0KV1xQ$?imLmXqlH$3u7>{ud5V|GO@eC|O z{3uOpeUbI2nTd&c8^#o6DC_a}XX23lvP>wg&|C8*bN6`^^y8>7TDv)e6|c#S#c`8b zg%wkr(pr@Eb_)%S#+;L0pG@VVM0g9k8ZW5X9hzoF4;tyL`#e8j-8C@urfKT8Z%N&+-yQ@Du$ z7FYY7dPgMUe$de-KeOWB3yVsjQ_c8#g|}a+C>({+U&N-D#GoF!wkb4Cb#!T+Oz5QY zW9zUz^0pU{Q&m^?L8z;rfD5RAHY;lhblhj;)Q8=c(AQ8j4T^<2Muci~xEg6p>uM=@ z!;g8Ya4b~z3Xf#cGSB6}r*ZW~E-Lt>kjJtCO0tIsqO}mncw73z!dOoD)3O&+KMNC* zg1_6dLGm4PV`g?0+sbs{c0~w2|_qckM@ILVk68R<;T5 zO3`1%!Bk3d#_mGQe1`3EYiJ#h5kBnEbTDS`G=EVCwdihM-w&xna3>|BCDlCl@DHB4 z>knq!`PkSMhl+;WDxf73J&T<55+Emc1ntvq6yQGNtZ^S;Jrl$0(ttMcdc_}swN_{C zvnAez!~_uf3S_kzM%`3;~xjkVYT z4p(OoV|N>2#yP{CV%v_T4PBL2JY2D#Du4;E~m} zM_Lj6-=4&@SSRGwi$*{AGccTtL+*hVH$}KkM0@AteVtjjbV&>^k83XV<=Gsp7;4h; zAc3tD7ml1b zD*RnlB@Umqd6z&u3OJaFHvY!u=o&cKjjOehN>@~K3s+jOHpm4zdwg0c(D$J}qRY;6 zZyPiA9|wX9o9Nrjs+grr59Q=M7>#}P6Si3di}m`^yp%r_9oi|Tvn-~t$XmLhwd&&V_>B!gtoE6P+Yq2m~= z>a_O>k47YcaePUaNg!utN3{B5^8hAym{g z_UHNfoF)T}uA)cIyH|wTckvG@-NQe)^Dzxhq!ewbP>j|h9ayhE2mgXg(tU{28);0T zYH7G|3^EQtRL%sbTMM_#us-@C6Wq~N6+D>|{zyVx&p_iLJY8e{-+(3cQ6Nt&H*eAu z!E~2IM=x`?(sFX8;mTr`%TpkE1&L(@FfHaW#qlc2w1Xh*e6sdYybG`Xh&k8ft^Sq) z_S@h9pSYvAlNo_3ulG*FAG>g&I_;ubnD-3_gpO&AxKjpts=>?SsMt9)MLv1BcV@a` z4O;%ED0d{;A^wB;ND1!hSaS_juy{BT;f&)7O5qt53dYi@>ag!KcJM3snirTEuek8V zWmKvT6Uz%m%_(Uh-_4M}DGbp|{vICD5}-~}41O*Sx@+QN*7^*kFW(hJ5ne@~wZWM) zDFZ6|B0l6XYiJH;kyDAZ`~aq3kw13w8niY7hxRibYpwy|N;(T{CQm%(#H##0N1Cp` zGc%xTENUl1ry%k=T7y2O!)sWbkdT)lpH@7sLTLy1UirA!cmbG&=TwyZ&wLif`QP3L z*-Y;r;uQ)T+a)*r83wtEA%C3THJ$x<7&%a=trxGH-|?y=^s`$uybt#<#aX*kBIr}6 zk2-$2j<(%0;{H1r0j1@_DJ49-#}u>>Hon7+)r_*bR`X5T@NueK%Zt&*^yz{TwNsw) zIu*?>jH7-Rw!cBo4~H=k&^Vm&p9pVdbuPf?3cY%XrY@jF!gT&O9ujUL2bI65i5YD} zWS_#rL&o%3r}{dus6Gt)IxWNK7V9E;$}H=Ix@xc+VAyrsU|)KE7zU0-Q%}OQ&(Xcf zSb8z0pxs#!(sgwGGJ7~mLVdxoO~+9)l?&~oI?BnKtKrXQFj{5Vjx+gvfmY0gYwx%^ z_S39Hgz)n>;wbIN&fDkoh45wlxwAHd0$-m-uj7?Q!~aHi@eiK9hktPABP?A9yAIP$ zZ=dgg3`wIik%MqZ7IXCgJgR{TUZT5wc)pjRJs&K86+5`VTC_d-*b<+x4q=`3D_swm zur>S|?NiBd{5cu*7=uJwA%@KfNa6(TH{|KBXl*X@M>~es)(~@ZeFD({J^wE>jIobb zDUTj}v5N8RhYPAVv)=*4o3ch|FK@4Bq**Sln+-}y2IPSnoUWk{(t$0(mORQ5zT1+UYq$*qZ0uzA3awY$Rhn$hcSf7_7T1 z_I4qsJq0}hwjIwW%;9m~|5}RR#-L;`hsnuseJBm`dIWiU_2$&jD7nYsf-2tRMgRYU zlG1RzHdNFNN3;0MbSv7>Oqmtej28PDLaWN%xfsPz?*AV9cz|m!hZ6C^mHjf>ng6xS z#CZ;@*^klv0U5J-L3o#MKM9AD89`&zyrcgl(d`NR=iFr3O2LFjgJ%T1U86@T!Kkt9!H zC;QRXG4ynX!F|NR5zOe51%p3;9^^#SPcaq$2OpJOa*eiyTX_>ZDu@c*z~0-ys!izf zqiDcOXi5=ec^#TNqYEbx#qTs&ljqBF{ak1kgL@tCrAkjYyBD*r#1#Gw^WRT={T>=N zp9fS1rKo^CH)Y1$iWu4dBgp809-VM4r{yfGile(_yi$Gv)osM&{4%W+#9b@Qf3yrK z5h-^w7+)PHrS65oa|rbud?}-%OG&ixJA++@iVQ{#ZYc|ozf`Wgj)gQXT+HBVCGUp? zF}RHVL6BDu!@|?y^9)EcJ00akx6a``T3Dv5nF33@>cUerkKJd6#ez&e>@olkp|-_f z=r1g6Urk|mt#%q?m>;L1hA!206?RU5N8d8(9ns+nG_k%}WJf>Q$-lp1B(LI=4hT~S zehW*n4RnrYpRhbkelz@=6;-}QYDg+K?u$;rCYI24H~N1KDug$tLh(9LUmSi(a=_!8 zVL_@ljxI9tgNT%)aL-?_@$-`RH1o!WAv%+q7@o*v9N5vYlP@@WU*9MU$#hi3}5pCH7Ul)e)kR)V})nkh-0P07q~Q ztaYkc^fisjy?6C)#9`d$%gFn0lxQ28s?aC7pW6Iiz?t^w>;?S9PfWSfJ9D0*>LWDU*~$rVsHkB(>{fw zc2g*CoC8WXV{fH#1vd?RSqm*|1+Q}@z=&M1Z3N15g(2k0;H1c(c;-nc8HrE})1Tb- zSBbPXAJu%1*0ly3=%dSBsOEgwGRxI(euaHUk&VD+Tf%>#R~CUD)tCGXfwo4G{(y)F z@x6L4{0BiR1p2ZNPsbydqG+W0Q$?w>JkTJTflq{E!W)&QcSQp>V2GvhzUO&z676h3 z;Cgxa3r{c(C$b5Bc#b<;BEEG{HW9}CMPHAnFwAGYT%SpA3n21UNbC}xPm86#go!-@ zU0=hIj~%G3>Gw^v=MM0gD8#2#Ek_&HRQSB|le?U!1hlTe_!klxa1QjL@& znaWMM4L2yryz3Bu4fWqdH?N@36JeR6Vm74m%tXX=FpSO2AlBohw!7rXL7Ymt6vWUL z9;k*2E0-_AcS+3N?P#y0w5H zjJ)|SO7S2398arX8HRT&1pJkXGJN5^iYcz`rMh?d5|GlL&O}scs_i({?~F+!%-7S7 zN7R6tTRXeE>f26QJq`yxLvAnAOfUS!euyrQe0O7b<@xtL15qry>brMyMb?<N6=z zT*-7lR`iu!qBMURZ22P@Uwa5&HUiI}!oUsEh3SdfrPBFHE2MLZk&Sc)W+~^AA7i5F zf-XA5c(FU=_dswtevXYV8PQ6-_qzk|3OP@WpOA>qe(`-yXg($ z8}RiDr(CNb&PtTyEIp2apqzZFYgDCg_Cv)pJ7O0AK2y(KsQAD$a z%4yN2ZIGj4KH7sjg~hdwgmXevJ&A#>hMen0sXp&e)s?h4mEU!Y8gYTP-gZoYa2)&4 z`nxd(t|uu~zThVY^$jmRLO&%mI0N31cmA{j^5j};q^`89&CCox8;JWXvvx@csjbcT zmt8SeM<^E%T}_Brq-`&RSs0!A4W0-!UR4^V!3|Azt?<*T^7Rsu>&m|tbT4G`x;mL? z2y2Jo=Cm{ZADVO@OcShrOTW~#L7o$EXqp*Es7L@Te1|dBz~Kx>4%uBrdV_N@9;3rU z5Z4uFOr2S_KFQa79!q%)n^Rfl*TR6i_y;fE!#`+n=Y64eIGjos#SJ3$)txt$y@nxB zs=R7wXcyy0BNX;_b%ODq+|VoS4dZ96#G?NfR;Kc$&RM=gq~P!Toe_o|MJ}D; z&N-D@f@{Mg;P-lzakHN-qVUNpVO0X7xtamOt1*nd4q_-2zD>p7EN2`nI?|%EyA`#! z0PR_WSV!O{)`Tf4?DbwEGP;Ojt2Edt9^FDCLN3eUg6j=%>MtYDx_o+@XSUHvWfW%? zwp2*#Ye=pDPfNRivd)GMGD42{{t{Bk2xA{lfV5`~7$fjC;eP$(LZic3%533|9IT@c zxK`G`a5)E7aEsQC@qJNcnF_&sFQWLT1No(I@y5FB#PEKD zJp){<>|K-G3NCIH4u#KV`x7RaN*9|QQaH*Btz% zA(+nSiwg0L3-2a6R$8?Ix6oTRFL{`Qv?n%Ze|!-#!Yut z#X|U^t<~HHxtokOe&_eh0*(`wuT)mYc#PmzR*EOW(nu$DRYrmO@UIagy8W^$bdMM5 z|7UFKdsx{U0nLxWu=+X{s(~V}JKn4J9^L33{=uD(Ja7dGe2N2k82U8o6Y%y6n!du+ zG@jpD1CPg=cN){~F@`=Gh7M#LUqMjIEYN|3BD`7F6F${LhYs)~$Wkp2mNA+?v+yGR zvy1fZ$3xww`*RxWh}FN%@S8ay@~8vw^@=qb>z$|Lwnw>TKNJW;q@S0Ko9Xv3R+Nt+ zALoIUp1QhY!MTu=n!T8g8&q9qiUZKUMNQbzjY9kMs@9wFZKJE={PiGSps+VCRO4d~ zt@d(0>^K;{-|*2bY|oo`q7Z#IMu$rqNVznMz8+tpJeGRM{U}UWhv(LI;4J*WXr%uO z{AlCi=bN4THo`f)$9a*_wn<&APq?e3{Y4|g0$v;TMY5&CtMM$BpG6|0=%t@fl$XFx zoq7Jjn4Y77>ohr->m||qrRe=pZ^xfE4EA3bk%~ATHk9GI4A_(8@+*e(En~UlEWJ)p z)&-%gbKT`X!=&`CYo=2h<#n~e<8PC;DB^y zt?d^j$@YigLd`E~a00=fNI(jr+G^BCLe2k$8@^lM-Yd>eV_r}N2 z_SMrxK>Q!a>vdat|LZZ$2w8sZc#n7f6Tv1s7m3>`|piZ)edz<@P zxG=fOrXF;0y`NG&+5PH0y4?Kxoo>HEGG*@=$8&J9D~@X|zYn9(BT(+Q{9-xL3^{DO zdK+_5`s)JAu8Z@N@5>5b{=^VfN3ym@{4k#>u+fCRlqEg`9eWh1PKCMa_*aX5zjpbw zYl)uJl*O~x6~YJc*Fkvoy?_W{t?GaL#z=bb_gRD1=RnJLJ2&VoguKn2SJ1^0O2LEu z=aHETYd^-bO|bpFhV~uA@GfK4Uqf;ah3sNUH~81iIOX?qwI3Qi%2`k|P?PJf{aL_e zJjxkw>vH%!%A)Uu*i_nmD0A(9;c|L7yaxnuh*2I^ZUdWN;}rCJ?&?6-^Rcx0=wO8m z84=u%`2Vj}&ZIWhJjbXsFF`>YZfgrew;Rj)MOc0mszw?{@Pua@b^IN3WfOy!3cR5O z;yCKplV|bk{kcy-Xg@;28Rv+0V-$n9`+gTt|Audl!>JFwL_CewwBcu+Mccwy=L$YL zuOuh5Z;KZVC@o zuk;h+-o0Z7-Ig{5_IxsoPlf!Rkk}q^T*zYRwq-^Xm1CHKbZ_xjJ8pUoCF`LY=Zeg3 zXGpfoyhx0PeINVmLEgTWPxQAz-f}NK_j?sT3-ZhJl*&-+j@=6CT*B-!&3_Js`%UlR zAGElKe{kocrnIuOb%<7L(#kSyVmJLAR2n>V)P(3Y_BFL!DpuQ>f}K}fgkBAli_je! zKhP=*Z4p>yFBj9T4%?P74wbQa6oKyH+D(+Q5v`VE`c&}wW}g?S3Y97)Eak4YZfysn z)W*b%QQGq_FE73OV!^8vuQb5BQqDP~!-~+VskkcX-F zIa(54*Y^j(0G zC1K~y4Djw#$3sq{&(^T6GF0^B)=tcFJ=lV4s%i#J=sJgj&qsvU;}H2gAxC7VF#!Z@ z!%+2XJ#K5uZ=qq%H&9s}%&C?S6r1obH=0)`6}y{*LR_N7gZ6fU6MMsrz2VY})0KA6 z%)J*wPoBat)R#Qoic7_&s`+qgI*QgA!`bi8Px8CDp(vXBsAYuUu;TbQ7qKmax9XX3 zyvtCZ!Vh&qlib1qC9>J7h6 z;RSKvP43lPbrD`v_U9Y$Sy9p#%^ih^ysK`$cQ@}_2zT)hTHV7xxbv}{pD1tfm*jVI zJIS@^-)zI7s&LjdJcP7io_`;6e*@J=J3m$)imUOMSaiv+{Oi!HDoA1gH=dA8DF3_- z&PY1XSt8|p2zAaHSOAe$ah~xsV^n;JE|uVl>RPPhE=8*@^Xv0=-&5OH#?VfSC^s_; zir1xuNQI_|_=!kE2;x<(2U~^7*ESCMzlBmhB~0aaO<)ff zL<=f=l|qJq;?y>UuI=i@*|~H<7*NWpNtd^-RHLmeqWC(#dhCIC3)sfhU!u{4Y4k7r zWnE2L9v0}a5#~IwMbc6fAzl2iFB*aQjOb!kE_o~eHrny6_P%$s7~5jo|1aTBXPA4< z&{&1$08$dv=Vd;uEo^MuZP&RkycINI{l@G`nE#K7-w~M zUt_~N>=dL63S8SC+G{~YGD{=SZens=RStR;OzK@2bdKLfW9bhW56EUv`^G(uGt4wq zWZTIX-_glR-nX!D-*i+|!n17OSD;FN7~Dxs%VBPT=Q=?z zDs%9&og0irqmRIumP{yu0@u;*K8!TK+Zs#*U3g%b#v@7t__f8B^dso=l_gR);C)i< zBtS<7{(t!i|Dg3}{Db(nG}0G|6k_E04Btq|q&JY`H0aa=YBwnBU`5y^ySxl4Cz3d5 zMWyOv3)`(CR6DLz_}g1XF$u-015r8>Cv8WbO*-%*0omulW z!#&~W@`OQoWoFgMDEe-`I~&B|Z6Fk0fK#2|!x;W5DMJhDK#`e-?hix(R^U(b!LIVO z_bbLZz;@kcyJZw>T88(`!`xh4;6D_+%TMc5F~#llP>CU5G(i8tNc0#)_o18R5q!PI zeN^ebeAv)Ie0LiLUYJ(i!1G0X|HPe*u|i_X7i&f*ozVMSbh(WM&kMZwP!>pv@;YZA zKl%8zBaNS>nL+6DU4!83r%IQeTzHvwf5rgX!NB8urYJ!yZtgF1|1FAj$U-u->ruwa zdG)nD_+<=9SO8_*ak9~3xbbKxqMU>(uV4*Sz(mlDzo}^ac)n}F#X^fw$%92)x7Job zZ0QN*`L>=83fZ0*ISI5OfL1D5Up6V$!MJXtR9i5!&U!LJY!7W4<1NiJwlF>gtFN_^ zZ@*jpymUBA|+hP^OXV z3UbWVkAUNu@riw5s6eu3L(eTs5V(Vh=1%}|s(va@HI;r|#rJazRZ;=G⁢Omz;3@ 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 z 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

^J(e%X-Y!?WvgJdSqxQ&#X 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 XzX<&Qh``hGBle`p(1#ZEjpo> literal 0 HcmV?d00001 diff --git a/tests/integration/src/asset_tests.rs b/tests/integration/src/asset_tests.rs new file mode 100644 index 000000000..0de8d6eba --- /dev/null +++ b/tests/integration/src/asset_tests.rs @@ -0,0 +1,100 @@ +use crate::{ + setup::{setup_new_env, WALLET_ADMIN_USER}, + test_data::{ + asset::{ + add_asset, add_asset_with_input, edit_asset_name, get_asset, list_assets, remove_asset, + }, + user::add_user, + }, + TestEnv, +}; + +#[test] +fn asset_lifecycle_test() { + let TestEnv { + env, canister_ids, .. + } = setup_new_env(); + + // create asset + let asset = add_asset(&env, canister_ids.station, WALLET_ADMIN_USER); + + // edit asset + edit_asset_name( + &env, + canister_ids.station, + WALLET_ADMIN_USER, + asset.id.clone(), + "test".to_string(), + ); + + // remove asset + remove_asset(&env, canister_ids.station, WALLET_ADMIN_USER, asset.id); +} + +#[test] +#[should_panic] +fn asset_uniqeness_test() { + // assets with the same symbol and blockchain are not allowed + + let TestEnv { + env, canister_ids, .. + } = setup_new_env(); + + add_asset_with_input( + &env, + canister_ids.station, + WALLET_ADMIN_USER, + station_api::AddAssetOperationInput { + name: "asset".to_string(), + blockchain: "icp".to_string(), + standards: vec!["native".to_string()], + metadata: Vec::new(), + symbol: "SYM".to_string(), + decimals: 8, + }, + ); + + add_asset_with_input( + &env, + canister_ids.station, + WALLET_ADMIN_USER, + station_api::AddAssetOperationInput { + name: "asset".to_string(), + blockchain: "icp".to_string(), + standards: vec!["native".to_string()], + metadata: Vec::new(), + symbol: "SYM".to_string(), + decimals: 8, + }, + ); +} + +#[test] +fn asset_permission_test() { + // unauthorized users cant interact with assets + let TestEnv { + env, canister_ids, .. + } = setup_new_env(); + + let asset = add_asset_with_input( + &env, + canister_ids.station, + WALLET_ADMIN_USER, + station_api::AddAssetOperationInput { + name: "asset".to_string(), + blockchain: "icp".to_string(), + standards: vec!["native".to_string()], + metadata: Vec::new(), + symbol: "SYM".to_string(), + decimals: 8, + }, + ); + + let user = add_user(&env, canister_ids.station, WALLET_ADMIN_USER, vec![]); + + list_assets(&env, canister_ids.station, user.identities[0]) + .expect_err("User should not be able to list assets"); + + get_asset(&env, canister_ids.station, user.identities[0], asset.id) + .expect_err("User should not be able to get asset"); +} diff --git a/tests/integration/src/lib.rs b/tests/integration/src/lib.rs index b3025232a..9b196d188 100644 --- a/tests/integration/src/lib.rs +++ b/tests/integration/src/lib.rs @@ -4,6 +4,7 @@ use candid::Principal; use pocket_ic::PocketIc; mod address_book_tests; +mod asset_tests; mod control_panel_tests; mod cycles_monitor_tests; mod dfx_orbit; diff --git a/tests/integration/src/migration_tests.rs b/tests/integration/src/migration_tests.rs index dfaa93cf2..6f0a88087 100644 --- a/tests/integration/src/migration_tests.rs +++ b/tests/integration/src/migration_tests.rs @@ -1,4 +1,5 @@ use crate::setup::{get_canister_wasm, setup_new_env, WALLET_ADMIN_USER}; +use crate::test_data::asset::list_assets; use crate::test_data::{set_test_data_id, StationDataGenerator}; use crate::utils::{compress_to_gzip, create_file, read_file, NNS_ROOT_CANISTER_ID}; use crate::TestEnv; @@ -6,8 +7,11 @@ use candid::{Encode, Principal}; use orbit_essentials::api::ApiResult; use pocket_ic::{update_candid_as, PocketIc}; -const BASELINE_NR_OF_REQUEST_POLICIES: usize = 18; // can be found in the station core/init.rs -const BASELINE_NR_PERMISSIONS: usize = 34; // can be found in the station core/init.rs +const NEW_REQUEST_POLICIES_ADDED: usize = 3; +const NEW_PERMISSIONS_ADDED: usize = 5; + +const BASELINE_NR_OF_REQUEST_POLICIES: usize = 18 + NEW_REQUEST_POLICIES_ADDED; // can be found in the station core/init.rs +const BASELINE_NR_PERMISSIONS: usize = 34 + NEW_PERMISSIONS_ADDED; // can be found in the station core/init.rs const USER_GROUPS_NR: usize = 10; const USER_NR: usize = 10; @@ -119,13 +123,14 @@ fn test_canister_migration_path_with_previous_wasm_memory_version() { let station_wasm = get_canister_wasm("station").to_vec(); let wasm_memory = - read_file("station-memory-v0.bin").expect("Unexpected missing older wasm memory"); + read_file("station-memory-v1.bin").expect("Unexpected missing older wasm memory"); env.stop_canister(canister_ids.station, Some(NNS_ROOT_CANISTER_ID)) .expect("unexpected failure stopping canister"); // This is needed to avoid `install_code` rate limit error env.tick(); + env.tick(); // Set the stable memory of the canister to the previous version of the canister env.set_stable_memory( @@ -186,6 +191,8 @@ fn test_canister_migration_path_with_previous_wasm_memory_version() { EXPECTED_PERMISSIONS_NR, ); + assert_has_icp_asset(&env, canister_ids.station, WALLET_ADMIN_USER); + // Makes sure that the next test data id number is pointing at a value that was // not already used in the previous version set_test_data_id(9_999); @@ -200,6 +207,7 @@ fn test_canister_migration_path_with_previous_wasm_memory_version() { .with_user_groups(new_records) .with_accounts(new_records) .with_address_book_entries(new_records) + .with_assets(new_records) .with_request_policy_updates(new_records) .with_station_updates(0) .with_upgrader_updates(0) @@ -253,6 +261,14 @@ fn test_canister_migration_path_with_previous_wasm_memory_version() { // for accounts there are view, transfer and configuration permissions EXPECTED_PERMISSIONS_NR + (new_records * 3), ); + + assert_can_list_assets( + &env, + canister_ids.station, + WALLET_ADMIN_USER, + // there should be one asset here already: ICP + new_records + 1, + ); } fn assert_can_read_me_endpoint(env: &PocketIc, station_id: Principal, requester: Principal) { @@ -455,3 +471,41 @@ fn assert_can_list_permissions( assert_eq!(res.total as usize, expected); } + +fn assert_can_list_assets( + env: &PocketIc, + station_id: Principal, + requester: Principal, + expected: usize, +) { + let res: (ApiResult,) = update_candid_as( + env, + station_id, + requester, + "list_assets", + (station_api::ListAssetsInput { + paginate: Some(station_api::PaginationInput { + offset: Some(0), + limit: Some(25), + }), + },), + ) + .unwrap(); + + let res = res.0.unwrap(); + + assert_eq!(res.total as usize, expected); +} + +fn assert_has_icp_asset(env: &PocketIc, station_id: Principal, requester: Principal) { + let assets = list_assets(env, station_id, requester) + .expect("Failed to query list assets") + .0 + .expect("Failed to list assets"); + + assert!(assets.assets.len() == 1); + assert_eq!(assets.assets[0].symbol, "ICP"); + assert_eq!(assets.assets[0].name, "Internet Computer"); + assert_eq!(&assets.assets[0].blockchain, "icp"); + assert_eq!(assets.assets[0].standards, vec!["native"]); +} diff --git a/tests/integration/src/test_data.rs b/tests/integration/src/test_data.rs index 98f01ef7b..935148ca3 100644 --- a/tests/integration/src/test_data.rs +++ b/tests/integration/src/test_data.rs @@ -8,6 +8,7 @@ use crate::setup::get_canister_wasm; pub mod account; pub mod address_book; +pub mod asset; pub mod permission; pub mod request_policy; pub mod system_upgrade; @@ -54,6 +55,7 @@ pub struct StationDataGenerator<'a> { station_updates: usize, permission_updates: usize, request_policy_updates: usize, + assets: usize, } impl<'a> StationDataGenerator<'a> { @@ -76,6 +78,7 @@ impl<'a> StationDataGenerator<'a> { max_user_groups_per_user: 5, has_generated: false, count_requests: 0, + assets: Self::DEFAULT_ENTRIES, } } @@ -123,6 +126,11 @@ impl<'a> StationDataGenerator<'a> { self } + pub fn with_assets(mut self, assets: usize) -> Self { + self.assets = assets; + self + } + pub fn with_edit_operations(mut self) -> Self { self.perform_edit_operations = true; self @@ -232,6 +240,23 @@ impl<'a> StationDataGenerator<'a> { } } + // Add the assets + for _ in 0..self.assets { + let asset = asset::add_asset(self.env, self.station_canister_id, self.requester); + self.increment_request_count(); + + if self.perform_edit_operations { + asset::edit_asset_name( + self.env, + self.station_canister_id, + self.requester, + asset.id.clone(), + format!("{}_edited", asset.name), + ); + self.increment_request_count(); + } + } + // Edit the permissions for _ in 0..self.permission_updates { permission::edit_permission( diff --git a/tests/integration/src/test_data/asset.rs b/tests/integration/src/test_data/asset.rs new file mode 100644 index 000000000..ab6ffbb4f --- /dev/null +++ b/tests/integration/src/test_data/asset.rs @@ -0,0 +1,124 @@ +use super::next_unique_id; +use crate::utils::{submit_request, wait_for_request}; +use candid::Principal; +use orbit_essentials::api::ApiResult; +use pocket_ic::{query_candid_as, CallError, PocketIc}; +use station_api::{GetAssetInput, GetAssetResponse, ListAssetsInput, ListAssetsResponse}; + +pub fn add_asset_with_input( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, + input: station_api::AddAssetOperationInput, +) -> station_api::AssetDTO { + let add_asset_request = submit_request( + env, + requester, + station_canister_id, + station_api::RequestOperationInput::AddAsset(input), + ); + + let request = wait_for_request(env, requester, station_canister_id, add_asset_request) + .expect("Failed to add asset"); + + match request.operation { + station_api::RequestOperationDTO::AddAsset(add_asset) => add_asset.asset.unwrap(), + _ => panic!("invalid request operation"), + } +} + +pub fn add_asset( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, +) -> station_api::AssetDTO { + let next_id = next_unique_id(); + + add_asset_with_input( + env, + station_canister_id, + requester, + station_api::AddAssetOperationInput { + name: format!("asset-{}", next_id), + blockchain: "icp".to_string(), + standards: vec!["native".to_string()], + metadata: Vec::new(), + symbol: format!("SYM-{}", next_id), + decimals: 8, + }, + ) +} + +pub fn edit_asset_name( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, + asset_id: station_api::UuidDTO, + name: String, +) { + let edit_asset_request = submit_request( + env, + requester, + station_canister_id, + station_api::RequestOperationInput::EditAsset(station_api::EditAssetOperationInput { + asset_id, + name: Some(name), + blockchain: None, + standards: None, + symbol: None, + decimals: None, + change_metadata: None, + }), + ); + + wait_for_request(env, requester, station_canister_id, edit_asset_request) + .expect("Failed to edit asset name"); +} + +pub fn remove_asset( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, + asset_id: station_api::UuidDTO, +) { + let remove_asset_request = submit_request( + env, + requester, + station_canister_id, + station_api::RequestOperationInput::RemoveAsset(station_api::RemoveAssetOperationInput { + asset_id, + }), + ); + + wait_for_request(env, requester, station_canister_id, remove_asset_request) + .expect("Failed to remove asset"); +} + +pub fn list_assets( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, +) -> Result<(ApiResult,), CallError> { + query_candid_as::<(ListAssetsInput,), (ApiResult,)>( + env, + station_canister_id, + requester, + "list_assets", + (ListAssetsInput { paginate: None },), + ) +} + +pub fn get_asset( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, + asset_id: station_api::UuidDTO, +) -> Result<(ApiResult,), CallError> { + query_candid_as::<(GetAssetInput,), (ApiResult,)>( + env, + station_canister_id, + requester, + "get_asset", + (GetAssetInput { asset_id },), + ) +} From 7e9731b3614b956751998facfe1aa4f3e837b943 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Mon, 23 Sep 2024 10:36:54 +0200 Subject: [PATCH 03/18] feat(wallet): add asset managament UI (#352) Add asset management UI: - assets page - asset create/edit dialog - asset request operation components - UI tests Limitations / known issues: - Standards autocomplete picker shows the code vs. the localized name of the standard. - new Accounts are created for ICP, even if another asset is selected, thats because it is hard coded currently --- Added to the sidebar: image Assets page: image Add new asset: image Edit asset: image Peding edit request: image Peding edit request details: image --------- Co-authored-by: Kepler Vital --- .../src/components/assets/AssetDialog.spec.ts | 137 ++++++++++++++ .../src/components/assets/AssetDialog.vue | 179 ++++++++++++++++++ .../src/components/assets/AssetDialogBtn.vue | 66 +++++++ .../src/components/assets/AssetForm.spec.ts | 63 ++++++ .../src/components/assets/AssetForm.vue | 173 +++++++++++++++++ ...InternetComputerNativeStandardForm.spec.ts | 43 +++++ .../InternetComputerNativeStandardForm.vue | 70 +++++++ .../inputs/AssetAutocomplete.spec.ts | 49 +++++ .../components/inputs/AssetAutocomplete.vue | 90 +++++++++ .../inputs/StandardsAutocomplete.spec.ts | 36 ++++ .../inputs/StandardsAutocomplete.vue | 79 ++++++++ .../specifier/AssetSpecifier.vue | 91 +++++++++ .../specifier/SpecifierSelector.vue | 9 +- .../components/requests/RequestDetailView.vue | 11 +- .../components/requests/RequestListItem.vue | 11 +- .../requests/operations/AddAssetOperation.vue | 53 ++++++ .../EditAddressBookEntryOperation.vue | 3 +- .../operations/EditAssetOperation.vue | 146 ++++++++++++++ .../operations/EditPermissionOperation.vue | 2 +- .../RemoveAddressBookEntryOperation.vue | 3 +- .../operations/RemoveAssetOperation.vue | 77 ++++++++ .../composables/autocomplete.composable.ts | 15 ++ .../src/composables/request.composable.ts | 7 + apps/wallet/src/configs/permissions.config.ts | 42 ++++ apps/wallet/src/configs/routes.config.ts | 1 + apps/wallet/src/generated/station/station.did | 22 +++ .../src/generated/station/station.did.d.ts | 12 ++ .../src/generated/station/station.did.js | 12 ++ apps/wallet/src/locales/en.locale.ts | 33 ++++ apps/wallet/src/locales/fr.locale.ts | 33 ++++ apps/wallet/src/locales/pt.locale.ts | 33 ++++ apps/wallet/src/pages/AssetsPage.vue | 170 +++++++++++++++++ apps/wallet/src/plugins/navigation.plugin.ts | 13 ++ apps/wallet/src/plugins/router.plugin.ts | 23 +++ apps/wallet/src/services/station.service.ts | 83 ++++++++ apps/wallet/src/stores/station.store.ts | 1 + apps/wallet/src/types/auth.types.ts | 2 + apps/wallet/src/types/station.types.ts | 6 + core/station/api/spec.did | 22 +++ core/station/api/src/capabilities.rs | 15 ++ core/station/api/src/user.rs | 2 + .../impl/src/controllers/capabilities.rs | 23 ++- core/station/impl/src/core/mod.rs | 2 + core/station/impl/src/core/standards.rs | 17 ++ .../station/impl/src/mappers/authorization.rs | 9 +- .../impl/src/models/blockchain_standard.rs | 43 +++++ core/station/impl/src/services/system.rs | 23 ++- 47 files changed, 2031 insertions(+), 24 deletions(-) create mode 100644 apps/wallet/src/components/assets/AssetDialog.spec.ts create mode 100644 apps/wallet/src/components/assets/AssetDialog.vue create mode 100644 apps/wallet/src/components/assets/AssetDialogBtn.vue create mode 100644 apps/wallet/src/components/assets/AssetForm.spec.ts create mode 100644 apps/wallet/src/components/assets/AssetForm.vue create mode 100644 apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.spec.ts create mode 100644 apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.vue create mode 100644 apps/wallet/src/components/inputs/AssetAutocomplete.spec.ts create mode 100644 apps/wallet/src/components/inputs/AssetAutocomplete.vue create mode 100644 apps/wallet/src/components/inputs/StandardsAutocomplete.spec.ts create mode 100644 apps/wallet/src/components/inputs/StandardsAutocomplete.vue create mode 100644 apps/wallet/src/components/request-policies/specifier/AssetSpecifier.vue create mode 100644 apps/wallet/src/components/requests/operations/AddAssetOperation.vue create mode 100644 apps/wallet/src/components/requests/operations/EditAssetOperation.vue create mode 100644 apps/wallet/src/components/requests/operations/RemoveAssetOperation.vue create mode 100644 apps/wallet/src/pages/AssetsPage.vue create mode 100644 core/station/impl/src/core/standards.rs diff --git a/apps/wallet/src/components/assets/AssetDialog.spec.ts b/apps/wallet/src/components/assets/AssetDialog.spec.ts new file mode 100644 index 000000000..528917f5f --- /dev/null +++ b/apps/wallet/src/components/assets/AssetDialog.spec.ts @@ -0,0 +1,137 @@ +import { describe, expect, it, vi } from 'vitest'; +import AssetDialog from './AssetDialog.vue'; +import { mount } from '~/test.utils'; +import { StationService } from '~/services/station.service'; +import { Capabilities, GetAssetResult } from '~/generated/station/station.did'; +import { ExtractOk } from '~/types/helper.types'; +import { services } from '~/plugins/services.plugin'; +import AssetForm from './AssetForm.vue'; +import { flushPromises } from '@vue/test-utils'; +import { VCard } from 'vuetify/components'; + +vi.mock('~/services/station.service', () => { + const mock: Partial = { + withStationId: vi.fn().mockReturnThis(), + capabilities: vi.fn().mockImplementation(() => + Promise.resolve({ + supported_blockchains: [ + { + blockchain: 'icp', + supported_standards: [{ standard: 'native' }], + }, + ], + } as Capabilities), + ), + addAsset: vi.fn().mockImplementation(() => Promise.resolve({} as Request)), + getAsset: vi.fn().mockImplementation(() => + Promise.resolve({ + asset: { + id: '1', + blockchain: 'icp', + decimals: 8, + metadata: [ + { + key: 'ledger_canister_id', + value: 'ryjl3-tyaaa-aaaaa-aaaba-cai', + }, + { + key: 'index_canister_id', + value: 'qhbym-qaaaa-aaaaa-aaafq-cai', + }, + ], + standards: ['native'], + name: 'Test', + symbol: 'TEST', + }, + privileges: {}, + } as ExtractOk), + ), + }; + + return { + StationService: vi.fn(() => mock), + }; +}); + +describe('AssetDialog', () => { + it('renders correctly', () => { + const wrapper = mount(AssetDialog, { + props: { + open: true, + }, + }); + expect(wrapper.exists()).toBe(true); + }); + + it('loads and displays existing asset', async () => { + const wrapper = mount(AssetDialog, { + props: { + open: true, + assetId: '1', + }, + }); + + await flushPromises(); + + // expect getAsset to be called + expect(services().station.getAsset).toHaveBeenCalled(); + + const form = wrapper.findComponent(AssetForm); + + const name = form.find('input[name="name"]').element as HTMLInputElement; + const symbol = form.find('input[name="symbol"]').element as HTMLInputElement; + const decimals = form.find('input[name="decimals"]').element as HTMLInputElement; + const ledger = form.find('input[name="metadata_ledger_canister_id"]') + .element as HTMLInputElement; + const index = form.find('input[name="metadata_index_canister_id"]').element as HTMLInputElement; + + expect(name.value).toBe('Test'); + expect(symbol.value).toBe('TEST'); + expect(decimals.value).toBe('8'); + expect(ledger.value).toBe('ryjl3-tyaaa-aaaaa-aaaba-cai'); + expect(index.value).toBe('qhbym-qaaaa-aaaaa-aaafq-cai'); + }); + + it('creates new asset', async () => { + const wrapper = mount(AssetDialog, { + props: { + open: true, + }, + }); + + await flushPromises(); + + const dialogContents = wrapper.findComponent(VCard); + + const form = wrapper.findComponent(AssetForm); + + await form + .findComponent({ name: 'BlockchainAutocomplete' }) + .vm.$emit('update:modelValue', 'icp'); + + await form + .findComponent({ name: 'StandardsAutocomplete' }) + .vm.$emit('update:modelValue', ['native']); + + // fill out form + await form.find('input[name="name"]').setValue('Test'); + await form.find('input[name="symbol"]').setValue('TEST'); + await form.find('input[name="decimals"]').setValue('8'); + await form + .find('input[name="metadata_ledger_canister_id"]') + .setValue('ryjl3-tyaaa-aaaaa-aaaba-cai'); + await form + .find('input[name="metadata_index_canister_id"]') + .setValue('qhbym-qaaaa-aaaaa-aaafq-cai'); + + await flushPromises(); + + const saveButton = dialogContents.find('[data-test-id="save-asset"]'); + + await saveButton.trigger('click'); + + await flushPromises(); + + expect(services().station.addAsset).toHaveBeenCalled(); + }); +}); diff --git a/apps/wallet/src/components/assets/AssetDialog.vue b/apps/wallet/src/components/assets/AssetDialog.vue new file mode 100644 index 000000000..308f4f7ea --- /dev/null +++ b/apps/wallet/src/components/assets/AssetDialog.vue @@ -0,0 +1,179 @@ + + diff --git a/apps/wallet/src/components/assets/AssetDialogBtn.vue b/apps/wallet/src/components/assets/AssetDialogBtn.vue new file mode 100644 index 000000000..b03c82b87 --- /dev/null +++ b/apps/wallet/src/components/assets/AssetDialogBtn.vue @@ -0,0 +1,66 @@ + + diff --git a/apps/wallet/src/components/assets/AssetForm.spec.ts b/apps/wallet/src/components/assets/AssetForm.spec.ts new file mode 100644 index 000000000..d3bb8a4ef --- /dev/null +++ b/apps/wallet/src/components/assets/AssetForm.spec.ts @@ -0,0 +1,63 @@ +import { describe, expect, it } from 'vitest'; +import AssetForm from './AssetForm.vue'; +import { mount } from '~/test.utils'; + +describe('AssetForm', () => { + it('renders correctly for creation', () => { + const wrapper = mount(AssetForm, { + props: { + modelValue: {}, + }, + }); + expect(wrapper.exists()).toBe(true); + }); + + it('shows custom metadata form for ICP', async () => { + const wrapper = mount(AssetForm, { + props: { + modelValue: { + blockchain: 'icp', + standards: ['native'], + metadata: [], + }, + }, + }); + + expect(wrapper.find('input[name="metadata_ledger_canister_id"]').exists()).toBe(true); + expect(wrapper.find('input[name="metadata_index_canister_id"]').exists()).toBe(true); + }); + + it('emits valid form', async () => { + const wrapper = mount(AssetForm, { + props: { + modelValue: { + blockchain: 'icp', + standards: ['native'], + metadata: [], + decimals: 8, + name: 'Test', + symbol: 'TEST', + }, + }, + }); + + // has not emitted "valid" event + expect(wrapper.emitted('valid')).toBeUndefined(); + + // fill out metadata for ICP + await wrapper + .find('input[name="metadata_ledger_canister_id"]') + .setValue('ryjl3-tyaaa-aaaaa-aaaba-cai'); + + expect(wrapper.emitted('valid')).toEqual([[false]]); + + await wrapper + .find('input[name="metadata_index_canister_id"]') + .setValue('qhbym-qaaaa-aaaaa-aaafq-cai'); + + await wrapper.vm.$nextTick(); + + // has emitted "valid" event with value true + expect(wrapper.emitted('valid')).toEqual([[false], [true]]); + }); +}); diff --git a/apps/wallet/src/components/assets/AssetForm.vue b/apps/wallet/src/components/assets/AssetForm.vue new file mode 100644 index 000000000..efef3bd66 --- /dev/null +++ b/apps/wallet/src/components/assets/AssetForm.vue @@ -0,0 +1,173 @@ + + + diff --git a/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.spec.ts b/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.spec.ts new file mode 100644 index 000000000..0a416932f --- /dev/null +++ b/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.spec.ts @@ -0,0 +1,43 @@ +import { describe, expect, it } from 'vitest'; +import { mount } from '~/test.utils'; +import InternetComputerNativeStandardForm from './InternetComputerNativeStandardForm.vue'; + +describe('InternetComputerNativeStandardForm', () => { + it('renders correctly for creation', () => { + const wrapper = mount(InternetComputerNativeStandardForm, { + props: { + modelValue: [], + readonly: false, + }, + }); + expect(wrapper.exists()).toBe(true); + }); + + it('initializes custom form from metadata', async () => { + const wrapper = mount(InternetComputerNativeStandardForm, { + props: { + modelValue: [ + { + key: 'ledger_canister_id', + value: 'ryjl3-tyaaa-aaaaa-aaaba-cai', + }, + { + key: 'index_canister_id', + value: 'qhbym-qaaaa-aaaaa-aaafq-cai', + }, + ], + readonly: false, + }, + }); + + await wrapper.vm.$nextTick(); + + const ledgerInput = wrapper.find('input[name="metadata_ledger_canister_id"]') + .element as HTMLInputElement; + const indexInput = wrapper.find('input[name="metadata_index_canister_id"]') + .element as HTMLInputElement; + + expect(ledgerInput.value).toBe('ryjl3-tyaaa-aaaaa-aaaba-cai'); + expect(indexInput.value).toBe('qhbym-qaaaa-aaaaa-aaafq-cai'); + }); +}); diff --git a/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.vue b/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.vue new file mode 100644 index 000000000..cd11eb4aa --- /dev/null +++ b/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.vue @@ -0,0 +1,70 @@ + + diff --git a/apps/wallet/src/components/inputs/AssetAutocomplete.spec.ts b/apps/wallet/src/components/inputs/AssetAutocomplete.spec.ts new file mode 100644 index 000000000..8cf525b23 --- /dev/null +++ b/apps/wallet/src/components/inputs/AssetAutocomplete.spec.ts @@ -0,0 +1,49 @@ +import { describe, expect, it, vi } from 'vitest'; +import { StationService } from '~/services/station.service'; +import { mount } from '~/test.utils'; +import AssetAutocomplete from './AssetAutocomplete.vue'; + +vi.mock('~/services/station.service', () => { + const mock: Partial = { + withStationId: vi.fn().mockReturnThis(), + listAssets: vi.fn().mockImplementation(() => + Promise.resolve({ + assets: [], + next_offset: [BigInt(0)], + total: BigInt(0), + }), + ), + }; + + return { + StationService: vi.fn(() => mock), + }; +}); + +describe('AssetAutocomplete', () => { + it('renders with selected ids', () => { + const wrapper = mount(AssetAutocomplete, { + props: { + modelValue: ['1'], + }, + }); + + expect(wrapper.exists()).toBe(true); + + const autocomplete = wrapper.findComponent({ name: 'VAutocomplete' }); + expect(autocomplete.exists()).toBe(true); + + expect(autocomplete.props('modelValue')).toEqual(['1']); + }); + + it('renders with empty list of assets', async () => { + const wrapper = mount(AssetAutocomplete); + const autocomplete = wrapper.findComponent({ name: 'VAutocomplete' }); + + expect(autocomplete.exists()).toBe(true); + + await wrapper.vm.$nextTick(); + + expect(autocomplete.props('items')).toEqual([]); + }); +}); diff --git a/apps/wallet/src/components/inputs/AssetAutocomplete.vue b/apps/wallet/src/components/inputs/AssetAutocomplete.vue new file mode 100644 index 000000000..c547880bb --- /dev/null +++ b/apps/wallet/src/components/inputs/AssetAutocomplete.vue @@ -0,0 +1,90 @@ + + diff --git a/apps/wallet/src/components/inputs/StandardsAutocomplete.spec.ts b/apps/wallet/src/components/inputs/StandardsAutocomplete.spec.ts new file mode 100644 index 000000000..094415876 --- /dev/null +++ b/apps/wallet/src/components/inputs/StandardsAutocomplete.spec.ts @@ -0,0 +1,36 @@ +import { describe, expect, it } from 'vitest'; +import { mount } from '~/test.utils'; +import StandardsAutocomplete from './StandardsAutocomplete.vue'; + +describe('StandardsAutocomplete', () => { + it('renders with selected ids', () => { + const wrapper = mount(StandardsAutocomplete, { + props: { + modelValue: ['1'], + blockchain: 'icp', + }, + }); + + expect(wrapper.exists()).toBe(true); + + const autocomplete = wrapper.findComponent({ name: 'VCombobox' }); + expect(autocomplete.exists()).toBe(true); + + expect(autocomplete.props('modelValue')).toEqual(['1']); + }); + + it('renders with empty list of standards', async () => { + const wrapper = mount(StandardsAutocomplete, { + props: { + blockchain: 'icp', + }, + }); + const autocomplete = wrapper.findComponent({ name: 'VCombobox' }); + + expect(autocomplete.exists()).toBe(true); + + await wrapper.vm.$nextTick(); + + expect(autocomplete.props('items')).toEqual([]); + }); +}); diff --git a/apps/wallet/src/components/inputs/StandardsAutocomplete.vue b/apps/wallet/src/components/inputs/StandardsAutocomplete.vue new file mode 100644 index 000000000..983133884 --- /dev/null +++ b/apps/wallet/src/components/inputs/StandardsAutocomplete.vue @@ -0,0 +1,79 @@ + + + diff --git a/apps/wallet/src/components/request-policies/specifier/AssetSpecifier.vue b/apps/wallet/src/components/request-policies/specifier/AssetSpecifier.vue new file mode 100644 index 000000000..9961411eb --- /dev/null +++ b/apps/wallet/src/components/request-policies/specifier/AssetSpecifier.vue @@ -0,0 +1,91 @@ + + diff --git a/apps/wallet/src/components/request-policies/specifier/SpecifierSelector.vue b/apps/wallet/src/components/request-policies/specifier/SpecifierSelector.vue index 84bdb72e1..ce9fb54f6 100644 --- a/apps/wallet/src/components/request-policies/specifier/SpecifierSelector.vue +++ b/apps/wallet/src/components/request-policies/specifier/SpecifierSelector.vue @@ -37,6 +37,7 @@ import UserGroupSpecifier from './UserGroupSpecifier.vue'; import UserSpecifier from './UserSpecifier.vue'; import UnsupportedSpecifier from './UnsupportedSpecifier.vue'; import { VAutocomplete } from 'vuetify/components'; +import AssetSpecifier from './AssetSpecifier.vue'; const input = withDefaults( defineProps<{ @@ -70,6 +71,8 @@ const componentsMap: { } = { AddUser: null, AddUserGroup: null, + AddAsset: null, + AddAccount: null, AddRequestPolicy: null, AddAddressBookEntry: null, @@ -83,6 +86,9 @@ const componentsMap: { EditUser: UserSpecifier, EditAddressBookEntry: AddressBookEntrySpecifier, RemoveAddressBookEntry: AddressBookEntrySpecifier, + EditAsset: AssetSpecifier, + RemoveAsset: AssetSpecifier, + // below variants are not supported yet EditPermission: UnsupportedSpecifier, EditRequestPolicy: UnsupportedSpecifier, @@ -92,9 +98,6 @@ const componentsMap: { CallExternalCanister: UnsupportedSpecifier, SetDisasterRecovery: UnsupportedSpecifier, FundExternalCanister: UnsupportedSpecifier, - AddAsset: UnsupportedSpecifier, - RemoveAsset: UnsupportedSpecifier, - EditAsset: UnsupportedSpecifier, }; function isKeyOfRequestSpecifier(key: string): key is keyof RequestSpecifier { diff --git a/apps/wallet/src/components/requests/RequestDetailView.vue b/apps/wallet/src/components/requests/RequestDetailView.vue index b2e1598a0..2ac4a32be 100644 --- a/apps/wallet/src/components/requests/RequestDetailView.vue +++ b/apps/wallet/src/components/requests/RequestDetailView.vue @@ -239,6 +239,7 @@ import RequestMetadata from './RequestMetadata.vue'; import RequestStatusChip from './RequestStatusChip.vue'; import AddAccountOperation from './operations/AddAccountOperation.vue'; import AddAddressBookEntryOperation from './operations/AddAddressBookEntryOperation.vue'; +import AddAssetOperation from './operations/AddAssetOperation.vue'; import AddRequestPolicyOperation from './operations/AddRequestPolicyOperation.vue'; import AddUserGroupOperation from './operations/AddUserGroupOperation.vue'; import AddUserOperation from './operations/AddUserOperation.vue'; @@ -255,6 +256,8 @@ import RemoveRequestPolicyOperation from './operations/RemoveRequestPolicyOperat import RemoveUserGroupOperation from './operations/RemoveUserGroupOperation.vue'; import TransferOperation from './operations/TransferOperation.vue'; import UnsupportedOperation from './operations/UnsupportedOperation.vue'; +import EditAssetOperation from './operations/EditAssetOperation.vue'; +import RemoveAssetOperation from './operations/RemoveAssetOperation.vue'; const i18n = useI18n(); @@ -291,15 +294,17 @@ const componentsMap: { SystemUpgrade: SystemUpgradeOperation, EditPermission: EditPermissionOperation, ManageSystemInfo: ManageSystemInfoOperation, + AddAsset: AddAssetOperation, + EditAsset: EditAssetOperation, + RemoveAsset: RemoveAssetOperation, + + // below variants are not supported yet ChangeExternalCanister: UnsupportedOperation, CreateExternalCanister: UnsupportedOperation, CallExternalCanister: UnsupportedOperation, ConfigureExternalCanister: UnsupportedOperation, SetDisasterRecovery: UnsupportedOperation, FundExternalCanister: UnsupportedOperation, - AddAsset: UnsupportedOperation, - EditAsset: UnsupportedOperation, - RemoveAsset: UnsupportedOperation, }; defineEmits<{ diff --git a/apps/wallet/src/components/requests/RequestListItem.vue b/apps/wallet/src/components/requests/RequestListItem.vue index 99f192e69..e35dbc2f2 100644 --- a/apps/wallet/src/components/requests/RequestListItem.vue +++ b/apps/wallet/src/components/requests/RequestListItem.vue @@ -42,6 +42,7 @@ import { KeysOfUnion } from '~/utils/helper.utils'; import RequestStatusChip from './RequestStatusChip.vue'; import ReviewRequestBtn from './ReviewRequestBtn.vue'; import AddAccountOperation from './operations/AddAccountOperation.vue'; +import AddAssetOperation from './operations/AddAssetOperation.vue'; import AddAddressBookEntryOperation from './operations/AddAddressBookEntryOperation.vue'; import AddRequestPolicyOperation from './operations/AddRequestPolicyOperation.vue'; import AddUserGroupOperation from './operations/AddUserGroupOperation.vue'; @@ -59,6 +60,8 @@ import RemoveRequestPolicyOperation from './operations/RemoveRequestPolicyOperat import RemoveUserGroupOperation from './operations/RemoveUserGroupOperation.vue'; import TransferOperation from './operations/TransferOperation.vue'; import UnsupportedOperation from './operations/UnsupportedOperation.vue'; +import EditAssetOperation from './operations/EditAssetOperation.vue'; +import RemoveAssetOperation from './operations/RemoveAssetOperation.vue'; const props = withDefaults( defineProps<{ @@ -93,15 +96,17 @@ const componentsMap: { SystemUpgrade: SystemUpgradeOperation, EditPermission: EditPermissionOperation, ManageSystemInfo: ManageSystemInfoOperation, + AddAsset: AddAssetOperation, + EditAsset: EditAssetOperation, + RemoveAsset: RemoveAssetOperation, + + // below variants are not supported yet ChangeExternalCanister: UnsupportedOperation, CreateExternalCanister: UnsupportedOperation, CallExternalCanister: UnsupportedOperation, ConfigureExternalCanister: UnsupportedOperation, SetDisasterRecovery: UnsupportedOperation, FundExternalCanister: UnsupportedOperation, - AddAsset: UnsupportedOperation, - EditAsset: UnsupportedOperation, - RemoveAsset: UnsupportedOperation, }; defineEmits<{ diff --git a/apps/wallet/src/components/requests/operations/AddAssetOperation.vue b/apps/wallet/src/components/requests/operations/AddAssetOperation.vue new file mode 100644 index 000000000..88f5030fc --- /dev/null +++ b/apps/wallet/src/components/requests/operations/AddAssetOperation.vue @@ -0,0 +1,53 @@ + + + diff --git a/apps/wallet/src/components/requests/operations/EditAddressBookEntryOperation.vue b/apps/wallet/src/components/requests/operations/EditAddressBookEntryOperation.vue index 8feda4535..79d1a5ed4 100644 --- a/apps/wallet/src/components/requests/operations/EditAddressBookEntryOperation.vue +++ b/apps/wallet/src/components/requests/operations/EditAddressBookEntryOperation.vue @@ -19,7 +19,7 @@ - + @@ -35,6 +35,7 @@ import { import { useStationStore } from '~/stores/station.store'; import { variantIs } from '~/utils/helper.utils'; import RequestOperationListRow from '../RequestOperationListRow.vue'; +import { VProgressCircular } from 'vuetify/components'; const props = withDefaults( defineProps<{ diff --git a/apps/wallet/src/components/requests/operations/EditAssetOperation.vue b/apps/wallet/src/components/requests/operations/EditAssetOperation.vue new file mode 100644 index 000000000..4adbf1e20 --- /dev/null +++ b/apps/wallet/src/components/requests/operations/EditAssetOperation.vue @@ -0,0 +1,146 @@ + + + diff --git a/apps/wallet/src/components/requests/operations/EditPermissionOperation.vue b/apps/wallet/src/components/requests/operations/EditPermissionOperation.vue index fca1a296c..277dfd0c0 100644 --- a/apps/wallet/src/components/requests/operations/EditPermissionOperation.vue +++ b/apps/wallet/src/components/requests/operations/EditPermissionOperation.vue @@ -11,7 +11,7 @@ - + diff --git a/apps/wallet/src/components/requests/operations/RemoveAddressBookEntryOperation.vue b/apps/wallet/src/components/requests/operations/RemoveAddressBookEntryOperation.vue index 562582380..676312280 100644 --- a/apps/wallet/src/components/requests/operations/RemoveAddressBookEntryOperation.vue +++ b/apps/wallet/src/components/requests/operations/RemoveAddressBookEntryOperation.vue @@ -7,7 +7,7 @@ - + @@ -22,6 +22,7 @@ import { } from '~/generated/station/station.did'; import { useStationStore } from '~/stores/station.store'; import RequestOperationListRow from '../RequestOperationListRow.vue'; +import { VProgressCircular } from 'vuetify/components'; const props = withDefaults( defineProps<{ diff --git a/apps/wallet/src/components/requests/operations/RemoveAssetOperation.vue b/apps/wallet/src/components/requests/operations/RemoveAssetOperation.vue new file mode 100644 index 000000000..e02a22a9c --- /dev/null +++ b/apps/wallet/src/components/requests/operations/RemoveAssetOperation.vue @@ -0,0 +1,77 @@ + + + diff --git a/apps/wallet/src/composables/autocomplete.composable.ts b/apps/wallet/src/composables/autocomplete.composable.ts index ee3161c30..8c6a1e3d8 100644 --- a/apps/wallet/src/composables/autocomplete.composable.ts +++ b/apps/wallet/src/composables/autocomplete.composable.ts @@ -101,3 +101,18 @@ export const useAddressBookAutocomplete = () => { return autocomplete; }; + +export const useAssetAutocomplete = () => { + const station = useStationStore(); + + const autocomplete = useAutocomplete(async () => { + const results = await station.service.listAssets({ + limit: 100, + offset: 0, + }); + + return results.assets; + }); + + return autocomplete; +}; diff --git a/apps/wallet/src/composables/request.composable.ts b/apps/wallet/src/composables/request.composable.ts index d73bef521..4edd6c33d 100644 --- a/apps/wallet/src/composables/request.composable.ts +++ b/apps/wallet/src/composables/request.composable.ts @@ -57,6 +57,13 @@ export const useAvailableDomains = (): Ref => { }); } + if (hasRequiredPrivilege({ anyOf: [Privilege.ListAssets] })) { + domains.value.push({ + id: RequestDomains.Assets, + types: [{ AddAsset: null }, { EditAsset: null }, { RemoveAsset: null }], + }); + } + domains.value.push({ id: RequestDomains.System, types: [ diff --git a/apps/wallet/src/configs/permissions.config.ts b/apps/wallet/src/configs/permissions.config.ts index 7a33ca96e..7fff558aa 100644 --- a/apps/wallet/src/configs/permissions.config.ts +++ b/apps/wallet/src/configs/permissions.config.ts @@ -354,6 +354,48 @@ export const globalPermissions = (): AggregatedResoucePermissions[] => [ ); } + return false; + }, + }, + { + resourceType: ResourceTypeEnum.Asset, + resources: [ + { + action: ResourceActionEnum.List, + resource: { Asset: { List: null } }, + allow: defaultAllowLevels(), + canEdit: false, + }, + { + action: ResourceActionEnum.Create, + resource: { Asset: { Create: null } }, + allow: defaultAllowLevels(), + canEdit: false, + }, + { + action: ResourceActionEnum.Read, + resource: { Asset: { Read: { Any: null } } }, + allow: defaultAllowLevels(), + canEdit: false, + }, + { + action: ResourceActionEnum.Update, + resource: { Asset: { Update: { Any: null } } }, + allow: defaultAllowLevels(), + canEdit: false, + }, + { + action: ResourceActionEnum.Delete, + resource: { Asset: { Delete: { Any: null } } }, + allow: defaultAllowLevels(), + canEdit: false, + }, + ], + match(specifier: Resource, resource: Resource): boolean { + if (variantIs(specifier, 'Asset') && variantIs(resource, 'Asset')) { + return isResourceActionContained(specifier.Asset, resource.Asset); + } + return false; }, }, diff --git a/apps/wallet/src/configs/routes.config.ts b/apps/wallet/src/configs/routes.config.ts index d3d939414..752afef51 100644 --- a/apps/wallet/src/configs/routes.config.ts +++ b/apps/wallet/src/configs/routes.config.ts @@ -14,6 +14,7 @@ export enum Routes { Initialization = 'Initialization', AddStation = 'AddStation', Permissions = 'Permissions', + Assets = 'Assets', // Request Pages Requests = 'Requests', TransferRequests = 'TransferRequests', diff --git a/apps/wallet/src/generated/station/station.did b/apps/wallet/src/generated/station/station.did index 868800e48..0c4bf3522 100644 --- a/apps/wallet/src/generated/station/station.did +++ b/apps/wallet/src/generated/station/station.did @@ -1684,6 +1684,24 @@ type Asset = record { decimals : nat32; }; +// Describes a standard suported by a blockchain. +type StandardData = record { + // The standard name. + standard : text; + // Required metadata fields for the standard (e.g. `["ledger_canister_id"]`). + required_metadata_fields : vec text; + // Supported operations for the standard (e.g. `["transfer", "list_transfers", "balance"]`). + supported_operations : vec text; +}; + +// Describes a blockchain and its standards supported by the station. +type SupportedBlockchain = record { + // The blockchain name. + blockchain : text; + // The supported standards for the blockchain. + supported_standards : vec StandardData; +}; + // A record type that is used to show the current capabilities of the station. type Capabilities = record { // The name of the station. @@ -1692,6 +1710,8 @@ type Capabilities = record { version : text; // The list of supported assets. supported_assets : vec Asset; + // The list of supported blockchains and standards. + supported_blockchains : vec SupportedBlockchain; }; // Result type for getting the current config. @@ -2261,6 +2281,8 @@ type UserPrivilege = variant { ListRequests; CreateExternalCanister; ListExternalCanisters; + ListAssets; + AddAsset; }; type MeResult = variant { diff --git a/apps/wallet/src/generated/station/station.did.d.ts b/apps/wallet/src/generated/station/station.did.d.ts index b1d673d3a..15a471139 100644 --- a/apps/wallet/src/generated/station/station.did.d.ts +++ b/apps/wallet/src/generated/station/station.did.d.ts @@ -193,6 +193,7 @@ export interface Capabilities { 'name' : string, 'version' : string, 'supported_assets' : Array, + 'supported_blockchains' : Array, } export type CapabilitiesResult = { 'Ok' : { 'capabilities' : Capabilities } } | { 'Err' : Error }; @@ -1080,6 +1081,11 @@ export interface SetDisasterRecoveryOperationInput { export type Sha256Hash = string; export type SortByDirection = { 'Asc' : null } | { 'Desc' : null }; +export interface StandardData { + 'supported_operations' : Array, + 'required_metadata_fields' : Array, + 'standard' : string, +} export interface SubmitRequestApprovalInput { 'request_id' : UUID, 'decision' : RequestApprovalStatus, @@ -1093,6 +1099,10 @@ export type SubmitRequestApprovalResult = { } } | { 'Err' : Error }; +export interface SupportedBlockchain { + 'blockchain' : string, + 'supported_standards' : Array, +} export interface SystemInfo { 'disaster_recovery' : [] | [DisasterRecovery], 'name' : string, @@ -1206,8 +1216,10 @@ export type UserPrivilege = { 'AddUserGroup' : null } | { 'ListUserGroups' : null } | { 'AddUser' : null } | { 'ListUsers' : null } | + { 'AddAsset' : null } | { 'SystemUpgrade' : null } | { 'CreateExternalCanister' : null } | + { 'ListAssets' : null } | { 'ManageSystemInfo' : null } | { 'AddAddressBookEntry' : null } | { 'ListAccounts' : null } | diff --git a/apps/wallet/src/generated/station/station.did.js b/apps/wallet/src/generated/station/station.did.js index d2cee1710..2434f55ee 100644 --- a/apps/wallet/src/generated/station/station.did.js +++ b/apps/wallet/src/generated/station/station.did.js @@ -78,10 +78,20 @@ export const idlFactory = ({ IDL }) => { 'blockchain' : IDL.Text, 'symbol' : AssetSymbol, }); + const StandardData = IDL.Record({ + 'supported_operations' : IDL.Vec(IDL.Text), + 'required_metadata_fields' : IDL.Vec(IDL.Text), + 'standard' : IDL.Text, + }); + const SupportedBlockchain = IDL.Record({ + 'blockchain' : IDL.Text, + 'supported_standards' : IDL.Vec(StandardData), + }); const Capabilities = IDL.Record({ 'name' : IDL.Text, 'version' : IDL.Text, 'supported_assets' : IDL.Vec(Asset), + 'supported_blockchains' : IDL.Vec(SupportedBlockchain), }); const CapabilitiesResult = IDL.Variant({ 'Ok' : IDL.Record({ 'capabilities' : Capabilities }), @@ -1297,8 +1307,10 @@ export const idlFactory = ({ IDL }) => { 'ListUserGroups' : IDL.Null, 'AddUser' : IDL.Null, 'ListUsers' : IDL.Null, + 'AddAsset' : IDL.Null, 'SystemUpgrade' : IDL.Null, 'CreateExternalCanister' : IDL.Null, + 'ListAssets' : IDL.Null, 'ManageSystemInfo' : IDL.Null, 'AddAddressBookEntry' : IDL.Null, 'ListAccounts' : IDL.Null, diff --git a/apps/wallet/src/locales/en.locale.ts b/apps/wallet/src/locales/en.locale.ts index 5fb34b46f..333d85c74 100644 --- a/apps/wallet/src/locales/en.locale.ts +++ b/apps/wallet/src/locales/en.locale.ts @@ -94,6 +94,7 @@ export default { verify_instructions: 'To verify the update, open the terminal and follow the instructions bellow:', }, + asset: 'Asset', }, alpha_warning: { version: 'This is an alpha version.', @@ -162,6 +163,7 @@ export default { system: 'System', transfers: 'Transfers', users: 'Users', + assets: 'Assets', }, headers: { id: 'ID', @@ -274,6 +276,18 @@ export default { title: 'Manage system info', request_title: 'Manage system info request', }, + addasset: { + title: 'Add asset', + request_title: 'Add asset request', + }, + editasset: { + title: 'Edit asset', + request_title: 'Edit asset request', + }, + removeasset: { + title: 'Remove asset', + request_title: 'Remove asset request', + }, unknown: { title: 'Unknown', request_title: 'Unknown request', @@ -538,6 +552,9 @@ export default { version: 'Version', continue: 'Continue', cycle_obtain_strategy: 'Wallet top-up method', + symbol: 'Symbol', + standards: 'Standards', + assets: 'Assets', }, forms: { create: 'Create', @@ -574,6 +591,7 @@ export default { transfer_requests: 'Transfer Requests', permissions: 'Permissions', request_policies: 'Request Policies', + assets: 'Assets', }, pages: { accounts: { @@ -687,6 +705,17 @@ export default { create_label: 'Add Policy', dialog_title: 'Policy', }, + assets: { + title: 'Assets', + btn_new_entry: 'New asset', + no_results_found: 'No assets found.', + error_fetching_assets: 'Error fetching assets, please try again.', + forms: { + ledger_canister_id: 'Ledger Canister ID', + index_canister_id: 'Index Canister ID', + decimals: 'Decimals', + }, + }, not_found: { title: 'Whoops, 404', subtitle: 'The page you were looking for does not exist.', @@ -726,6 +755,7 @@ export default { select_resource: 'Resource Type', resources: { account: 'Account', + asset: 'Asset', user: 'User', usergroup: 'User Group', permission: 'Access Policy', @@ -803,6 +833,9 @@ export default { setdisasterrecovery: 'Configure disaster recovery', callexternalcanister: 'Call canister', createexternalcanister: 'Create canister', + addasset: 'Add asset', + editasset: 'Edit asset', + removeasset: 'Remove asset', }, }, cycle_obtain_strategies: { diff --git a/apps/wallet/src/locales/fr.locale.ts b/apps/wallet/src/locales/fr.locale.ts index 656028f29..0fa5629a0 100644 --- a/apps/wallet/src/locales/fr.locale.ts +++ b/apps/wallet/src/locales/fr.locale.ts @@ -96,6 +96,7 @@ export default { verify_instructions: 'Pour vérifier la mise à jour, ouvrez le terminal et suivez les instructions ci-dessous:', }, + asset: 'Actif', }, alpha_warning: { version: 'Ceci est une version alpha.', @@ -172,6 +173,7 @@ export default { system: 'Système', transfers: 'Transferts', users: 'Usagers', + assets: 'Actifs', }, headers: { id: 'ID', @@ -284,6 +286,18 @@ export default { title: 'Gérer les informations système', request_title: 'Demande de gérer les informations système', }, + addasset: { + title: 'Ajouter un actif', + request_title: 'Demande d ajouter un actif', + }, + editasset: { + title: 'Modifier un actif', + request_title: 'Demande de modifier un actif', + }, + removeasset: { + title: 'Supprimer un actif', + request_title: 'Demande de supprimer un actif', + }, unknown: { title: 'Inconnu', request_title: 'Demande Inconnue', @@ -543,6 +557,9 @@ export default { version: 'Version', continue: 'Continuer', cycle_obtain_strategy: 'Méthode de recharge du portefeuille', + symbol: 'Symbole', + standards: 'Standards', + assets: 'Actifs', }, forms: { create: 'Créer', @@ -579,6 +596,7 @@ export default { transfer_requests: 'Demandes de Transfert', permissions: "Polices d'Accés", request_policies: "Polices d'Aprobation", + assets: 'Actifs', }, pages: { accounts: { @@ -697,6 +715,17 @@ export default { create_label: 'Ajouter un police', dialog_title: 'Police', }, + assets: { + title: 'Actifs', + btn_new_asset: 'Nouvel Actif', + no_results_found: 'Pas d actif trouvé.', + error_fetching_assets: 'Erreur lors du chargement des actifs, veuillez essayer de nouveau.', + forms: { + ledger_canister_id: 'ID du Canister Ledger', + index_canister_id: 'ID du Canister Index', + decimals: 'Décimales', + }, + }, not_found: { title: 'Oulala, 404', subtitle: "La page que vous cherchez n'existe pas.", @@ -736,6 +765,7 @@ export default { select_resource: 'Type de Resource', resources: { account: 'Compte', + asset: 'Actif', user: 'Usager', usergroup: "Groupe d'Usagers", permission: "Police d'Accés", @@ -813,6 +843,9 @@ export default { setdisasterrecovery: 'Définir la récupération après sinistre', callexternalcanister: 'Appeler un canister', createexternalcanister: 'Créer un canister', + addasset: 'Ajouter un actif', + editasset: 'Modifier un actif', + removeasset: 'Éffacer un actif', }, }, cycle_obtain_strategies: { diff --git a/apps/wallet/src/locales/pt.locale.ts b/apps/wallet/src/locales/pt.locale.ts index dc75ab3c0..8a5ca8fa8 100644 --- a/apps/wallet/src/locales/pt.locale.ts +++ b/apps/wallet/src/locales/pt.locale.ts @@ -95,6 +95,7 @@ export default { verify_instructions: 'Para verificar a atualização, abra o terminal e siga as instruções abaixo:', }, + assets: 'Ativos', }, alpha_warning: { version: 'Esta é uma versão alfa.', @@ -171,6 +172,7 @@ export default { system: 'Sistema', transfers: 'Transferências', users: 'Usuários', + assets: 'Ativos', }, download: { user_group: 'Grupos de usuários', @@ -283,6 +285,18 @@ export default { title: 'Gerir informações do sistema', request_title: 'Pedido de alteração de informações do sistema', }, + addasset: { + title: 'Adicionar ativo', + request_title: 'Pedido de adição de ativo', + }, + editasset: { + title: 'Editar ativo', + request_title: 'Pedido de alteração de ativo', + }, + removeasset: { + title: 'Remover ativo', + request_title: 'Pedido de remoção de ativo', + }, unknown: { title: 'Desconhecido', request_title: 'Pedido desconhecido', @@ -540,6 +554,9 @@ export default { version: 'Versão', continue: 'Continuar', cycle_obtain_strategy: 'Método de recarga da carteira', + symbol: 'Símbolo', + standards: 'Padrões', + assets: 'Ativos', }, forms: { create: 'Criar', @@ -576,6 +593,7 @@ export default { transfer_requests: 'Pedidos de transferência', permissions: 'Permissões', request_policies: 'Regras de aprovação', + assets: 'Ativos', }, pages: { accounts: { @@ -694,6 +712,17 @@ export default { create_label: 'Criar Regra', dialog_title: 'Regra', }, + assets: { + title: 'Ativos', + btn_new_entry: 'Novo ativo', + no_results_found: 'Nenhum ativo encontrado.', + error_fetching_assets: 'Erro ao carregar os ativos, por favor, tente novamente.', + forms: { + ledger_canister_id: 'ID do canister de contabilidade', + index_canister_id: 'ID do canister de índice', + decimals: 'Decimais', + }, + }, not_found: { title: 'Ups, 404', subtitle: 'A página que está a tentar aceder não existe.', @@ -733,6 +762,7 @@ export default { select_resource: 'Selecione o tipo de recurso', resources: { account: 'Conta', + asset: 'Ativo', user: 'Usuário', usergroup: 'Grupo de usuários', permission: 'Regra de acesso', @@ -809,6 +839,9 @@ export default { fundexternalcanister: 'Financiar canister', setdisasterrecovery: 'Recuperação de sistema', callexternalcanister: 'Interagir com canister', + addasset: 'Adicionar ativo', + editasset: 'Editar ativo', + removeasset: 'Remover ativo', }, }, cycle_obtain_strategies: { diff --git a/apps/wallet/src/pages/AssetsPage.vue b/apps/wallet/src/pages/AssetsPage.vue new file mode 100644 index 000000000..a52c678a9 --- /dev/null +++ b/apps/wallet/src/pages/AssetsPage.vue @@ -0,0 +1,170 @@ + + + diff --git a/apps/wallet/src/plugins/navigation.plugin.ts b/apps/wallet/src/plugins/navigation.plugin.ts index 59631f71e..d21cbb9e4 100644 --- a/apps/wallet/src/plugins/navigation.plugin.ts +++ b/apps/wallet/src/plugins/navigation.plugin.ts @@ -163,6 +163,19 @@ const sections = (): NavigationSections => ({ route: Routes.Requests, }, }, + { + name: 'assets', + localeKey: 'navigation.assets', + action: { + type: NavigationActionType.To, + handle: route => + route.params.locale ? `/${route.params.locale}/settings/assets` : '/settings/assets', + }, + auth: { + type: NavigastionAuthType.Route, + route: Routes.Assets, + }, + }, ], }, ], diff --git a/apps/wallet/src/plugins/router.plugin.ts b/apps/wallet/src/plugins/router.plugin.ts index ce1002df2..5748731de 100644 --- a/apps/wallet/src/plugins/router.plugin.ts +++ b/apps/wallet/src/plugins/router.plugin.ts @@ -337,6 +337,29 @@ const router = createRouter({ }, }, }, + { + path: 'assets', + name: Routes.Assets, + component: () => import('~/pages/AssetsPage.vue'), + props: () => { + return { + title: i18n.global.t('pages.assets.title'), + breadcrumbs: [ + { title: i18n.global.t('navigation.home'), to: { name: defaultHomeRoute } }, + { title: i18n.global.t('navigation.settings') }, + { title: i18n.global.t('navigation.assets') }, + ], + }; + }, + meta: { + auth: { + check: { + session: RequiredSessionState.ConnectedToStation, + privileges: [Privilege.ListAssets], + }, + }, + }, + }, ], }, { diff --git a/apps/wallet/src/services/station.service.ts b/apps/wallet/src/services/station.service.ts index 478f31470..e6ee79353 100644 --- a/apps/wallet/src/services/station.service.ts +++ b/apps/wallet/src/services/station.service.ts @@ -5,6 +5,7 @@ import { AccountBalance, AddAccountOperationInput, AddAddressBookEntryOperationInput, + AddAssetOperationInput, AddRequestPolicyOperationInput, AddUserGroupOperationInput, AddUserOperationInput, @@ -13,6 +14,7 @@ import { DisasterRecoveryCommittee, EditAccountOperationInput, EditAddressBookEntryOperationInput, + EditAssetOperationInput, EditPermissionOperationInput, EditRequestPolicyOperationInput, EditUserGroupOperationInput, @@ -22,6 +24,8 @@ import { GetAccountResult, GetAddressBookEntryInput, GetAddressBookEntryResult, + GetAssetInput, + GetAssetResult, GetNextApprovableRequestResult, GetPermissionInput, GetPermissionResult, @@ -36,6 +40,7 @@ import { ListAccountTransfersInput, ListAccountsResult, ListAddressBookEntriesResult, + ListAssetsResult, ListNotificationsInput, ListPermissionsInput, ListPermissionsResult, @@ -48,6 +53,7 @@ import { MarkNotificationsReadInput, Notification, PaginationInput, + RemoveAssetOperationInput, RemoveUserGroupOperationInput, Request, SubmitRequestApprovalInput, @@ -67,6 +73,7 @@ import { GetNextApprovableRequestArgs, ListAccountsArgs, ListAddressBookEntriesArgs, + ListAssetsArgs, ListRequestsArgs, } from '~/types/station.types'; import { transformIdlWithOnlyVerifiedCalls, variantIs } from '~/utils/helper.utils'; @@ -556,6 +563,82 @@ export class StationService { return result.Ok; } + async getAsset(input: GetAssetInput, verifiedCall = false): Promise> { + const actor = verifiedCall ? this.verified_actor : this.actor; + const result = await actor.get_asset(input); + + if (variantIs(result, 'Err')) { + throw result.Err; + } + + return result.Ok; + } + async listAssets( + { limit, offset }: ListAssetsArgs = {}, + verifiedCall = false, + ): Promise> { + const actor = verifiedCall ? this.verified_actor : this.actor; + const result = await actor.list_assets({ + paginate: [ + { + limit: limit !== undefined ? [limit] : [], + offset: offset !== undefined ? [BigInt(offset)] : [], + }, + ], + }); + + if (variantIs(result, 'Err')) { + throw result.Err; + } + + return result.Ok; + } + + async addAsset(input: AddAssetOperationInput): Promise { + const result = await this.actor.create_request({ + execution_plan: [{ Immediate: null }], + title: [], + summary: [], + operation: { AddAsset: input }, + }); + + if (variantIs(result, 'Err')) { + throw result.Err; + } + + return result.Ok.request; + } + + async editAsset(input: EditAssetOperationInput): Promise { + const result = await this.actor.create_request({ + execution_plan: [{ Immediate: null }], + title: [], + summary: [], + operation: { EditAsset: input }, + }); + + if (variantIs(result, 'Err')) { + throw result.Err; + } + + return result.Ok.request; + } + + async removeAsset(input: RemoveAssetOperationInput): Promise { + const result = await this.actor.create_request({ + execution_plan: [{ Immediate: null }], + title: [], + summary: [], + operation: { RemoveAsset: input }, + }); + + if (variantIs(result, 'Err')) { + throw result.Err; + } + + return result.Ok.request; + } + async getAccount( input: GetAccountInput, verifiedCall = false, diff --git a/apps/wallet/src/stores/station.store.ts b/apps/wallet/src/stores/station.store.ts index 714fb7cfb..179596c19 100644 --- a/apps/wallet/src/stores/station.store.ts +++ b/apps/wallet/src/stores/station.store.ts @@ -123,6 +123,7 @@ const initialStoreState = (): StationStoreState => { name: '', version: '', supported_assets: [], + supported_blockchains: [], }, cycleObtainStrategy: { Disabled: null }, }, diff --git a/apps/wallet/src/types/auth.types.ts b/apps/wallet/src/types/auth.types.ts index 80e4049c4..8497a268e 100644 --- a/apps/wallet/src/types/auth.types.ts +++ b/apps/wallet/src/types/auth.types.ts @@ -15,6 +15,8 @@ export enum Privilege { ListRequests = 'ListRequests', SystemUpgrade = 'SystemUpgrade', ManageSystemInfo = 'ManageSystemInfo', + ListAssets = 'ListAssets', + AddAsset = 'AddAsset', } export enum RequiredSessionState { diff --git a/apps/wallet/src/types/station.types.ts b/apps/wallet/src/types/station.types.ts index e9576100a..48c5b1c0c 100644 --- a/apps/wallet/src/types/station.types.ts +++ b/apps/wallet/src/types/station.types.ts @@ -71,6 +71,7 @@ export enum RequestDomains { Transfers = 'transfers', Users = 'users', System = 'system', + Assets = 'assets', } export interface ListAccountsArgs { @@ -138,6 +139,11 @@ export interface ListAddressBookEntriesArgs { ids?: UUID[]; } +export interface ListAssetsArgs { + limit?: number; + offset?: number; +} + export type MetadataItem = { key: string; value: string }; export interface RequestDetails { diff --git a/core/station/api/spec.did b/core/station/api/spec.did index 868800e48..0c4bf3522 100644 --- a/core/station/api/spec.did +++ b/core/station/api/spec.did @@ -1684,6 +1684,24 @@ type Asset = record { decimals : nat32; }; +// Describes a standard suported by a blockchain. +type StandardData = record { + // The standard name. + standard : text; + // Required metadata fields for the standard (e.g. `["ledger_canister_id"]`). + required_metadata_fields : vec text; + // Supported operations for the standard (e.g. `["transfer", "list_transfers", "balance"]`). + supported_operations : vec text; +}; + +// Describes a blockchain and its standards supported by the station. +type SupportedBlockchain = record { + // The blockchain name. + blockchain : text; + // The supported standards for the blockchain. + supported_standards : vec StandardData; +}; + // A record type that is used to show the current capabilities of the station. type Capabilities = record { // The name of the station. @@ -1692,6 +1710,8 @@ type Capabilities = record { version : text; // The list of supported assets. supported_assets : vec Asset; + // The list of supported blockchains and standards. + supported_blockchains : vec SupportedBlockchain; }; // Result type for getting the current config. @@ -2261,6 +2281,8 @@ type UserPrivilege = variant { ListRequests; CreateExternalCanister; ListExternalCanisters; + ListAssets; + AddAsset; }; type MeResult = variant { diff --git a/core/station/api/src/capabilities.rs b/core/station/api/src/capabilities.rs index 60671aba2..c1a2cdfc5 100644 --- a/core/station/api/src/capabilities.rs +++ b/core/station/api/src/capabilities.rs @@ -10,9 +10,24 @@ pub struct CapabilitiesDTO { pub version: String, /// The list of assets that are supported by the canister (e.g. `ICP`, `BTC`, `ETH`, etc.) pub supported_assets: Vec, + /// The list of blockchains and standards that are supported by the canister (e.g. `ethereum`, `bitcoin`, `icp`, etc.) + pub supported_blockchains: Vec, } #[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] pub struct CapabilitiesResponse { pub capabilities: CapabilitiesDTO, } + +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub struct SupportedBlockchainDTO { + pub blockchain: String, + pub supported_standards: Vec, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub struct StandardDataDTO { + pub standard: String, + pub required_metadata_fields: Vec, + pub supported_operations: Vec, +} diff --git a/core/station/api/src/user.rs b/core/station/api/src/user.rs index f974fe34b..8be84a519 100644 --- a/core/station/api/src/user.rs +++ b/core/station/api/src/user.rs @@ -112,6 +112,8 @@ pub enum UserPrivilege { ListRequests, CreateExternalCanister, ListExternalCanisters, + ListAssets, + AddAsset, } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] diff --git a/core/station/impl/src/controllers/capabilities.rs b/core/station/impl/src/controllers/capabilities.rs index 640124af5..93bbfd144 100644 --- a/core/station/impl/src/controllers/capabilities.rs +++ b/core/station/impl/src/controllers/capabilities.rs @@ -1,7 +1,7 @@ use crate::{ core::{ middlewares::{authorize, call_context}, - read_system_info, + read_system_info, SUPPORTED_BLOCKCHAINS, }, models::resource::{Resource, SystemResourceAction}, repositories::ASSET_REPOSITORY, @@ -11,7 +11,7 @@ use ic_cdk_macros::query; use lazy_static::lazy_static; use orbit_essentials::with_middleware; use orbit_essentials::{api::ApiResult, repository::Repository}; -use station_api::{CapabilitiesDTO, CapabilitiesResponse}; +use station_api::{CapabilitiesDTO, CapabilitiesResponse, StandardDataDTO, SupportedBlockchainDTO}; #[query(name = "capabilities")] async fn capabilities() -> ApiResult { @@ -44,6 +44,25 @@ impl CapabilitiesController { .into_iter() .map(|asset| asset.into()) .collect(), + supported_blockchains: SUPPORTED_BLOCKCHAINS + .iter() + .map(|suported_blockchain| SupportedBlockchainDTO { + blockchain: suported_blockchain.blockchain.to_string(), + supported_standards: suported_blockchain + .supported_standards + .iter() + .map(|standard| StandardDataDTO { + required_metadata_fields: standard.get_required_metadata(), + standard: standard.to_string(), + supported_operations: standard + .get_supported_operations() + .iter() + .map(|operation| operation.to_string()) + .collect(), + }) + .collect(), + }) + .collect(), }, }) } diff --git a/core/station/impl/src/core/mod.rs b/core/station/impl/src/core/mod.rs index 8845af19a..8538ec0c1 100644 --- a/core/station/impl/src/core/mod.rs +++ b/core/station/impl/src/core/mod.rs @@ -13,7 +13,9 @@ pub use call_context::*; pub mod middlewares; pub mod observer; +pub mod standards; pub mod validation; +pub use standards::*; #[cfg(not(test))] pub use orbit_essentials::cdk as ic_cdk; diff --git a/core/station/impl/src/core/standards.rs b/core/station/impl/src/core/standards.rs new file mode 100644 index 000000000..fb2e44e38 --- /dev/null +++ b/core/station/impl/src/core/standards.rs @@ -0,0 +1,17 @@ +use lazy_static::lazy_static; + +use crate::models::{Blockchain, BlockchainStandard}; + +pub struct SupportedBlockchain { + pub blockchain: Blockchain, + pub supported_standards: Vec, +} + +lazy_static! { + pub static ref SUPPORTED_BLOCKCHAINS: Vec = { + vec![SupportedBlockchain { + blockchain: Blockchain::InternetComputer, + supported_standards: vec![BlockchainStandard::Native], + }] + }; +} diff --git a/core/station/impl/src/mappers/authorization.rs b/core/station/impl/src/mappers/authorization.rs index c997e885a..fce626314 100644 --- a/core/station/impl/src/mappers/authorization.rs +++ b/core/station/impl/src/mappers/authorization.rs @@ -1,7 +1,6 @@ use super::HelperMapper; use crate::{ - core::ic_cdk::api::trap, - core::CallContext, + core::{ic_cdk::api::trap, CallContext}, models::{ resource::{ AccountResourceAction, CallExternalCanisterResourceTarget, ExternalCanisterId, @@ -17,7 +16,7 @@ use orbit_essentials::repository::Repository; use orbit_essentials::types::UUID; use station_api::{RequestOperationInput, UserPrivilege}; -pub const USER_PRIVILEGES: [UserPrivilege; 18] = [ +pub const USER_PRIVILEGES: [UserPrivilege; 20] = [ UserPrivilege::Capabilities, UserPrivilege::SystemInfo, UserPrivilege::ManageSystemInfo, @@ -36,6 +35,8 @@ pub const USER_PRIVILEGES: [UserPrivilege; 18] = [ UserPrivilege::ListRequests, UserPrivilege::CreateExternalCanister, UserPrivilege::ListExternalCanisters, + UserPrivilege::AddAsset, + UserPrivilege::ListAssets, ]; impl From for Resource { @@ -65,6 +66,8 @@ impl From for Resource { UserPrivilege::ListExternalCanisters => { Resource::ExternalCanister(ExternalCanisterResourceAction::List) } + UserPrivilege::AddAsset => Resource::Asset(ResourceAction::Create), + UserPrivilege::ListAssets => Resource::Asset(ResourceAction::List), } } } diff --git a/core/station/impl/src/models/blockchain_standard.rs b/core/station/impl/src/models/blockchain_standard.rs index b5d801498..7a612bd31 100644 --- a/core/station/impl/src/models/blockchain_standard.rs +++ b/core/station/impl/src/models/blockchain_standard.rs @@ -13,6 +13,49 @@ pub enum BlockchainStandard { ERC20, } +pub enum StandardOperation { + Balance, + Transfer, + ListTransfers, +} +impl std::fmt::Display for StandardOperation { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + StandardOperation::Balance => write!(f, "balance"), + StandardOperation::Transfer => write!(f, "transfer"), + StandardOperation::ListTransfers => write!(f, "list_transfers"), + } + } +} + +impl BlockchainStandard { + pub fn get_required_metadata(&self) -> Vec { + match self { + BlockchainStandard::Native => vec![ + "ledger_canister_id".to_string(), + "index_canister_id".to_string(), + ], + BlockchainStandard::ICRC1 => vec![ + "ledger_canister_id".to_string(), + "index_canister_id".to_string(), + ], + BlockchainStandard::ERC20 => vec!["contract_address".to_string()], + } + } + + pub fn get_supported_operations(&self) -> Vec { + match self { + BlockchainStandard::Native => vec![ + StandardOperation::Balance, + StandardOperation::Transfer, + StandardOperation::ListTransfers, + ], + BlockchainStandard::ICRC1 => vec![], + BlockchainStandard::ERC20 => vec![], + } + } +} + impl FromStr for BlockchainStandard { type Err = (); diff --git a/core/station/impl/src/services/system.rs b/core/station/impl/src/services/system.rs index ad142b5c5..538ede296 100644 --- a/core/station/impl/src/services/system.rs +++ b/core/station/impl/src/services/system.rs @@ -16,7 +16,7 @@ use crate::{ SystemUpgradeTarget, }, repositories::{ - permission::PERMISSION_REPOSITORY, RequestRepository, REQUEST_REPOSITORY, + permission::PERMISSION_REPOSITORY, RequestRepository, ASSET_REPOSITORY, REQUEST_REPOSITORY, USER_GROUP_REPOSITORY, USER_REPOSITORY, }, services::{ @@ -339,6 +339,7 @@ impl SystemService { USER_GROUP_REPOSITORY.build_cache(); USER_REPOSITORY.build_cache(); PERMISSION_REPOSITORY.build_cache(); + ASSET_REPOSITORY.build_cache(); } /// Initializes the canister with the given owners and settings. @@ -489,12 +490,10 @@ impl SystemService { } mod init_canister_sync_handlers { - use std::collections::BTreeSet; + use std::collections::{BTreeMap, BTreeSet}; use crate::core::ic_cdk::{api::print, next_time}; - use crate::models::{ - AddUserOperationInput, Asset, Blockchain, BlockchainStandard, Metadata, UserStatus, - }; + use crate::models::{AddUserOperationInput, Asset, Blockchain, Metadata, UserStatus}; use crate::repositories::ASSET_REPOSITORY; use crate::services::USER_SERVICE; use crate::{ @@ -522,15 +521,25 @@ mod init_canister_sync_handlers { pub fn add_initial_assets() { let initial_assets: Vec = vec![Asset { blockchain: Blockchain::InternetComputer, - standards: BTreeSet::from([BlockchainStandard::Native]), + standards: BTreeSet::from([]), symbol: "ICP".to_string(), name: "Internet Computer".to_string(), - metadata: Metadata::default(), + metadata: Metadata::new(BTreeMap::from([ + ( + "ledger_canister_id".to_string(), + "ryjl3-tyaaa-aaaaa-aaaba-cai".to_string(), + ), + ( + "index_canister_id".to_string(), + "qhbym-qaaaa-aaaaa-aaafq-cai".to_string(), + ), + ])), decimals: 8, id: Uuid::new_v4().as_bytes().to_owned(), }]; for asset in initial_assets { + print(format!("Adding initial asset: {}", asset.name)); ASSET_REPOSITORY.insert(asset.key(), asset); } } From 8c3132025f5ce07aa05c206c11d9b80e74089558 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Fri, 4 Oct 2024 15:01:13 +0200 Subject: [PATCH 04/18] feat(station)!: refactor asset related data models (#357) Disabled checks: - Frontend validation - Migration tests --------- Co-authored-by: mraszyk <31483726+mraszyk@users.noreply.github.com> Co-authored-by: Kepler Vital --- .github/workflows/validation.yaml | 2 + .../generated/control-panel/control_panel.did | 4 +- .../control-panel/control_panel.did.d.ts | 4 +- .../control-panel/control_panel.did.js | 4 +- .../internet-identity/internet_identity.did | 77 +++- .../internet_identity.did.d.ts | 14 +- .../internet_identity.did.js | 33 +- apps/wallet/src/generated/station/station.did | 92 ++++- .../src/generated/station/station.did.d.ts | 36 +- .../src/generated/station/station.did.js | 77 ++-- core/control-panel/api/spec.did | 4 +- core/control-panel/api/src/canister.rs | 8 +- .../impl/src/services/canister.rs | 9 +- .../control-panel/impl/src/services/deploy.rs | 1 + core/station/api/spec.did | 92 ++++- core/station/api/src/account.rs | 37 +- core/station/api/src/address_book.rs | 2 + core/station/api/src/system.rs | 17 +- core/station/api/src/transfer.rs | 2 + core/station/impl/results.yml | 14 +- core/station/impl/src/core/metrics.rs | 175 +++++--- core/station/impl/src/core/request.rs | 15 +- core/station/impl/src/core/standards.rs | 6 +- core/station/impl/src/errors/account.rs | 12 + .../station/impl/src/errors/blockchain_api.rs | 18 +- .../impl/src/factories/blockchains/core.rs | 12 +- .../blockchains/internet_computer.rs | 91 +++-- .../impl/src/factories/requests/add_asset.rs | 2 +- .../impl/src/factories/requests/transfer.rs | 50 ++- .../src/jobs/execute_created_transfers.rs | 22 +- core/station/impl/src/jobs/mod.rs | 14 +- core/station/impl/src/mappers/account.rs | 182 ++++++--- core/station/impl/src/mappers/address_book.rs | 2 + core/station/impl/src/mappers/blockchain.rs | 6 +- core/station/impl/src/mappers/helper.rs | 8 + .../impl/src/mappers/request_operation.rs | 39 +- core/station/impl/src/migration.rs | 6 +- core/station/impl/src/models/account.rs | 263 +++++++----- core/station/impl/src/models/address_book.rs | 5 +- core/station/impl/src/models/asset.rs | 22 +- core/station/impl/src/models/blockchain.rs | 23 +- .../impl/src/models/blockchain_standard.rs | 87 ++-- .../models/indexes/transfer_account_index.rs | 2 + core/station/impl/src/models/request.rs | 89 ++++- .../impl/src/models/request_operation.rs | 102 ++++- .../impl/src/models/request_policy_rule.rs | 37 +- .../impl/src/models/request_specifier.rs | 33 +- core/station/impl/src/models/transfer.rs | 12 +- core/station/impl/src/services/account.rs | 373 +++++++++++++----- .../station/impl/src/services/address_book.rs | 4 +- core/station/impl/src/services/asset.rs | 89 +++-- .../impl/src/services/disaster_recovery.rs | 32 +- core/station/impl/src/services/request.rs | 39 +- core/station/impl/src/services/system.rs | 180 +++++++-- core/upgrader/api/spec.did | 21 +- core/upgrader/api/src/lib.rs | 40 +- .../impl/src/controllers/disaster_recovery.rs | 6 +- .../impl/src/model/disaster_recovery.rs | 137 +++++-- core/upgrader/impl/src/model/logging.rs | 9 +- .../impl/src/services/disaster_recovery.rs | 16 +- core/upgrader/impl/src/services/logger.rs | 3 +- orbit | 6 +- scripts/deploy.sh | 3 +- tests/integration/src/address_book_tests.rs | 35 +- tests/integration/src/asset_tests.rs | 6 +- tests/integration/src/control_panel_tests.rs | 41 +- tests/integration/src/cycles_monitor_tests.rs | 8 +- .../src/disaster_recovery_tests.rs | 93 +++-- tests/integration/src/migration_tests.rs | 6 +- tests/integration/src/setup.rs | 19 +- tests/integration/src/test_data.rs | 9 + tests/integration/src/test_data/account.rs | 36 +- .../integration/src/test_data/address_book.rs | 3 +- tests/integration/src/test_data/asset.rs | 2 +- tests/integration/src/transfer_tests.rs | 14 +- tests/integration/src/utils.rs | 65 ++- 76 files changed, 2294 insertions(+), 865 deletions(-) diff --git a/.github/workflows/validation.yaml b/.github/workflows/validation.yaml index e406aab50..c2fa71508 100644 --- a/.github/workflows/validation.yaml +++ b/.github/workflows/validation.yaml @@ -91,6 +91,8 @@ jobs: validate-node: name: 'validate-node:required' runs-on: ubuntu-latest + # disable until the frontend is ready + if: false steps: - name: 'Checkout' uses: actions/checkout@v4 diff --git a/apps/wallet/src/generated/control-panel/control_panel.did b/apps/wallet/src/generated/control-panel/control_panel.did index 5c08f3e7e..6fd377537 100644 --- a/apps/wallet/src/generated/control-panel/control_panel.did +++ b/apps/wallet/src/generated/control-panel/control_panel.did @@ -248,9 +248,9 @@ type CanDeployStationResult = variant { // The canister modules required for the control panel. type UploadCanisterModulesInput = record { // The upgrader wasm module to use for the station canister. - upgrader_wasm_module : blob; + upgrader_wasm_module : opt blob; // The station wasm module to use. - station_wasm_module : blob; + station_wasm_module : opt blob; }; // The result of uploading canister modules. diff --git a/apps/wallet/src/generated/control-panel/control_panel.did.d.ts b/apps/wallet/src/generated/control-panel/control_panel.did.d.ts index e535f8f1a..21ee568d4 100644 --- a/apps/wallet/src/generated/control-panel/control_panel.did.d.ts +++ b/apps/wallet/src/generated/control-panel/control_panel.did.d.ts @@ -178,8 +178,8 @@ export interface UpdateWaitingListInput { export type UpdateWaitingListResult = { 'Ok' : null } | { 'Err' : ApiError }; export interface UploadCanisterModulesInput { - 'station_wasm_module' : Uint8Array | number[], - 'upgrader_wasm_module' : Uint8Array | number[], + 'station_wasm_module' : [] | [Uint8Array | number[]], + 'upgrader_wasm_module' : [] | [Uint8Array | number[]], } export type UploadUploadCanisterModulesInputResult = { 'Ok' : null } | { 'Err' : ApiError }; diff --git a/apps/wallet/src/generated/control-panel/control_panel.did.js b/apps/wallet/src/generated/control-panel/control_panel.did.js index 711af3fea..6d27b6f55 100644 --- a/apps/wallet/src/generated/control-panel/control_panel.did.js +++ b/apps/wallet/src/generated/control-panel/control_panel.did.js @@ -246,8 +246,8 @@ export const idlFactory = ({ IDL }) => { 'Err' : ApiError, }); const UploadCanisterModulesInput = IDL.Record({ - 'station_wasm_module' : IDL.Vec(IDL.Nat8), - 'upgrader_wasm_module' : IDL.Vec(IDL.Nat8), + 'station_wasm_module' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'upgrader_wasm_module' : IDL.Opt(IDL.Vec(IDL.Nat8)), }); const UploadUploadCanisterModulesInputResult = IDL.Variant({ 'Ok' : IDL.Null, diff --git a/apps/wallet/src/generated/internet-identity/internet_identity.did b/apps/wallet/src/generated/internet-identity/internet_identity.did index 0164427a6..43bcf2caf 100644 --- a/apps/wallet/src/generated/internet-identity/internet_identity.did +++ b/apps/wallet/src/generated/internet-identity/internet_identity.did @@ -209,6 +209,33 @@ type RateLimitConfig = record { max_tokens: nat64; }; +// Captcha configuration +// Default: +// - max_unsolved_captchas: 500 +// - captcha_trigger: Static, CaptchaEnabled +type CaptchaConfig = record { + // Maximum number of unsolved captchas. + max_unsolved_captchas : nat64; + // Configuration for when captcha protection should kick in. + captcha_trigger: variant { + // Based on the rate of registrations compared to some reference time frame and allowing some leeway. + Dynamic: record { + // Percentage of increased registration rate observed in the current rate sampling interval (compared to + // reference rate) at which II will enable captcha for new registrations. + threshold_pct: nat16; + // Length of the interval in seconds used to sample the current rate of registrations. + current_rate_sampling_interval_s: nat64; + // Length of the interval in seconds used to sample the reference rate of registrations. + reference_rate_sampling_interval_s: nat64; + }; + // Statically enable / disable captcha + Static: variant { + CaptchaEnabled; + CaptchaDisabled; + } + }; +}; + // Init arguments of II which can be supplied on install and upgrade. // Setting a value to null keeps the previous value. type InternetIdentityInit = record { @@ -228,9 +255,8 @@ type InternetIdentityInit = record { canister_creation_cycles_cost : opt nat64; // Rate limit for the `register` call. register_rate_limit : opt RateLimitConfig; - // Maximum number of inflight captchas. - // Default: 500 - max_inflight_captchas: opt nat64; + // Configuration of the captcha in the registration flow. + captcha_config: opt CaptchaConfig; }; type ChallengeKey = text; @@ -507,7 +533,9 @@ type SignedIdAlias = record { }; service : (opt InternetIdentityInit) -> { - init_salt: () -> (); + // Legacy identity management API + // ============================== + create_challenge : () -> (Challenge); register : (DeviceData, ChallengeResult, opt principal) -> (RegisterResponse); add : (UserNumber, DeviceData) -> (); @@ -522,27 +550,14 @@ service : (opt InternetIdentityInit) -> { get_anchor_credentials : (UserNumber) -> (AnchorCredentials) query; get_anchor_info : (UserNumber) -> (IdentityAnchorInfo); get_principal : (UserNumber, FrontendHostname) -> (principal) query; - stats : () -> (InternetIdentityStats) query; enter_device_registration_mode : (UserNumber) -> (Timestamp); exit_device_registration_mode : (UserNumber) -> (); add_tentative_device : (UserNumber, DeviceData) -> (AddTentativeDeviceResponse); verify_tentative_device : (UserNumber, verification_code: text) -> (VerifyTentativeDeviceResponse); - prepare_delegation : (UserNumber, FrontendHostname, SessionKey, maxTimeToLive : opt nat64) -> (UserKey, Timestamp); - get_delegation: (UserNumber, FrontendHostname, SessionKey, Timestamp) -> (GetDelegationResponse) query; - - http_request: (request: HttpRequest) -> (HttpResponse) query; - http_request_update: (request: HttpRequest) -> (HttpResponse); - - deploy_archive: (wasm: blob) -> (DeployArchiveResult); - // Returns a batch of entries _sorted by sequence number_ to be archived. - // This is an update call because the archive information _must_ be certified. - // Only callable by this IIs archive canister. - fetch_entries: () -> (vec BufferedArchiveEntry); - acknowledge_entries: (sequence_number: nat64) -> (); - - // V2 API + // V2 Identity Management API + // ========================== // WARNING: The following methods are experimental and may change in the future. // Creates a new captcha. The solution needs to be submitted using the @@ -611,8 +626,32 @@ service : (opt InternetIdentityInit) -> { // Requires authentication. authn_method_confirm: (IdentityNumber, confirmation_code: text) -> (variant {Ok; Err: AuthnMethodConfirmationError;}); + // Authentication protocol + // ======================= + prepare_delegation : (UserNumber, FrontendHostname, SessionKey, maxTimeToLive : opt nat64) -> (UserKey, Timestamp); + get_delegation: (UserNumber, FrontendHostname, SessionKey, Timestamp) -> (GetDelegationResponse) query; + // Attribute Sharing MVP API + // ========================= // The methods below are used to generate ID-alias credentials during attribute sharing flow. prepare_id_alias : (PrepareIdAliasRequest) -> (variant {Ok: PreparedIdAlias; Err: PrepareIdAliasError;}); get_id_alias : (GetIdAliasRequest) -> (variant {Ok: IdAliasCredentials; Err: GetIdAliasError;}) query; + + // HTTP Gateway protocol + // ===================== + http_request: (request: HttpRequest) -> (HttpResponse) query; + http_request_update: (request: HttpRequest) -> (HttpResponse); + + // Internal Methods + // ================ + init_salt: () -> (); + stats : () -> (InternetIdentityStats) query; + config : () -> (InternetIdentityInit) query; + + deploy_archive: (wasm: blob) -> (DeployArchiveResult); + // Returns a batch of entries _sorted by sequence number_ to be archived. + // This is an update call because the archive information _must_ be certified. + // Only callable by this IIs archive canister. + fetch_entries: () -> (vec BufferedArchiveEntry); + acknowledge_entries: (sequence_number: nat64) -> (); } diff --git a/apps/wallet/src/generated/internet-identity/internet_identity.did.d.ts b/apps/wallet/src/generated/internet-identity/internet_identity.did.d.ts index 5ea558216..1dc8ea53d 100644 --- a/apps/wallet/src/generated/internet-identity/internet_identity.did.d.ts +++ b/apps/wallet/src/generated/internet-identity/internet_identity.did.d.ts @@ -71,6 +71,17 @@ export interface BufferedArchiveEntry { 'anchor_number' : UserNumber, 'timestamp' : Timestamp, } +export interface CaptchaConfig { + 'max_unsolved_captchas' : bigint, + 'captcha_trigger' : { + 'Dynamic' : { + 'reference_rate_sampling_interval_s' : bigint, + 'threshold_pct' : number, + 'current_rate_sampling_interval_s' : bigint, + } + } | + { 'Static' : { 'CaptchaDisabled' : null } | { 'CaptchaEnabled' : null } }, +} export type CaptchaResult = ChallengeResult; export interface Challenge { 'png_base64' : string, @@ -178,9 +189,9 @@ export type IdentityRegisterError = { 'BadCaptcha' : null } | { 'InvalidMetadata' : string }; export interface InternetIdentityInit { 'assigned_user_number_range' : [] | [[bigint, bigint]], - 'max_inflight_captchas' : [] | [bigint], 'archive_config' : [] | [ArchiveConfig], 'canister_creation_cycles_cost' : [] | [bigint], + 'captcha_config' : [] | [CaptchaConfig], 'register_rate_limit' : [] | [RateLimitConfig], } export interface InternetIdentityStats { @@ -323,6 +334,7 @@ export interface _SERVICE { { 'Err' : AuthnMethodSecuritySettingsReplaceError } >, 'captcha_create' : ActorMethod<[], { 'Ok' : Challenge } | { 'Err' : null }>, + 'config' : ActorMethod<[], InternetIdentityInit>, 'create_challenge' : ActorMethod<[], Challenge>, 'deploy_archive' : ActorMethod<[Uint8Array | number[]], DeployArchiveResult>, 'enter_device_registration_mode' : ActorMethod<[UserNumber], Timestamp>, diff --git a/apps/wallet/src/generated/internet-identity/internet_identity.did.js b/apps/wallet/src/generated/internet-identity/internet_identity.did.js index c0eb4f82a..baa1177d0 100644 --- a/apps/wallet/src/generated/internet-identity/internet_identity.did.js +++ b/apps/wallet/src/generated/internet-identity/internet_identity.did.js @@ -7,15 +7,29 @@ export const idlFactory = ({ IDL }) => { 'module_hash' : IDL.Vec(IDL.Nat8), 'entries_fetch_limit' : IDL.Nat16, }); + const CaptchaConfig = IDL.Record({ + 'max_unsolved_captchas' : IDL.Nat64, + 'captcha_trigger' : IDL.Variant({ + 'Dynamic' : IDL.Record({ + 'reference_rate_sampling_interval_s' : IDL.Nat64, + 'threshold_pct' : IDL.Nat16, + 'current_rate_sampling_interval_s' : IDL.Nat64, + }), + 'Static' : IDL.Variant({ + 'CaptchaDisabled' : IDL.Null, + 'CaptchaEnabled' : IDL.Null, + }), + }), + }); const RateLimitConfig = IDL.Record({ 'max_tokens' : IDL.Nat64, 'time_per_token_ns' : IDL.Nat64, }); const InternetIdentityInit = IDL.Record({ 'assigned_user_number_range' : IDL.Opt(IDL.Tuple(IDL.Nat64, IDL.Nat64)), - 'max_inflight_captchas' : IDL.Opt(IDL.Nat64), 'archive_config' : IDL.Opt(ArchiveConfig), 'canister_creation_cycles_cost' : IDL.Opt(IDL.Nat64), + 'captcha_config' : IDL.Opt(CaptchaConfig), 'register_rate_limit' : IDL.Opt(RateLimitConfig), }); const UserNumber = IDL.Nat64; @@ -402,6 +416,7 @@ export const idlFactory = ({ IDL }) => { [IDL.Variant({ 'Ok' : Challenge, 'Err' : IDL.Null })], [], ), + 'config' : IDL.Func([], [InternetIdentityInit], ['query']), 'create_challenge' : IDL.Func([], [Challenge], []), 'deploy_archive' : IDL.Func([IDL.Vec(IDL.Nat8)], [DeployArchiveResult], []), 'enter_device_registration_mode' : IDL.Func([UserNumber], [Timestamp], []), @@ -490,15 +505,29 @@ export const init = ({ IDL }) => { 'module_hash' : IDL.Vec(IDL.Nat8), 'entries_fetch_limit' : IDL.Nat16, }); + const CaptchaConfig = IDL.Record({ + 'max_unsolved_captchas' : IDL.Nat64, + 'captcha_trigger' : IDL.Variant({ + 'Dynamic' : IDL.Record({ + 'reference_rate_sampling_interval_s' : IDL.Nat64, + 'threshold_pct' : IDL.Nat16, + 'current_rate_sampling_interval_s' : IDL.Nat64, + }), + 'Static' : IDL.Variant({ + 'CaptchaDisabled' : IDL.Null, + 'CaptchaEnabled' : IDL.Null, + }), + }), + }); const RateLimitConfig = IDL.Record({ 'max_tokens' : IDL.Nat64, 'time_per_token_ns' : IDL.Nat64, }); const InternetIdentityInit = IDL.Record({ 'assigned_user_number_range' : IDL.Opt(IDL.Tuple(IDL.Nat64, IDL.Nat64)), - 'max_inflight_captchas' : IDL.Opt(IDL.Nat64), 'archive_config' : IDL.Opt(ArchiveConfig), 'canister_creation_cycles_cost' : IDL.Opt(IDL.Nat64), + 'captcha_config' : IDL.Opt(CaptchaConfig), 'register_rate_limit' : IDL.Opt(RateLimitConfig), }); return [IDL.Opt(InternetIdentityInit)]; diff --git a/apps/wallet/src/generated/station/station.did b/apps/wallet/src/generated/station/station.did index 0c4bf3522..daa6db816 100644 --- a/apps/wallet/src/generated/station/station.did +++ b/apps/wallet/src/generated/station/station.did @@ -325,6 +325,10 @@ type RequestApproval = record { type TransferOperationInput = record { // The account id to use for the transaction. from_account_id : UUID; + // The asset id to transfer. + from_asset_id : UUID; + // The standard to use for the transfer. + with_standard : text; // The amount to transfer. amount : nat; // The destination address of the transaction (e.g. "1BvBMSE..."). @@ -355,12 +359,27 @@ type TransferOperation = record { fee : opt nat; }; +// Mutate the list of assets. +type ChangeAssets = variant { + // Replace all current assets with the specified list. + ReplaceWith : record { + assets : vec UUID; + }; + // Change the list of assets by adding and removing assets. + Change : record { + add_assets : vec UUID; + remove_assets : vec UUID; + }; +}; + // Input type for editing an account through a request. type EditAccountOperationInput = record { // The account id that will be edited. account_id : UUID; // A friendly name for the account (e.g. "My Account"). name : opt text; + // Mutate the list of assets. + change_assets : opt ChangeAssets; // Who can read the account information. read_permission : opt Allow; // Who can request configuration changes to the account. @@ -382,10 +401,8 @@ type EditAccountOperation = record { type AddAccountOperationInput = record { // A friendly name for the account (e.g. "My Account"). name : text; - // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) - blockchain : text; - // The asset standard for this account (e.g. `native`, `erc20`, etc.). - standard : text; + // The assets to add to the account. + assets : vec UUID; // Metadata associated with the account (e.g. `{"contract": "0x1234", "symbol": "ANY"}`). metadata : vec AccountMetadata; // Who can read the account information. @@ -420,6 +437,8 @@ type AddAddressBookEntryOperationInput = record { address_owner : text; // The actual address. address : text; + // The format of the address, eg. icp_account_identifier + address_format : text; // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) blockchain : text; // Metadata associated with the address book entry (e.g. `{"kyc": "true"}`). @@ -1491,21 +1510,15 @@ type AccountCallerPrivileges = record { type Account = record { // The internal account id. id : UUID; - // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) - blockchain : text; - // The asset symbol, e.g. "ICP" or "BTC". - symbol : AssetSymbol; - // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string - // with spaces replaced with underscores. - standard : text; - // The address of the account (e.g. "0x1234"). - address : text; - // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). - decimals : nat32; + + // The list of assets supported by this account. + assets : vec AccountAsset; + + // The list of addresses associated with the account. + addresses : vec AccountAddress; + // A friendly name for the account. name : text; - // Account balance when available. - balance : opt AccountBalanceInfo; // Metadata associated with the account (e.g. `{"contract": "0x1234", "symbol": "ANY"}`). metadata : vec AccountMetadata; // The transfer approval policy for the account. @@ -1520,6 +1533,25 @@ type Account = record { last_modification_timestamp : TimestampRFC3339; }; +// The seed used to derive the addresses of the account. +type AccountSeed = blob; + +// Record type to describe an address of an account. +type AccountAddress = record { + // The address. + address : text; + // The format of the address, eg. icp_account_identifier. + format : text; +}; + +// Record type to describe an asset of an account. +type AccountAsset = record { + // The asset id. + asset_id : UUID; + // The balance of the asset. + balance : opt AccountBalance; +}; + // Input type for getting a account. type GetAccountInput = record { // The account id to retrieve. @@ -1594,6 +1626,8 @@ type AddressBookEntry = record { address_owner : text; // The actual address. address : text; + // The address format (e.g. "icp_account_identifier"). + address_format : text; // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) blockchain : text; // Metadata associated with the address book entry (e.g. `{"kyc": "true"}`). @@ -2318,13 +2352,31 @@ type InitAccountInput = record { // A friendly name for the account (e.g. "My Account"). name : text; // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) - blockchain : text; + seed : AccountSeed; // The asset standard for this account (e.g. `native`, `erc20`, etc.). - standard : text; + assets : vec UUID; // Metadata associated with the account (e.g. `{"contract": "0x1234", "symbol": "ANY"}`). metadata : vec AccountMetadata; }; +// The initial assets to create when initializing the canister for the first time, e.g., after disaster recovery. +type InitAssetInput = record { + // The UUID of the asset, if not provided a new UUID will be generated. + id : UUID; + // The name of the asset. + name : text; + // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + blockchain : text; + // The standards this asset supports. + standards : vec text; + // The asset symbol, e.g. "ICP" or "BTC". + symbol : text; + // The number of decimals used to format the asset balance. + decimals : nat32; + // Metadata associated with the asset. + metadata : vec AssetMetadata; +}; + // The init configuration for the canister. // // Only used when installing the canister for the first time. @@ -2341,6 +2393,8 @@ type SystemInit = record { fallback_controller : opt principal; // Optional initial accounts to create. accounts : opt vec InitAccountInput; + // Optional initial assets to create. + assets : opt vec InitAssetInput; }; // The upgrade configuration for the canister. diff --git a/apps/wallet/src/generated/station/station.did.d.ts b/apps/wallet/src/generated/station/station.did.d.ts index 15a471139..f702184c3 100644 --- a/apps/wallet/src/generated/station/station.did.d.ts +++ b/apps/wallet/src/generated/station/station.did.d.ts @@ -5,16 +5,17 @@ import type { IDL } from '@dfinity/candid'; export interface Account { 'id' : UUID, 'configs_request_policy' : [] | [RequestPolicyRule], - 'decimals' : number, - 'balance' : [] | [AccountBalanceInfo], 'metadata' : Array, 'name' : string, - 'blockchain' : string, - 'address' : string, + 'assets' : Array, + 'addresses' : Array, 'transfer_request_policy' : [] | [RequestPolicyRule], 'last_modification_timestamp' : TimestampRFC3339, - 'standard' : string, - 'symbol' : AssetSymbol, +} +export interface AccountAddress { 'address' : string, 'format' : string } +export interface AccountAsset { + 'balance' : [] | [AccountBalance], + 'asset_id' : UUID, } export interface AccountBalance { 'account_id' : UUID, @@ -38,6 +39,7 @@ export type AccountResourceAction = { 'List' : null } | { 'Create' : null } | { 'Transfer' : ResourceId } | { 'Update' : ResourceId }; +export type AccountSeed = Uint8Array | number[]; export interface AddAccountOperation { 'account' : [] | [Account], 'input' : AddAccountOperationInput, @@ -48,10 +50,9 @@ export interface AddAccountOperationInput { 'configs_permission' : Allow, 'metadata' : Array, 'name' : string, - 'blockchain' : string, + 'assets' : Array, 'transfer_request_policy' : [] | [RequestPolicyRule], 'transfer_permission' : Allow, - 'standard' : string, } export interface AddAddressBookEntryOperation { 'address_book_entry' : [] | [AddressBookEntry], @@ -62,6 +63,7 @@ export interface AddAddressBookEntryOperationInput { 'labels' : Array, 'blockchain' : string, 'address' : string, + 'address_format' : string, 'address_owner' : string, } export interface AddAssetOperation { @@ -106,6 +108,7 @@ export interface AddressBookEntry { 'blockchain' : string, 'address' : string, 'last_modification_timestamp' : string, + 'address_format' : string, 'address_owner' : string, } export interface AddressBookEntryCallerPrivileges { @@ -202,6 +205,8 @@ export type ChangeAddressBookMetadata = { } | { 'RemoveKeys' : Array } | { 'ReplaceAllBy' : Array }; +export type ChangeAssets = { 'ReplaceWith' : { 'assets' : Array } } | + { 'Change' : { 'add_assets' : Array, 'remove_assets' : Array } }; export interface ChangeExternalCanisterOperation { 'mode' : CanisterInstallMode, 'canister_id' : Principal, @@ -309,6 +314,7 @@ export interface EditAccountOperationInput { 'read_permission' : [] | [Allow], 'configs_permission' : [] | [Allow], 'name' : [] | [string], + 'change_assets' : [] | [ChangeAssets], 'transfer_request_policy' : [] | [RequestPolicyRuleInput], 'transfer_permission' : [] | [Allow], } @@ -588,8 +594,17 @@ export interface InitAccountInput { 'id' : [] | [UUID], 'metadata' : Array, 'name' : string, + 'assets' : Array, + 'seed' : AccountSeed, +} +export interface InitAssetInput { + 'id' : UUID, + 'decimals' : number, + 'standards' : Array, + 'metadata' : Array, + 'name' : string, 'blockchain' : string, - 'standard' : string, + 'symbol' : string, } export interface ListAccountTransfersInput { 'account_id' : UUID, @@ -1117,6 +1132,7 @@ export type SystemInfoResult = { 'Ok' : { 'system' : SystemInfo } } | { 'Err' : Error }; export interface SystemInit { 'name' : string, + 'assets' : [] | [Array], 'fallback_controller' : [] | [Principal], 'upgrader' : SystemUpgraderInput, 'accounts' : [] | [Array], @@ -1175,10 +1191,12 @@ export interface TransferOperation { export interface TransferOperationInput { 'to' : string, 'fee' : [] | [bigint], + 'with_standard' : string, 'from_account_id' : UUID, 'metadata' : Array, 'network' : [] | [Network], 'amount' : bigint, + 'from_asset_id' : UUID, } export type TransferStatus = { 'Failed' : { 'reason' : string } } | { 'Processing' : { 'started_at' : TimestampRFC3339 } } | diff --git a/apps/wallet/src/generated/station/station.did.js b/apps/wallet/src/generated/station/station.did.js index 2434f55ee..9980180de 100644 --- a/apps/wallet/src/generated/station/station.did.js +++ b/apps/wallet/src/generated/station/station.did.js @@ -2,18 +2,29 @@ export const idlFactory = ({ IDL }) => { const RequestPolicyRule = IDL.Rec(); const RequestPolicyRuleResult = IDL.Rec(); const SystemUpgrade = IDL.Record({ 'name' : IDL.Opt(IDL.Text) }); + const UUID = IDL.Text; + const AssetMetadata = IDL.Record({ 'key' : IDL.Text, 'value' : IDL.Text }); + const InitAssetInput = IDL.Record({ + 'id' : UUID, + 'decimals' : IDL.Nat32, + 'standards' : IDL.Vec(IDL.Text), + 'metadata' : IDL.Vec(AssetMetadata), + 'name' : IDL.Text, + 'blockchain' : IDL.Text, + 'symbol' : IDL.Text, + }); const SystemUpgraderInput = IDL.Variant({ 'Id' : IDL.Principal, 'WasmModule' : IDL.Vec(IDL.Nat8), }); - const UUID = IDL.Text; const AccountMetadata = IDL.Record({ 'key' : IDL.Text, 'value' : IDL.Text }); + const AccountSeed = IDL.Vec(IDL.Nat8); const InitAccountInput = IDL.Record({ 'id' : IDL.Opt(UUID), 'metadata' : IDL.Vec(AccountMetadata), 'name' : IDL.Text, - 'blockchain' : IDL.Text, - 'standard' : IDL.Text, + 'assets' : IDL.Vec(UUID), + 'seed' : AccountSeed, }); const AdminInitInput = IDL.Record({ 'name' : IDL.Text, @@ -21,6 +32,7 @@ export const idlFactory = ({ IDL }) => { }); const SystemInit = IDL.Record({ 'name' : IDL.Text, + 'assets' : IDL.Opt(IDL.Vec(InitAssetInput)), 'fallback_controller' : IDL.Opt(IDL.Principal), 'upgrader' : SystemUpgraderInput, 'accounts' : IDL.Opt(IDL.Vec(InitAccountInput)), @@ -67,7 +79,6 @@ export const idlFactory = ({ IDL }) => { 'Ok' : CanisterStatusResponse, 'Err' : Error, }); - const AssetMetadata = IDL.Record({ 'key' : IDL.Text, 'value' : IDL.Text }); const AssetSymbol = IDL.Text; const Asset = IDL.Record({ 'id' : UUID, @@ -447,21 +458,31 @@ export const idlFactory = ({ IDL }) => { const TransferOperationInput = IDL.Record({ 'to' : IDL.Text, 'fee' : IDL.Opt(IDL.Nat), + 'with_standard' : IDL.Text, 'from_account_id' : UUID, 'metadata' : IDL.Vec(TransferMetadata), 'network' : IDL.Opt(Network), 'amount' : IDL.Nat, + 'from_asset_id' : UUID, }); const RequestPolicyRuleInput = IDL.Variant({ 'Set' : RequestPolicyRule, 'Remove' : IDL.Null, }); + const ChangeAssets = IDL.Variant({ + 'ReplaceWith' : IDL.Record({ 'assets' : IDL.Vec(UUID) }), + 'Change' : IDL.Record({ + 'add_assets' : IDL.Vec(UUID), + 'remove_assets' : IDL.Vec(UUID), + }), + }); const EditAccountOperationInput = IDL.Record({ 'account_id' : UUID, 'configs_request_policy' : IDL.Opt(RequestPolicyRuleInput), 'read_permission' : IDL.Opt(Allow), 'configs_permission' : IDL.Opt(Allow), 'name' : IDL.Opt(IDL.Text), + 'change_assets' : IDL.Opt(ChangeAssets), 'transfer_request_policy' : IDL.Opt(RequestPolicyRuleInput), 'transfer_permission' : IDL.Opt(Allow), }); @@ -470,6 +491,7 @@ export const idlFactory = ({ IDL }) => { 'labels' : IDL.Vec(IDL.Text), 'blockchain' : IDL.Text, 'address' : IDL.Text, + 'address_format' : IDL.Text, 'address_owner' : IDL.Text, }); const AddRequestPolicyOperationInput = IDL.Record({ @@ -489,10 +511,9 @@ export const idlFactory = ({ IDL }) => { 'configs_permission' : Allow, 'metadata' : IDL.Vec(AccountMetadata), 'name' : IDL.Text, - 'blockchain' : IDL.Text, + 'assets' : IDL.Vec(UUID), 'transfer_request_policy' : IDL.Opt(RequestPolicyRule), 'transfer_permission' : Allow, - 'standard' : IDL.Text, }); const RequestOperationInput = IDL.Variant({ 'RemoveAsset' : RemoveAssetOperationInput, @@ -610,24 +631,29 @@ export const idlFactory = ({ IDL }) => { const ManageSystemInfoOperation = IDL.Record({ 'input' : ManageSystemInfoOperationInput, }); - const AccountBalanceInfo = IDL.Record({ + const AccountBalance = IDL.Record({ + 'account_id' : UUID, 'decimals' : IDL.Nat32, 'balance' : IDL.Nat, 'last_update_timestamp' : TimestampRFC3339, }); + const AccountAsset = IDL.Record({ + 'balance' : IDL.Opt(AccountBalance), + 'asset_id' : UUID, + }); + const AccountAddress = IDL.Record({ + 'address' : IDL.Text, + 'format' : IDL.Text, + }); const Account = IDL.Record({ 'id' : UUID, 'configs_request_policy' : IDL.Opt(RequestPolicyRule), - 'decimals' : IDL.Nat32, - 'balance' : IDL.Opt(AccountBalanceInfo), 'metadata' : IDL.Vec(AccountMetadata), 'name' : IDL.Text, - 'blockchain' : IDL.Text, - 'address' : IDL.Text, + 'assets' : IDL.Vec(AccountAsset), + 'addresses' : IDL.Vec(AccountAddress), 'transfer_request_policy' : IDL.Opt(RequestPolicyRule), 'last_modification_timestamp' : TimestampRFC3339, - 'standard' : IDL.Text, - 'symbol' : AssetSymbol, }); const TransferOperation = IDL.Record({ 'fee' : IDL.Opt(IDL.Nat), @@ -646,6 +672,7 @@ export const idlFactory = ({ IDL }) => { 'blockchain' : IDL.Text, 'address' : IDL.Text, 'last_modification_timestamp' : IDL.Text, + 'address_format' : IDL.Text, 'address_owner' : IDL.Text, }); const AddAddressBookEntryOperation = IDL.Record({ @@ -780,12 +807,6 @@ export const idlFactory = ({ IDL }) => { const FetchAccountBalancesInput = IDL.Record({ 'account_ids' : IDL.Vec(UUID), }); - const AccountBalance = IDL.Record({ - 'account_id' : UUID, - 'decimals' : IDL.Nat32, - 'balance' : IDL.Nat, - 'last_update_timestamp' : TimestampRFC3339, - }); const FetchAccountBalancesResult = IDL.Variant({ 'Ok' : IDL.Record({ 'balances' : IDL.Vec(AccountBalance) }), 'Err' : Error, @@ -1500,18 +1521,29 @@ export const idlFactory = ({ IDL }) => { }; export const init = ({ IDL }) => { const SystemUpgrade = IDL.Record({ 'name' : IDL.Opt(IDL.Text) }); + const UUID = IDL.Text; + const AssetMetadata = IDL.Record({ 'key' : IDL.Text, 'value' : IDL.Text }); + const InitAssetInput = IDL.Record({ + 'id' : UUID, + 'decimals' : IDL.Nat32, + 'standards' : IDL.Vec(IDL.Text), + 'metadata' : IDL.Vec(AssetMetadata), + 'name' : IDL.Text, + 'blockchain' : IDL.Text, + 'symbol' : IDL.Text, + }); const SystemUpgraderInput = IDL.Variant({ 'Id' : IDL.Principal, 'WasmModule' : IDL.Vec(IDL.Nat8), }); - const UUID = IDL.Text; const AccountMetadata = IDL.Record({ 'key' : IDL.Text, 'value' : IDL.Text }); + const AccountSeed = IDL.Vec(IDL.Nat8); const InitAccountInput = IDL.Record({ 'id' : IDL.Opt(UUID), 'metadata' : IDL.Vec(AccountMetadata), 'name' : IDL.Text, - 'blockchain' : IDL.Text, - 'standard' : IDL.Text, + 'assets' : IDL.Vec(UUID), + 'seed' : AccountSeed, }); const AdminInitInput = IDL.Record({ 'name' : IDL.Text, @@ -1519,6 +1551,7 @@ export const init = ({ IDL }) => { }); const SystemInit = IDL.Record({ 'name' : IDL.Text, + 'assets' : IDL.Opt(IDL.Vec(InitAssetInput)), 'fallback_controller' : IDL.Opt(IDL.Principal), 'upgrader' : SystemUpgraderInput, 'accounts' : IDL.Opt(IDL.Vec(InitAccountInput)), diff --git a/core/control-panel/api/spec.did b/core/control-panel/api/spec.did index 5c08f3e7e..6fd377537 100644 --- a/core/control-panel/api/spec.did +++ b/core/control-panel/api/spec.did @@ -248,9 +248,9 @@ type CanDeployStationResult = variant { // The canister modules required for the control panel. type UploadCanisterModulesInput = record { // The upgrader wasm module to use for the station canister. - upgrader_wasm_module : blob; + upgrader_wasm_module : opt blob; // The station wasm module to use. - station_wasm_module : blob; + station_wasm_module : opt blob; }; // The result of uploading canister modules. diff --git a/core/control-panel/api/src/canister.rs b/core/control-panel/api/src/canister.rs index eef1fa48a..f03b9352c 100644 --- a/core/control-panel/api/src/canister.rs +++ b/core/control-panel/api/src/canister.rs @@ -2,8 +2,8 @@ use candid::{CandidType, Deserialize}; #[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug, Eq, PartialEq)] pub struct UploadCanisterModulesInput { - #[serde(with = "serde_bytes")] - pub upgrader_wasm_module: Vec, - #[serde(with = "serde_bytes")] - pub station_wasm_module: Vec, + #[serde(deserialize_with = "orbit_essentials::deserialize::deserialize_option_blob")] + pub upgrader_wasm_module: Option>, + #[serde(deserialize_with = "orbit_essentials::deserialize::deserialize_option_blob")] + pub station_wasm_module: Option>, } diff --git a/core/control-panel/impl/src/services/canister.rs b/core/control-panel/impl/src/services/canister.rs index 86807958f..f4ef32dd1 100644 --- a/core/control-panel/impl/src/services/canister.rs +++ b/core/control-panel/impl/src/services/canister.rs @@ -51,8 +51,13 @@ impl CanisterService { self.assert_controller(&CallContext::get(), "upload_canister_modules".to_string())?; let mut config = canister_config().unwrap_or_default(); - config.upgrader_wasm_module = input.upgrader_wasm_module; - config.station_wasm_module = input.station_wasm_module; + + if let Some(upgrader_wasm_module) = input.upgrader_wasm_module { + config.upgrader_wasm_module = upgrader_wasm_module; + } + if let Some(station_wasm_module) = input.station_wasm_module { + config.station_wasm_module = station_wasm_module; + } write_canister_config(config); Ok(()) diff --git a/core/control-panel/impl/src/services/deploy.rs b/core/control-panel/impl/src/services/deploy.rs index 09dc2542c..b58284cde 100644 --- a/core/control-panel/impl/src/services/deploy.rs +++ b/core/control-panel/impl/src/services/deploy.rs @@ -108,6 +108,7 @@ impl DeployService { quorum: Some(1), fallback_controller: Some(NNS_ROOT_CANISTER_ID), accounts: None, + assets: None, })) .map_err(|err| DeployError::Failed { reason: err.to_string(), diff --git a/core/station/api/spec.did b/core/station/api/spec.did index 0c4bf3522..daa6db816 100644 --- a/core/station/api/spec.did +++ b/core/station/api/spec.did @@ -325,6 +325,10 @@ type RequestApproval = record { type TransferOperationInput = record { // The account id to use for the transaction. from_account_id : UUID; + // The asset id to transfer. + from_asset_id : UUID; + // The standard to use for the transfer. + with_standard : text; // The amount to transfer. amount : nat; // The destination address of the transaction (e.g. "1BvBMSE..."). @@ -355,12 +359,27 @@ type TransferOperation = record { fee : opt nat; }; +// Mutate the list of assets. +type ChangeAssets = variant { + // Replace all current assets with the specified list. + ReplaceWith : record { + assets : vec UUID; + }; + // Change the list of assets by adding and removing assets. + Change : record { + add_assets : vec UUID; + remove_assets : vec UUID; + }; +}; + // Input type for editing an account through a request. type EditAccountOperationInput = record { // The account id that will be edited. account_id : UUID; // A friendly name for the account (e.g. "My Account"). name : opt text; + // Mutate the list of assets. + change_assets : opt ChangeAssets; // Who can read the account information. read_permission : opt Allow; // Who can request configuration changes to the account. @@ -382,10 +401,8 @@ type EditAccountOperation = record { type AddAccountOperationInput = record { // A friendly name for the account (e.g. "My Account"). name : text; - // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) - blockchain : text; - // The asset standard for this account (e.g. `native`, `erc20`, etc.). - standard : text; + // The assets to add to the account. + assets : vec UUID; // Metadata associated with the account (e.g. `{"contract": "0x1234", "symbol": "ANY"}`). metadata : vec AccountMetadata; // Who can read the account information. @@ -420,6 +437,8 @@ type AddAddressBookEntryOperationInput = record { address_owner : text; // The actual address. address : text; + // The format of the address, eg. icp_account_identifier + address_format : text; // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) blockchain : text; // Metadata associated with the address book entry (e.g. `{"kyc": "true"}`). @@ -1491,21 +1510,15 @@ type AccountCallerPrivileges = record { type Account = record { // The internal account id. id : UUID; - // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) - blockchain : text; - // The asset symbol, e.g. "ICP" or "BTC". - symbol : AssetSymbol; - // The asset standard that is supported (e.g. `erc20`, etc.), canonically represented as a lowercase string - // with spaces replaced with underscores. - standard : text; - // The address of the account (e.g. "0x1234"). - address : text; - // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). - decimals : nat32; + + // The list of assets supported by this account. + assets : vec AccountAsset; + + // The list of addresses associated with the account. + addresses : vec AccountAddress; + // A friendly name for the account. name : text; - // Account balance when available. - balance : opt AccountBalanceInfo; // Metadata associated with the account (e.g. `{"contract": "0x1234", "symbol": "ANY"}`). metadata : vec AccountMetadata; // The transfer approval policy for the account. @@ -1520,6 +1533,25 @@ type Account = record { last_modification_timestamp : TimestampRFC3339; }; +// The seed used to derive the addresses of the account. +type AccountSeed = blob; + +// Record type to describe an address of an account. +type AccountAddress = record { + // The address. + address : text; + // The format of the address, eg. icp_account_identifier. + format : text; +}; + +// Record type to describe an asset of an account. +type AccountAsset = record { + // The asset id. + asset_id : UUID; + // The balance of the asset. + balance : opt AccountBalance; +}; + // Input type for getting a account. type GetAccountInput = record { // The account id to retrieve. @@ -1594,6 +1626,8 @@ type AddressBookEntry = record { address_owner : text; // The actual address. address : text; + // The address format (e.g. "icp_account_identifier"). + address_format : text; // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) blockchain : text; // Metadata associated with the address book entry (e.g. `{"kyc": "true"}`). @@ -2318,13 +2352,31 @@ type InitAccountInput = record { // A friendly name for the account (e.g. "My Account"). name : text; // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) - blockchain : text; + seed : AccountSeed; // The asset standard for this account (e.g. `native`, `erc20`, etc.). - standard : text; + assets : vec UUID; // Metadata associated with the account (e.g. `{"contract": "0x1234", "symbol": "ANY"}`). metadata : vec AccountMetadata; }; +// The initial assets to create when initializing the canister for the first time, e.g., after disaster recovery. +type InitAssetInput = record { + // The UUID of the asset, if not provided a new UUID will be generated. + id : UUID; + // The name of the asset. + name : text; + // The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + blockchain : text; + // The standards this asset supports. + standards : vec text; + // The asset symbol, e.g. "ICP" or "BTC". + symbol : text; + // The number of decimals used to format the asset balance. + decimals : nat32; + // Metadata associated with the asset. + metadata : vec AssetMetadata; +}; + // The init configuration for the canister. // // Only used when installing the canister for the first time. @@ -2341,6 +2393,8 @@ type SystemInit = record { fallback_controller : opt principal; // Optional initial accounts to create. accounts : opt vec InitAccountInput; + // Optional initial assets to create. + assets : opt vec InitAssetInput; }; // The upgrade configuration for the canister. diff --git a/core/station/api/src/account.rs b/core/station/api/src/account.rs index b5a4e67d7..a491ec3dc 100644 --- a/core/station/api/src/account.rs +++ b/core/station/api/src/account.rs @@ -14,22 +14,44 @@ pub struct AccountCallerPrivilegesDTO { pub struct AccountDTO { pub id: UuidDTO, pub name: String, - pub address: String, - pub blockchain: String, - pub standard: String, - pub symbol: String, - pub decimals: u32, - pub balance: Option, + pub assets: Vec, + pub addresses: Vec, pub metadata: Vec, pub transfer_request_policy: Option, pub configs_request_policy: Option, pub last_modification_timestamp: String, } +pub type AccountSeedDTO = [u8; 16]; + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct AccountAssetDTO { + pub asset_id: UuidDTO, + pub balance: Option, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] +pub struct AccountAddressDTO { + pub address: String, + pub format: String, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub enum ChangeAssets { + ReplaceWith { + assets: Vec, + }, + Change { + add_assets: Vec, + remove_assets: Vec, + }, +} + #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] pub struct EditAccountOperationInput { pub account_id: UuidDTO, pub name: Option, + pub change_assets: Option, pub read_permission: Option, pub configs_permission: Option, pub transfer_permission: Option, @@ -45,8 +67,7 @@ pub struct EditAccountOperationDTO { #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] pub struct AddAccountOperationInput { pub name: String, - pub blockchain: String, - pub standard: String, + pub assets: Vec, pub metadata: Vec, pub read_permission: AllowDTO, pub configs_permission: AllowDTO, diff --git a/core/station/api/src/address_book.rs b/core/station/api/src/address_book.rs index 0438463f1..2504ada44 100644 --- a/core/station/api/src/address_book.rs +++ b/core/station/api/src/address_book.rs @@ -6,6 +6,7 @@ pub struct AddressBookEntryDTO { pub id: UuidDTO, pub address_owner: String, pub address: String, + pub address_format: String, pub blockchain: String, pub labels: Vec, pub metadata: Vec, @@ -29,6 +30,7 @@ pub struct AddAddressBookEntryOperationDTO { pub struct AddAddressBookEntryOperationInput { pub address_owner: String, pub address: String, + pub address_format: String, pub blockchain: String, pub metadata: Vec, pub labels: Vec, diff --git a/core/station/api/src/system.rs b/core/station/api/src/system.rs index 5fbfa5e51..e9e55371b 100644 --- a/core/station/api/src/system.rs +++ b/core/station/api/src/system.rs @@ -1,5 +1,5 @@ use super::TimestampRfc3339; -use crate::{DisasterRecoveryCommitteeDTO, MetadataDTO, Sha256HashDTO, UuidDTO}; +use crate::{AccountSeedDTO, DisasterRecoveryCommitteeDTO, MetadataDTO, Sha256HashDTO, UuidDTO}; use candid::{CandidType, Deserialize, Principal}; #[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] @@ -67,9 +67,20 @@ pub enum SystemUpgraderInput { pub struct InitAccountInput { pub id: Option, pub name: String, + pub seed: AccountSeedDTO, + pub assets: Vec, + pub metadata: Vec, +} + +#[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] +pub struct InitAssetInput { + pub id: UuidDTO, + pub name: String, pub blockchain: String, - pub standard: String, + pub standards: Vec, pub metadata: Vec, + pub symbol: String, + pub decimals: u32, } #[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] @@ -86,6 +97,8 @@ pub struct SystemInit { pub fallback_controller: Option, /// Optionally set the initial accounts. pub accounts: Option>, + /// Optionally set the initial accounts. + pub assets: Option>, } #[derive(CandidType, serde::Serialize, Deserialize, Clone, Debug)] diff --git a/core/station/api/src/transfer.rs b/core/station/api/src/transfer.rs index f2f471b78..728f31afb 100644 --- a/core/station/api/src/transfer.rs +++ b/core/station/api/src/transfer.rs @@ -13,6 +13,8 @@ pub struct NetworkDTO { #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] pub struct TransferOperationInput { pub from_account_id: UuidDTO, + pub from_asset_id: UuidDTO, + pub with_standard: String, pub to: String, pub amount: candid::Nat, pub fee: Option, diff --git a/core/station/impl/results.yml b/core/station/impl/results.yml index de7642f18..93cebe6f2 100644 --- a/core/station/impl/results.yml +++ b/core/station/impl/results.yml @@ -1,7 +1,7 @@ benches: batch_insert_100_requests: total: - instructions: 223273648 + instructions: 224426800 heap_increase: 0 stable_memory_increase: 96 scopes: {} @@ -19,37 +19,37 @@ benches: scopes: {} heap_size_of_indexed_request_fields_cache_is_lt_300mib: total: - instructions: 128977905 + instructions: 130787905 heap_increase: 87 stable_memory_increase: 0 scopes: {} list_1k_requests: total: - instructions: 95100088 + instructions: 104112867 heap_increase: 7 stable_memory_increase: 0 scopes: {} list_external_canisters_with_all_statuses: total: - instructions: 201388896 + instructions: 201400896 heap_increase: 0 stable_memory_increase: 0 scopes: {} repository_find_1k_requests_from_10k_dataset_default_filters: total: - instructions: 92122280 + instructions: 92113388 heap_increase: 17 stable_memory_increase: 0 scopes: {} service_filter_5k_requests_from_100k_dataset: total: - instructions: 675449342 + instructions: 680224008 heap_increase: 106 stable_memory_increase: 16 scopes: {} service_find_all_requests_from_2k_dataset: total: - instructions: 273768628 + instructions: 275800951 heap_increase: 44 stable_memory_increase: 16 scopes: {} diff --git a/core/station/impl/src/core/metrics.rs b/core/station/impl/src/core/metrics.rs index 7259b5b03..908b5285a 100644 --- a/core/station/impl/src/core/metrics.rs +++ b/core/station/impl/src/core/metrics.rs @@ -1,3 +1,4 @@ +use crate::core::ic_cdk::api::print; use crate::{ models::{Account, AddressBookEntry, Asset, Request, RequestPolicy, Transfer, User, UserGroup}, repositories::{ @@ -15,6 +16,7 @@ use orbit_essentials::{ repository::Repository, }; use std::{cell::RefCell, collections::BTreeMap, rc::Rc}; +use uuid::Uuid; use super::observer::Observer; @@ -353,17 +355,33 @@ impl ApplicationMetric for MetricAssetsTotalBalance { let mut labeled_totals = BTreeMap::new(); for account in accounts { - let label_key = ( - account.blockchain.to_string().clone(), - account.symbol.clone().to_lowercase(), - ); + for account_asset in &account.assets { + let Some(asset) = ASSET_REPOSITORY.get(&account_asset.asset_id) else { + print(format!( + "Asset `{}` not found in account `{}`", + Uuid::from_bytes(account_asset.asset_id).hyphenated(), + Uuid::from_bytes(account.id).hyphenated() + )); + continue; + }; + + let label_key = ( + asset.blockchain.to_string().clone(), + asset.symbol.clone().to_lowercase(), + ); + + let current_total = labeled_totals.get(&label_key).unwrap_or(&0.0); - let current_total = labeled_totals.get(&label_key).unwrap_or(&0.0); - let balance = account.balance.clone().map(|b| b.to_u64()).unwrap_or(0u64); + let balance = account_asset + .balance + .clone() + .map(|b| b.to_u64()) + .unwrap_or(0u64); - let formatted_balance = amount_to_f64(balance as i128, account.decimals); + let formatted_balance = amount_to_f64(balance as i128, asset.decimals); - labeled_totals.insert(label_key, current_total + formatted_balance); + labeled_totals.insert(label_key, current_total + formatted_balance); + } } for ((blockchain, symbol), total) in labeled_totals.into_iter() { @@ -376,39 +394,66 @@ impl ApplicationMetric for MetricAssetsTotalBalance { } fn sum(&mut self, current: &Account, previous: Option<&Account>) { - let blockchain = current.blockchain.to_string(); - let symbol = current.symbol.clone().to_lowercase(); - let account_labels = - labels! { "blockchain" => blockchain.as_str(), "symbol" => symbol.as_str() }; + if let Some(previous) = previous { + self.sub(previous); + } - let balance = current.balance.clone().map(|b| b.to_u64()).unwrap_or(0u64); + for account_asset in ¤t.assets { + let Some(asset) = ASSET_REPOSITORY.get(&account_asset.asset_id) else { + print(format!( + "Asset `{}` not found in account `{}`", + Uuid::from_bytes(account_asset.asset_id).hyphenated(), + Uuid::from_bytes(current.id).hyphenated() + )); - let previous_balance = previous - .and_then(|p| p.balance.clone().map(|b| b.to_u64())) - .unwrap_or(0u64); + continue; + }; - let diff_balance = balance as i128 - previous_balance as i128; - let current_total = self.get(SERVICE_NAME, &account_labels); + let blockchain = asset.blockchain.to_string(); + let symbol = asset.symbol.clone().to_lowercase(); - let formatted_balance = amount_to_f64(diff_balance, current.decimals); - let new_total = current_total + formatted_balance; + let account_labels = + labels! { "blockchain" => blockchain.as_str(), "symbol" => symbol.as_str() }; - self.set(SERVICE_NAME, &account_labels, new_total.max(0.0)); - } + let balance = account_asset + .balance + .clone() + .map(|b| b.to_u64()) + .unwrap_or(0u64); - fn sub(&mut self, current: &Account) { - let blockchain = current.blockchain.to_string(); - let symbol = current.symbol.clone().to_lowercase(); - let account_labels = - labels! { "blockchain" => blockchain.as_str(), "symbol" => symbol.as_str() }; + let current_total = self.get(SERVICE_NAME, &account_labels); + + let formatted_balance = amount_to_f64(balance as i128, asset.decimals); - let balance = current.balance.clone().map(|b| b.to_u64()).unwrap_or(0u64); + let new_total = current_total + formatted_balance; - let formatted_balance = amount_to_f64(balance as i128, current.decimals); - let current_total = self.get(SERVICE_NAME, &account_labels); + self.set(SERVICE_NAME, &account_labels, new_total.max(0.0)); + } + } - let new_total = current_total - formatted_balance; - self.set(SERVICE_NAME, &account_labels, new_total.max(0.0)); + fn sub(&mut self, current: &Account) { + for account_asset in ¤t.assets { + let Some(asset) = ASSET_REPOSITORY.get(&account_asset.asset_id) else { + continue; + }; + let blockchain = asset.blockchain.to_string(); + let symbol = asset.symbol.clone().to_lowercase(); + + let account_labels = + labels! { "blockchain" => blockchain.as_str(), "symbol" => symbol.as_str() }; + + let balance = account_asset + .balance + .clone() + .map(|b| b.to_u64()) + .unwrap_or(0u64); + + let formatted_balance = amount_to_f64(balance as i128, asset.decimals); + let current_total = self.get(SERVICE_NAME, &account_labels); + + let new_total = current_total - formatted_balance; + self.set(SERVICE_NAME, &account_labels, new_total.max(0.0)); + } } } @@ -502,14 +547,15 @@ mod tests { use crate::{ models::{ account_test_utils::mock_account, - address_book_entry_test_utils::mock_address_book_entry, + address_book_entry_test_utils::mock_address_book_entry, asset_test_utils::mock_asset, request_policy_test_utils::mock_request_policy, request_test_utils::mock_request, transfer_test_utils::mock_transfer, user_group_test_utils, user_test_utils::mock_user, - AccountBalance, Blockchain, RequestStatus, TransferStatus, UserStatus, + AccountAsset, AccountBalance, Blockchain, RequestStatus, TransferStatus, UserStatus, }, repositories::{REQUEST_REPOSITORY, TRANSFER_REPOSITORY}, }; use candid::Nat; + use orbit_essentials::model::ModelKey; #[test] fn test_total_users_metric() { @@ -551,9 +597,12 @@ mod tests { #[test] fn test_total_accounts_metric() { let mut account = mock_account(); - account.blockchain = Blockchain::InternetComputer; - account.symbol = "ICP".to_string(); - + let asset = mock_asset(); + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + account.assets = vec![AccountAsset { + asset_id: asset.key(), + balance: None, + }]; ACCOUNT_REPOSITORY.insert(account.to_key(), account); assert_eq!( @@ -562,9 +611,14 @@ mod tests { ); let mut account = mock_account(); + let asset = mock_asset(); + + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + account.assets = vec![AccountAsset { + asset_id: asset.key(), + balance: None, + }]; account.name = "Test2".to_string(); - account.blockchain = Blockchain::InternetComputer; - account.symbol = "ICP".to_string(); ACCOUNT_REPOSITORY.insert(account.to_key(), account); @@ -629,13 +683,15 @@ mod tests { let blockchain_name = Blockchain::InternetComputer.to_string(); let mut account = mock_account(); - account.blockchain = Blockchain::InternetComputer; - account.symbol = "icp".to_string(); - account.balance = Some(AccountBalance { - balance: Nat::from(1_000_000_000u64), - last_modification_timestamp: 0, - }); - account.decimals = 8; + let asset = mock_asset(); + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + account.assets = vec![AccountAsset { + asset_id: asset.key(), + balance: Some(AccountBalance { + balance: Nat::from(1_000_000_000u64), + last_modification_timestamp: 0, + }), + }]; ACCOUNT_REPOSITORY.insert(account.to_key(), account.clone()); @@ -648,13 +704,15 @@ mod tests { ); let mut account = mock_account(); - account.blockchain = Blockchain::InternetComputer; - account.symbol = "icp".to_string(); - account.balance = Some(AccountBalance { - balance: Nat::from(10_000_000_000u64), - last_modification_timestamp: 0, - }); - account.decimals = 8; + let asset = mock_asset(); + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + account.assets = vec![AccountAsset { + asset_id: asset.key(), + balance: Some(AccountBalance { + balance: Nat::from(10_000_000_000u64), + last_modification_timestamp: 0, + }), + }]; ACCOUNT_REPOSITORY.insert(account.to_key(), account.clone()); @@ -666,10 +724,13 @@ mod tests { 110.00000000 ); - account.balance = Some(AccountBalance { - balance: Nat::from(100_000_000u64), - last_modification_timestamp: 0, - }); + account.assets = vec![AccountAsset { + asset_id: asset.key(), + balance: Some(AccountBalance { + balance: Nat::from(100_000_000u64), + last_modification_timestamp: 0, + }), + }]; ACCOUNT_REPOSITORY.insert(account.to_key(), account.clone()); diff --git a/core/station/impl/src/core/request.rs b/core/station/impl/src/core/request.rs index 98a3b287c..9464e58e2 100644 --- a/core/station/impl/src/core/request.rs +++ b/core/station/impl/src/core/request.rs @@ -404,9 +404,9 @@ mod tests { request_test_utils::mock_request, resource::ResourceIds, user_test_utils::{self, mock_user}, - Account, AccountKey, AddUserGroupOperation, AddUserGroupOperationInput, Blockchain, - BlockchainStandard, EvaluatedRequestPolicyRule, Metadata, MetadataItem, Percentage, - RequestOperation, RequestPolicy, RequestStatus, ADMIN_GROUP_ID, + Account, AccountKey, AddUserGroupOperation, AddUserGroupOperationInput, + EvaluatedRequestPolicyRule, Metadata, MetadataItem, Percentage, RequestOperation, + RequestPolicy, RequestStatus, ADMIN_GROUP_ID, }, repositories::{ request_policy::REQUEST_POLICY_REPOSITORY, ACCOUNT_REPOSITORY, @@ -627,13 +627,10 @@ mod tests { AccountKey { id: [1; 16] }, Account { id: [1; 16], - blockchain: Blockchain::InternetComputer, - address: "a".to_owned(), - standard: BlockchainStandard::Native, - symbol: "S".to_owned(), - decimals: 1, + addresses: vec![], + assets: vec![], + seed: [0; 16], name: "test".to_owned(), - balance: None, metadata: Metadata::default(), transfer_request_policy_id: None, configs_request_policy_id: None, diff --git a/core/station/impl/src/core/standards.rs b/core/station/impl/src/core/standards.rs index fb2e44e38..9391098f8 100644 --- a/core/station/impl/src/core/standards.rs +++ b/core/station/impl/src/core/standards.rs @@ -1,17 +1,17 @@ use lazy_static::lazy_static; -use crate::models::{Blockchain, BlockchainStandard}; +use crate::models::{Blockchain, TokenStandard}; pub struct SupportedBlockchain { pub blockchain: Blockchain, - pub supported_standards: Vec, + pub supported_standards: Vec, } lazy_static! { pub static ref SUPPORTED_BLOCKCHAINS: Vec = { vec![SupportedBlockchain { blockchain: Blockchain::InternetComputer, - supported_standards: vec![BlockchainStandard::Native], + supported_standards: vec![TokenStandard::InternetComputerNative], }] }; } diff --git a/core/station/impl/src/errors/account.rs b/core/station/impl/src/errors/account.rs index 77c0ae8b7..874dde352 100644 --- a/core/station/impl/src/errors/account.rs +++ b/core/station/impl/src/errors/account.rs @@ -8,6 +8,9 @@ pub enum AccountError { /// The requested account was not found. #[error(r#"The requested account was not found."#)] AccountNotFound { id: String }, + /// The associated asset does not exist. + #[error(r#"The associated asset `{id}` does not exist."#)] + AssetDoesNotExist { id: String }, /// The given blockchain is unknown to the system. #[error(r#"The given blockchain is unknown to the system."#)] UnknownBlockchain { blockchain: String }, @@ -22,6 +25,15 @@ pub enum AccountError { r#"The account address is out of range, it must be between {min_length} and {max_length}."# )] InvalidAddressLength { min_length: u8, max_length: u8 }, + /// The address format is unknown to the system. + #[error(r#"The given address format is unknown to the system."#)] + UnknownAddressFormat { address_format: String }, + /// The address is invalid. + #[error(r#"The given address {address} does not comply with {address_format}"#)] + InvalidAddress { + address: String, + address_format: String, + }, /// The account owners selection is out of range. #[error(r#"The account owners selection is out of range, it must be between {min_owners} and {max_owners}."#)] InvalidOwnersRange { min_owners: u8, max_owners: u8 }, diff --git a/core/station/impl/src/errors/blockchain_api.rs b/core/station/impl/src/errors/blockchain_api.rs index 884028534..89fd0d457 100644 --- a/core/station/impl/src/errors/blockchain_api.rs +++ b/core/station/impl/src/errors/blockchain_api.rs @@ -5,9 +5,12 @@ use thiserror::Error; /// Container for blockchain api errors. #[derive(Error, Debug, Eq, PartialEq, Clone)] pub enum BlockchainApiError { - /// Failed to fetch latest account balance from the asset blockchain. - #[error(r#"Failed to fetch latest account balance from the asset blockchain."#)] - FetchBalanceFailed { account_id: String }, + /// Failed to fetch latest asset balance. + #[error(r#"Failed to fetch latest asset balance."#)] + FetchBalanceFailed { asset_id: String }, + /// Invalid address format. + #[error(r#"Invalid address format. Found {found}, expected {expected}"#)] + InvalidAddressFormat { found: String, expected: String }, /// The transaction failed to be submitted. #[error(r#"The transaction failed to be submitted."#)] TransactionSubmitFailed { info: String }, @@ -23,7 +26,9 @@ impl DetailableError for BlockchainApiError { fn details(&self) -> Option> { let mut details = HashMap::new(); match self { - BlockchainApiError::FetchBalanceFailed { account_id } => { + BlockchainApiError::FetchBalanceFailed { + asset_id: account_id, + } => { details.insert("account_id".to_string(), account_id.to_string()); Some(details) } @@ -40,6 +45,11 @@ impl DetailableError for BlockchainApiError { details.insert("error".to_string(), error.to_string()); Some(details) } + BlockchainApiError::InvalidAddressFormat { found, expected } => { + details.insert("found".to_string(), found.to_string()); + details.insert("expected".to_string(), expected.to_string()); + Some(details) + } } } } diff --git a/core/station/impl/src/factories/blockchains/core.rs b/core/station/impl/src/factories/blockchains/core.rs index 6e55a5a10..6b83e11ca 100644 --- a/core/station/impl/src/factories/blockchains/core.rs +++ b/core/station/impl/src/factories/blockchains/core.rs @@ -1,7 +1,9 @@ use super::InternetComputer; use crate::{ errors::FactoryError, - models::{Account, Blockchain, BlockchainStandard, Metadata, Transfer}, + models::{ + Account, AccountAddress, AccountSeed, Asset, Blockchain, Metadata, TokenStandard, Transfer, + }, }; use async_trait::async_trait; use num_bigint::BigUint; @@ -49,10 +51,10 @@ pub trait BlockchainApi: Send + Sync { /// Generates a new address for the given account. /// /// This address is used for token transfers. - async fn generate_address(&self, account: &Account) -> Result; + async fn generate_address(&self, seed: &AccountSeed) -> Result, ApiError>; /// Returns the latest balance of the given account. - async fn balance(&self, account: &Account) -> Result; + async fn balance(&self, asset: &Asset, address: &AccountAddress) -> Result; /// Returns the decimals of the given account. async fn decimals(&self, account: &Account) -> Result; @@ -80,10 +82,10 @@ pub struct BlockchainApiFactory {} impl BlockchainApiFactory { pub fn build( blockchain: &Blockchain, - standard: &BlockchainStandard, + standard: &TokenStandard, ) -> Result, FactoryError> { match (blockchain, standard) { - (Blockchain::InternetComputer, BlockchainStandard::Native) => { + (Blockchain::InternetComputer, TokenStandard::InternetComputerNative) => { Ok(Box::new(InternetComputer::create())) } (blockchain, standard) => Err(FactoryError::UnsupportedBlockchainAccount { diff --git a/core/station/impl/src/factories/blockchains/internet_computer.rs b/core/station/impl/src/factories/blockchains/internet_computer.rs index ff311cc80..674a38ac0 100644 --- a/core/station/impl/src/factories/blockchains/internet_computer.rs +++ b/core/station/impl/src/factories/blockchains/internet_computer.rs @@ -8,7 +8,8 @@ use crate::{ errors::BlockchainApiError, mappers::HelperMapper, models::{ - Account, AccountId, Blockchain, BlockchainStandard, Metadata, Transfer, METADATA_MEMO_KEY, + Account, AccountAddress, AccountSeed, AddressFormat, Asset, Blockchain, Metadata, + TokenStandard, Transfer, METADATA_MEMO_KEY, }, }; use async_trait::async_trait; @@ -67,7 +68,7 @@ pub struct SubmitTransferResponse { impl InternetComputer { pub const BLOCKCHAIN: Blockchain = Blockchain::InternetComputer; - pub const STANDARD: BlockchainStandard = BlockchainStandard::Native; + pub const STANDARD: TokenStandard = TokenStandard::InternetComputerNative; pub const ICP_LEDGER_CANISTER_ID: &'static str = "ryjl3-tyaaa-aaaaa-aaaba-cai"; pub const DECIMALS: u32 = 8; pub const MAIN_NETWORK: InternetComputerNetwork = InternetComputerNetwork::Mainnet; @@ -78,13 +79,13 @@ impl InternetComputer { } } - /// Generates the corresponded subaccount id for the given station_account id. + /// Generates the corresponded subaccount id for the given seed. /// /// The subaccount id is a 32 bytes array that is used to identify a station_account in the ICP ledger. - pub fn subaccount_from_station_account_id(station_account_id: &AccountId) -> [u8; 32] { - let len = station_account_id.len(); + pub fn subaccount_from_seed(seed: &[u8; 16]) -> [u8; 32] { + let len = seed.len(); let mut subaccount_id = [0u8; 32]; - subaccount_id[0..len].copy_from_slice(&station_account_id[0..len]); + subaccount_id[0..len].copy_from_slice(&seed[0..len]); subaccount_id } @@ -103,11 +104,8 @@ impl InternetComputer { /// of the station canister id and the station_account uuid as the subaccount id. /// /// The station_account account id is used to identify a station_account in the ICP ledger. - pub fn station_account_to_ledger_account( - &self, - station_account_id: &AccountId, - ) -> AccountIdentifier { - let subaccount = InternetComputer::subaccount_from_station_account_id(station_account_id); + pub fn station_account_to_ledger_account(&self, seed: &AccountSeed) -> AccountIdentifier { + let subaccount = InternetComputer::subaccount_from_seed(seed); AccountIdentifier::new(&self.station_canister_id, &Subaccount(subaccount)) } @@ -115,25 +113,25 @@ impl InternetComputer { /// Generates the corresponded ledger address for the given station_account id. /// /// This address is used for token transfers. - pub fn station_account_address(&self, station_account_id: &AccountId) -> String { - let account = self.station_account_to_ledger_account(station_account_id); + pub fn station_account_address(&self, seed: &AccountSeed) -> String { + let account = self.station_account_to_ledger_account(seed); account.to_hex() } /// Returns the latest balance of the given station_account. - pub async fn balance(&self, station_account: &Account) -> BlockchainApiResult { + pub async fn balance_of_account_identifier( + &self, + asset: &Asset, + account: &AccountIdentifier, + ) -> BlockchainApiResult { let balance = account_balance( Self::ledger_canister_id(), - AccountBalanceArgs { - account: self.station_account_to_ledger_account(&station_account.id), - }, + AccountBalanceArgs { account: *account }, ) .await .map_err(|_| BlockchainApiError::FetchBalanceFailed { - account_id: Uuid::from_bytes(station_account.id) - .hyphenated() - .to_string(), + asset_id: Uuid::from_bytes(asset.id).hyphenated().to_string(), })?; Ok(balance.e8s()) @@ -175,9 +173,9 @@ impl InternetComputer { created_at_time: Some(Timestamp { timestamp_nanos: current_time, }), - from_subaccount: Some(Subaccount( - InternetComputer::subaccount_from_station_account_id(&station_account.id), - )), + from_subaccount: Some(Subaccount(InternetComputer::subaccount_from_seed( + &station_account.seed, + ))), memo: Memo(memo), to: to_address, }, @@ -250,14 +248,49 @@ impl InternetComputer { #[async_trait] impl BlockchainApi for InternetComputer { - async fn generate_address(&self, station_account: &Account) -> BlockchainApiResult { - Ok(self.station_account_address(&station_account.id)) + async fn generate_address( + &self, + seed: &AccountSeed, + ) -> BlockchainApiResult> { + Ok(vec![AccountAddress { + address: self.station_account_address(seed), + format: AddressFormat::ICPAccountIdentifier, + }]) } - async fn balance(&self, station_account: &Account) -> BlockchainApiResult { - let balance = self.balance(station_account).await?; - - Ok(BigUint::from(balance)) + async fn balance( + &self, + asset: &Asset, + account_address: &AccountAddress, + ) -> BlockchainApiResult { + match account_address.format { + AddressFormat::ICPAccountIdentifier => { + let balance = self + .balance_of_account_identifier( + asset, + &AccountIdentifier::from_hex(&account_address.address).map_err( + |error| BlockchainApiError::InvalidToAddress { + address: account_address.address.clone(), + error, + }, + )?, + ) + .await?; + + Ok(BigUint::from(balance)) + } + AddressFormat::ICRC1Account => todo!(), + AddressFormat::EthereumAddress + | AddressFormat::BitcoinAddressP2WPKH + | AddressFormat::BitcoinAddressP2TR => Err(BlockchainApiError::InvalidAddressFormat { + found: account_address.format.to_string(), + expected: [ + AddressFormat::ICPAccountIdentifier.to_string(), + AddressFormat::ICRC1Account.to_string(), + ] + .join(","), + })?, + } } async fn decimals(&self, _station_account: &Account) -> BlockchainApiResult { diff --git a/core/station/impl/src/factories/requests/add_asset.rs b/core/station/impl/src/factories/requests/add_asset.rs index 63e66941d..fb52d2cc7 100644 --- a/core/station/impl/src/factories/requests/add_asset.rs +++ b/core/station/impl/src/factories/requests/add_asset.rs @@ -59,7 +59,7 @@ impl Execute for AddAssetRequestExecute<'_, '_> { async fn execute(&self) -> Result { let asset = self .asset_service - .create(self.operation.input.clone()) + .create(self.operation.input.clone(), None) .map_err(|e| RequestExecuteError::Failed { reason: format!("Failed to create asset: {}", e), })?; diff --git a/core/station/impl/src/factories/requests/transfer.rs b/core/station/impl/src/factories/requests/transfer.rs index 38151c86c..d3ffb89e8 100644 --- a/core/station/impl/src/factories/requests/transfer.rs +++ b/core/station/impl/src/factories/requests/transfer.rs @@ -1,3 +1,5 @@ +use std::str::FromStr; + use super::{Create, Execute, RequestExecuteStage}; use crate::{ core::generate_uuid_v4, @@ -5,10 +7,10 @@ use crate::{ factories::blockchains::BlockchainApiFactory, mappers::HelperMapper, models::{ - Account, Metadata, Request, RequestExecutionPlan, RequestOperation, Transfer, - TransferOperation, TransferOperationInput, + AccountKey, Metadata, Request, RequestExecutionPlan, RequestOperation, TokenStandard, + Transfer, TransferOperation, TransferOperationInput, }, - repositories::ACCOUNT_REPOSITORY, + repositories::{ACCOUNT_REPOSITORY, ASSET_REPOSITORY}, services::TransferService, }; use async_trait::async_trait; @@ -17,10 +19,6 @@ use orbit_essentials::repository::Repository; use orbit_essentials::types::UUID; use uuid::Uuid; -fn get_account(from_account_id: &UUID) -> Option { - ACCOUNT_REPOSITORY.get(&Account::key(*from_account_id)) -} - pub struct TransferRequestCreate {} #[async_trait] @@ -38,6 +36,11 @@ impl Create for TransferRequestCreate { info: format!("Invalid from_account_id: {}", e), } })?; + let from_asset_id = HelperMapper::to_uuid(operation_input.from_asset_id).map_err(|e| { + RequestError::ValidationError { + info: format!("Invalid from_asset_id: {}", e), + } + })?; let request = Request::new( request_id, requested_by_user, @@ -47,6 +50,11 @@ impl Create for TransferRequestCreate { fee: None, input: TransferOperationInput { from_account_id: *from_account_id.as_bytes(), + from_asset_id: *from_asset_id.as_bytes(), + with_standard: TokenStandard::from_str(&operation_input.with_standard) + .map_err(|_| RequestError::ValidationError { + info: "Invalid with_standard.".to_owned(), + })?, to: operation_input.to, amount: operation_input.amount, fee: operation_input.fee, @@ -92,19 +100,31 @@ impl<'p, 'o> TransferRequestExecute<'p, 'o> { #[async_trait] impl Execute for TransferRequestExecute<'_, '_> { async fn execute(&self) -> Result { - let account = get_account(&self.operation.input.from_account_id).ok_or( - RequestExecuteError::Failed { + let account = ACCOUNT_REPOSITORY + .get(&AccountKey { + id: self.operation.input.from_account_id, + }) + .ok_or(RequestExecuteError::Failed { reason: format!( "Account {} does not exist.", Uuid::from_bytes(self.operation.input.from_account_id).hyphenated() ), - }, - )?; + })?; - let blockchain_api = BlockchainApiFactory::build(&account.blockchain, &account.standard) - .map_err(|e| RequestExecuteError::Failed { - reason: format!("Failed to build blockchain api: {}", e), + let asset = ASSET_REPOSITORY + .get(&self.operation.input.from_asset_id) + .ok_or(RequestExecuteError::Failed { + reason: format!( + "Asset {} does not exist.", + Uuid::from_bytes(self.operation.input.from_asset_id).hyphenated() + ), })?; + + let blockchain_api = + BlockchainApiFactory::build(&asset.blockchain, &self.operation.input.with_standard) + .map_err(|e| RequestExecuteError::Failed { + reason: format!("Failed to build blockchain api: {}", e), + })?; let fee = match &self.operation.input.fee { Some(fee) => fee.clone(), None => { @@ -126,6 +146,8 @@ impl Execute for TransferRequestExecute<'_, '_> { *generate_uuid_v4().await.as_bytes(), self.request.requested_by, self.operation.input.from_account_id, + self.operation.input.from_asset_id, + self.operation.input.with_standard.clone(), self.operation.input.to.clone(), self.operation.input.metadata.clone(), self.operation.input.amount.clone(), diff --git a/core/station/impl/src/jobs/execute_created_transfers.rs b/core/station/impl/src/jobs/execute_created_transfers.rs index e8187df1e..cd6a9143f 100644 --- a/core/station/impl/src/jobs/execute_created_transfers.rs +++ b/core/station/impl/src/jobs/execute_created_transfers.rs @@ -9,7 +9,7 @@ use crate::{ models::{ Account, Request, RequestOperation, RequestStatus, Transfer, TransferId, TransferStatus, }, - repositories::{AccountRepository, RequestRepository, TransferRepository}, + repositories::{AccountRepository, AssetRepository, RequestRepository, TransferRepository}, services::RequestService, }; use async_trait::async_trait; @@ -24,6 +24,7 @@ use uuid::Uuid; pub struct Job { transfer_repository: TransferRepository, account_repository: AccountRepository, + asset_repository: AssetRepository, request_repository: RequestRepository, request_service: RequestService, } @@ -195,10 +196,21 @@ impl Job { ), })?; - let blockchain_api = BlockchainApiFactory::build(&account.blockchain, &account.standard) - .map_err(|e| TransferError::ExecutionError { - reason: format!("Failed to build blockchain api: {}", e), - })?; + let asset = self.asset_repository.get(&transfer.from_asset).ok_or( + TransferError::ValidationError { + info: format!( + "Transfer asset not found for id {}", + Uuid::from_bytes(transfer.from_asset).hyphenated() + ), + }, + )?; + + let blockchain_api = + BlockchainApiFactory::build(&asset.blockchain, &transfer.with_standard).map_err( + |e| TransferError::ExecutionError { + reason: format!("Failed to build blockchain api: {}", e), + }, + )?; match blockchain_api.submit_transaction(&account, &transfer).await { Ok(details) => Ok((transfer, details)), diff --git a/core/station/impl/src/jobs/mod.rs b/core/station/impl/src/jobs/mod.rs index f2db8913e..ed6669d39 100644 --- a/core/station/impl/src/jobs/mod.rs +++ b/core/station/impl/src/jobs/mod.rs @@ -294,16 +294,19 @@ mod test { use crate::jobs::scheduler::Scheduler; use crate::jobs::{execute_created_transfers, execute_scheduled_requests}; use crate::models::account_test_utils::mock_account; + use crate::models::asset_test_utils::mock_asset; use crate::models::transfer_test_utils::mock_transfer; - use crate::models::{Account, RequestStatus}; + use crate::models::{Account, AccountAsset, RequestStatus}; use crate::repositories::{ - RequestRepository, TransferRepository, ACCOUNT_REPOSITORY, TRANSFER_REPOSITORY, + RequestRepository, TransferRepository, ACCOUNT_REPOSITORY, ASSET_REPOSITORY, + TRANSFER_REPOSITORY, }; use crate::{ jobs::{cancel_expired_requests, to_coarse_time, JobStateDatabase, ScheduledJob}, models::{request_test_utils::mock_request, Request}, repositories::REQUEST_REPOSITORY, }; + use orbit_essentials::model::ModelKey; use orbit_essentials::repository::Repository; #[tokio::test] @@ -481,9 +484,16 @@ mod test { let expiration_coarse = to_coarse_time(expiration, cancel_expired_requests::Job::JOB_TOLERANCE_NS); + let asset = mock_asset(); + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + // create one account so transfer requests dont fail let account = Account { id: [1; 16], + assets: vec![AccountAsset { + asset_id: asset.id, + balance: None, + }], ..mock_account() }; ACCOUNT_REPOSITORY.insert(account.to_key(), account); diff --git a/core/station/impl/src/mappers/account.rs b/core/station/impl/src/mappers/account.rs index 144af61dc..e7005fee3 100644 --- a/core/station/impl/src/mappers/account.rs +++ b/core/station/impl/src/mappers/account.rs @@ -1,15 +1,17 @@ +use std::str::FromStr; + use crate::{ core::ic_cdk::next_time, errors::MapperError, models::{ - Account, AccountBalance, AccountCallerPrivileges, AccountId, AddAccountOperationInput, - BlockchainStandard, ACCOUNT_METADATA_SYMBOL_KEY, + Account, AccountAddress, AccountAsset, AccountBalance, AccountCallerPrivileges, AccountId, + AccountSeed, AddAccountOperationInput, AddressFormat, ChangeAssets, }, - repositories::request_policy::REQUEST_POLICY_REPOSITORY, + repositories::{request_policy::REQUEST_POLICY_REPOSITORY, ASSET_REPOSITORY}, }; use ic_cdk::print; use orbit_essentials::{repository::Repository, utils::timestamp_to_rfc3339}; -use station_api::{AccountBalanceDTO, AccountBalanceInfoDTO, AccountDTO}; +use station_api::{AccountAssetDTO, AccountBalanceDTO, AccountDTO}; use uuid::Uuid; #[derive(Default, Clone, Debug)] @@ -20,21 +22,29 @@ impl AccountMapper { AccountDTO { id: Uuid::from_bytes(account.id).hyphenated().to_string(), name: account.name, - decimals: account.decimals, - balance: match account.balance { - Some(balance) => Some(AccountBalanceInfoDTO { - balance: balance.balance, - decimals: account.decimals, - last_update_timestamp: timestamp_to_rfc3339( - &balance.last_modification_timestamp, - ), - }), - None => None, - }, - symbol: account.symbol, - address: account.address, - standard: account.standard.to_string(), - blockchain: account.blockchain.to_string(), + + addresses: account.addresses.into_iter().map(|a| a.into()).collect(), + assets: account + .assets + .into_iter() + .filter_map(|account_asset| { + if let Some(asset) = ASSET_REPOSITORY.get(&account_asset.asset_id) { + Some(AccountMapper::to_account_asset_dto( + account_asset, + asset.decimals, + account.id, + )) + } else { + print(format!( + "Asset {} not found for Account {}", + Uuid::from_bytes(account_asset.asset_id).hyphenated(), + Uuid::from_bytes(account.id).hyphenated() + )); + None + } + }) + .collect(), + metadata: account.metadata.into_vec_dto(), transfer_request_policy: account.transfer_request_policy_id.and_then(|policy_id| { REQUEST_POLICY_REPOSITORY @@ -67,49 +77,23 @@ impl AccountMapper { pub fn from_create_input( input: AddAccountOperationInput, account_id: AccountId, - address: Option, + seed: Option, ) -> Result { - if !input - .blockchain - .supported_standards() - .contains(&input.standard) - { - return Err(MapperError::UnsupportedBlockchainStandard { - blockchain: input.blockchain.to_string(), - supported_standards: input - .blockchain - .supported_standards() - .iter() - .map(|s| s.to_string()) - .collect(), - }); - } - - let symbol = match input.standard { - BlockchainStandard::Native => { - if input.metadata.get(ACCOUNT_METADATA_SYMBOL_KEY).is_some() { - return Err(MapperError::NativeAccountSymbolMetadataNotAllowed); - } - - input.blockchain.native_symbol().to_string() - } - _ => input - .metadata - .get(ACCOUNT_METADATA_SYMBOL_KEY) - .ok_or(MapperError::NonNativeAccountSymbolRequired)?, - }; - let new_account = Account { id: account_id, - blockchain: input.blockchain, - standard: input.standard, name: input.name, - address: address.unwrap_or("".to_string()), - decimals: 0, - symbol, + seed: seed.unwrap_or(account_id), + addresses: vec![], + assets: input + .assets + .iter() + .map(|asset_id| AccountAsset { + asset_id: *asset_id, + balance: None, + }) + .collect(), transfer_request_policy_id: None, configs_request_policy_id: None, - balance: None, metadata: input.metadata, last_modification_timestamp: next_time(), }; @@ -129,6 +113,21 @@ impl AccountMapper { last_update_timestamp: timestamp_to_rfc3339(&balance.last_modification_timestamp), } } + + pub fn to_account_asset_dto( + account_asset: AccountAsset, + decimals: u32, + account_id: AccountId, + ) -> AccountAssetDTO { + AccountAssetDTO { + asset_id: Uuid::from_bytes(account_asset.asset_id) + .hyphenated() + .to_string(), + balance: account_asset + .balance + .map(|balance| Self::to_balance_dto(balance, decimals, account_id)), + } + } } impl Account { @@ -146,3 +145,74 @@ impl From for station_api::AccountCallerPrivilegesDTO { } } } + +impl From for station_api::AccountAddressDTO { + fn from(account_address: AccountAddress) -> Self { + Self { + address: account_address.address, + format: account_address.format.to_string(), + } + } +} + +impl From for AccountAddress { + fn from(address: station_api::AccountAddressDTO) -> Self { + Self { + address: address.address, + format: AddressFormat::from_str(address.format.as_str()) + .expect("Failed to convert string to AddressFormat"), + } + } +} + +impl From for station_api::ChangeAssets { + fn from(change_assets: ChangeAssets) -> Self { + match change_assets { + ChangeAssets::ReplaceWith { assets } => station_api::ChangeAssets::ReplaceWith { + assets: assets + .iter() + .map(|id| Uuid::from_bytes(*id).hyphenated().to_string()) + .collect(), + }, + ChangeAssets::Change { + add_assets, + remove_assets, + } => station_api::ChangeAssets::Change { + add_assets: add_assets + .iter() + .map(|id| Uuid::from_bytes(*id).hyphenated().to_string()) + .collect(), + remove_assets: remove_assets + .iter() + .map(|id| Uuid::from_bytes(*id).hyphenated().to_string()) + .collect(), + }, + } + } +} + +impl From for ChangeAssets { + fn from(change_assets: station_api::ChangeAssets) -> Self { + match change_assets { + station_api::ChangeAssets::ReplaceWith { assets } => ChangeAssets::ReplaceWith { + assets: assets + .iter() + .map(|id| *Uuid::from_str(id).expect("Invalid asset ID").as_bytes()) + .collect(), + }, + station_api::ChangeAssets::Change { + add_assets, + remove_assets, + } => ChangeAssets::Change { + add_assets: add_assets + .iter() + .map(|id| *Uuid::from_str(id).expect("Invalid asset ID").as_bytes()) + .collect(), + remove_assets: remove_assets + .iter() + .map(|id| *Uuid::from_str(id).expect("Invalid asset ID").as_bytes()) + .collect(), + }, + } + } +} diff --git a/core/station/impl/src/mappers/address_book.rs b/core/station/impl/src/mappers/address_book.rs index e3263bb12..16d4324f6 100644 --- a/core/station/impl/src/mappers/address_book.rs +++ b/core/station/impl/src/mappers/address_book.rs @@ -24,6 +24,7 @@ impl AddressBookMapper { .to_string(), address_owner: address_book_entry.address_owner, address: address_book_entry.address, + address_format: address_book_entry.address_format.to_string(), blockchain: address_book_entry.blockchain.to_string(), metadata: address_book_entry.metadata.into_vec_dto(), labels: address_book_entry.labels, @@ -41,6 +42,7 @@ impl AddressBookMapper { id: entry_id, address_owner: input.address_owner, address: input.address, + address_format: input.address_format, blockchain: input.blockchain, labels: input.labels, metadata: input.metadata.into(), diff --git a/core/station/impl/src/mappers/blockchain.rs b/core/station/impl/src/mappers/blockchain.rs index 1f91aae77..43855e664 100644 --- a/core/station/impl/src/mappers/blockchain.rs +++ b/core/station/impl/src/mappers/blockchain.rs @@ -1,6 +1,6 @@ use crate::{ errors::MapperError, - models::{Blockchain, BlockchainStandard}, + models::{Blockchain, TokenStandard}, }; use std::str::FromStr; @@ -15,8 +15,8 @@ impl BlockchainMapper { Ok(blockchain) } - pub fn to_blockchain_standard(standard: String) -> Result { - let standard = BlockchainStandard::from_str(standard.as_str()).map_err(|_| { + pub fn to_blockchain_standard(standard: String) -> Result { + let standard = TokenStandard::from_str(standard.as_str()).map_err(|_| { MapperError::UnknownBlockchainStandard { blockchain_standard: standard, } diff --git a/core/station/impl/src/mappers/helper.rs b/core/station/impl/src/mappers/helper.rs index f12628b21..e0765b753 100644 --- a/core/station/impl/src/mappers/helper.rs +++ b/core/station/impl/src/mappers/helper.rs @@ -30,6 +30,14 @@ impl HelperMapper { nat: amount.to_string(), }) } + + pub fn nat_to_u128(amount: Nat) -> Result { + (&amount.0) + .try_into() + .map_err(|_| MapperError::NatConversionError { + nat: amount.to_string(), + }) + } } #[cfg(test)] diff --git a/core/station/impl/src/mappers/request_operation.rs b/core/station/impl/src/mappers/request_operation.rs index d1738af4d..d0c0964b9 100644 --- a/core/station/impl/src/mappers/request_operation.rs +++ b/core/station/impl/src/mappers/request_operation.rs @@ -1,3 +1,5 @@ +use std::str::FromStr; + use super::{blockchain::BlockchainMapper, HelperMapper}; use crate::{ models::{ @@ -10,7 +12,7 @@ use crate::{ Account, AccountKey, AddAccountOperation, AddAccountOperationInput, AddAddressBookEntryOperation, AddAddressBookEntryOperationInput, AddAssetOperation, AddAssetOperationInput, AddRequestPolicyOperation, AddRequestPolicyOperationInput, - AddUserOperation, AddUserOperationInput, AddressBookEntry, Asset, + AddUserOperation, AddUserOperationInput, AddressBookEntry, AddressFormat, Asset, CallExternalCanisterOperation, CallExternalCanisterOperationInput, CanisterInstallMode, CanisterInstallModeArgs, CanisterMethod, CanisterReinstallModeArgs, CanisterUpgradeModeArgs, ChangeExternalCanisterOperation, @@ -60,6 +62,10 @@ impl TransferOperation { from_account_id: Uuid::from_bytes(self.input.from_account_id) .hyphenated() .to_string(), + from_asset_id: Uuid::from_bytes(self.input.from_asset_id) + .hyphenated() + .to_string(), + with_standard: self.input.with_standard.to_string(), amount: self.input.amount, to: self.input.to, fee: self.input.fee, @@ -83,8 +89,12 @@ impl AddAccountOperation { account: account.map(|account: Account| account.to_dto()), input: station_api::AddAccountOperationInput { name: self.input.name, - blockchain: self.input.blockchain.to_string(), - standard: self.input.standard.to_string(), + assets: self + .input + .assets + .into_iter() + .map(|id| Uuid::from_bytes(id).hyphenated().to_string()) + .collect(), metadata: self.input.metadata.into_vec_dto(), read_permission: self.input.read_permission.into(), transfer_permission: self.input.transfer_permission.into(), @@ -113,10 +123,15 @@ impl From for AddAccountOperationInput { fn from(input: station_api::AddAccountOperationInput) -> AddAccountOperationInput { AddAccountOperationInput { name: input.name, - blockchain: BlockchainMapper::to_blockchain(input.blockchain.clone()) - .expect("Invalid blockchain"), - standard: BlockchainMapper::to_blockchain_standard(input.standard) - .expect("Invalid blockchain standard"), + assets: input + .assets + .iter() + .map(|id| { + *HelperMapper::to_uuid(id.clone()) + .expect("Invalid asset id") + .as_bytes() + }) + .collect(), metadata: input.metadata.into(), read_permission: input.read_permission.into(), configs_permission: input.configs_permission.into(), @@ -135,6 +150,10 @@ impl From for EditAccountOperationDTO { .hyphenated() .to_string(), name: operation.input.name, + change_assets: operation + .input + .change_assets + .map(|change_assets| change_assets.into()), read_permission: operation.input.read_permission.map(|policy| policy.into()), transfer_permission: operation .input @@ -163,6 +182,9 @@ impl From for EditAccountOperationInput account_id: *HelperMapper::to_uuid(input.account_id) .expect("Invalid account id") .as_bytes(), + change_assets: input + .change_assets + .map(|change_assets| change_assets.into()), name: input.name, read_permission: input.read_permission.map(|policy| policy.into()), transfer_permission: input.transfer_permission.map(|policy| policy.into()), @@ -184,6 +206,7 @@ impl AddAddressBookEntryOperation { input: station_api::AddAddressBookEntryOperationInput { address_owner: self.input.address_owner, address: self.input.address, + address_format: self.input.address_format.to_string(), blockchain: self.input.blockchain.to_string(), metadata: self.input.metadata.into_iter().map(Into::into).collect(), labels: self.input.labels, @@ -198,6 +221,8 @@ impl From for AddAddressBookEntr ) -> AddAddressBookEntryOperationInput { AddAddressBookEntryOperationInput { address_owner: input.address_owner, + address_format: AddressFormat::from_str(&input.address_format) + .expect("Invalid address format"), address: input.address, blockchain: BlockchainMapper::to_blockchain(input.blockchain.clone()) .expect("Invalid blockchain"), diff --git a/core/station/impl/src/migration.rs b/core/station/impl/src/migration.rs index bf9a617bf..9b7f013c7 100644 --- a/core/station/impl/src/migration.rs +++ b/core/station/impl/src/migration.rs @@ -13,8 +13,8 @@ use crate::models::resource::{ Resource, ResourceAction, ResourceId, ResourceIds, SystemResourceAction, }; use crate::models::{ - AddRequestPolicyOperationInput, Asset, Blockchain, BlockchainStandard, - EditPermissionOperationInput, Metadata, + AddRequestPolicyOperationInput, Asset, Blockchain, EditPermissionOperationInput, Metadata, + TokenStandard, }; use crate::repositories::permission::PERMISSION_REPOSITORY; use crate::repositories::{ @@ -136,7 +136,7 @@ fn apply_migration() { id: Uuid::new_v4().as_bytes().to_owned(), metadata: Metadata::default(), name: "Internet Computer".to_string(), - standards: BTreeSet::from([BlockchainStandard::Native]), + standards: BTreeSet::from([TokenStandard::InternetComputerNative]), symbol: "ICP".to_string(), }; diff --git a/core/station/impl/src/models/account.rs b/core/station/impl/src/models/account.rs index 4fc52ce3e..8deb24a7c 100644 --- a/core/station/impl/src/models/account.rs +++ b/core/station/impl/src/models/account.rs @@ -1,8 +1,10 @@ -use super::{AccountBalance, Blockchain, BlockchainStandard}; -use crate::errors::AccountError; +use super::{AccountBalance, AssetId}; +use crate::core::validation::{EnsureAsset, EnsureIdExists}; +use crate::errors::{AccountError, RecordValidationError}; use crate::models::Metadata; use crate::repositories::request_policy::REQUEST_POLICY_REPOSITORY; use candid::{CandidType, Deserialize}; +use ic_ledger_types::AccountIdentifier; use orbit_essentials::model::ModelKey; use orbit_essentials::repository::Repository; use orbit_essentials::storable; @@ -10,13 +12,13 @@ use orbit_essentials::{ model::{ModelValidator, ModelValidatorResult}, types::{Timestamp, UUID}, }; +use std::fmt; +use std::str::FromStr; use std::{collections::HashMap, hash::Hash}; -/// The account metadata key for the asset symbol; -pub const ACCOUNT_METADATA_SYMBOL_KEY: &str = "symbol"; - /// The account id, which is a UUID. pub type AccountId = UUID; +pub type AccountSeed = UUID; /// Represents a account in the system. /// @@ -27,20 +29,14 @@ pub type AccountId = UUID; pub struct Account { /// The account id, which is a UUID. pub id: AccountId, - /// The blockchain type (e.g. `icp`, `eth`, `btc`) - pub blockchain: Blockchain, - /// The account address (e.g. `0x1234`, etc.) - pub address: String, - /// The blockchain standard (e.g. `native`, `icrc1`, `erc20`, etc.) - pub standard: BlockchainStandard, - /// The asset symbol (e.g. `ICP`, `ETH`, `BTC`, etc.) - pub symbol: String, - /// The asset decimals (e.g. `8` for `BTC`, `18` for `ETH`, etc.) - pub decimals: u32, /// The account name (e.g. `My Main Account`) pub name: String, - /// The account balance, which is the amount of the asset that the account holds. - pub balance: Option, + /// The seed for address creation. + pub seed: AccountSeed, + /// The list of assets this account holds. + pub assets: Vec, + /// The list of addresses that belong to this account. + pub addresses: Vec, /// The account metadata, which is a list of key-value pairs, /// where the key is unique and the first entry in the tuple, /// and the value is the second entry in the tuple. @@ -72,40 +68,102 @@ impl ModelKey for Account { } } -#[derive(CandidType, Deserialize, Debug, Clone)] -pub struct AccountCallerPrivileges { - pub id: UUID, - pub can_edit: bool, - pub can_transfer: bool, +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct AccountAsset { + pub asset_id: AssetId, + pub balance: Option, } -fn validate_symbol(symbol: &str) -> ModelValidatorResult { - if (symbol.len() < Account::SYMBOL_RANGE.0 as usize) - || (symbol.len() > Account::SYMBOL_RANGE.1 as usize) - { - return Err(AccountError::ValidationError { - info: format!( - "Account symbol length must be between {} and {}", - Account::SYMBOL_RANGE.0, - Account::SYMBOL_RANGE.1 - ), - }); +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct AccountAddress { + pub address: String, + pub format: AddressFormat, +} + +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum AddressFormat { + ICPAccountIdentifier, + ICRC1Account, + EthereumAddress, + BitcoinAddressP2WPKH, + BitcoinAddressP2TR, +} + +impl fmt::Display for AddressFormat { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + AddressFormat::ICPAccountIdentifier => write!(f, "icp_account_identifier"), + AddressFormat::ICRC1Account => write!(f, "icrc1_account"), + AddressFormat::EthereumAddress => write!(f, "ethereum_address"), + AddressFormat::BitcoinAddressP2WPKH => write!(f, "bitcoin_address_p2wpkh"), + AddressFormat::BitcoinAddressP2TR => write!(f, "bitcoin_address_p2tr"), + } } +} - Ok(()) +impl FromStr for AddressFormat { + type Err = AccountError; + + fn from_str(s: &str) -> Result { + match s { + "icp_account_identifier" => Ok(AddressFormat::ICPAccountIdentifier), + "icrc1_account" => Ok(AddressFormat::ICRC1Account), + "ethereum_address" => Ok(AddressFormat::EthereumAddress), + "bitcoin_address_p2wpkh" => Ok(AddressFormat::BitcoinAddressP2WPKH), + "bitcoin_address_p2tr" => Ok(AddressFormat::BitcoinAddressP2TR), + _ => Err(AccountError::UnknownAddressFormat { + address_format: s.to_string(), + }), + } + } } -fn validate_address(address: &str) -> ModelValidatorResult { - if (address.len() < Account::ADDRESS_RANGE.0 as usize) - || (address.len() > Account::ADDRESS_RANGE.1 as usize) - { - return Err(AccountError::InvalidAddressLength { - min_length: Account::ADDRESS_RANGE.0, - max_length: Account::ADDRESS_RANGE.1, - }); +impl AddressFormat { + pub fn validate_address(&self, address: &str) -> ModelValidatorResult { + match self { + AddressFormat::ICPAccountIdentifier => AccountIdentifier::from_hex(address) + .map_err(|_| AccountError::InvalidAddress { + address: address.to_string(), + address_format: self.to_string(), + }) + .map(|_| ()), + AddressFormat::ICRC1Account => todo!(), + AddressFormat::EthereumAddress => todo!(), + AddressFormat::BitcoinAddressP2WPKH => todo!(), + AddressFormat::BitcoinAddressP2TR => todo!(), + } } +} - Ok(()) +impl AccountAddress { + const ADDRESS_RANGE: (u8, u8) = (1, 255); +} + +impl ModelValidator for AccountAddress { + fn validate(&self) -> ModelValidatorResult { + if (self.address.len() < AccountAddress::ADDRESS_RANGE.0 as usize) + || (self.address.len() > AccountAddress::ADDRESS_RANGE.1 as usize) + { + return Err(AccountError::InvalidAddressLength { + min_length: AccountAddress::ADDRESS_RANGE.0, + max_length: AccountAddress::ADDRESS_RANGE.1, + }); + } + + self.format.validate_address(&self.address)?; + + Ok(()) + } +} + +#[derive(CandidType, Deserialize, Debug, Clone)] +pub struct AccountCallerPrivileges { + pub id: UUID, + pub can_edit: bool, + pub can_transfer: bool, } fn validate_policy_id(policy_id: &UUID, field_name: &str) -> ModelValidatorResult { @@ -117,11 +175,25 @@ fn validate_policy_id(policy_id: &UUID, field_name: &str) -> ModelValidatorResul Ok(()) } +fn validate_asset_id(asset_id: &AssetId) -> ModelValidatorResult { + EnsureAsset::id_exists(asset_id).map_err(|err| match err { + RecordValidationError::NotFound { id, .. } => AccountError::AssetDoesNotExist { id }, + })?; + + Ok(()) +} + impl ModelValidator for Account { fn validate(&self) -> ModelValidatorResult { self.metadata.validate()?; - validate_symbol(&self.symbol)?; - validate_address(&self.address)?; + + for asset in &self.assets { + validate_asset_id(&asset.asset_id)?; + } + + for address in &self.addresses { + address.validate()?; + } if let Some(transfer_request_policy_id) = &self.transfer_request_policy_id { validate_policy_id(transfer_request_policy_id, "transfer_request_policy_id")?; @@ -159,54 +231,29 @@ mod tests { use super::account_test_utils::mock_account; use super::*; - #[test] - fn fail_symbol_validation_too_short() { - let mut account = mock_account(); - account.symbol = "a".repeat(0); - - let result = validate_symbol(&account.symbol); - - assert!(result.is_err()); - assert_eq!( - result.unwrap_err(), - AccountError::ValidationError { - info: "Account symbol length must be between 1 and 8".to_string() - } - ); - } + const VALID_ACCOUNT_IDENTIFIER: &str = + "5c76bc95e544204de4928e4d901e52b49df248b9c346807040e7af75aa61f4b3"; #[test] - fn fail_symbol_validation_too_long() { - let mut account = mock_account(); - account.symbol = "a".repeat(Account::SYMBOL_RANGE.1 as usize + 1); + fn fail_address_format_invalid() { + let format = AddressFormat::ICPAccountIdentifier; - let result = validate_symbol(&account.symbol); + format + .validate_address("foo") + .expect_err("foo is not a valid AccountIdentifier"); - assert!(result.is_err()); - assert_eq!( - result.unwrap_err(), - AccountError::ValidationError { - info: "Account symbol length must be between 1 and 8".to_string() - } - ); + format + .validate_address(VALID_ACCOUNT_IDENTIFIER) + .expect("The address is valid"); } - #[test] - fn test_symbol_validation() { - let mut account = mock_account(); - account.symbol = "a".to_string(); - - let result = validate_symbol(&account.symbol); + fn fail_address_length_invalid() { + let mut account_address: AccountAddress = AccountAddress { + address: "".to_string(), + format: AddressFormat::ICPAccountIdentifier, + }; - assert!(result.is_ok()); - } - - #[test] - fn fail_address_too_short() { - let mut account = mock_account(); - account.address = "".to_string(); - - let result = validate_address(&account.address); + let result = account_address.validate(); assert!(result.is_err()); assert_eq!( @@ -216,14 +263,10 @@ mod tests { max_length: 255 } ); - } - #[test] - fn fail_address_too_long() { - let mut account = mock_account(); - account.address = "a".repeat(Account::ADDRESS_RANGE.1 as usize + 1); + account_address.address = "a".repeat(Account::ADDRESS_RANGE.1 as usize + 1); - let result = validate_address(&account.address); + let result = account_address.validate(); assert!(result.is_err()); assert_eq!( @@ -235,16 +278,6 @@ mod tests { ); } - #[test] - fn test_address_validation() { - let mut account = mock_account(); - account.address = "a".to_string(); - - let result = validate_address(&account.address); - - assert!(result.is_ok()); - } - #[test] fn fail_missing_policy_id() { let mut account = mock_account(); @@ -279,21 +312,33 @@ mod tests { pub mod account_test_utils { use super::*; use crate::repositories::ACCOUNT_REPOSITORY; + use candid::Principal; + use ic_ledger_types::Subaccount; use orbit_essentials::repository::Repository; use uuid::Uuid; pub fn mock_account() -> Account { + let id = *Uuid::new_v4().as_bytes(); + Account { - id: *Uuid::new_v4().as_bytes(), - address: "0x1234".to_string(), - balance: None, - blockchain: Blockchain::InternetComputer, - decimals: 0u32, + id, name: "foo".to_string(), - standard: BlockchainStandard::Native, + + seed: id, + + assets: vec![AccountAsset { + asset_id: [0; 16], + balance: None, + }], + + addresses: vec![AccountAddress { + address: AccountIdentifier::new(&Principal::anonymous(), &Subaccount([0; 32])) + .to_hex(), + format: AddressFormat::ICPAccountIdentifier, + }], + last_modification_timestamp: 0, metadata: Metadata::mock(), - symbol: "ICP".to_string(), transfer_request_policy_id: None, configs_request_policy_id: None, } diff --git a/core/station/impl/src/models/address_book.rs b/core/station/impl/src/models/address_book.rs index fc4120dfd..49a0ef913 100644 --- a/core/station/impl/src/models/address_book.rs +++ b/core/station/impl/src/models/address_book.rs @@ -1,4 +1,4 @@ -use super::Blockchain; +use super::{AddressFormat, Blockchain}; use crate::errors::AddressBookError; use crate::models::Metadata; use candid::{CandidType, Deserialize}; @@ -25,6 +25,8 @@ pub struct AddressBookEntry { pub address: String, /// The blockchain type (e.g. `icp`, `eth`, `btc`) pub blockchain: Blockchain, + /// The address' format. + pub address_format: AddressFormat, /// The address' metadata. pub metadata: Metadata, /// The labels associated with the address. @@ -265,6 +267,7 @@ pub mod address_book_entry_test_utils { id: *Uuid::new_v4().as_bytes(), address_owner: "foo".to_string(), address: "0x1234".to_string(), + address_format: AddressFormat::ICPAccountIdentifier, labels: Vec::new(), blockchain: Blockchain::InternetComputer, metadata: Metadata::mock(), diff --git a/core/station/impl/src/models/asset.rs b/core/station/impl/src/models/asset.rs index cb1446302..3e4b10ee8 100644 --- a/core/station/impl/src/models/asset.rs +++ b/core/station/impl/src/models/asset.rs @@ -4,7 +4,7 @@ use orbit_essentials::{ types::UUID, }; -use super::{Blockchain, BlockchainStandard}; +use super::{Blockchain, TokenStandard}; use crate::{errors::AssetError, models::Metadata, repositories::ASSET_REPOSITORY}; use std::{ collections::BTreeSet, @@ -19,9 +19,9 @@ pub struct Asset { pub id: AssetId, /// The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) pub blockchain: Blockchain, - // The asset standard that is supported (e.g. `erc20`, `native`, etc.), canonically + // The asset standard that is supported (e.g. `erc20`, `icp_native`, etc.), canonically // represented as a lowercase string with spaces replaced with underscores. - pub standards: BTreeSet, + pub standards: BTreeSet, /// The asset symbol (e.g. `ICP`, `BTC`, `ETH`, etc.) pub symbol: String, /// The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) @@ -146,7 +146,7 @@ pub mod asset_test_utils { use std::collections::BTreeSet; - use crate::models::{Blockchain, BlockchainStandard, Metadata}; + use crate::models::{Blockchain, Metadata, TokenStandard}; use super::Asset; @@ -154,13 +154,25 @@ pub mod asset_test_utils { Asset { id: [0; 16], blockchain: Blockchain::InternetComputer, - standards: BTreeSet::from([BlockchainStandard::Native]), + standards: BTreeSet::from([TokenStandard::InternetComputerNative]), symbol: "ICP".to_string(), name: "Internet Computer".to_string(), decimals: 8, metadata: Metadata::default(), } } + + pub fn mock_asset_b() -> Asset { + Asset { + id: [1; 16], + blockchain: Blockchain::InternetComputer, + standards: BTreeSet::from([TokenStandard::InternetComputerNative]), + symbol: "TEST".to_string(), + name: "Other Test Asset".to_string(), + decimals: 8, + metadata: Metadata::default(), + } + } } #[cfg(test)] diff --git a/core/station/impl/src/models/blockchain.rs b/core/station/impl/src/models/blockchain.rs index 224e67866..205b74be3 100644 --- a/core/station/impl/src/models/blockchain.rs +++ b/core/station/impl/src/models/blockchain.rs @@ -1,4 +1,4 @@ -use super::BlockchainStandard; +use super::TokenStandard; use candid::CandidType; use orbit_essentials::storable; use std::fmt::{Display, Formatter}; @@ -23,13 +23,13 @@ impl Blockchain { } /// The list of standards that the blockchain supports. - pub fn supported_standards(&self) -> Vec { + pub fn supported_standards(&self) -> Vec { match self { Blockchain::InternetComputer => { - vec![BlockchainStandard::Native, BlockchainStandard::ICRC1] + vec![TokenStandard::InternetComputerNative, TokenStandard::ICRC1] } - Blockchain::Ethereum => vec![BlockchainStandard::Native, BlockchainStandard::ERC20], - Blockchain::Bitcoin => vec![BlockchainStandard::Native], + Blockchain::Ethereum => vec![], + Blockchain::Bitcoin => vec![], } } } @@ -85,18 +85,9 @@ mod tests { fn match_supported_standards() { assert!(Blockchain::InternetComputer .supported_standards() - .contains(&BlockchainStandard::Native)); + .contains(&TokenStandard::InternetComputerNative)); assert!(Blockchain::InternetComputer .supported_standards() - .contains(&BlockchainStandard::ICRC1)); - assert!(Blockchain::Ethereum - .supported_standards() - .contains(&BlockchainStandard::Native)); - assert!(Blockchain::Ethereum - .supported_standards() - .contains(&BlockchainStandard::ERC20)); - assert!(Blockchain::Bitcoin - .supported_standards() - .contains(&BlockchainStandard::Native)); + .contains(&TokenStandard::ICRC1)); } } diff --git a/core/station/impl/src/models/blockchain_standard.rs b/core/station/impl/src/models/blockchain_standard.rs index 7a612bd31..d5c73956f 100644 --- a/core/station/impl/src/models/blockchain_standard.rs +++ b/core/station/impl/src/models/blockchain_standard.rs @@ -1,18 +1,42 @@ -use candid::CandidType; use orbit_essentials::storable; use std::{ fmt::{Display, Formatter}, str::FromStr, }; +use super::AddressFormat; + +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct TokenStandardInfo { + pub name: String, + pub address_formats: Vec, +} + #[storable] -#[derive(CandidType, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] -pub enum BlockchainStandard { - Native, +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum TokenStandard { + InternetComputerNative, ICRC1, - ERC20, + // ERC20, } +impl TokenStandard { + pub fn get_info(&self) -> TokenStandardInfo { + match self { + TokenStandard::InternetComputerNative => TokenStandardInfo { + name: "icp_native".to_owned(), + address_formats: vec![AddressFormat::ICPAccountIdentifier], + }, + TokenStandard::ICRC1 => TokenStandardInfo { + name: "icrc1".to_owned(), + address_formats: vec![AddressFormat::ICRC1Account], + }, + } + } +} + +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub enum StandardOperation { Balance, Transfer, @@ -28,53 +52,48 @@ impl std::fmt::Display for StandardOperation { } } -impl BlockchainStandard { +impl TokenStandard { + pub const METADATA_KEY_LEDGER_CANISTER_ID: &'static str = "ledger_canister_id"; + pub const METADATA_KEY_INDEX_CANISTER_ID: &'static str = "index_canister_id"; + pub fn get_required_metadata(&self) -> Vec { match self { - BlockchainStandard::Native => vec![ - "ledger_canister_id".to_string(), - "index_canister_id".to_string(), - ], - BlockchainStandard::ICRC1 => vec![ - "ledger_canister_id".to_string(), - "index_canister_id".to_string(), + TokenStandard::ICRC1 | TokenStandard::InternetComputerNative => vec![ + Self::METADATA_KEY_LEDGER_CANISTER_ID.to_string(), + Self::METADATA_KEY_INDEX_CANISTER_ID.to_string(), ], - BlockchainStandard::ERC20 => vec!["contract_address".to_string()], } } pub fn get_supported_operations(&self) -> Vec { match self { - BlockchainStandard::Native => vec![ + TokenStandard::InternetComputerNative => vec![ StandardOperation::Balance, StandardOperation::Transfer, StandardOperation::ListTransfers, ], - BlockchainStandard::ICRC1 => vec![], - BlockchainStandard::ERC20 => vec![], + TokenStandard::ICRC1 => vec![], } } } -impl FromStr for BlockchainStandard { +impl FromStr for TokenStandard { type Err = (); - fn from_str(variant: &str) -> Result { + fn from_str(variant: &str) -> Result { match variant { - "native" => Ok(BlockchainStandard::Native), - "icrc1" => Ok(BlockchainStandard::ICRC1), - "erc20" => Ok(BlockchainStandard::ERC20), + "icp_native" => Ok(TokenStandard::InternetComputerNative), + "icrc1" => Ok(TokenStandard::ICRC1), _ => Err(()), } } } -impl Display for BlockchainStandard { +impl Display for TokenStandard { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { match self { - BlockchainStandard::Native => write!(f, "native"), - BlockchainStandard::ERC20 => write!(f, "erc20"), - BlockchainStandard::ICRC1 => write!(f, "icrc1"), + TokenStandard::InternetComputerNative => write!(f, "icp_native"), + TokenStandard::ICRC1 => write!(f, "icrc1"), } } } @@ -85,20 +104,18 @@ mod tests { #[test] fn blockchain_standard_match_string_representation() { - assert_eq!(BlockchainStandard::Native.to_string(), "native"); assert_eq!( - BlockchainStandard::from_str("native").unwrap(), - BlockchainStandard::Native + TokenStandard::InternetComputerNative.to_string(), + "icp_native" ); - assert_eq!(BlockchainStandard::ICRC1.to_string(), "icrc1"); assert_eq!( - BlockchainStandard::from_str("icrc1").unwrap(), - BlockchainStandard::ICRC1 + TokenStandard::from_str("icp_native").unwrap(), + TokenStandard::InternetComputerNative ); - assert_eq!(BlockchainStandard::ERC20.to_string(), "erc20"); + assert_eq!(TokenStandard::ICRC1.to_string(), "icrc1"); assert_eq!( - BlockchainStandard::from_str("erc20").unwrap(), - BlockchainStandard::ERC20 + TokenStandard::from_str("icrc1").unwrap(), + TokenStandard::ICRC1 ); } } diff --git a/core/station/impl/src/models/indexes/transfer_account_index.rs b/core/station/impl/src/models/indexes/transfer_account_index.rs index 6c901dab3..08ce941dd 100644 --- a/core/station/impl/src/models/indexes/transfer_account_index.rs +++ b/core/station/impl/src/models/indexes/transfer_account_index.rs @@ -53,6 +53,8 @@ mod tests { request_id: [0; 16], fee: candid::Nat(BigUint::from(0u32)), from_account: [1; 16], + from_asset: [2; 16], + with_standard: crate::models::TokenStandard::InternetComputerNative, to_address: "0x1234".to_string(), status: TransferStatus::Created, initiator_user: [2; 16], diff --git a/core/station/impl/src/models/request.rs b/core/station/impl/src/models/request.rs index ec07c5c36..db8f1e8ce 100644 --- a/core/station/impl/src/models/request.rs +++ b/core/station/impl/src/models/request.rs @@ -1,7 +1,7 @@ use super::request_policy_rule::{RequestEvaluationResult, RequestPolicyRuleInput}; use super::{ - DisplayUser, EvaluationStatus, RequestApproval, RequestApprovalStatus, RequestOperation, - RequestStatus, UserId, UserKey, + ChangeAssets, DisplayUser, EvaluationStatus, RequestApproval, RequestApprovalStatus, + RequestOperation, RequestStatus, UserId, UserKey, }; use crate::core::evaluation::{ Evaluate, REQUEST_APPROVE_RIGHTS_REQUEST_POLICY_RULE_EVALUATOR, REQUEST_POLICY_RULE_EVALUATOR, @@ -176,6 +176,19 @@ fn validate_request_operation_foreign_keys( { policy_rule.validate()?; } + + if let Some(ChangeAssets::ReplaceWith { assets }) = &op.input.change_assets { + EnsureAsset::id_list_exists(assets)?; + } + + if let Some(ChangeAssets::Change { + add_assets, + remove_assets, + }) = &op.input.change_assets + { + EnsureAsset::id_list_exists(add_assets)?; + EnsureAsset::id_list_exists(remove_assets)?; + } } RequestOperation::AddAddressBookEntry(_) => (), RequestOperation::EditAddressBookEntry(op) => { @@ -420,10 +433,12 @@ mod tests { use crate::core::validation::disable_mock_resource_validation; use crate::models::permission::Allow; use crate::models::{ - AddAccountOperationInput, AddUserOperation, AddUserOperationInput, Metadata, - TransferOperation, TransferOperationInput, + Account, AccountKey, AddAccountOperationInput, AddAssetOperationInput, AddUserOperation, + AddUserOperationInput, Blockchain, Metadata, TokenStandard, TransferOperation, + TransferOperationInput, }; - use crate::services::AccountService; + use crate::repositories::ACCOUNT_REPOSITORY; + use crate::services::{AccountService, AssetService}; use super::request_test_utils::mock_request; use super::*; @@ -472,13 +487,26 @@ mod tests { async fn test_request_operation_is_valid() { disable_mock_resource_validation(); + let asset = AssetService::default() + .create( + AddAssetOperationInput { + name: "a".to_owned(), + symbol: "a".to_owned(), + decimals: 0, + metadata: Metadata::default(), + blockchain: Blockchain::InternetComputer, + standards: vec![TokenStandard::InternetComputerNative], + }, + None, + ) + .expect("Failed to create asset"); + let account_service = AccountService::default(); let account = account_service .create_account( AddAccountOperationInput { name: "a".to_owned(), - blockchain: crate::models::Blockchain::InternetComputer, - standard: crate::models::BlockchainStandard::Native, + assets: vec![asset.id], metadata: Metadata::default(), read_permission: Allow::default(), configs_permission: Allow::default(), @@ -502,6 +530,8 @@ mod tests { metadata: Metadata::default(), to: "0x1234".to_string(), from_account_id: account.id, + from_asset_id: asset.id, + with_standard: TokenStandard::InternetComputerNative, }, }); @@ -524,6 +554,8 @@ mod tests { metadata: Metadata::default(), to: "0x1234".to_string(), from_account_id: [0; 16], + from_asset_id: [0; 16], + with_standard: TokenStandard::InternetComputerNative, }, })) .expect_err("Invalid account id should fail"); @@ -593,8 +625,7 @@ mod tests { account_id: None, input: crate::models::AddAccountOperationInput { name: "a".to_owned(), - blockchain: crate::models::Blockchain::InternetComputer, - standard: crate::models::BlockchainStandard::Native, + assets: vec![], metadata: Metadata::default(), read_permission: Allow { auth_scope: crate::models::permission::AuthScope::Restricted, @@ -614,6 +645,7 @@ mod tests { crate::models::EditAccountOperation { input: crate::models::EditAccountOperationInput { account_id: [0; 16], + change_assets: None, read_permission: None, configs_permission: None, transfer_permission: None, @@ -625,6 +657,41 @@ mod tests { )) .expect_err("Invalid account id should fail"); + ACCOUNT_REPOSITORY.insert( + AccountKey { id: [0; 16] }, + Account { + id: [0; 16], + name: "a".to_owned(), + seed: [0; 16], + assets: vec![], + addresses: vec![], + metadata: Metadata::default(), + transfer_request_policy_id: None, + configs_request_policy_id: None, + last_modification_timestamp: 0, + }, + ); + + validate_request_operation_foreign_keys(&RequestOperation::EditAccount( + crate::models::EditAccountOperation { + input: crate::models::EditAccountOperationInput { + account_id: [0; 16], + change_assets: Some(ChangeAssets::ReplaceWith { + assets: vec![[0; 16]], + }), + read_permission: None, + configs_permission: None, + transfer_permission: None, + configs_request_policy: None, + transfer_request_policy: None, + name: None, + }, + }, + )) + .expect_err("Invalid asset id should fail"); + + ACCOUNT_REPOSITORY.clear(); + validate_request_operation_foreign_keys(&RequestOperation::EditAddressBookEntry( crate::models::EditAddressBookEntryOperation { input: crate::models::EditAddressBookEntryOperationInput { @@ -681,7 +748,7 @@ mod tests { pub mod request_test_utils { use super::*; use crate::models::{ - Metadata, RequestApprovalStatus, TransferOperation, TransferOperationInput, + Metadata, RequestApprovalStatus, TokenStandard, TransferOperation, TransferOperationInput, }; use num_bigint::BigUint; use uuid::Uuid; @@ -705,6 +772,8 @@ pub mod request_test_utils { metadata: Metadata::default(), to: "0x1234".to_string(), from_account_id: [1; 16], + from_asset_id: [0; 16], + with_standard: TokenStandard::InternetComputerNative, }, }), approvals: vec![RequestApproval { diff --git a/core/station/impl/src/models/request_operation.rs b/core/station/impl/src/models/request_operation.rs index 627e86c40..aad94d4fb 100644 --- a/core/station/impl/src/models/request_operation.rs +++ b/core/station/impl/src/models/request_operation.rs @@ -3,9 +3,9 @@ use super::{ request_policy_rule::{RequestPolicyRule, RequestPolicyRuleInput}, request_specifier::RequestSpecifier, resource::{Resource, ValidationMethodResourceTarget}, - AccountId, AddressBookEntryId, AssetId, Blockchain, BlockchainStandard, ChangeMetadata, - CycleObtainStrategy, DisasterRecoveryCommittee, ExternalCanisterCallPermission, - ExternalCanisterState, MetadataItem, UserGroupId, UserId, UserStatus, + AccountAsset, AccountId, AddressBookEntryId, AddressFormat, AssetId, Blockchain, + ChangeMetadata, CycleObtainStrategy, DisasterRecoveryCommittee, ExternalCanisterCallPermission, + ExternalCanisterState, MetadataItem, TokenStandard, UserGroupId, UserId, UserStatus, }; use crate::core::validation::EnsureExternalCanister; use crate::errors::ValidationError; @@ -14,7 +14,7 @@ use candid::Principal; use orbit_essentials::cdk::api::management_canister::main::{self as mgmt}; use orbit_essentials::model::{ModelValidator, ModelValidatorResult}; use orbit_essentials::{storable, types::UUID}; -use std::fmt::Display; +use std::{collections::HashSet, fmt::Display}; #[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, strum::VariantNames)] @@ -98,7 +98,7 @@ pub struct AddAssetOperationInput { pub decimals: u32, pub metadata: Metadata, pub blockchain: Blockchain, - pub standards: Vec, + pub standards: Vec, } #[storable] @@ -116,7 +116,7 @@ pub struct EditAssetOperationInput { pub decimals: Option, pub change_metadata: Option, pub blockchain: Option, - pub standards: Option>, + pub standards: Option>, } #[storable] @@ -143,6 +143,8 @@ pub struct TransferOperation { #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct TransferOperationInput { pub from_account_id: AccountId, + pub from_asset_id: AssetId, + pub with_standard: TokenStandard, pub to: String, pub amount: candid::Nat, pub metadata: Metadata, @@ -162,8 +164,7 @@ pub struct AddAccountOperation { #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct AddAccountOperationInput { pub name: String, - pub blockchain: Blockchain, - pub standard: BlockchainStandard, + pub assets: Vec, pub metadata: Metadata, pub read_permission: Allow, pub configs_permission: Allow, @@ -178,10 +179,55 @@ pub struct EditAccountOperation { pub input: EditAccountOperationInput, } +#[storable] +#[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub enum ChangeAssets { + ReplaceWith { + assets: Vec, + }, + Change { + add_assets: Vec, + remove_assets: Vec, + }, +} + +impl ChangeAssets { + pub fn apply(&self, assets: &mut Vec) { + match self { + ChangeAssets::ReplaceWith { assets: new_assets } => { + *assets = new_assets + .iter() + .map(|asset_id| AccountAsset { + asset_id: *asset_id, + balance: None, + }) + .collect(); + } + ChangeAssets::Change { + add_assets, + remove_assets, + } => { + let existing_assets: HashSet<_> = assets.iter().map(|a| a.asset_id).collect(); + for asset_id in add_assets { + if !existing_assets.contains(asset_id) { + assets.push(AccountAsset { + asset_id: *asset_id, + balance: None, + }); + } + } + + assets.retain(|a| !remove_assets.contains(&a.asset_id)); + } + } + } +} + #[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct EditAccountOperationInput { pub account_id: AccountId, + pub change_assets: Option, pub name: Option, pub read_permission: Option, pub configs_permission: Option, @@ -203,6 +249,7 @@ pub struct AddAddressBookEntryOperation { pub struct AddAddressBookEntryOperationInput { pub address_owner: String, pub address: String, + pub address_format: AddressFormat, pub blockchain: Blockchain, #[serde(default)] pub labels: Vec, @@ -622,3 +669,42 @@ pub struct ManageSystemInfoOperationInput { pub struct ManageSystemInfoOperation { pub input: ManageSystemInfoOperationInput, } + +#[cfg(test)] +mod test { + use crate::models::AccountAsset; + + use super::ChangeAssets; + + #[test] + fn test_change_assets() { + let mut assets: Vec = [[3; 16], [9; 16], [10; 16], [11; 16], [13; 16]] + .into_iter() + .map(|id| AccountAsset { + asset_id: id, + balance: None, + }) + .collect(); + + ChangeAssets::Change { + // 3 already exists, should not be added twice + add_assets: vec![[0; 16], [1; 16], [2; 16], [3; 16]], + // 12 doesn't exist, should not be in an issue + remove_assets: vec![[10; 16], [11; 16], [12; 16]], + } + .apply(&mut assets); + + assert_eq!(assets.len(), 5 + 3 - 2); + + assert!(!assets.iter().any(|a| a.asset_id == [10; 16])); + assert!(!assets.iter().any(|a| a.asset_id == [11; 16])); + assert!(!assets.iter().any(|a| a.asset_id == [12; 16])); + + assert!(assets.iter().any(|a| a.asset_id == [0; 16])); + assert!(assets.iter().any(|a| a.asset_id == [1; 16])); + assert!(assets.iter().any(|a| a.asset_id == [2; 16])); + assert!(assets.iter().any(|a| a.asset_id == [3; 16])); + + assert_eq!(assets.iter().filter(|a| a.asset_id == [3; 16]).count(), 1); + } +} diff --git a/core/station/impl/src/models/request_policy_rule.rs b/core/station/impl/src/models/request_policy_rule.rs index bf805c464..167e068df 100644 --- a/core/station/impl/src/models/request_policy_rule.rs +++ b/core/station/impl/src/models/request_policy_rule.rs @@ -8,14 +8,18 @@ use super::{ use crate::{ core::{ic_cdk::api::print, utils::calculate_minimum_threshold}, errors::{MatchError, ValidationError}, - repositories::{UserWhereClause, ADDRESS_BOOK_REPOSITORY, USER_REPOSITORY}, + repositories::{UserWhereClause, ADDRESS_BOOK_REPOSITORY, ASSET_REPOSITORY, USER_REPOSITORY}, services::ACCOUNT_SERVICE, }; -use orbit_essentials::model::{ModelKey, ModelValidator, ModelValidatorResult}; use orbit_essentials::storable; +use orbit_essentials::{ + model::{ModelKey, ModelValidator, ModelValidatorResult}, + repository::Repository, +}; use station_api::EvaluationSummaryReasonDTO; use std::{cmp, hash::Hash}; use std::{collections::HashSet, sync::Arc}; +use uuid::Uuid; #[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] @@ -413,14 +417,27 @@ impl }); } Ok(account) => { - let is_in_address_book = ADDRESS_BOOK_REPOSITORY - .exists(account.blockchain, transfer.input.to.clone()); - - if is_in_address_book { - return Ok(RequestPolicyRuleResult { - status: EvaluationStatus::Approved, - evaluated_rule: EvaluatedRequestPolicyRule::AllowListed, - }); + for account_asset in account.assets { + let Some(asset) = ASSET_REPOSITORY.get(&account_asset.asset_id) + else { + print(format!( + "Asset `{}` not found in account `{}`.", + Uuid::from_bytes(account_asset.asset_id).hyphenated(), + Uuid::from_bytes(account.id).hyphenated() + )); + + continue; + }; + + let is_in_address_book = ADDRESS_BOOK_REPOSITORY + .exists(asset.blockchain, transfer.input.to.clone()); + + if is_in_address_book { + return Ok(RequestPolicyRuleResult { + status: EvaluationStatus::Approved, + evaluated_rule: EvaluatedRequestPolicyRule::AllowListed, + }); + } } } } diff --git a/core/station/impl/src/models/request_specifier.rs b/core/station/impl/src/models/request_specifier.rs index 53df45068..fa2a111af 100644 --- a/core/station/impl/src/models/request_specifier.rs +++ b/core/station/impl/src/models/request_specifier.rs @@ -7,13 +7,15 @@ use crate::core::validation::{ use crate::errors::ValidationError; use crate::models::resource::{CallExternalCanisterResourceTarget, ExternalCanisterId}; use crate::models::user::User; -use crate::repositories::ADDRESS_BOOK_REPOSITORY; +use crate::repositories::{ADDRESS_BOOK_REPOSITORY, ASSET_REPOSITORY}; use crate::services::ACCOUNT_SERVICE; use crate::{errors::MatchError, repositories::USER_REPOSITORY}; +use orbit_essentials::cdk::api::print; use orbit_essentials::model::{ModelValidator, ModelValidatorResult}; use orbit_essentials::repository::Repository; use orbit_essentials::storable; use orbit_essentials::types::UUID; +use uuid::Uuid; #[storable] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] @@ -247,13 +249,30 @@ impl Match for AddressBookMetadataMatcher { Ok(match request.operation.to_owned() { RequestOperation::Transfer(transfer) => { if let Ok(account) = ACCOUNT_SERVICE.get_account(&transfer.input.from_account_id) { - if let Some(address_book_entry) = ADDRESS_BOOK_REPOSITORY - .find_by_address(account.blockchain, transfer.input.to) - { - address_book_entry.metadata.contains(&metadata) - } else { - false + let mut found = false; + + for account_asset in account.assets { + let Some(asset) = ASSET_REPOSITORY.get(&account_asset.asset_id) else { + print(format!( + "Could not load asset `{}` in account `{}`", + Uuid::from_bytes(account_asset.asset_id).hyphenated(), + Uuid::from_bytes(account.id).hyphenated(), + )); + + continue; + }; + + if let Some(address_book_entry) = ADDRESS_BOOK_REPOSITORY + .find_by_address(asset.blockchain, transfer.input.to.clone()) + { + if address_book_entry.metadata.contains(&metadata) { + found = true; + break; + } + } } + + found } else { false } diff --git a/core/station/impl/src/models/transfer.rs b/core/station/impl/src/models/transfer.rs index 746ed3b6f..d6eea5ab1 100644 --- a/core/station/impl/src/models/transfer.rs +++ b/core/station/impl/src/models/transfer.rs @@ -1,4 +1,4 @@ -use super::{AccountId, UserId}; +use super::{AccountId, AssetId, TokenStandard, UserId}; use crate::core::ic_cdk::next_time; use crate::core::validation::{EnsureAccount, EnsureIdExists, EnsureRequest, EnsureUser}; use crate::errors::{RecordValidationError, TransferError}; @@ -58,6 +58,10 @@ pub struct Transfer { pub initiator_user: UserId, /// The account id that the transfer is from. pub from_account: AccountId, + /// The asset id that the transfer is from. + pub from_asset: AssetId, + /// The token standard that the transfer is associated with. + pub with_standard: TokenStandard, /// The destination address of the transfer. pub to_address: String, /// The current status of the transfer. @@ -114,6 +118,8 @@ impl Transfer { transfer_id: UUID, initiator_user: UUID, from_account: UUID, + from_asset: UUID, + with_standard: TokenStandard, to_address: String, metadata: Metadata, amount: candid::Nat, @@ -126,6 +132,8 @@ impl Transfer { id: transfer_id, initiator_user, from_account, + from_asset, + with_standard, to_address, request_id, status: TransferStatus::Created, @@ -318,6 +326,8 @@ pub mod transfer_test_utils { id: *Uuid::new_v4().as_bytes(), initiator_user: [0; 16], from_account: [0; 16], + from_asset: [0; 16], + with_standard: TokenStandard::InternetComputerNative, request_id: [2; 16], to_address: "x".repeat(255), status: TransferStatus::Created, diff --git a/core/station/impl/src/services/account.rs b/core/station/impl/src/services/account.rs index 44c56b707..b5b5996f3 100644 --- a/core/station/impl/src/services/account.rs +++ b/core/station/impl/src/services/account.rs @@ -15,21 +15,26 @@ use crate::{ request_specifier::RequestSpecifier, resource::{AccountResourceAction, Resource, ResourceId, ResourceIds}, Account, AccountBalance, AccountCallerPrivileges, AccountId, AddAccountOperationInput, - AddRequestPolicyOperationInput, Blockchain, BlockchainStandard, CycleObtainStrategy, - EditAccountOperationInput, EditPermissionOperationInput, + AddRequestPolicyOperationInput, AddressFormat, Blockchain, CycleObtainStrategy, + EditAccountOperationInput, EditPermissionOperationInput, MetadataItem, StandardOperation, + TokenStandard, + }, + repositories::{ + AccountRepository, AccountWhereClause, AssetRepository, ACCOUNT_REPOSITORY, + ASSET_REPOSITORY, }, - repositories::{AccountRepository, AccountWhereClause, ACCOUNT_REPOSITORY}, services::{ permission::{PermissionService, PERMISSION_SERVICE}, RequestPolicyService, REQUEST_POLICY_SERVICE, }, }; +use ic_ledger_types::MAINNET_LEDGER_CANISTER_ID; use lazy_static::lazy_static; use orbit_essentials::{ api::ServiceResult, model::ModelValidator, repository::Repository, types::UUID, }; use station_api::{AccountBalanceDTO, FetchAccountBalancesInput, ListAccountsInput}; -use std::sync::Arc; +use std::{collections::HashSet, sync::Arc}; use uuid::Uuid; use super::SYSTEM_SERVICE; @@ -39,6 +44,7 @@ lazy_static! { Arc::clone(&REQUEST_POLICY_SERVICE), Arc::clone(&PERMISSION_SERVICE), Arc::clone(&ACCOUNT_REPOSITORY), + Arc::clone(&ASSET_REPOSITORY) )); } @@ -47,6 +53,7 @@ pub struct AccountService { request_policy_service: Arc, permission_service: Arc, account_repository: Arc, + asset_repository: Arc, } impl AccountService { @@ -57,11 +64,13 @@ impl AccountService { request_policy_service: Arc, permission_service: Arc, account_repository: Arc, + asset_repository: Arc, ) -> Self { Self { request_policy_service, permission_service, account_repository, + asset_repository, } } @@ -143,16 +152,30 @@ impl AccountService { info: format!("Account with id {} already exists", uuid.hyphenated()), })? } - let blockchain_api = - BlockchainApiFactory::build(&input.blockchain.clone(), &input.standard.clone())?; + let mut new_account = AccountMapper::from_create_input(input.to_owned(), *uuid.as_bytes(), None)?; - // The account address is generated after the account is created from the user input and - // all the validations are successfully completed. - if new_account.address.is_empty() { - let account_address = blockchain_api.generate_address(&new_account).await?; - new_account.address = account_address; + let dedulicated_asset_ids = input.assets.iter().cloned().collect::>(); + + for asset_id in dedulicated_asset_ids.iter() { + let asset = self.asset_repository.get(asset_id).ok_or_else(|| { + AccountError::ValidationError { + info: format!( + "Asset with id {} not found", + Uuid::from_bytes(*asset_id).hyphenated() + ), + } + })?; + + for standard in asset.standards.iter() { + let blockchain_api = + BlockchainApiFactory::build(&asset.blockchain.clone(), &standard.clone())?; + + let account_addresses = blockchain_api.generate_address(&new_account.seed).await?; + + new_account.addresses.extend(account_addresses); + } } if let Some(criteria) = &input.transfer_request_policy { @@ -166,10 +189,6 @@ impl AccountService { input.configs_permission.validate()?; input.transfer_permission.validate()?; - // The decimals of the asset are fetched from the blockchain and stored in the account, - // depending on the blockchain standard used by the account the decimals used by each asset can vary. - new_account.decimals = blockchain_api.decimals(&new_account).await?; - // Validate here before database operations. new_account.validate()?; @@ -248,23 +267,41 @@ impl AccountService { // if this is the first account created, and there is no cycle minting account set, set this account as the cycle minting account if system_info.get_cycle_obtain_strategy() == &CycleObtainStrategy::Disabled && ACCOUNT_REPOSITORY.len() == 1 - && matches!(new_account.blockchain, Blockchain::InternetComputer) - && new_account.standard == BlockchainStandard::Native - && new_account.symbol == "ICP" { - ic_cdk::println!("Setting cycle minting account to {}", uuid); - - system_info.set_cycle_obtain_strategy(CycleObtainStrategy::MintFromNativeToken { - account_id: *uuid.as_bytes(), - }); - write_system_info(system_info); - - #[cfg(target_arch = "wasm32")] - crate::services::SYSTEM_SERVICE.set_fund_manager_obtain_cycles( - &CycleObtainStrategy::MintFromNativeToken { - account_id: new_account.id, - }, - ); + // find the mainnet ICP asset that minting can be done from + if let Some(icp_asset) = self.asset_repository.list().iter().find(|asset| { + asset.blockchain == Blockchain::InternetComputer + && asset + .standards + .contains(&TokenStandard::InternetComputerNative) + && asset.metadata.contains(&MetadataItem { + key: TokenStandard::METADATA_KEY_LEDGER_CANISTER_ID.to_string(), + value: MAINNET_LEDGER_CANISTER_ID.to_string(), + }) + }) { + // check if the new account has the ICP asset + if new_account + .assets + .iter() + .any(|account_asset| account_asset.asset_id == icp_asset.id) + { + ic_cdk::println!("Setting cycle minting account to {}", uuid); + + system_info.set_cycle_obtain_strategy( + CycleObtainStrategy::MintFromNativeToken { + account_id: *uuid.as_bytes(), + }, + ); + write_system_info(system_info); + + #[cfg(target_arch = "wasm32")] + crate::services::SYSTEM_SERVICE.set_fund_manager_obtain_cycles( + &CycleObtainStrategy::MintFromNativeToken { + account_id: new_account.id, + }, + ); + } + } } } @@ -289,6 +326,30 @@ impl AccountService { } } + if let Some(change_assets) = input.change_assets { + change_assets.apply(&mut account.assets); + + // get all supported address formats of the account + let current_address_formats: Vec = account + .assets + .iter() + // get all assets + .filter_map(|account_asset| self.asset_repository.get(&account_asset.asset_id)) + .flat_map(|assets| { + assets + .standards + .into_iter() + // of each standard of each asset, get all supported address formats + .flat_map(|standard| standard.get_info().address_formats) + }) + .collect(); + + // remove addresses which don't belong to any account_assets any more + account.addresses.retain(|account_address| { + current_address_formats.contains(&account_address.format) + }); + } + if let Some(RequestPolicyRuleInput::Set(criteria)) = &input.transfer_request_policy { criteria.validate()?; }; @@ -382,7 +443,7 @@ impl AccountService { .account_ids .iter() .map(|id| HelperMapper::to_uuid(id.clone())) - .collect::, _>>()?; + .collect::, _>>()?; let accounts = self .account_repository @@ -390,38 +451,84 @@ impl AccountService { let mut balances = Vec::new(); for mut account in accounts { - let balance_considered_fresh = match &account.balance { - Some(balance) => { - let balance_age_ns = next_time() - balance.last_modification_timestamp; - (balance_age_ns / 1_000_000) < ACCOUNT_BALANCE_FRESHNESS_IN_MS - } - None => false, - }; - let balance: AccountBalance = match (&account.balance, balance_considered_fresh) { - (None, _) | (_, false) => { - let blockchain_api = - BlockchainApiFactory::build(&account.blockchain, &account.standard)?; - let fetched_balance = blockchain_api.balance(&account).await?; - let new_balance = AccountBalance { - balance: candid::Nat(fetched_balance), - last_modification_timestamp: next_time(), - }; - - account.balance = Some(new_balance.clone()); - - self.account_repository - .insert(account.to_key(), account.clone()); - - new_balance - } - (Some(balance), _) => balance.to_owned(), - }; - - balances.push(AccountMapper::to_balance_dto( - balance, - account.decimals, - account.id, - )); + let account_key = account.to_key(); + for account_asset in account.assets.iter_mut() { + let balance_considered_fresh = match &account_asset.balance { + Some(balance) => { + let balance_age_ns = next_time() - balance.last_modification_timestamp; + (balance_age_ns / 1_000_000) < ACCOUNT_BALANCE_FRESHNESS_IN_MS + } + None => false, + }; + + let Some(asset) = self.asset_repository.get(&account_asset.asset_id) else { + continue; + }; + + let balance: AccountBalance = match ( + &account_asset.balance, + balance_considered_fresh, + ) { + (None, _) | (_, false) => { + // find a standard that supports fetch balance operation + let Some(standard) = asset.standards.iter().find(|standard| { + standard + .get_supported_operations() + .contains(&StandardOperation::Balance) + }) else { + // Could not find a standard to fetch the balance. + // This becomes normal there are assets that do not support fetching the balance. + ic_cdk::println!( + "Could not find a standard to fetch the balance in account {}({}) for asset {}({}) on {}", + account.name, + Uuid::from_bytes(account.id).hyphenated(), + asset.symbol, + asset.name, + asset.blockchain.to_string() + ); + continue; + }; + + // get the supported address formats of the standard + let standard_info = standard.get_info(); + + // find an address that is supported by the standard + let Some(address) = account.addresses.iter().find(|address| { + standard_info.address_formats.contains(&address.format) + }) else { + // could not find address for the standard to fetch the balance + ic_cdk::println!( + "Could not find address for the standard {} to fetch the balance in account {}({})", + standard_info.name, + account.name, + Uuid::from_bytes(account.id).hyphenated() + ); + continue; + }; + + let blockchain_api = + BlockchainApiFactory::build(&asset.blockchain, standard)?; + let fetched_balance = blockchain_api.balance(&asset, address).await?; + let new_balance = AccountBalance { + balance: candid::Nat(fetched_balance), + last_modification_timestamp: next_time(), + }; + + account_asset.balance = Some(new_balance.clone()); + + new_balance + } + (Some(balance), _) => balance.to_owned(), + }; + + balances.push(AccountMapper::to_balance_dto( + balance, + asset.decimals, + account.id, + )); + } + + self.account_repository.insert(account_key.clone(), account); } Ok(balances) @@ -431,21 +538,26 @@ impl AccountService { #[cfg(test)] mod tests { use candid::Principal; + use orbit_essentials::model::ModelKey; use super::*; use crate::{ core::{test_utils, validation::disable_mock_resource_validation, CallContext}, models::{ - account_test_utils::mock_account, permission::Allow, - request_policy_rule::RequestPolicyRule, request_specifier::UserSpecifier, - user_test_utils::mock_user, AddAccountOperation, AddAccountOperationInput, Blockchain, - BlockchainStandard, Metadata, User, + account_test_utils::mock_account, + asset_test_utils::{mock_asset, mock_asset_b}, + permission::Allow, + request_policy_rule::RequestPolicyRule, + request_specifier::UserSpecifier, + user_test_utils::mock_user, + AddAccountOperation, AddAccountOperationInput, ChangeAssets, Metadata, User, }, repositories::UserRepository, }; struct TestContext { repository: AccountRepository, + asset_repository: AssetRepository, service: AccountService, caller_user: User, } @@ -462,6 +574,7 @@ mod tests { TestContext { repository: AccountRepository::default(), service: AccountService::default(), + asset_repository: AssetRepository::default(), caller_user: user, } } @@ -485,8 +598,7 @@ mod tests { account_id: None, input: AddAccountOperationInput { name: "foo".to_string(), - blockchain: Blockchain::InternetComputer, - standard: BlockchainStandard::Native, + assets: vec![], metadata: Metadata::default(), read_permission: Allow::users(vec![ctx.caller_user.id]), configs_permission: Allow::users(vec![ctx.caller_user.id]), @@ -516,8 +628,7 @@ mod tests { account_id: None, input: AddAccountOperationInput { name: account.name, - blockchain: Blockchain::InternetComputer, - standard: BlockchainStandard::Native, + assets: vec![], metadata: Metadata::default(), read_permission: Allow::users(vec![ctx.caller_user.id]), configs_permission: Allow::users(vec![ctx.caller_user.id]), @@ -540,8 +651,7 @@ mod tests { let base_input = AddAccountOperationInput { name: "foo".to_string(), - blockchain: Blockchain::InternetComputer, - standard: BlockchainStandard::Native, + assets: vec![], metadata: Metadata::default(), read_permission: Allow::users(vec![ctx.caller_user.id]), configs_permission: Allow::users(vec![ctx.caller_user.id]), @@ -627,8 +737,7 @@ mod tests { let input = AddAccountOperationInput { name: "foo2".to_string(), - blockchain: Blockchain::InternetComputer, - standard: BlockchainStandard::Native, + assets: vec![], metadata: Metadata::default(), read_permission: Allow::users(vec![ctx.caller_user.id]), configs_permission: Allow::users(vec![ctx.caller_user.id]), @@ -656,6 +765,7 @@ mod tests { let operation = EditAccountOperationInput { account_id: account.id, name: Some("test_edit".to_string()), + change_assets: None, read_permission: None, transfer_permission: None, configs_permission: None, @@ -672,6 +782,89 @@ mod tests { assert_eq!(updated_account.name, "test_edit"); } + #[tokio::test] + async fn edit_account_assets() { + let ctx = setup(); + + let asset_a = mock_asset(); + ctx.asset_repository.insert(asset_a.key(), asset_a.clone()); + + let asset_b = mock_asset_b(); + ctx.asset_repository.insert(asset_b.key(), asset_b.clone()); + + let mut account = mock_account(); + account.assets = vec![]; + account.addresses = vec![]; + ctx.repository.insert(account.to_key(), account.clone()); + + let operation = EditAccountOperationInput { + account_id: account.id, + name: None, + change_assets: Some(ChangeAssets::Change { + add_assets: vec![asset_a.id], + remove_assets: vec![], + }), + read_permission: None, + transfer_permission: None, + configs_permission: None, + transfer_request_policy: None, + configs_request_policy: None, + }; + + let updated_account = ctx + .service + .edit_account(operation) + .await + .expect("edit account should be successful"); + assert_eq!(updated_account.assets.len(), 1); + assert_eq!(updated_account.assets[0].asset_id, asset_a.id); + + let operation = EditAccountOperationInput { + account_id: account.id, + name: None, + change_assets: Some(ChangeAssets::Change { + add_assets: vec![asset_b.id], + remove_assets: vec![asset_a.id], + }), + read_permission: None, + transfer_permission: None, + configs_permission: None, + transfer_request_policy: None, + configs_request_policy: None, + }; + + let updated_account = ctx + .service + .edit_account(operation) + .await + .expect("edit account should be successful"); + assert_eq!(updated_account.assets.len(), 1); + assert_eq!(updated_account.assets[0].asset_id, asset_b.id); + + let operation = EditAccountOperationInput { + account_id: account.id, + name: None, + change_assets: Some(ChangeAssets::ReplaceWith { + assets: vec![asset_a.id, asset_b.id], + }), + read_permission: None, + transfer_permission: None, + configs_permission: None, + transfer_request_policy: None, + configs_request_policy: None, + }; + + let updated_account = ctx + .service + .edit_account(operation) + .await + .expect("edit account should be successful"); + + assert_eq!(updated_account.assets.len(), 2); + assert_eq!(updated_account.assets[0].asset_id, asset_a.id); + assert_eq!(updated_account.assets[1].asset_id, asset_b.id); + } + #[tokio::test] async fn edit_account_with_duplicate_name_should_fail() { let ctx = setup(); @@ -686,6 +879,7 @@ mod tests { let operation = EditAccountOperationInput { account_id: account.id, name: Some("bar".to_string()), + change_assets: None, read_permission: None, transfer_permission: None, configs_permission: None, @@ -698,29 +892,6 @@ mod tests { assert!(result.is_err()); } - #[tokio::test] - async fn fail_create_account_invalid_blockchain_standard() { - let ctx = setup(); - let operation = AddAccountOperation { - account_id: None, - input: AddAccountOperationInput { - name: "foo".to_string(), - blockchain: Blockchain::InternetComputer, - standard: BlockchainStandard::ERC20, - metadata: Metadata::default(), - read_permission: Allow::users(vec![ctx.caller_user.id]), - configs_permission: Allow::users(vec![ctx.caller_user.id]), - transfer_permission: Allow::users(vec![ctx.caller_user.id]), - configs_request_policy: Some(RequestPolicyRule::AutoApproved), - transfer_request_policy: Some(RequestPolicyRule::AutoApproved), - }, - }; - - let result = ctx.service.create_account(operation.input, None).await; - - assert!(result.is_err()); - } - #[tokio::test] async fn edit_account_with_missing_policy_should_fail() { let ctx = setup(); @@ -729,11 +900,15 @@ mod tests { let account = mock_account(); + let asset = mock_asset(); + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + ctx.repository.insert(account.to_key(), account.clone()); let base_input = EditAccountOperationInput { account_id: account.id, name: Some("test_edit".to_string()), + change_assets: None, read_permission: None, transfer_permission: None, configs_permission: None, diff --git a/core/station/impl/src/services/address_book.rs b/core/station/impl/src/services/address_book.rs index 932682d36..3664f1998 100644 --- a/core/station/impl/src/services/address_book.rs +++ b/core/station/impl/src/services/address_book.rs @@ -169,7 +169,8 @@ mod tests { core::test_utils, models::{ address_book_entry_test_utils::mock_address_book_entry, AddAddressBookEntryOperation, - AddAddressBookEntryOperationInput, Blockchain, ChangeMetadata, Metadata, MetadataItem, + AddAddressBookEntryOperationInput, AddressFormat, Blockchain, ChangeMetadata, Metadata, + MetadataItem, }, }; use station_api::MetadataDTO; @@ -201,6 +202,7 @@ mod tests { blockchain: Blockchain::InternetComputer, metadata: address_book_entry.metadata.clone().into(), labels: vec![], + address_format: AddressFormat::ICPAccountIdentifier, }, }; diff --git a/core/station/impl/src/services/asset.rs b/core/station/impl/src/services/asset.rs index 25c3387e1..caef582d5 100644 --- a/core/station/impl/src/services/asset.rs +++ b/core/station/impl/src/services/asset.rs @@ -49,10 +49,15 @@ impl AssetService { Ok(asset) } - pub fn create(&self, input: AddAssetOperationInput) -> ServiceResult { - let id = Uuid::new_v4(); + pub fn create( + &self, + input: AddAssetOperationInput, + with_asset_id: Option, + ) -> ServiceResult { + let id = with_asset_id.unwrap_or(*Uuid::new_v4().as_bytes()); + let asset = Asset { - id: *id.as_bytes(), + id, blockchain: input.blockchain, standards: input.standards.into_iter().collect(), symbol: input.symbol, @@ -162,7 +167,7 @@ mod tests { use station_api::ListAssetsInput; use crate::{ - models::{asset_test_utils::mock_asset, AddAssetOperationInput, BlockchainStandard}, + models::{asset_test_utils::mock_asset, AddAssetOperationInput, TokenStandard}, repositories::ASSET_REPOSITORY, }; @@ -173,14 +178,17 @@ mod tests { let service = AssetService::default(); service - .create(AddAssetOperationInput { - blockchain: crate::models::Blockchain::InternetComputer, - standards: vec![BlockchainStandard::Native], - decimals: 8, - metadata: Default::default(), - name: "ICP".to_string(), - symbol: "ICP".to_string(), - }) + .create( + AddAssetOperationInput { + blockchain: crate::models::Blockchain::InternetComputer, + standards: vec![TokenStandard::InternetComputerNative], + decimals: 8, + metadata: Default::default(), + name: "ICP".to_string(), + symbol: "ICP".to_string(), + }, + None, + ) .expect("Failed to create asset"); let assets = ASSET_REPOSITORY.list(); @@ -261,36 +269,45 @@ mod tests { let service = AssetService::default(); service - .create(AddAssetOperationInput { - blockchain: crate::models::Blockchain::InternetComputer, - standards: vec![BlockchainStandard::Native], - decimals: 8, - metadata: Default::default(), - name: "ICP".to_string(), - symbol: "ICP".to_string(), - }) + .create( + AddAssetOperationInput { + blockchain: crate::models::Blockchain::InternetComputer, + standards: vec![TokenStandard::InternetComputerNative], + decimals: 8, + metadata: Default::default(), + name: "ICP".to_string(), + symbol: "ICP".to_string(), + }, + None, + ) .expect("Failed to create asset"); service - .create(AddAssetOperationInput { - blockchain: crate::models::Blockchain::InternetComputer, - standards: vec![BlockchainStandard::Native], - decimals: 8, - metadata: Default::default(), - name: "ICP".to_string(), - symbol: "ICP".to_string(), - }) + .create( + AddAssetOperationInput { + blockchain: crate::models::Blockchain::InternetComputer, + standards: vec![TokenStandard::InternetComputerNative], + decimals: 8, + metadata: Default::default(), + name: "ICP".to_string(), + symbol: "ICP".to_string(), + }, + None, + ) .expect_err("Asset with the same symbol and blockchain should not be allowed"); service - .create(AddAssetOperationInput { - blockchain: crate::models::Blockchain::InternetComputer, - standards: vec![BlockchainStandard::Native], - decimals: 8, - metadata: Default::default(), - name: "ICP".to_string(), - symbol: "ICP2".to_string(), - }) + .create( + AddAssetOperationInput { + blockchain: crate::models::Blockchain::InternetComputer, + standards: vec![TokenStandard::InternetComputerNative], + decimals: 8, + metadata: Default::default(), + name: "ICP".to_string(), + symbol: "ICP2".to_string(), + }, + None, + ) .expect("Failed to create asset"); } } diff --git a/core/station/impl/src/services/disaster_recovery.rs b/core/station/impl/src/services/disaster_recovery.rs index 308f6d74a..0eb9c778a 100644 --- a/core/station/impl/src/services/disaster_recovery.rs +++ b/core/station/impl/src/services/disaster_recovery.rs @@ -9,7 +9,7 @@ use crate::{ core::observer::Observer, errors::DisasterRecoveryError, models::{Account, User, UserStatus}, - repositories::{AccountRepository, ACCOUNT_REPOSITORY}, + repositories::{AccountRepository, AssetRepository, ACCOUNT_REPOSITORY, ASSET_REPOSITORY}, services::SYSTEM_SERVICE, }; use orbit_essentials::repository::Repository; @@ -19,6 +19,7 @@ lazy_static! { system_service: Arc::clone(&SYSTEM_SERVICE), user_service: Arc::clone(&USER_SERVICE), account_repository: Arc::clone(&ACCOUNT_REPOSITORY), + asset_repository: Arc::clone(&ASSET_REPOSITORY), }); } @@ -26,6 +27,7 @@ pub struct DisasterRecoveryService { system_service: Arc, user_service: Arc, account_repository: Arc, + asset_repository: Arc, } impl DisasterRecoveryService { @@ -33,6 +35,7 @@ impl DisasterRecoveryService { let upgrader_canister_id = self.system_service.get_upgrader_canister_id(); let accounts = self.account_repository.list(); + let assets = self.asset_repository.list(); ic_cdk::call( upgrader_canister_id, @@ -42,15 +45,32 @@ impl DisasterRecoveryService { .iter() .map(|account| upgrader_api::Account { id: Uuid::from_bytes(account.id).hyphenated().to_string(), - blockchain: account.blockchain.to_string(), - address: account.address.clone(), - standard: account.standard.to_string(), - symbol: account.symbol.clone(), - decimals: account.decimals, + seed: account.seed, + assets: account + .assets + .iter() + .map(|account_asset| { + Uuid::from_bytes(account_asset.asset_id) + .hyphenated() + .to_string() + }) + .collect(), name: account.name.clone(), metadata: account.metadata.clone().into(), }) .collect(), + assets: assets + .iter() + .map(|asset| upgrader_api::Asset { + id: Uuid::from_bytes(asset.id).hyphenated().to_string(), + blockchain: asset.blockchain.to_string(), + symbol: asset.symbol.clone(), + name: asset.name.clone(), + decimals: asset.decimals, + standards: asset.standards.iter().map(|s| s.to_string()).collect(), + metadata: asset.metadata.clone().into(), + }) + .collect(), },), ) .await diff --git a/core/station/impl/src/services/request.rs b/core/station/impl/src/services/request.rs index f5d84b737..7f60ed759 100644 --- a/core/station/impl/src/services/request.rs +++ b/core/station/impl/src/services/request.rs @@ -473,16 +473,16 @@ mod tests { resource::ResourceIds, user_test_utils::mock_user, AddAccountOperationInput, AddAddressBookEntryOperation, - AddAddressBookEntryOperationInput, AddUserOperation, AddUserOperationInput, Blockchain, - BlockchainStandard, Metadata, Percentage, RequestApproval, RequestOperation, - RequestPolicy, RequestStatus, TransferOperation, TransferOperationInput, User, - UserGroup, UserStatus, ADMIN_GROUP_ID, + AddAddressBookEntryOperationInput, AddAssetOperationInput, AddUserOperation, + AddUserOperationInput, AddressFormat, Blockchain, Metadata, Percentage, + RequestApproval, RequestOperation, RequestPolicy, RequestStatus, TokenStandard, + TransferOperation, TransferOperationInput, User, UserGroup, UserStatus, ADMIN_GROUP_ID, }, repositories::{ request_policy::REQUEST_POLICY_REPOSITORY, AccountRepository, NOTIFICATION_REPOSITORY, USER_GROUP_REPOSITORY, USER_REPOSITORY, }, - services::AccountService, + services::{AccountService, ASSET_SERVICE}, }; use candid::Principal; use orbit_essentials::model::ModelKey; @@ -543,6 +543,8 @@ mod tests { fee: None, input: TransferOperationInput { from_account_id: *account_id.as_bytes(), + from_asset_id: [1; 16], + with_standard: TokenStandard::InternetComputerNative, amount: candid::Nat(100u32.into()), fee: None, metadata: Metadata::default(), @@ -574,6 +576,8 @@ mod tests { fee: None, input: TransferOperationInput { from_account_id: *account_id.as_bytes(), + from_asset_id: [1; 16], + with_standard: TokenStandard::InternetComputerNative, amount: candid::Nat(100u32.into()), fee: None, metadata: Metadata::default(), @@ -656,6 +660,8 @@ mod tests { from_account_id: Uuid::from_bytes(account.id.to_owned()) .hyphenated() .to_string(), + from_asset_id: Uuid::from_bytes([1; 16]).hyphenated().to_string(), + with_standard: TokenStandard::InternetComputerNative.to_string(), amount: candid::Nat(100u32.into()), fee: None, metadata: vec![], @@ -703,6 +709,7 @@ mod tests { blockchain: "icp".to_owned(), metadata: vec![], labels: vec![], + address_format: AddressFormat::ICPAccountIdentifier.to_string(), }, ), title: None, @@ -748,6 +755,7 @@ mod tests { blockchain: Blockchain::InternetComputer, metadata: vec![], labels: vec![], + address_format: AddressFormat::ICPAccountIdentifier, }, }); request.approvals = vec![ @@ -815,6 +823,8 @@ mod tests { fee: None, input: TransferOperationInput { from_account_id: [9; 16], + from_asset_id: [1; 16], + with_standard: TokenStandard::InternetComputerNative, amount: candid::Nat(100u32.into()), fee: None, metadata: Metadata::default(), @@ -876,6 +886,20 @@ mod tests { no_access_user.identities = vec![Principal::from_slice(&[2; 29])]; USER_REPOSITORY.insert(no_access_user.to_key(), no_access_user.clone()); + let asset = ASSET_SERVICE + .create( + AddAssetOperationInput { + name: "foo".to_string(), + symbol: "FOO".to_string(), + decimals: 18, + metadata: Metadata::default(), + blockchain: Blockchain::InternetComputer, + standards: vec![TokenStandard::InternetComputerNative], + }, + None, + ) + .expect("Failed to create asset"); + // create account let account_owners = vec![ctx.caller_user.id, transfer_requester_user.id]; let account = ctx @@ -883,8 +907,7 @@ mod tests { .create_account( AddAccountOperationInput { name: "foo".to_string(), - blockchain: Blockchain::InternetComputer, - standard: BlockchainStandard::Native, + assets: vec![asset.id], metadata: Metadata::default(), transfer_request_policy: Some(RequestPolicyRule::QuorumPercentage( UserSpecifier::Id(vec![ctx.caller_user.id, transfer_requester_user.id]), @@ -932,6 +955,8 @@ mod tests { fee: None, input: TransferOperationInput { from_account_id: account.id, + from_asset_id: asset.id, + with_standard: TokenStandard::InternetComputerNative, amount: candid::Nat(100u32.into()), fee: None, metadata: Metadata::default(), diff --git a/core/station/impl/src/services/system.rs b/core/station/impl/src/services/system.rs index 538ede296..4313da176 100644 --- a/core/station/impl/src/services/system.rs +++ b/core/station/impl/src/services/system.rs @@ -11,13 +11,13 @@ use crate::{ factories::blockchains::InternetComputer, models::{ system::{DisasterRecoveryCommittee, SystemInfo, SystemState}, - CanisterInstallMode, CanisterUpgradeModeArgs, CycleObtainStrategy, + AccountKey, CanisterInstallMode, CanisterUpgradeModeArgs, CycleObtainStrategy, ManageSystemInfoOperationInput, RequestId, RequestKey, RequestOperation, RequestStatus, SystemUpgradeTarget, }, repositories::{ - permission::PERMISSION_REPOSITORY, RequestRepository, ASSET_REPOSITORY, REQUEST_REPOSITORY, - USER_GROUP_REPOSITORY, USER_REPOSITORY, + permission::PERMISSION_REPOSITORY, RequestRepository, ACCOUNT_REPOSITORY, ASSET_REPOSITORY, + REQUEST_REPOSITORY, USER_GROUP_REPOSITORY, USER_REPOSITORY, }, services::{ change_canister::{ChangeCanisterService, CHANGE_CANISTER_SERVICE}, @@ -180,18 +180,29 @@ impl SystemService { ) -> Option { match strategy { CycleObtainStrategy::Disabled => None, - CycleObtainStrategy::MintFromNativeToken { account_id } => Some(ObtainCyclesOptions { - obtain_cycles: Arc::new(MintCycles { - ledger: Arc::new(IcLedgerCanister::new(MAINNET_LEDGER_CANISTER_ID)), - cmc: Arc::new(IcCyclesMintingCanister::new( - MAINNET_CYCLES_MINTING_CANISTER_ID, - )), - from_subaccount: Subaccount( - InternetComputer::subaccount_from_station_account_id(account_id), - ), - }), - top_up_self: true, - }), + CycleObtainStrategy::MintFromNativeToken { account_id } => { + if let Some(account) = ACCOUNT_REPOSITORY.get(&AccountKey { id: *account_id }) { + Some(ObtainCyclesOptions { + obtain_cycles: Arc::new(MintCycles { + ledger: Arc::new(IcLedgerCanister::new(MAINNET_LEDGER_CANISTER_ID)), + cmc: Arc::new(IcCyclesMintingCanister::new( + MAINNET_CYCLES_MINTING_CANISTER_ID, + )), + from_subaccount: Subaccount(InternetComputer::subaccount_from_seed( + &account.seed, + )), + }), + top_up_self: true, + }) + } else { + print(format!( + "Account with id `{}` not found, cannot create ObtainCyclesOptions", + Uuid::from_bytes(*account_id).hyphenated() + )); + + None + } + } } } #[cfg(target_arch = "wasm32")] @@ -280,10 +291,17 @@ impl SystemService { let admin_count = init.admins.len() as u16; let quorum = calc_initial_quorum(admin_count, init.quorum); + // if provided, creates the initial assets + if let Some(assets) = init.assets.clone() { + print("Adding initial assets"); + install_canister_handlers::set_initial_assets(assets).await?; + } + // if provided, creates the initial accounts if let Some(accounts) = init.accounts { print("Adding initial accounts"); - install_canister_handlers::set_initial_accounts(accounts, quorum).await?; + install_canister_handlers::set_initial_accounts(accounts, &init.assets, quorum) + .await?; } if SYSTEM_SERVICE.is_healthy() { @@ -493,7 +511,9 @@ mod init_canister_sync_handlers { use std::collections::{BTreeMap, BTreeSet}; use crate::core::ic_cdk::{api::print, next_time}; - use crate::models::{AddUserOperationInput, Asset, Blockchain, Metadata, UserStatus}; + use crate::models::{ + AddUserOperationInput, Asset, Blockchain, Metadata, TokenStandard, UserStatus, + }; use crate::repositories::ASSET_REPOSITORY; use crate::services::USER_SERVICE; use crate::{ @@ -521,7 +541,7 @@ mod init_canister_sync_handlers { pub fn add_initial_assets() { let initial_assets: Vec = vec![Asset { blockchain: Blockchain::InternetComputer, - standards: BTreeSet::from([]), + standards: BTreeSet::from([TokenStandard::InternetComputerNative]), symbol: "ICP".to_string(), name: "Internet Computer".to_string(), metadata: Metadata::new(BTreeMap::from([ @@ -582,12 +602,13 @@ mod install_canister_handlers { use crate::models::permission::Allow; use crate::models::request_specifier::UserSpecifier; use crate::models::{ - AddAccountOperationInput, AddRequestPolicyOperationInput, CycleObtainStrategy, - EditPermissionOperationInput, RequestPolicyRule, ADMIN_GROUP_ID, + AddAccountOperationInput, AddAssetOperationInput, AddRequestPolicyOperationInput, + CycleObtainStrategy, EditPermissionOperationInput, RequestPolicyRule, ADMIN_GROUP_ID, }; + use crate::repositories::ASSET_REPOSITORY; use crate::services::permission::PERMISSION_SERVICE; - use crate::services::ACCOUNT_SERVICE; use crate::services::REQUEST_POLICY_SERVICE; + use crate::services::{ACCOUNT_SERVICE, ASSET_SERVICE}; use candid::{Encode, Principal}; use canfund::manager::options::{EstimatedRuntime, FundManagerOptions, FundStrategy}; use canfund::manager::RegisterOpts; @@ -595,9 +616,12 @@ mod install_canister_handlers { use ic_cdk::api::management_canister::main::{self as mgmt}; use ic_cdk::id; + use orbit_essentials::api::ApiError; + use orbit_essentials::repository::Repository; use orbit_essentials::types::UUID; - use station_api::{InitAccountInput, SystemInit}; + use station_api::{InitAccountInput, InitAssetInput, SystemInit}; use std::cell::RefCell; + use uuid::Uuid; use super::SYSTEM_SERVICE; @@ -640,6 +664,7 @@ mod install_canister_handlers { // Registers the initial accounts of the canister during the canister initialization. pub async fn set_initial_accounts( accounts: Vec, + initial_assets: &Option>, quorum: u16, ) -> Result<(), String> { let add_accounts = accounts @@ -647,10 +672,15 @@ mod install_canister_handlers { .map(|account| { let input = AddAccountOperationInput { name: account.name, - blockchain: BlockchainMapper::to_blockchain(account.blockchain.clone()) - .expect("Invalid blockchain"), - standard: BlockchainMapper::to_blockchain_standard(account.standard) - .expect("Invalid blockchain standard"), + assets: account + .assets + .into_iter() + .map(|asset| { + *HelperMapper::to_uuid(asset) + .expect("Invalid UUID") + .as_bytes() + }) + .collect(), metadata: account.metadata.into(), transfer_request_policy: Some(RequestPolicyRule::Quorum( UserSpecifier::Group(vec![*ADMIN_GROUP_ID]), @@ -674,7 +704,55 @@ mod install_canister_handlers { }) .collect::)>>(); - for (new_account, with_account_id) in add_accounts { + // + // In case there are assets existing in the Asset repository at the time of recovering the assets + // some of the assets might not be able to be recreated, in this case we try to find the same asset + // in the existing assets and replace the asset_id in the recreated account with the existing one. + // + for (mut new_account, with_account_id) in add_accounts { + if let Some(initial_assets) = initial_assets { + let mut new_account_assets = new_account.assets.clone(); + for asset_id in new_account.assets.iter() { + if ASSET_REPOSITORY.get(asset_id).is_none() { + // the asset could not be recreated, try to find the same asset in the existing assets + let asset_id_str = Uuid::from_bytes(*asset_id).hyphenated().to_string(); + let Some(original_asset_to_create) = initial_assets + .iter() + .find(|initial_asset| initial_asset.id == asset_id_str) + else { + // the asset does not exist and it could not be recreated, skip + continue; + }; + + if let Some(existing_asset_id) = ASSET_REPOSITORY.exists_unique( + &original_asset_to_create.blockchain, + &original_asset_to_create.symbol, + ) { + // replace the asset_id in the recreated account with the existing one + new_account_assets.retain(|id| asset_id != id); + new_account_assets.push(existing_asset_id); + + print(format!( + "Asset {} could not be recreated, replaced with existing asset {}", + asset_id_str, + Uuid::from_bytes(existing_asset_id).hyphenated() + )); + } else { + // the asset does not exist and it could not be recreated, skip + + print(format!( + "Asset {} could not be recreated and does not exist in the existing assets, skipping", + asset_id_str + )); + + continue; + } + } + } + + new_account.assets = new_account_assets; + } + ACCOUNT_SERVICE .create_account(new_account, with_account_id) .await @@ -683,6 +761,53 @@ mod install_canister_handlers { Ok(()) } + // Registers the initial accounts of the canister during the canister initialization. + pub async fn set_initial_assets(assets: Vec) -> Result<(), String> { + let add_assets = assets + .into_iter() + .map(|asset| { + let input = AddAssetOperationInput { + name: asset.name, + blockchain: BlockchainMapper::to_blockchain(asset.blockchain.clone()) + .expect("Invalid blockchain"), + standards: asset + .standards + .iter() + .map(|standard| { + BlockchainMapper::to_blockchain_standard(standard.clone()) + .expect("Invalid blockchain standard") + }) + .collect(), + decimals: asset.decimals, + symbol: asset.symbol, + metadata: asset.metadata.into(), + }; + + ( + input, + *HelperMapper::to_uuid(asset.id) + .expect("Invalid UUID") + .as_bytes(), + ) + }) + .collect::>(); + + for (new_asset, with_asset_id) in add_assets { + match ASSET_SERVICE.create(new_asset, Some(with_asset_id)) { + Err(ApiError { code, details, .. }) if &code == "ALREADY_EXISTS" => { + // asset already exists, can skip safely + print(format!( + "Asset already exists, skipping. Details: {:?}", + details.unwrap_or_default() + )); + } + Err(e) => Err(format!("Failed to add asset: {:?}", e))?, + Ok(_) => {} + } + } + + Ok(()) + } pub async fn init_upgrader( input: station_api::SystemUpgraderInput, @@ -812,6 +937,7 @@ mod tests { upgrader: station_api::SystemUpgraderInput::WasmModule(vec![]), fallback_controller: None, accounts: None, + assets: None, }) .await; diff --git a/core/upgrader/api/spec.did b/core/upgrader/api/spec.did index dccda0c2c..0b0ee128a 100644 --- a/core/upgrader/api/spec.did +++ b/core/upgrader/api/spec.did @@ -28,16 +28,24 @@ type TriggerUpgradeError = variant { // Metadata for an account in the station canister. type Metadata = record { key : text; value : text }; -// Backup of Account in the station canister. -type Account = record { +// Backup of Asset in the station canister. +type Asset = record { id : text; + name : text; + symbol : text; decimals : nat32; + blockchain : text; + standards : vec text; metadata : vec Metadata; +}; + +// Backup of Account in the station canister. +type Account = record { + id : text; name : text; - blockchain : text; - address : text; - standard : text; - symbol : text; + seed : blob; + assets : vec text; + metadata : vec Metadata; }; // Backup of admin user in the station canister. @@ -108,6 +116,7 @@ type SetDisasterRecoveryCommitteeInput = record { // when accounts are added. type SetDisasterRecoveryAccountsInput = record { accounts : vec Account; + assets : vec Asset; }; // Request to trigger disaster recovery. Requests are stored in the Upgrader diff --git a/core/upgrader/api/src/lib.rs b/core/upgrader/api/src/lib.rs index 3a6f057d8..31ac25476 100644 --- a/core/upgrader/api/src/lib.rs +++ b/core/upgrader/api/src/lib.rs @@ -1,5 +1,5 @@ use candid::{CandidType, Deserialize, Principal}; -use station_api::TimestampRfc3339; +use station_api::{AccountSeedDTO, TimestampRfc3339}; pub use station_api::{MetadataDTO, UuidDTO}; #[derive(Clone, Debug, CandidType, serde::Serialize, Deserialize, PartialEq)] @@ -41,21 +41,36 @@ pub struct DisasterRecoveryCommittee { } #[derive(Clone, Debug, CandidType, Deserialize)] -pub struct Account { - /// The account id, which is a UUID. +pub struct Asset { + /// The asset id, which is a UUID. pub id: UuidDTO, - /// The blockchain type (e.g. `icp`, `eth`, `btc`) - pub blockchain: String, - /// The account address (e.g. `0x1234`, etc.) - pub address: String, - /// The blockchain standard (e.g. `native`, `icrc1`, `erc20`, etc.) - pub standard: String, - /// The asset symbol (e.g. `ICP`, `ETH`, `BTC`, etc.) + /// The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) + pub name: String, + /// The asset symbol (e.g. `ICP`, `BTC`, `ETH`, etc.) pub symbol: String, - /// The asset decimals (e.g. `8` for `BTC`, `18` for `ETH`, etc.) + /// The number of decimal places that the asset supports (e.g. `8` for `BTC`, `18` for `ETH`, etc.) pub decimals: u32, - /// The account name (e.g. `My Main Account`) + /// The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + pub blockchain: String, + // The asset standard that is supported (e.g. `erc20`, `native`, etc.), canonically + // represented as a lowercase string with spaces replaced with underscores. + pub standards: Vec, + /// The account metadata, which is a list of key-value pairs, + /// where the key is unique and the first entry in the tuple, + /// and the value is the second entry in the tuple. + pub metadata: Vec, +} + +#[derive(Clone, Debug, CandidType, Deserialize)] +pub struct Account { + /// The account id, which is a UUID. + pub id: UuidDTO, + /// The seed for address generation. + pub seed: AccountSeedDTO, + /// The account name. pub name: String, + /// The account assets. + pub assets: Vec, /// The account metadata, which is a list of key-value pairs, /// where the key is unique and the first entry in the tuple, /// and the value is the second entry in the tuple. @@ -90,6 +105,7 @@ pub struct SetDisasterRecoveryCommitteeInput { #[derive(Clone, Debug, CandidType, Deserialize)] pub struct SetDisasterRecoveryAccountsInput { pub accounts: Vec, + pub assets: Vec, } #[derive(Clone, Debug, CandidType, Deserialize)] diff --git a/core/upgrader/impl/src/controllers/disaster_recovery.rs b/core/upgrader/impl/src/controllers/disaster_recovery.rs index c904467fa..a33f3cc13 100644 --- a/core/upgrader/impl/src/controllers/disaster_recovery.rs +++ b/core/upgrader/impl/src/controllers/disaster_recovery.rs @@ -88,8 +88,10 @@ impl DisasterRecoveryController { if !is_controller(&caller) { Err(UpgraderApiError::NotController)? } else { - self.disaster_recovery_service - .set_accounts(input.accounts.into_iter().map(Into::into).collect()) + self.disaster_recovery_service.set_accounts( + input.accounts.into_iter().map(Into::into).collect(), + input.assets.into_iter().map(Into::into).collect(), + ) } } diff --git a/core/upgrader/impl/src/model/disaster_recovery.rs b/core/upgrader/impl/src/model/disaster_recovery.rs index 2df495d49..2c20c5115 100644 --- a/core/upgrader/impl/src/model/disaster_recovery.rs +++ b/core/upgrader/impl/src/model/disaster_recovery.rs @@ -244,23 +244,75 @@ impl From for upgrader_api::AdminUser { } } +#[storable] +#[derive(Clone, Debug)] +pub struct Asset { + /// The asset id, which is a UUID. + pub id: UUID, + /// The asset name (e.g. `Internet Computer`, `Bitcoin`, `Ethereum`, etc.) + pub name: String, + /// The asset symbol (e.g. `ICP`, `BTC`, `ETH`, etc.) + pub symbol: String, + /// The number of decimal places that the asset supports (e.g. `8` for `BTC`, `18` for `ETH`, etc.) + pub decimals: u32, + /// The blockchain identifier (e.g., `ethereum`, `bitcoin`, `icp`, etc.) + pub blockchain: String, + // The asset standard that is supported (e.g. `erc20`, `native`, etc.), canonically + // represented as a lowercase string with spaces replaced with underscores. + pub standards: Vec, + /// The account metadata, which is a list of key-value pairs, + /// where the key is unique and the first entry in the tuple, + /// and the value is the second entry in the tuple. + pub metadata: Vec, +} + +impl From for Asset { + fn from(value: upgrader_api::Asset) -> Self { + Asset { + id: *HelperMapper::to_uuid(value.id) + .expect("Invalid asset ID") + .as_bytes(), + name: value.name, + symbol: value.symbol, + decimals: value.decimals, + blockchain: value.blockchain, + standards: value.standards, + metadata: value.metadata.into_iter().map(Metadata::from).collect(), + } + } +} + +impl From for upgrader_api::Asset { + fn from(value: Asset) -> Self { + upgrader_api::Asset { + id: Uuid::from_bytes(value.id).hyphenated().to_string(), + name: value.name, + symbol: value.symbol, + decimals: value.decimals, + blockchain: value.blockchain, + standards: value.standards, + metadata: value + .metadata + .into_iter() + .map(upgrader_api::MetadataDTO::from) + .collect(), + } + } +} + +type AccountSeed = [u8; 16]; + #[storable] #[derive(Clone, Debug)] pub struct Account { /// The account id, which is a UUID. pub id: UUID, /// The blockchain type (e.g. `icp`, `eth`, `btc`) - pub blockchain: String, - /// The account address (e.g. `0x1234`, etc.) - pub address: String, - /// The blockchain standard (e.g. `native`, `icrc1`, `erc20`, etc.) - pub standard: String, - /// The asset symbol (e.g. `ICP`, `ETH`, `BTC`, etc.) - pub symbol: String, - /// The asset decimals (e.g. `8` for `BTC`, `18` for `ETH`, etc.) - pub decimals: u32, - /// The account name (e.g. `My Main Account`) pub name: String, + /// The address generation seed. + pub seed: AccountSeed, + /// Assets + pub assets: Vec, /// The account metadata, which is a list of key-value pairs, /// where the key is unique and the first entry in the tuple, /// and the value is the second entry in the tuple. @@ -273,11 +325,16 @@ impl From for Account { id: *HelperMapper::to_uuid(value.id) .expect("Invalid account ID") .as_bytes(), - blockchain: value.blockchain, - address: value.address, - standard: value.standard, - symbol: value.symbol, - decimals: value.decimals, + assets: value + .assets + .into_iter() + .map(|asset_id| { + *HelperMapper::to_uuid(asset_id) + .expect("Invalid asset ID") + .as_bytes() + }) + .collect(), + seed: value.seed, name: value.name, metadata: value.metadata.into_iter().map(Metadata::from).collect(), } @@ -288,12 +345,13 @@ impl From for upgrader_api::Account { fn from(value: Account) -> Self { upgrader_api::Account { id: Uuid::from_bytes(value.id).hyphenated().to_string(), - blockchain: value.blockchain, - address: value.address, - standard: value.standard, - symbol: value.symbol, - decimals: value.decimals, name: value.name, + seed: value.seed, + assets: value + .assets + .into_iter() + .map(|asset_id| Uuid::from_bytes(asset_id).hyphenated().to_string()) + .collect(), metadata: value .metadata .into_iter() @@ -307,6 +365,7 @@ impl From for upgrader_api::Account { #[derive(Clone, Debug)] pub struct DisasterRecovery { pub accounts: Vec, + pub assets: Vec, pub committee: Option, pub recovery_requests: Vec, @@ -318,6 +377,7 @@ impl Default for DisasterRecovery { fn default() -> Self { DisasterRecovery { accounts: vec![], + assets: vec![], committee: None, recovery_requests: vec![], recovery_status: RecoveryStatus::Idle, @@ -352,6 +412,8 @@ impl From for upgrader_api::GetDisasterRecoveryStateResponse { pub mod test { use candid::Principal; + use crate::model::Asset; + use super::{Account, AdminUser, DisasterRecoveryCommittee}; pub fn mock_committee() -> DisasterRecoveryCommittee { @@ -381,22 +443,39 @@ pub mod test { vec![ Account { id: [1; 16], - blockchain: "icp".to_owned(), - address: "0x1234".to_owned(), - standard: "native".to_owned(), - symbol: "ICP".to_owned(), - decimals: 8, + assets: vec![[1; 16], [2; 16]], + seed: [0; 16], name: "Main Account".to_owned(), metadata: vec![], }, Account { id: [2; 16], - blockchain: "eth".to_owned(), - address: "0x5678".to_owned(), - standard: "erc20".to_owned(), + assets: vec![[1; 16]], + seed: [0; 16], + name: "Secondary Account".to_owned(), + metadata: vec![], + }, + ] + } + + pub fn mock_assets() -> Vec { + vec![ + Asset { + id: [1; 16], + name: "Internet Computer".to_owned(), + symbol: "ICP".to_owned(), + decimals: 8, + blockchain: "icp".to_owned(), + standards: vec!["icp_native".to_owned()], + metadata: vec![], + }, + Asset { + id: [2; 16], + name: "Ethereum".to_owned(), symbol: "ETH".to_owned(), decimals: 18, - name: "Secondary Account".to_owned(), + blockchain: "eth".to_owned(), + standards: vec!["erc20".to_owned()], metadata: vec![], }, ] diff --git a/core/upgrader/impl/src/model/logging.rs b/core/upgrader/impl/src/model/logging.rs index 617df02ac..18d73b758 100644 --- a/core/upgrader/impl/src/model/logging.rs +++ b/core/upgrader/impl/src/model/logging.rs @@ -2,7 +2,7 @@ use crate::upgrader_ic_cdk::api::time; use orbit_essentials::{storable, types::Timestamp, utils::timestamp_to_rfc3339}; use serde::Serialize; -use super::{Account, AdminUser, DisasterRecoveryCommittee, RecoveryResult}; +use super::{Account, AdminUser, Asset, DisasterRecoveryCommittee, RecoveryResult}; #[derive(Serialize)] pub enum UpgradeResultLog { @@ -18,6 +18,7 @@ pub struct SetCommitteeLog { #[derive(Serialize)] pub struct SetAccountsLog { pub accounts: Vec, + pub assets: Vec, } #[derive(Serialize)] @@ -96,7 +97,11 @@ impl LogEntryType { data.committee.quorum ), LogEntryType::SetAccounts(data) => { - format!("Set {} disaster recovery account(s)", data.accounts.len()) + format!( + "Set {} disaster recovery account(s) and {} asset(s)", + data.accounts.len(), + data.assets.len() + ) } LogEntryType::RequestDisasterRecovery(data) => format!( "{} requested disaster recovery with wasm hash {} and arg hash {}", diff --git a/core/upgrader/impl/src/services/disaster_recovery.rs b/core/upgrader/impl/src/services/disaster_recovery.rs index b8247d9ea..867deba06 100644 --- a/core/upgrader/impl/src/services/disaster_recovery.rs +++ b/core/upgrader/impl/src/services/disaster_recovery.rs @@ -3,7 +3,7 @@ use std::{cell::RefCell, collections::HashMap, sync::Arc}; use crate::{ errors::UpgraderApiError, model::{ - DisasterRecoveryInProgressLog, DisasterRecoveryResultLog, DisasterRecoveryStartLog, + Asset, DisasterRecoveryInProgressLog, DisasterRecoveryResultLog, DisasterRecoveryStartLog, LogEntryType, RequestDisasterRecoveryLog, SetAccountsLog, SetCommitteeLog, }, services::LOGGER_SERVICE, @@ -126,7 +126,7 @@ impl DisasterRecoveryService { Ok(()) } - pub fn set_accounts(&self, accounts: Vec) -> ServiceResult { + pub fn set_accounts(&self, accounts: Vec, assets: Vec) -> ServiceResult { let mut value = self.storage.get(); if let RecoveryStatus::InProgress { since } = &value.recovery_status { @@ -145,10 +145,14 @@ impl DisasterRecoveryService { } value.accounts = accounts.clone(); + value.assets = assets.clone(); + self.storage.set(value); - self.logger - .log(LogEntryType::SetAccounts(SetAccountsLog { accounts })); + self.logger.log(LogEntryType::SetAccounts(SetAccountsLog { + accounts, + assets, + })); Ok(()) } @@ -376,7 +380,7 @@ mod test { use crate::{ model::{ - test::{mock_accounts, mock_committee}, + test::{mock_accounts, mock_assets, mock_committee}, InstallMode, RecoveryEvaluationResult, RecoveryResult, RecoveryStatus, StationRecoveryRequest, }, @@ -732,7 +736,7 @@ mod test { storage.set(value); let error = DISASTER_RECOVERY_SERVICE - .set_accounts(mock_accounts()) + .set_accounts(mock_accounts(), mock_assets()) .expect_err("Setting committee during recovery should fail"); assert_eq!(error.code, "DISASTER_RECOVERY_IN_PROGRESS".to_string(),); diff --git a/core/upgrader/impl/src/services/logger.rs b/core/upgrader/impl/src/services/logger.rs index 25994f4ac..a94b23de9 100644 --- a/core/upgrader/impl/src/services/logger.rs +++ b/core/upgrader/impl/src/services/logger.rs @@ -102,7 +102,7 @@ impl LoggerService { mod test { use crate::model::{ - test::{mock_accounts, mock_committee}, + test::{mock_accounts, mock_assets, mock_committee}, DisasterRecoveryResultLog, RecoveryResult, SetAccountsLog, SetCommitteeLog, UpgradeResultLog, }; @@ -123,6 +123,7 @@ mod test { )); logger_service.log(LogEntryType::SetAccounts(SetAccountsLog { accounts: mock_accounts(), + assets: mock_assets(), })); let result = logger_service.get_logs(None, None); println!("{:?}", result); diff --git a/orbit b/orbit index cdab89b98..0148eb2a1 100755 --- a/orbit +++ b/orbit @@ -165,7 +165,8 @@ function install_control_panel() { dfx canister create --specified-id $CANISTER_ID_CONTROL_PANEL control_panel dfx build control_panel dfx canister install control_panel - dfx canister call control_panel upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = blob \"$upgrader_wasm_module_bytes\"; station_wasm_module = blob \"$station_wasm_module_bytes\"; })") + dfx canister call control_panel upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = opt blob \"$upgrader_wasm_module_bytes\"; station_wasm_module = null; })") + dfx canister call control_panel upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = null; station_wasm_module = opt blob \"$station_wasm_module_bytes\"; })") } function setup_control_panel() { @@ -183,7 +184,8 @@ function upgrade_control_panel() { dfx build control_panel dfx canister install control_panel --mode upgrade --yes - dfx canister call control_panel upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = blob \"$upgrader_wasm_module_bytes\"; station_wasm_module = blob \"$station_wasm_module_bytes\"; })") + dfx canister call control_panel upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = opt blob \"$upgrader_wasm_module_bytes\"; station_wasm_module = null; })") + dfx canister call control_panel upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = null; station_wasm_module = opt blob \"$station_wasm_module_bytes\"; })") } function uninstall_app_wallet() { diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 81f79c292..1202e5eb4 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -199,7 +199,8 @@ function deploy_control_panel() { fi echo "Updating the control_panel canister with the new station and upgrader WASM modules..." - dfx canister call control_panel --network $network upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = blob \"$upgrader_wasm_module_bytes\"; station_wasm_module = blob \"$station_wasm_module_bytes\"; })") + dfx canister call control_panel --network $network upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = opt blob \"$upgrader_wasm_module_bytes\"; station_wasm_module = null; })") + dfx canister call control_panel --network $network upload_canister_modules --argument-file <(echo "(record { upgrader_wasm_module = null; station_wasm_module = opt blob \"$station_wasm_module_bytes\"; })") } function deploy_app_wallet() { diff --git a/tests/integration/src/address_book_tests.rs b/tests/integration/src/address_book_tests.rs index c678e1458..18c85f6f6 100644 --- a/tests/integration/src/address_book_tests.rs +++ b/tests/integration/src/address_book_tests.rs @@ -1,6 +1,8 @@ use crate::interfaces::{default_account, get_icp_balance, send_icp_to_account, ICP, ICP_FEE}; use crate::setup::{setup_new_env, WALLET_ADMIN_USER}; -use crate::utils::{execute_request, get_user, user_test_id}; +use crate::utils::{ + execute_request, get_icp_account_identifier, get_icp_asset, get_user, user_test_id, +}; use crate::TestEnv; use ic_ledger_types::AccountIdentifier; use pocket_ic::update_candid_as; @@ -24,8 +26,9 @@ fn address_book_entry_lifecycle() { RequestOperationInput::AddAddressBookEntry(AddAddressBookEntryOperationInput { address_owner: "John Doe".to_string(), address: "0x1234".to_string(), + address_format: "icp_account_identifier".to_string(), blockchain: "icp".to_string(), - labels: vec!["native".to_string()], + labels: vec!["icp_native".to_string()], metadata: vec![MetadataDTO { key: "kyc".to_string(), value: "false".to_string(), @@ -47,7 +50,7 @@ fn address_book_entry_lifecycle() { assert_eq!(address_book_entry.address_owner, "John Doe".to_string()); assert_eq!(address_book_entry.address, "0x1234".to_string()); assert_eq!(address_book_entry.blockchain, "icp".to_string()); - assert_eq!(address_book_entry.labels, vec!["native".to_string()]); + assert_eq!(address_book_entry.labels, vec!["icp_native".to_string()]); assert_eq!( address_book_entry.metadata, vec![MetadataDTO { @@ -60,9 +63,11 @@ fn address_book_entry_lifecycle() { let add_address_book_entry = RequestOperationInput::AddAddressBookEntry(AddAddressBookEntryOperationInput { address_owner: "Max Mustermann".to_string(), + address_format: "icp_account_identifier".to_string(), + address: "0x1234".to_string(), blockchain: "icp".to_string(), - labels: vec!["native".to_string()], + labels: vec!["icp_native".to_string()], metadata: vec![MetadataDTO { key: "kyc".to_string(), value: "true".to_string(), @@ -80,9 +85,10 @@ fn address_book_entry_lifecycle() { let add_address_book_entry = RequestOperationInput::AddAddressBookEntry(AddAddressBookEntryOperationInput { address_owner: "Max Mustermann".to_string(), + address_format: "icp_account_identifier".to_string(), address: "0x5678".to_string(), blockchain: "icp".to_string(), - labels: vec!["native".to_string()], + labels: vec!["icp_native".to_string()], metadata: vec![MetadataDTO { key: "kyc".to_string(), value: "true".to_string(), @@ -107,7 +113,10 @@ fn address_book_entry_lifecycle() { ); assert_eq!(next_address_book_entry.address, "0x5678".to_string()); assert_eq!(next_address_book_entry.blockchain, "icp".to_string()); - assert_eq!(next_address_book_entry.labels, vec!["native".to_string()]); + assert_eq!( + next_address_book_entry.labels, + vec!["icp_native".to_string()] + ); assert_eq!( next_address_book_entry.metadata, vec![MetadataDTO { @@ -230,9 +239,10 @@ fn check_address_book_for_transfer() { let add_address_book_entry = RequestOperationInput::AddAddressBookEntry(AddAddressBookEntryOperationInput { address_owner: "John Doe".to_string(), + address_format: "icp_account_identifier".to_string(), address: john_doe_account.clone(), blockchain: "icp".to_string(), - labels: vec!["native".to_string()], + labels: vec!["icp_native".to_string()], metadata: vec![MetadataDTO { key: "kyc".to_string(), value: "false".to_string(), @@ -255,11 +265,12 @@ fn check_address_book_for_transfer() { // get admin user let admin_user = get_user(&env, WALLET_ADMIN_USER, canister_ids.station); + let icp = get_icp_asset(&env, canister_ids.station, WALLET_ADMIN_USER); + // create account for admin user let add_account = RequestOperationInput::AddAccount(AddAccountOperationInput { name: "admin".to_string(), - blockchain: "icp".to_string(), - standard: "native".to_string(), + assets: vec![icp.id.clone()], read_permission: AllowDTO { auth_scope: station_api::AuthScopeDTO::Restricted, user_groups: vec![], @@ -289,8 +300,10 @@ fn check_address_book_for_transfer() { _ => panic!("unexpected request operation"), }; + let icp_address = get_icp_account_identifier(&admin_account.addresses).expect("no icp address"); + // send ICP to admin user's station account - let admin_account_address = AccountIdentifier::from_hex(&admin_account.address).unwrap(); + let admin_account_address = AccountIdentifier::from_hex(&icp_address).unwrap(); send_icp_to_account( &env, controller, @@ -305,6 +318,8 @@ fn check_address_book_for_transfer() { // and check that transfer request gets rejected let transfer = RequestOperationInput::Transfer(TransferOperationInput { from_account_id: admin_account.id, + from_asset_id: icp.id, + with_standard: "icp_native".to_string(), to: john_doe_account, amount: ICP.into(), fee: None, diff --git a/tests/integration/src/asset_tests.rs b/tests/integration/src/asset_tests.rs index 0de8d6eba..0bc922850 100644 --- a/tests/integration/src/asset_tests.rs +++ b/tests/integration/src/asset_tests.rs @@ -47,7 +47,7 @@ fn asset_uniqeness_test() { station_api::AddAssetOperationInput { name: "asset".to_string(), blockchain: "icp".to_string(), - standards: vec!["native".to_string()], + standards: vec!["icp_native".to_string()], metadata: Vec::new(), symbol: "SYM".to_string(), decimals: 8, @@ -61,7 +61,7 @@ fn asset_uniqeness_test() { station_api::AddAssetOperationInput { name: "asset".to_string(), blockchain: "icp".to_string(), - standards: vec!["native".to_string()], + standards: vec!["icp_native".to_string()], metadata: Vec::new(), symbol: "SYM".to_string(), decimals: 8, @@ -83,7 +83,7 @@ fn asset_permission_test() { station_api::AddAssetOperationInput { name: "asset".to_string(), blockchain: "icp".to_string(), - standards: vec!["native".to_string()], + standards: vec!["icp_native".to_string()], metadata: Vec::new(), symbol: "SYM".to_string(), decimals: 8, diff --git a/tests/integration/src/control_panel_tests.rs b/tests/integration/src/control_panel_tests.rs index 20fb100a2..d404d0be5 100644 --- a/tests/integration/src/control_panel_tests.rs +++ b/tests/integration/src/control_panel_tests.rs @@ -1,7 +1,7 @@ -use crate::setup::{ - get_canister_wasm, setup_new_env, setup_new_env_with_config, SetupConfig, WALLET_ADMIN_USER, +use crate::setup::{setup_new_env, setup_new_env_with_config, SetupConfig, WALLET_ADMIN_USER}; +use crate::utils::{ + controller_test_id, upload_canister_modules, user_test_id, NNS_ROOT_CANISTER_ID, }; -use crate::utils::{controller_test_id, user_test_id, NNS_ROOT_CANISTER_ID}; use crate::TestEnv; use candid::Principal; use control_panel_api::{ @@ -478,22 +478,7 @@ fn no_upload_canister_modules() { .unwrap() .contains("Canister config not initialized")); - // upload canister modules - let upgrader_wasm = get_canister_wasm("upgrader").to_vec(); - let station_wasm = get_canister_wasm("station").to_vec(); - let upload_canister_modules_args = UploadCanisterModulesInput { - station_wasm_module: station_wasm.to_owned(), - upgrader_wasm_module: upgrader_wasm.to_owned(), - }; - let res: (ApiResult<()>,) = update_candid_as( - &env, - canister_ids.control_panel, - controller, - "upload_canister_modules", - (upload_canister_modules_args.clone(),), - ) - .unwrap(); - res.0.unwrap(); + upload_canister_modules(&env, canister_ids.control_panel, controller); // deploying user station succeeds after uploading canister modules let deploy_station_args = DeployStationInput { @@ -524,22 +509,12 @@ fn upload_canister_modules_authorization() { .. } = setup_new_env(); - let upgrader_wasm = get_canister_wasm("upgrader").to_vec(); - let station_wasm = get_canister_wasm("station").to_vec(); + upload_canister_modules(&env, canister_ids.control_panel, controller); + let upload_canister_modules_args = UploadCanisterModulesInput { - station_wasm_module: station_wasm.to_owned(), - upgrader_wasm_module: upgrader_wasm.to_owned(), + station_wasm_module: None, + upgrader_wasm_module: None, }; - let res: (ApiResult<()>,) = update_candid_as( - &env, - canister_ids.control_panel, - controller, - "upload_canister_modules", - (upload_canister_modules_args.clone(),), - ) - .unwrap(); - res.0.unwrap(); - let res: (ApiResult<()>,) = update_candid_as( &env, canister_ids.control_panel, diff --git a/tests/integration/src/cycles_monitor_tests.rs b/tests/integration/src/cycles_monitor_tests.rs index 899b96b2e..5a8a75f5f 100644 --- a/tests/integration/src/cycles_monitor_tests.rs +++ b/tests/integration/src/cycles_monitor_tests.rs @@ -4,7 +4,8 @@ use crate::setup::{ }; use crate::utils::{ advance_time_to_burn_cycles, controller_test_id, create_icp_account, - get_core_canister_health_status, get_system_info, get_user, user_test_id, NNS_ROOT_CANISTER_ID, + get_core_canister_health_status, get_icp_account_identifier, get_system_info, get_user, + user_test_id, NNS_ROOT_CANISTER_ID, }; use crate::TestEnv; use control_panel_api::{ @@ -231,7 +232,10 @@ fn can_mint_cycles_to_top_up_self() { let user = get_user(&env, user_id, canister_ids.station); let account = create_icp_account(&env, canister_ids.station, user.id); - let account_id = AccountIdentifier::from_hex(&account.address).unwrap(); + let account_id = AccountIdentifier::from_hex( + &get_icp_account_identifier(&account.addresses).expect("no icp address found"), + ) + .unwrap(); send_icp_to_account(&env, controller, account_id, 100 * ICP, 0, None).unwrap(); let pre_account_balance = get_icp_account_balance(&env, account_id); diff --git a/tests/integration/src/disaster_recovery_tests.rs b/tests/integration/src/disaster_recovery_tests.rs index 957b485a8..ad5d57bc1 100644 --- a/tests/integration/src/disaster_recovery_tests.rs +++ b/tests/integration/src/disaster_recovery_tests.rs @@ -4,8 +4,9 @@ use crate::setup::{ use crate::utils::{ add_user, advance_time_to_burn_cycles, execute_request, get_account_read_permission, get_account_transfer_permission, get_account_update_permission, - get_core_canister_health_status, get_system_info, get_upgrader_disaster_recovery, - get_upgrader_logs, get_user, set_disaster_recovery, user_test_id, NNS_ROOT_CANISTER_ID, + get_core_canister_health_status, get_icp_asset, get_system_info, + get_upgrader_disaster_recovery, get_upgrader_logs, get_user, set_disaster_recovery, + user_test_id, NNS_ROOT_CANISTER_ID, }; use crate::TestEnv; use candid::{Encode, Principal}; @@ -13,13 +14,14 @@ use orbit_essentials::api::ApiResult; use orbit_essentials::utils::sha256_hash; use pocket_ic::{query_candid_as, update_candid_as}; use station_api::{ - AddAccountOperationInput, AllowDTO, DisasterRecoveryCommitteeDTO, HealthStatus, + AccountDTO, AddAccountOperationInput, AllowDTO, DisasterRecoveryCommitteeDTO, HealthStatus, ListAccountsResponse, RequestOperationDTO, RequestOperationInput, RequestPolicyRuleDTO, SetDisasterRecoveryOperationInput, SystemInit, SystemInstall, SystemUpgrade, }; use std::collections::BTreeMap; +use std::str::FromStr; use upgrader_api::{ - Account, AdminUser, DisasterRecoveryCommittee, GetDisasterRecoveryAccountsResponse, + Account, AdminUser, Asset, DisasterRecoveryCommittee, GetDisasterRecoveryAccountsResponse, GetDisasterRecoveryCommitteeResponse, SetDisasterRecoveryAccountsInput, SetDisasterRecoveryCommitteeInput, }; @@ -103,29 +105,34 @@ fn successful_disaster_recovery_sync() { assert_eq!(admins.users[0].name, "user_1"); assert_eq!(admins.users[1].name, "user_2"); + let icp_asset_id = Uuid::from_bytes([0; 16]).hyphenated().to_string(); + let args = SetDisasterRecoveryAccountsInput { accounts: vec![ Account { id: Uuid::from_bytes([0; 16]).hyphenated().to_string(), - blockchain: "icp".to_owned(), - address: "abc".to_owned(), - standard: "native".to_owned(), - symbol: "ICP".to_owned(), - decimals: 8, name: "Main Account".to_owned(), metadata: vec![], + assets: vec![icp_asset_id.clone()], + seed: [0; 16], }, Account { id: Uuid::from_bytes([1; 16]).hyphenated().to_string(), - blockchain: "icp".to_owned(), - address: "def".to_owned(), - standard: "native".to_owned(), - symbol: "ICP".to_owned(), - decimals: 8, name: "Another Account".to_owned(), metadata: vec![], + assets: vec![icp_asset_id.clone()], + seed: [1; 16], }, ], + assets: vec![Asset { + blockchain: "icp".to_owned(), + id: Uuid::from_bytes([0; 16]).hyphenated().to_string(), + name: "Internet Computer".to_owned(), + symbol: "ICP".to_owned(), + decimals: 8, + metadata: vec![], + standards: vec!["icp_native".to_owned()], + }], }; // non-controller can't set disaster recovery accounts @@ -211,11 +218,12 @@ fn auto_syncs_on_account_creation() { assert!(state.accounts.is_empty()); + let icp_asset = get_icp_asset(&env, canister_ids.station, WALLET_ADMIN_USER); + // create account for admin user let add_account = RequestOperationInput::AddAccount(AddAccountOperationInput { name: "admin".to_string(), - blockchain: "icp".to_string(), - standard: "native".to_string(), + assets: vec![icp_asset.id], read_permission: AllowDTO { auth_scope: station_api::AuthScopeDTO::Restricted, user_groups: vec![], @@ -434,13 +442,14 @@ fn test_disaster_recovery_flow_recreates_same_accounts() { let upgrader_id = system_info.upgrader_id; let admin_user = get_user(&env, WALLET_ADMIN_USER, canister_ids.station); + let icp_asset = get_icp_asset(&env, canister_ids.station, WALLET_ADMIN_USER); + // 2. create 3 accounts with the same admin user and no approval required let mut initial_accounts = BTreeMap::new(); for account_nr in 0..3 { let create_account_args = AddAccountOperationInput { name: format!("account-{}", account_nr), - blockchain: "icp".to_string(), - standard: "native".to_string(), + assets: vec![icp_asset.id.clone()], read_permission: AllowDTO { auth_scope: station_api::AuthScopeDTO::Restricted, user_groups: vec![], @@ -477,25 +486,37 @@ fn test_disaster_recovery_flow_recreates_same_accounts() { .account .expect("Unexpected new account not available"); - initial_accounts.insert( - newly_added_account.id, - (newly_added_account.name, newly_added_account.address), - ); + initial_accounts.insert(newly_added_account.id.clone(), newly_added_account); } else { panic!("Unexpected request operation found"); } } + let init_assets_input = station_api::InitAssetInput { + id: icp_asset.id.clone(), + name: icp_asset.name.clone(), + symbol: icp_asset.symbol.clone(), + decimals: icp_asset.decimals, + blockchain: icp_asset.blockchain.clone(), + standards: icp_asset.standards.clone(), + metadata: vec![], + }; + // 3. perform a reinstall disaster recovery request let init_accounts_input = initial_accounts .iter() - .map(|(id, (name, _))| station_api::InitAccountInput { - id: Some(id.to_string()), - name: name.to_string(), - blockchain: "icp".to_string(), - standard: "native".to_string(), - metadata: vec![], - }) + .map( + |(id, AccountDTO { name, .. })| station_api::InitAccountInput { + id: Some(id.clone()), + name: name.to_string(), + metadata: vec![], + assets: vec![icp_asset.id.clone()], + seed: Uuid::from_str(id.as_str()) + .expect("Failed to parse uuid") + .as_bytes() + .to_owned(), + }, + ) .collect(); let res: (ApiResult<()>,) = update_candid_as( @@ -525,6 +546,7 @@ fn test_disaster_recovery_flow_recreates_same_accounts() { fallback_controller: None, upgrader: station_api::SystemUpgraderInput::Id(upgrader_id), accounts: Some(init_accounts_input), + assets: Some(vec![init_assets_input]), })) .unwrap(), install_mode: upgrader_api::InstallMode::Reinstall, @@ -608,14 +630,19 @@ fn test_disaster_recovery_flow_recreates_same_accounts() { assert_eq!(admin_user.groups.len(), 1); let admin_user_group = admin_user.groups.first().expect("No user group found"); - for (id, (name, address)) in initial_accounts { + for (id, initial_account) in initial_accounts { let account = existing_accounts .iter() .find(|a| a.id == id) .expect("Unexpected account not found"); - assert_eq!(account.name, name); - assert_eq!(account.address, address); + assert_eq!(account.name, initial_account.name); + + for account_address in initial_account.addresses.iter() { + assert!(account.addresses.iter().any(|recovered_account_address| { + recovered_account_address.address == account_address.address + })); + } account.metadata.iter().for_each(|m| { assert_eq!(m.key, "key"); @@ -703,6 +730,7 @@ fn test_disaster_recovery_flow_reuses_same_upgrader() { fallback_controller: Some(fallback_controller), upgrader: station_api::SystemUpgraderInput::Id(upgrader_id), accounts: None, + assets: None, })) .unwrap(), install_mode: upgrader_api::InstallMode::Reinstall, @@ -966,6 +994,7 @@ fn test_disaster_recovery_failing() { name: "Station".to_string(), admins: vec![], accounts: None, + assets: None, }); // install with intentionally bad arg to fail diff --git a/tests/integration/src/migration_tests.rs b/tests/integration/src/migration_tests.rs index 6f0a88087..13130b9e2 100644 --- a/tests/integration/src/migration_tests.rs +++ b/tests/integration/src/migration_tests.rs @@ -29,7 +29,9 @@ const EXPECTED_PERMISSIONS_NR: usize = // for accounts there are view, transfer and configuration permissions ACCOUNTS_NR * 3 + BASELINE_NR_PERMISSIONS; +// todo: reenable when migrations are implemented #[test] +#[ignore] fn test_canister_migration_path_is_not_triggered_with_same_wasm() { let TestEnv { env, canister_ids, .. @@ -115,7 +117,9 @@ fn test_canister_migration_path_is_not_triggered_with_same_wasm() { ); } +// todo: reenable when migrations are implemented #[test] +#[ignore] fn test_canister_migration_path_with_previous_wasm_memory_version() { let TestEnv { env, canister_ids, .. @@ -507,5 +511,5 @@ fn assert_has_icp_asset(env: &PocketIc, station_id: Principal, requester: Princi assert_eq!(assets.assets[0].symbol, "ICP"); assert_eq!(assets.assets[0].name, "Internet Computer"); assert_eq!(&assets.assets[0].blockchain, "icp"); - assert_eq!(assets.assets[0].standards, vec!["native"]); + assert_eq!(assets.assets[0].standards, vec!["icp_native"]); } diff --git a/tests/integration/src/setup.rs b/tests/integration/src/setup.rs index 321c04d20..a6309f659 100644 --- a/tests/integration/src/setup.rs +++ b/tests/integration/src/setup.rs @@ -1,10 +1,12 @@ use crate::interfaces::{ NnsIndexCanisterInitPayload, NnsLedgerCanisterInitPayload, NnsLedgerCanisterPayload, }; -use crate::utils::{controller_test_id, minter_test_id, set_controllers, NNS_ROOT_CANISTER_ID}; +use crate::utils::{ + controller_test_id, minter_test_id, set_controllers, upload_canister_modules, + NNS_ROOT_CANISTER_ID, +}; use crate::{CanisterIds, TestEnv}; use candid::{CandidType, Encode, Principal}; -use control_panel_api::UploadCanisterModulesInput; use ic_ledger_types::{AccountIdentifier, Tokens, DEFAULT_SUBACCOUNT}; use pocket_ic::{query_candid_as, PocketIc, PocketIcBuilder}; use serde::Serialize; @@ -235,17 +237,7 @@ fn install_canisters( let upgrader_wasm = get_canister_wasm("upgrader").to_vec(); let station_wasm = get_canister_wasm("station").to_vec(); if config.upload_canister_modules { - let upload_canister_modules_args = UploadCanisterModulesInput { - station_wasm_module: station_wasm.to_owned(), - upgrader_wasm_module: upgrader_wasm.to_owned(), - }; - env.update_call( - control_panel, - controller, - "upload_canister_modules", - Encode!(&upload_canister_modules_args).unwrap(), - ) - .unwrap(); + upload_canister_modules(env, control_panel, controller); } let station_init_args = SystemInstallArg::Init(SystemInitArg { @@ -254,6 +246,7 @@ fn install_canisters( identity: WALLET_ADMIN_USER, name: "station-admin".to_string(), }], + assets: None, quorum: Some(1), upgrader: station_api::SystemUpgraderInput::WasmModule(upgrader_wasm), fallback_controller: config.fallback_controller, diff --git a/tests/integration/src/test_data.rs b/tests/integration/src/test_data.rs index 935148ca3..2f54e6b44 100644 --- a/tests/integration/src/test_data.rs +++ b/tests/integration/src/test_data.rs @@ -216,6 +216,15 @@ impl<'a> StationDataGenerator<'a> { format!("{}_edited", account.name), ); self.increment_request_count(); + + account::edit_account_assets( + self.env, + self.station_canister_id, + self.requester, + account.id.clone(), + station_api::ChangeAssets::ReplaceWith { assets: vec![] }, + ); + self.increment_request_count(); } } diff --git a/tests/integration/src/test_data/account.rs b/tests/integration/src/test_data/account.rs index a6f7b9f19..02c01c17d 100644 --- a/tests/integration/src/test_data/account.rs +++ b/tests/integration/src/test_data/account.rs @@ -1,13 +1,16 @@ use super::next_unique_id; -use crate::utils::{submit_request, wait_for_request}; +use crate::utils::{get_icp_asset, submit_request, wait_for_request}; use candid::Principal; use pocket_ic::PocketIc; +use station_api::ChangeAssets; pub fn add_account( env: &PocketIc, station_canister_id: Principal, requester: Principal, ) -> station_api::AccountDTO { + let icp_asset = get_icp_asset(env, station_canister_id, requester); + let next_id = next_unique_id(); let add_account_request = submit_request( env, @@ -15,8 +18,7 @@ pub fn add_account( station_canister_id, station_api::RequestOperationInput::AddAccount(station_api::AddAccountOperationInput { name: format!("account-{}", next_id), - blockchain: "icp".to_string(), - standard: "native".to_string(), + assets: vec![icp_asset.id], metadata: Vec::new(), configs_permission: station_api::AllowDTO { auth_scope: station_api::AuthScopeDTO::Authenticated, @@ -66,6 +68,34 @@ pub fn edit_account_name( station_api::RequestOperationInput::EditAccount(station_api::EditAccountOperationInput { account_id, name: Some(name), + change_assets: None, + configs_permission: None, + read_permission: None, + transfer_permission: None, + configs_request_policy: None, + transfer_request_policy: None, + }), + ); + + wait_for_request(env, requester, station_canister_id, edit_account_request) + .expect("Failed to edit account"); +} + +pub fn edit_account_assets( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, + account_id: station_api::UuidDTO, + change_assets: ChangeAssets, +) { + let edit_account_request = submit_request( + env, + requester, + station_canister_id, + station_api::RequestOperationInput::EditAccount(station_api::EditAccountOperationInput { + account_id, + name: None, + change_assets: Some(change_assets), configs_permission: None, read_permission: None, transfer_permission: None, diff --git a/tests/integration/src/test_data/address_book.rs b/tests/integration/src/test_data/address_book.rs index 951ae716d..c19d41307 100644 --- a/tests/integration/src/test_data/address_book.rs +++ b/tests/integration/src/test_data/address_book.rs @@ -17,7 +17,8 @@ pub fn add_address_book_entry( station_api::RequestOperationInput::AddAddressBookEntry( station_api::AddAddressBookEntryOperationInput { blockchain: "icp".to_string(), - labels: vec!["native".to_string()], + address_format: "icp_account_identifier".to_string(), + labels: vec!["icp_native".to_string()], address_owner: format!("user-{}", next_id), metadata: Vec::new(), address: format!("{}{}", "0x", sha256_hex(&next_id.to_le_bytes())), diff --git a/tests/integration/src/test_data/asset.rs b/tests/integration/src/test_data/asset.rs index ab6ffbb4f..7d3a19609 100644 --- a/tests/integration/src/test_data/asset.rs +++ b/tests/integration/src/test_data/asset.rs @@ -41,7 +41,7 @@ pub fn add_asset( station_api::AddAssetOperationInput { name: format!("asset-{}", next_id), blockchain: "icp".to_string(), - standards: vec!["native".to_string()], + standards: vec!["icp_native".to_string()], metadata: Vec::new(), symbol: format!("SYM-{}", next_id), decimals: 8, diff --git a/tests/integration/src/transfer_tests.rs b/tests/integration/src/transfer_tests.rs index d53e97637..ea7673a19 100644 --- a/tests/integration/src/transfer_tests.rs +++ b/tests/integration/src/transfer_tests.rs @@ -2,7 +2,7 @@ use crate::interfaces::{ default_account, get_icp_balance, send_icp, send_icp_to_account, ICP, ICP_FEE, }; use crate::setup::{setup_new_env, WALLET_ADMIN_USER}; -use crate::utils::user_test_id; +use crate::utils::{get_icp_account_identifier, get_icp_asset, user_test_id}; use crate::TestEnv; use ic_ledger_types::AccountIdentifier; use orbit_essentials::api::ApiResult; @@ -32,11 +32,12 @@ fn make_transfer_successful() { update_candid_as(&env, canister_ids.station, WALLET_ADMIN_USER, "me", ()).unwrap(); let user_dto = res.0.unwrap().me; + let icp_asset = get_icp_asset(&env, canister_ids.station, WALLET_ADMIN_USER); + // create account let create_account_args = AddAccountOperationInput { name: "test".to_string(), - blockchain: "icp".to_string(), - standard: "native".to_string(), + assets: vec![icp_asset.id.clone()], read_permission: AllowDTO { auth_scope: station_api::AuthScopeDTO::Restricted, user_groups: vec![], @@ -133,7 +134,10 @@ fn make_transfer_successful() { assert_eq!(user_balance, ICP + 2 * ICP_FEE); // send ICP to orbit station account - let account_address = AccountIdentifier::from_hex(&account_dto.address).unwrap(); + let account_address = AccountIdentifier::from_hex( + &get_icp_account_identifier(&account_dto.addresses).expect("no icp address found"), + ) + .unwrap(); send_icp_to_account( &env, WALLET_ADMIN_USER, @@ -155,6 +159,8 @@ fn make_transfer_successful() { // make transfer request to beneficiary let transfer = TransferOperationInput { from_account_id: account_dto.id.clone(), + from_asset_id: icp_asset.id.clone(), + with_standard: "icp_native".to_string(), to: default_account(beneficiary_id), amount: ICP.into(), fee: None, diff --git a/tests/integration/src/utils.rs b/tests/integration/src/utils.rs index 421263b49..0a0e9b500 100644 --- a/tests/integration/src/utils.rs +++ b/tests/integration/src/utils.rs @@ -1,5 +1,7 @@ -use crate::setup::WALLET_ADMIN_USER; +use crate::setup::{get_canister_wasm, WALLET_ADMIN_USER}; +use crate::test_data::asset::list_assets; use candid::Principal; +use control_panel_api::UploadCanisterModulesInput; use flate2::{write::GzEncoder, Compression}; use ic_cdk::api::management_canister::main::CanisterStatusResponse; use orbit_essentials::api::ApiResult; @@ -565,11 +567,12 @@ pub fn get_account_transfer_permission( } pub fn create_icp_account(env: &PocketIc, station_id: Principal, user_id: UuidDTO) -> AccountDTO { + let icp = get_icp_asset(env, station_id, WALLET_ADMIN_USER); + // create account let create_account_args = AddAccountOperationInput { name: "test".to_string(), - blockchain: "icp".to_string(), - standard: "native".to_string(), + assets: vec![icp.id.clone()], read_permission: AllowDTO { auth_scope: station_api::AuthScopeDTO::Restricted, user_groups: vec![], @@ -663,6 +666,28 @@ pub fn create_icp_account(env: &PocketIc, station_id: Principal, user_id: UuidDT } } +pub fn get_icp_asset( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, +) -> station_api::AssetDTO { + list_assets(env, station_canister_id, requester) + .expect("Failed to query list_assets") + .0 + .expect("Failed to list assets") + .assets + .into_iter() + .find(|asset| asset.symbol == "ICP") + .expect("Failed to find ICP asset") +} + +pub fn get_icp_account_identifier(addresses: &[station_api::AccountAddressDTO]) -> Option { + addresses + .iter() + .find(|a| a.format == "icp_account_identifier") + .map(|a| a.address.clone()) +} + /// Compresses the given data to a gzip format. pub fn compress_to_gzip(data: &[u8]) -> Vec { let mut encoder = GzEncoder::new(Vec::new(), Compression::best()); @@ -706,3 +731,37 @@ pub fn sha256_hex(data: &[u8]) -> String { hex::encode(result) } + +pub fn upload_canister_modules(env: &PocketIc, control_panel_id: Principal, controller: Principal) { + // upload upgrader + let upgrader_wasm = get_canister_wasm("upgrader").to_vec(); + let upload_canister_modules_args = UploadCanisterModulesInput { + station_wasm_module: None, + upgrader_wasm_module: Some(upgrader_wasm.to_owned()), + }; + let res: (ApiResult<()>,) = update_candid_as( + env, + control_panel_id, + controller, + "upload_canister_modules", + (upload_canister_modules_args.clone(),), + ) + .unwrap(); + res.0.unwrap(); + + // upload station + let station_wasm = get_canister_wasm("station").to_vec(); + let upload_canister_modules_args = UploadCanisterModulesInput { + station_wasm_module: Some(station_wasm.to_owned()), + upgrader_wasm_module: None, + }; + let res: (ApiResult<()>,) = update_candid_as( + env, + control_panel_id, + controller, + "upload_canister_modules", + (upload_canister_modules_args.clone(),), + ) + .unwrap(); + res.0.unwrap(); +} From b92d55085fc69f08b6b12e2e9c0c42d4d4998340 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Thu, 10 Oct 2024 12:59:30 +0200 Subject: [PATCH 05/18] feat(station): add ICRC-1 support (#378) This PR adds ICRC-1 support for the station. Adding the default ICP asset to an account now generates 2 addresses for the account: AccountIdentifier and ICRC-1 Account. They reference the same account in the ICP ledger. --- .github/workflows/tests.yaml | 2 + Cargo.lock | 44 ++ Cargo.toml | 1 + core/station/impl/Cargo.toml | 1 + core/station/impl/src/core/validation.rs | 5 +- .../station/impl/src/errors/blockchain_api.rs | 22 + core/station/impl/src/errors/factory.rs | 13 +- .../impl/src/factories/blockchains/core.rs | 36 +- .../blockchains/internet_computer.rs | 434 ++++++++++++++---- .../impl/src/factories/requests/transfer.rs | 40 +- .../src/jobs/execute_created_transfers.rs | 11 +- core/station/impl/src/models/account.rs | 9 +- core/station/impl/src/models/asset.rs | 13 +- .../impl/src/models/blockchain_standard.rs | 3 +- core/station/impl/src/services/account.rs | 125 ++--- core/station/impl/src/services/system.rs | 5 +- core/station/impl/src/services/transfer.rs | 68 ++- scripts/run-integration-tests.sh | 1 + tests/integration/Cargo.toml | 1 + tests/integration/src/address_book_tests.rs | 1 + tests/integration/src/cycles_monitor_tests.rs | 2 +- tests/integration/src/interfaces.rs | 132 +++++- tests/integration/src/transfer_tests.rs | 326 ++++++++++++- tests/integration/src/utils.rs | 142 +++++- 24 files changed, 1178 insertions(+), 259 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 62d397a64..cdbc43a25 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -96,6 +96,8 @@ jobs: name: 'ic-icp-index-canister' - canister: 'cmc' name: 'cycles-minting-canister' + - canister: 'icrc1_ledger' + name: 'ic-icrc1-ledger' steps: - name: 'Checkout' uses: actions/checkout@v4 diff --git a/Cargo.lock b/Cargo.lock index a1d1c97be..50cf0f64e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -309,6 +309,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ce669cd6c8588f79e15cf450314f9638f967fc5770ff1c7c1deb0925ea7cfa" + [[package]] name = "base64" version = "0.13.1" @@ -2397,6 +2403,26 @@ dependencies = [ "thiserror", ] +[[package]] +name = "icrc-ledger-types" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f7f6b54df25295dd0ce2722d583c15e2ee7eec9cef58c10b424feb54561b2" +dependencies = [ + "base32", + "candid", + "crc32fast", + "hex", + "itertools 0.12.1", + "num-bigint 0.4.6", + "num-traits", + "serde", + "serde_bytes", + "sha2 0.10.8", + "strum 0.26.3", + "time", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2453,6 +2479,7 @@ dependencies = [ "hex", "ic-cdk 0.13.5", "ic-ledger-types", + "icrc-ledger-types", "itertools 0.13.0", "lazy_static", "num-bigint 0.4.6", @@ -2539,6 +2566,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.13.0" @@ -2681,6 +2717,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + [[package]] name = "libredox" version = "0.1.3" @@ -3015,6 +3057,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -4459,6 +4502,7 @@ dependencies = [ "ic-cdk-macros 0.9.0", "ic-ledger-types", "ic-stable-structures", + "icrc-ledger-types", "lazy_static", "num-bigint 0.4.6", "orbit-essentials", diff --git a/Cargo.toml b/Cargo.toml index 6bf8b0d80..dc22ce524 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,6 +56,7 @@ ic-cdk-macros = "0.9" ic-cdk-timers = "0.7.0" ic-ledger-types = "0.10.0" ic-stable-structures = "0.6.4" +icrc-ledger-types = "0.1.6" ic-utils = { git = "https://github.com/dfinity/agent-rs.git", rev = "be929fd7967249c879f48f2f494cbfc5805a7d98" } itertools = "0.13.0" lazy_static = "1.4.0" diff --git a/core/station/impl/Cargo.toml b/core/station/impl/Cargo.toml index 70d2ebb36..0f8bca91b 100644 --- a/core/station/impl/Cargo.toml +++ b/core/station/impl/Cargo.toml @@ -31,6 +31,7 @@ ic-cdk = { workspace = true } ic-cdk-macros = { workspace = true } ic-ledger-types = { workspace = true } ic-stable-structures = { workspace = true } +icrc-ledger-types = { workspace = true } lazy_static = { workspace = true } num-bigint = { workspace = true } serde = { workspace = true, features = ['derive'] } diff --git a/core/station/impl/src/core/validation.rs b/core/station/impl/src/core/validation.rs index e4563ef1f..2b74c7ff9 100644 --- a/core/station/impl/src/core/validation.rs +++ b/core/station/impl/src/core/validation.rs @@ -5,7 +5,6 @@ use std::cell::RefCell; use crate::{ errors::{ExternalCanisterValidationError, RecordValidationError}, - factories::blockchains::InternetComputer, models::{ resource::{Resource, ResourceId, ResourceIds}, AccountKey, AddressBookEntryKey, NotificationKey, RequestKey, UserKey, @@ -18,6 +17,7 @@ use crate::{ services::SYSTEM_SERVICE, }; use candid::Principal; +use ic_ledger_types::MAINNET_LEDGER_CANISTER_ID; use ic_stable_structures::{Memory, Storable}; #[cfg(not(test))] pub use orbit_essentials::cdk as ic_cdk; @@ -199,9 +199,10 @@ impl EnsureExternalCanister { pub fn is_external_canister( principal: Principal, ) -> Result<(), ExternalCanisterValidationError> { + // todo: look into Asset repository and exclude the ledger_canister_id's if principal == Principal::management_canister() || principal == ic_cdk::api::id() - || principal == InternetComputer::ledger_canister_id() + || principal == MAINNET_LEDGER_CANISTER_ID || principal == SYSTEM_SERVICE.get_upgrader_canister_id() { return Err(ExternalCanisterValidationError::InvalidExternalCanister { principal }); diff --git a/core/station/impl/src/errors/blockchain_api.rs b/core/station/impl/src/errors/blockchain_api.rs index 89fd0d457..085492ceb 100644 --- a/core/station/impl/src/errors/blockchain_api.rs +++ b/core/station/impl/src/errors/blockchain_api.rs @@ -8,6 +8,12 @@ pub enum BlockchainApiError { /// Failed to fetch latest asset balance. #[error(r#"Failed to fetch latest asset balance."#)] FetchBalanceFailed { asset_id: String }, + /// Missing metadata key. + #[error(r#"Metadata '{key}' not found."#)] + MissingMetadata { key: String }, + /// Invalid metadata value. + #[error(r#"Metadata data value for key '{key}'"#)] + InvalidMetadata { key: String, value: String }, /// Invalid address format. #[error(r#"Invalid address format. Found {found}, expected {expected}"#)] InvalidAddressFormat { found: String, expected: String }, @@ -20,6 +26,9 @@ pub enum BlockchainApiError { /// The to address is invalid. #[error("The to address '{address}' is invalid: {error}")] InvalidToAddress { address: String, error: String }, + /// Missing asset. + #[error(r#"Asset id '{asset_id}' not found."#)] + MissingAsset { asset_id: String }, } impl DetailableError for BlockchainApiError { @@ -50,6 +59,19 @@ impl DetailableError for BlockchainApiError { details.insert("expected".to_string(), expected.to_string()); Some(details) } + BlockchainApiError::MissingMetadata { key } => { + details.insert("key".to_string(), key.to_string()); + Some(details) + } + BlockchainApiError::InvalidMetadata { key, value } => { + details.insert("key".to_string(), key.to_string()); + details.insert("value".to_string(), value.to_string()); + Some(details) + } + BlockchainApiError::MissingAsset { asset_id } => { + details.insert("asset_id".to_string(), asset_id.to_string()); + Some(details) + } } } } diff --git a/core/station/impl/src/errors/factory.rs b/core/station/impl/src/errors/factory.rs index 675f889ca..6104fe116 100644 --- a/core/station/impl/src/errors/factory.rs +++ b/core/station/impl/src/errors/factory.rs @@ -6,22 +6,15 @@ use thiserror::Error; #[derive(Error, Debug, Eq, PartialEq, Clone)] pub enum FactoryError { /// The selected account is not yet supported by the system. - #[error(r#"The selected account is not yet supported by the system."#)] - UnsupportedBlockchainAccount { - blockchain: String, - standard: String, - }, + #[error(r#"The selected blockchain is not yet supported by the system."#)] + UnsupportedBlockchain { blockchain: String }, } impl DetailableError for FactoryError { fn details(&self) -> Option> { let mut details = HashMap::new(); - let FactoryError::UnsupportedBlockchainAccount { - blockchain, - standard, - } = self; + let FactoryError::UnsupportedBlockchain { blockchain } = self; details.insert("blockchain".to_string(), blockchain.to_string()); - details.insert("standard".to_string(), standard.to_string()); Some(details) } diff --git a/core/station/impl/src/factories/blockchains/core.rs b/core/station/impl/src/factories/blockchains/core.rs index 6b83e11ca..ea8e725ca 100644 --- a/core/station/impl/src/factories/blockchains/core.rs +++ b/core/station/impl/src/factories/blockchains/core.rs @@ -2,7 +2,8 @@ use super::InternetComputer; use crate::{ errors::FactoryError, models::{ - Account, AccountAddress, AccountSeed, Asset, Blockchain, Metadata, TokenStandard, Transfer, + Account, AccountAddress, AccountSeed, AddressFormat, Asset, Blockchain, Metadata, + TokenStandard, Transfer, }, }; use async_trait::async_trait; @@ -51,18 +52,24 @@ pub trait BlockchainApi: Send + Sync { /// Generates a new address for the given account. /// /// This address is used for token transfers. - async fn generate_address(&self, seed: &AccountSeed) -> Result, ApiError>; + async fn generate_address( + &self, + seed: &AccountSeed, + format: AddressFormat, + ) -> Result; /// Returns the latest balance of the given account. - async fn balance(&self, asset: &Asset, address: &AccountAddress) -> Result; - - /// Returns the decimals of the given account. - async fn decimals(&self, account: &Account) -> Result; + async fn balance( + &self, + asset: &Asset, + addresses: &[AccountAddress], + ) -> Result; /// Returns the latest average transaction fee. async fn transaction_fee( &self, - account: &Account, + asset: &Asset, + standard: TokenStandard, ) -> Result; /// Returns the default network. @@ -80,17 +87,12 @@ pub trait BlockchainApi: Send + Sync { pub struct BlockchainApiFactory {} impl BlockchainApiFactory { - pub fn build( - blockchain: &Blockchain, - standard: &TokenStandard, - ) -> Result, FactoryError> { - match (blockchain, standard) { - (Blockchain::InternetComputer, TokenStandard::InternetComputerNative) => { - Ok(Box::new(InternetComputer::create())) - } - (blockchain, standard) => Err(FactoryError::UnsupportedBlockchainAccount { + pub fn build(blockchain: &Blockchain) -> Result, FactoryError> { + match blockchain { + Blockchain::InternetComputer => Ok(Box::new(InternetComputer::create())), + + blockchain => Err(FactoryError::UnsupportedBlockchain { blockchain: blockchain.to_string(), - standard: standard.to_string(), }), } } diff --git a/core/station/impl/src/factories/blockchains/internet_computer.rs b/core/station/impl/src/factories/blockchains/internet_computer.rs index 674a38ac0..1513e13cd 100644 --- a/core/station/impl/src/factories/blockchains/internet_computer.rs +++ b/core/station/impl/src/factories/blockchains/internet_computer.rs @@ -11,20 +11,18 @@ use crate::{ Account, AccountAddress, AccountSeed, AddressFormat, Asset, Blockchain, Metadata, TokenStandard, Transfer, METADATA_MEMO_KEY, }, + repositories::ASSET_REPOSITORY, }; use async_trait::async_trait; use byteorder::{BigEndian, ByteOrder}; -use candid::Principal; -use ic_ledger_types::{ - account_balance, query_blocks, transfer, AccountBalanceArgs, AccountIdentifier, GetBlocksArgs, - Memo, QueryBlocksResponse, Subaccount, Timestamp, Tokens, Transaction, TransferArgs, - TransferError as LedgerTransferError, DEFAULT_FEE, -}; +use candid::{CandidType, Principal}; use num_bigint::BigUint; use orbit_essentials::{ api::ApiError, cdk::{self}, + repository::Repository, }; +use serde::Deserialize; use sha2::{Digest, Sha256}; use std::{ fmt::{Display, Formatter}, @@ -66,11 +64,22 @@ pub struct SubmitTransferResponse { pub transaction_hash: Option, } +#[derive(CandidType, Deserialize)] +pub struct ICPLedgerTransferFee { + pub e8s: u64, +} +#[derive(CandidType, Deserialize)] +pub struct ICPLedgerTransferFeeResponse { + pub transfer_fee: ICPLedgerTransferFee, +} + +#[derive(CandidType)] +pub struct ICPLedgerTransferFeeInput {} + impl InternetComputer { pub const BLOCKCHAIN: Blockchain = Blockchain::InternetComputer; pub const STANDARD: TokenStandard = TokenStandard::InternetComputerNative; pub const ICP_LEDGER_CANISTER_ID: &'static str = "ryjl3-tyaaa-aaaaa-aaaba-cai"; - pub const DECIMALS: u32 = 8; pub const MAIN_NETWORK: InternetComputerNetwork = InternetComputerNetwork::Mainnet; pub fn create() -> Self { @@ -90,11 +99,9 @@ impl InternetComputer { subaccount_id } - pub fn ledger_canister_id() -> Principal { - Principal::from_text(Self::ICP_LEDGER_CANISTER_ID).unwrap() - } - - fn hash_transaction(transaction: &Transaction) -> Result { + fn hash_transaction( + transaction: &ic_ledger_types::Transaction, + ) -> Result { let mut hasher = Sha256::new(); hasher.update(&serde_cbor::ser::to_vec_packed(transaction)?); Ok(hex::encode(hasher.finalize())) @@ -104,30 +111,54 @@ impl InternetComputer { /// of the station canister id and the station_account uuid as the subaccount id. /// /// The station_account account id is used to identify a station_account in the ICP ledger. - pub fn station_account_to_ledger_account(&self, seed: &AccountSeed) -> AccountIdentifier { + pub fn station_account_to_ledger_account( + &self, + seed: &AccountSeed, + ) -> ic_ledger_types::AccountIdentifier { let subaccount = InternetComputer::subaccount_from_seed(seed); - AccountIdentifier::new(&self.station_canister_id, &Subaccount(subaccount)) + ic_ledger_types::AccountIdentifier::new( + &self.station_canister_id, + &ic_ledger_types::Subaccount(subaccount), + ) } - /// Generates the corresponded ledger address for the given station_account id. + /// Generates the corresponded icp ledger address for the given station account seed. /// /// This address is used for token transfers. - pub fn station_account_address(&self, seed: &AccountSeed) -> String { + pub fn generate_account_identifier(&self, seed: &AccountSeed) -> String { let account = self.station_account_to_ledger_account(seed); account.to_hex() } - /// Returns the latest balance of the given station_account. + /// Generates the corresponded icrc-1 ledger address for the given station account seed. + /// + /// This address is used for token transfers. + pub fn generate_icrc1_address(&self, seed: &AccountSeed) -> String { + let subaccount = Self::subaccount_from_seed(seed); + + let address = icrc_ledger_types::icrc1::account::Account { + owner: self.station_canister_id, + subaccount: Some(subaccount), + }; + + address.to_string() + } + + /// Returns the latest balance of the given icp accountidentifier of a station account. pub async fn balance_of_account_identifier( &self, asset: &Asset, - account: &AccountIdentifier, + account_identifier: &ic_ledger_types::AccountIdentifier, ) -> BlockchainApiResult { - let balance = account_balance( - Self::ledger_canister_id(), - AccountBalanceArgs { account: *account }, + let ledger_canister_id = Self::get_ledger_canister_id_from_metadata(&asset.metadata)?; + + let balance = ic_ledger_types::account_balance( + ledger_canister_id, + ic_ledger_types::AccountBalanceArgs { + account: *account_identifier, + }, ) .await .map_err(|_| BlockchainApiError::FetchBalanceFailed { @@ -137,17 +168,51 @@ impl InternetComputer { Ok(balance.e8s()) } - pub fn transaction_fee(&self) -> u64 { - DEFAULT_FEE.e8s() + /// Returns the latest balance of the given icrc1 account of a station account. + pub async fn balance_of_icrc1_account( + &self, + asset: &Asset, + account: &icrc_ledger_types::icrc1::account::Account, + ) -> BlockchainApiResult { + let ledger_canister_id = Self::get_ledger_canister_id_from_metadata(&asset.metadata)?; + + let balance = + ic_cdk::call::<(icrc_ledger_types::icrc1::account::Account,), (candid::Nat,)>( + ledger_canister_id, + "icrc1_balance_of", + // 4. Provide the arguments for the call in a tuple, here `transfer_args` is encapsulated as a single-element tuple. + (*account,), + ) + .await + .map_err(|err| BlockchainApiError::BlockchainNetworkError { + info: format!("rejection_code: {:?}, err: {}", err.0, err.1), + })? + .0; + + Ok(balance.0) } - pub fn decimals(&self) -> u32 { - Self::DECIMALS + fn get_ledger_canister_id_from_metadata(metadata: &Metadata) -> BlockchainApiResult { + let ledger_canister_id_str = metadata + .get(TokenStandard::METADATA_KEY_LEDGER_CANISTER_ID) + .ok_or(BlockchainApiError::MissingMetadata { + key: TokenStandard::METADATA_KEY_LEDGER_CANISTER_ID.to_string(), + })?; + + Ok( + Principal::from_text(ledger_canister_id_str.clone()).map_err(|_| { + BlockchainApiError::InvalidMetadata { + key: TokenStandard::METADATA_KEY_LEDGER_CANISTER_ID.to_string(), + value: ledger_canister_id_str, + } + })?, + ) } - pub async fn submit_transfer( + pub async fn submit_icp_transfer( &self, station_account: Account, + asset: Asset, station_transfer: Transfer, ) -> Result { let current_time = cdk::next_time(); @@ -157,26 +222,26 @@ impl InternetComputer { Some(memo) => HelperMapper::to_u64(memo)?, None => BigEndian::read_u64(&station_transfer.id[0..8]), }; - let to_address = - AccountIdentifier::from_hex(&station_transfer.to_address).map_err(|error| { - BlockchainApiError::InvalidToAddress { - address: station_transfer.to_address.clone(), - error, - } + let to_address = ic_ledger_types::AccountIdentifier::from_hex(&station_transfer.to_address) + .map_err(|error| BlockchainApiError::InvalidToAddress { + address: station_transfer.to_address.clone(), + error, })?; - let block_height = transfer( - Self::ledger_canister_id(), - TransferArgs { - amount: Tokens::from_e8s(amount), - fee: Tokens::from_e8s(transaction_fee), - created_at_time: Some(Timestamp { + let ledger_canister_id = Self::get_ledger_canister_id_from_metadata(&asset.metadata)?; + + let block_height = ic_ledger_types::transfer( + ledger_canister_id, + ic_ledger_types::TransferArgs { + amount: ic_ledger_types::Tokens::from_e8s(amount), + fee: ic_ledger_types::Tokens::from_e8s(transaction_fee), + created_at_time: Some(ic_ledger_types::Timestamp { timestamp_nanos: current_time, }), - from_subaccount: Some(Subaccount(InternetComputer::subaccount_from_seed( - &station_account.seed, - ))), - memo: Memo(memo), + from_subaccount: Some(ic_ledger_types::Subaccount( + InternetComputer::subaccount_from_seed(&station_account.seed), + )), + memo: ic_ledger_types::Memo(memo), to: to_address, }, ) @@ -186,34 +251,36 @@ impl InternetComputer { })? .map_err(|err| BlockchainApiError::TransactionSubmitFailed { info: match err { - LedgerTransferError::BadFee { expected_fee } => { + ic_ledger_types::TransferError::BadFee { expected_fee } => { format!("Bad fee, expected: {}", expected_fee) } - LedgerTransferError::InsufficientFunds { balance } => { + ic_ledger_types::TransferError::InsufficientFunds { balance } => { format!("Insufficient balance, balance: {}", balance) } - LedgerTransferError::TxTooOld { + ic_ledger_types::TransferError::TxTooOld { allowed_window_nanos, } => { format!("Tx too old, allowed_window_nanos: {}", allowed_window_nanos) } - LedgerTransferError::TxCreatedInFuture => "Tx created in future".to_string(), - LedgerTransferError::TxDuplicate { duplicate_of } => { + ic_ledger_types::TransferError::TxCreatedInFuture => { + "Tx created in future".to_string() + } + ic_ledger_types::TransferError::TxDuplicate { duplicate_of } => { format!("Tx duplicate, duplicate_of: {}", duplicate_of) } }, })?; - let transaction_hash = match query_blocks( - Self::ledger_canister_id(), - GetBlocksArgs { + let transaction_hash = match ic_ledger_types::query_blocks( + ledger_canister_id, + ic_ledger_types::GetBlocksArgs { length: 1, start: block_height, }, ) .await { - Ok(QueryBlocksResponse { blocks, .. }) => match blocks.first() { + Ok(ic_ledger_types::QueryBlocksResponse { blocks, .. }) => match blocks.first() { Some(block) => match Self::hash_transaction(&block.transaction) { Ok(transaction_hash) => Some(transaction_hash), Err(_) => { @@ -244,6 +311,96 @@ impl InternetComputer { transaction_hash, }) } + + pub async fn submit_icrc1_transfer( + &self, + station_account: Account, + asset: Asset, + station_transfer: Transfer, + ) -> Result { + let memo = match station_transfer.metadata_map().get(METADATA_MEMO_KEY) { + Some(memo) => HelperMapper::to_u64(memo)?, + None => BigEndian::read_u64(&station_transfer.id[0..8]), + }; + + let to_address = + icrc_ledger_types::icrc1::account::Account::from_str(&station_transfer.to_address) + .map_err(|error| BlockchainApiError::InvalidToAddress { + address: station_transfer.to_address.clone(), + error: error.to_string(), + })?; + + let transfer_args = icrc_ledger_types::icrc1::transfer::TransferArg { + amount: station_transfer.amount, + fee: Some(station_transfer.fee), + created_at_time: None, + from_subaccount: Some(InternetComputer::subaccount_from_seed( + &station_account.seed, + )), + memo: Some(memo.into()), + to: to_address, + }; + + let ledger_canister_id = Self::get_ledger_canister_id_from_metadata(&asset.metadata)?; + + let block_height = ic_cdk::call::< + (icrc_ledger_types::icrc1::transfer::TransferArg,), + ( + Result< + icrc_ledger_types::icrc1::transfer::BlockIndex, + icrc_ledger_types::icrc1::transfer::TransferError, + >, + ), + >( + ledger_canister_id, + "icrc1_transfer", + // 4. Provide the arguments for the call in a tuple, here `transfer_args` is encapsulated as a single-element tuple. + (transfer_args,), + ) + .await + .map_err(|err| BlockchainApiError::BlockchainNetworkError { + info: format!("rejection_code: {:?}, err: {}", err.0, err.1), + })? + .0 + .map_err(|err| BlockchainApiError::TransactionSubmitFailed { + info: match err { + icrc_ledger_types::icrc1::transfer::TransferError::BadFee { expected_fee } => { + format!("Bad fee, expected: {}", expected_fee) + } + icrc_ledger_types::icrc1::transfer::TransferError::InsufficientFunds { + balance, + } => { + format!("Insufficient balance, balance: {}", balance) + } + icrc_ledger_types::icrc1::transfer::TransferError::TooOld => { + "Tx too old".to_string() + } + icrc_ledger_types::icrc1::transfer::TransferError::CreatedInFuture { .. } => { + "Tx created in future".to_string() + } + icrc_ledger_types::icrc1::transfer::TransferError::Duplicate { duplicate_of } => { + format!("Tx duplicate, duplicate_of: {}", duplicate_of) + } + icrc_ledger_types::icrc1::transfer::TransferError::BadBurn { min_burn_amount } => { + format!("Bad burn, min_burn_amount: {}", min_burn_amount) + } + icrc_ledger_types::icrc1::transfer::TransferError::TemporarilyUnavailable => { + "Ledger temporarily unavailable".to_string() + } + icrc_ledger_types::icrc1::transfer::TransferError::GenericError { + error_code, + message, + } => { + format!("Error occurred. Code: {}, message: {}", error_code, message) + } + }, + })?; + + Ok(SubmitTransferResponse { + block_height: block_height.0.iter_u64_digits().next().unwrap_or(0), + transaction_hash: None, + }) + } } #[async_trait] @@ -251,39 +408,21 @@ impl BlockchainApi for InternetComputer { async fn generate_address( &self, seed: &AccountSeed, - ) -> BlockchainApiResult> { - Ok(vec![AccountAddress { - address: self.station_account_address(seed), - format: AddressFormat::ICPAccountIdentifier, - }]) - } - - async fn balance( - &self, - asset: &Asset, - account_address: &AccountAddress, - ) -> BlockchainApiResult { - match account_address.format { - AddressFormat::ICPAccountIdentifier => { - let balance = self - .balance_of_account_identifier( - asset, - &AccountIdentifier::from_hex(&account_address.address).map_err( - |error| BlockchainApiError::InvalidToAddress { - address: account_address.address.clone(), - error, - }, - )?, - ) - .await?; - - Ok(BigUint::from(balance)) - } - AddressFormat::ICRC1Account => todo!(), + format: AddressFormat, + ) -> BlockchainApiResult { + match format { + AddressFormat::ICPAccountIdentifier => Ok(AccountAddress { + address: self.generate_account_identifier(seed), + format: AddressFormat::ICPAccountIdentifier, + }), + AddressFormat::ICRC1Account => Ok(AccountAddress { + address: self.generate_icrc1_address(seed), + format: AddressFormat::ICRC1Account, + }), AddressFormat::EthereumAddress | AddressFormat::BitcoinAddressP2WPKH | AddressFormat::BitcoinAddressP2TR => Err(BlockchainApiError::InvalidAddressFormat { - found: account_address.format.to_string(), + found: format.to_string(), expected: [ AddressFormat::ICPAccountIdentifier.to_string(), AddressFormat::ICRC1Account.to_string(), @@ -293,20 +432,124 @@ impl BlockchainApi for InternetComputer { } } - async fn decimals(&self, _station_account: &Account) -> BlockchainApiResult { - Ok(self.decimals()) + async fn balance( + &self, + asset: &Asset, + account_addresses: &[AccountAddress], + ) -> BlockchainApiResult { + // all matching addresses should resolve to the same balance, so pick the first one + + for account_address in account_addresses { + match account_address.format { + AddressFormat::ICPAccountIdentifier => { + let balance = self + .balance_of_account_identifier( + asset, + &ic_ledger_types::AccountIdentifier::from_hex(&account_address.address) + .map_err(|error| BlockchainApiError::InvalidToAddress { + address: account_address.address.clone(), + error, + })?, + ) + .await?; + + return Ok(BigUint::from(balance)); + } + AddressFormat::ICRC1Account => { + let balance = self + .balance_of_icrc1_account( + asset, + &icrc_ledger_types::icrc1::account::Account::from_str( + &account_address.address, + ) + .map_err(|error| { + BlockchainApiError::InvalidToAddress { + address: account_address.address.clone(), + error: error.to_string(), + } + })?, + ) + .await?; + + return Ok(balance); + } + AddressFormat::EthereumAddress + | AddressFormat::BitcoinAddressP2WPKH + | AddressFormat::BitcoinAddressP2TR => { + // these address formats are not supported for ICP + continue; + } + } + } + + print(format!( + "Warning: no suitable address found for balance lookup in asset {} `{}`", + asset.name, + Uuid::from_bytes(asset.id).hyphenated() + )); + + Ok(BigUint::from(0u64)) } + #[cfg(not(target_arch = "wasm32"))] async fn transaction_fee( &self, - _station_account: &Account, + _asset: &Asset, + _standard: TokenStandard, ) -> BlockchainApiResult { Ok(BlockchainTransactionFee { - fee: BigUint::from(self.transaction_fee()), + fee: 10_000u64.into(), metadata: Metadata::default(), }) } + #[cfg(target_arch = "wasm32")] + async fn transaction_fee( + &self, + asset: &Asset, + standard: TokenStandard, + ) -> BlockchainApiResult { + match standard { + TokenStandard::InternetComputerNative => { + let ledger_canister_id = + Self::get_ledger_canister_id_from_metadata(&asset.metadata)?; + + let fee = + ic_cdk::call::<(ICPLedgerTransferFeeInput,), (ICPLedgerTransferFeeResponse,)>( + ledger_canister_id, + "transfer_fee", + (ICPLedgerTransferFeeInput {},), + ) + .await + .map_err(|err| BlockchainApiError::BlockchainNetworkError { + info: format!("rejection_code: {:?}, err: {}", err.0, err.1), + })? + .0; + + Ok(BlockchainTransactionFee { + fee: fee.transfer_fee.e8s.into(), + metadata: Metadata::default(), + }) + } + TokenStandard::ICRC1 => { + let ledger_canister_id = + Self::get_ledger_canister_id_from_metadata(&asset.metadata)?; + + let fee = ic_cdk::call::<(), (candid::Nat,)>(ledger_canister_id, "icrc1_fee", ()) + .await + .map_err(|err| BlockchainApiError::BlockchainNetworkError { + info: format!("rejection_code: {:?}, err: {}", err.0, err.1), + })? + .0; + + Ok(BlockchainTransactionFee { + fee: fee.0, + metadata: Metadata::default(), + }) + } + } + } + fn default_network(&self) -> String { Self::MAIN_NETWORK.to_string() } @@ -316,9 +559,24 @@ impl BlockchainApi for InternetComputer { station_account: &Account, transfer: &Transfer, ) -> BlockchainApiResult { - let transfer_response = self - .submit_transfer(station_account.clone(), transfer.clone()) - .await?; + let asset = ASSET_REPOSITORY.get(&transfer.from_asset).ok_or({ + BlockchainApiError::MissingAsset { + asset_id: Uuid::from_bytes(transfer.from_asset) + .hyphenated() + .to_string(), + } + })?; + + let transfer_response = match transfer.with_standard { + TokenStandard::InternetComputerNative => { + self.submit_icp_transfer(station_account.clone(), asset, transfer.clone()) + .await? + } + TokenStandard::ICRC1 => { + self.submit_icrc1_transfer(station_account.clone(), asset, transfer.clone()) + .await? + } + }; Ok(BlockchainTransactionSubmitted { details: vec![ diff --git a/core/station/impl/src/factories/requests/transfer.rs b/core/station/impl/src/factories/requests/transfer.rs index d3ffb89e8..07a2bc94f 100644 --- a/core/station/impl/src/factories/requests/transfer.rs +++ b/core/station/impl/src/factories/requests/transfer.rs @@ -7,10 +7,10 @@ use crate::{ factories::blockchains::BlockchainApiFactory, mappers::HelperMapper, models::{ - AccountKey, Metadata, Request, RequestExecutionPlan, RequestOperation, TokenStandard, - Transfer, TransferOperation, TransferOperationInput, + Metadata, Request, RequestExecutionPlan, RequestOperation, TokenStandard, Transfer, + TransferOperation, TransferOperationInput, }, - repositories::{ACCOUNT_REPOSITORY, ASSET_REPOSITORY}, + repositories::ASSET_REPOSITORY, services::TransferService, }; use async_trait::async_trait; @@ -100,17 +100,6 @@ impl<'p, 'o> TransferRequestExecute<'p, 'o> { #[async_trait] impl Execute for TransferRequestExecute<'_, '_> { async fn execute(&self) -> Result { - let account = ACCOUNT_REPOSITORY - .get(&AccountKey { - id: self.operation.input.from_account_id, - }) - .ok_or(RequestExecuteError::Failed { - reason: format!( - "Account {} does not exist.", - Uuid::from_bytes(self.operation.input.from_account_id).hyphenated() - ), - })?; - let asset = ASSET_REPOSITORY .get(&self.operation.input.from_asset_id) .ok_or(RequestExecuteError::Failed { @@ -120,21 +109,20 @@ impl Execute for TransferRequestExecute<'_, '_> { ), })?; - let blockchain_api = - BlockchainApiFactory::build(&asset.blockchain, &self.operation.input.with_standard) - .map_err(|e| RequestExecuteError::Failed { - reason: format!("Failed to build blockchain api: {}", e), - })?; + let blockchain_api = BlockchainApiFactory::build(&asset.blockchain).map_err(|e| { + RequestExecuteError::Failed { + reason: format!("Failed to build blockchain api: {}", e), + } + })?; let fee = match &self.operation.input.fee { Some(fee) => fee.clone(), None => { - let transaction_fee = - blockchain_api - .transaction_fee(&account) - .await - .map_err(|e| RequestExecuteError::Failed { - reason: format!("Failed to fetch transaction fee: {}", e), - })?; + let transaction_fee = blockchain_api + .transaction_fee(&asset, self.operation.input.with_standard.clone()) + .await + .map_err(|e| RequestExecuteError::Failed { + reason: format!("Failed to fetch transaction fee: {}", e), + })?; candid::Nat(transaction_fee.fee) } diff --git a/core/station/impl/src/jobs/execute_created_transfers.rs b/core/station/impl/src/jobs/execute_created_transfers.rs index cd6a9143f..e2e8d31e8 100644 --- a/core/station/impl/src/jobs/execute_created_transfers.rs +++ b/core/station/impl/src/jobs/execute_created_transfers.rs @@ -205,12 +205,11 @@ impl Job { }, )?; - let blockchain_api = - BlockchainApiFactory::build(&asset.blockchain, &transfer.with_standard).map_err( - |e| TransferError::ExecutionError { - reason: format!("Failed to build blockchain api: {}", e), - }, - )?; + let blockchain_api = BlockchainApiFactory::build(&asset.blockchain).map_err(|e| { + TransferError::ExecutionError { + reason: format!("Failed to build blockchain api: {}", e), + } + })?; match blockchain_api.submit_transaction(&account, &transfer).await { Ok(details) => Ok((transfer, details)), diff --git a/core/station/impl/src/models/account.rs b/core/station/impl/src/models/account.rs index 8deb24a7c..1151f35e0 100644 --- a/core/station/impl/src/models/account.rs +++ b/core/station/impl/src/models/account.rs @@ -130,7 +130,14 @@ impl AddressFormat { address_format: self.to_string(), }) .map(|_| ()), - AddressFormat::ICRC1Account => todo!(), + AddressFormat::ICRC1Account => { + icrc_ledger_types::icrc1::account::Account::from_str(address) + .map_err(|_| AccountError::InvalidAddress { + address: address.to_string(), + address_format: self.to_string(), + }) + .map(|_| ()) + } AddressFormat::EthereumAddress => todo!(), AddressFormat::BitcoinAddressP2WPKH => todo!(), AddressFormat::BitcoinAddressP2TR => todo!(), diff --git a/core/station/impl/src/models/asset.rs b/core/station/impl/src/models/asset.rs index 3e4b10ee8..c4c86a52d 100644 --- a/core/station/impl/src/models/asset.rs +++ b/core/station/impl/src/models/asset.rs @@ -144,7 +144,7 @@ impl ModelValidator for Asset { #[cfg(any(test, feature = "canbench"))] pub mod asset_test_utils { - use std::collections::BTreeSet; + use std::collections::{BTreeMap, BTreeSet}; use crate::models::{Blockchain, Metadata, TokenStandard}; @@ -157,8 +157,17 @@ pub mod asset_test_utils { standards: BTreeSet::from([TokenStandard::InternetComputerNative]), symbol: "ICP".to_string(), name: "Internet Computer".to_string(), + metadata: Metadata::new(BTreeMap::from([ + ( + "ledger_canister_id".to_string(), + "ryjl3-tyaaa-aaaaa-aaaba-cai".to_string(), + ), + ( + "index_canister_id".to_string(), + "qhbym-qaaaa-aaaaa-aaafq-cai".to_string(), + ), + ])), decimals: 8, - metadata: Metadata::default(), } } diff --git a/core/station/impl/src/models/blockchain_standard.rs b/core/station/impl/src/models/blockchain_standard.rs index d5c73956f..836ed6599 100644 --- a/core/station/impl/src/models/blockchain_standard.rs +++ b/core/station/impl/src/models/blockchain_standard.rs @@ -67,12 +67,11 @@ impl TokenStandard { pub fn get_supported_operations(&self) -> Vec { match self { - TokenStandard::InternetComputerNative => vec![ + TokenStandard::InternetComputerNative | TokenStandard::ICRC1 => vec![ StandardOperation::Balance, StandardOperation::Transfer, StandardOperation::ListTransfers, ], - TokenStandard::ICRC1 => vec![], } } } diff --git a/core/station/impl/src/services/account.rs b/core/station/impl/src/services/account.rs index b5b5996f3..d93b14b50 100644 --- a/core/station/impl/src/services/account.rs +++ b/core/station/impl/src/services/account.rs @@ -16,8 +16,7 @@ use crate::{ resource::{AccountResourceAction, Resource, ResourceId, ResourceIds}, Account, AccountBalance, AccountCallerPrivileges, AccountId, AddAccountOperationInput, AddRequestPolicyOperationInput, AddressFormat, Blockchain, CycleObtainStrategy, - EditAccountOperationInput, EditPermissionOperationInput, MetadataItem, StandardOperation, - TokenStandard, + EditAccountOperationInput, EditPermissionOperationInput, MetadataItem, TokenStandard, }, repositories::{ AccountRepository, AccountWhereClause, AssetRepository, ACCOUNT_REPOSITORY, @@ -169,10 +168,17 @@ impl AccountService { })?; for standard in asset.standards.iter() { - let blockchain_api = - BlockchainApiFactory::build(&asset.blockchain.clone(), &standard.clone())?; + let blockchain_api = BlockchainApiFactory::build(&asset.blockchain.clone())?; - let account_addresses = blockchain_api.generate_address(&new_account.seed).await?; + let mut account_addresses = Vec::new(); + + for address_format in standard.get_info().address_formats.into_iter() { + let address = blockchain_api + .generate_address(&new_account.seed, address_format.clone()) + .await?; + + account_addresses.push(address); + } new_account.addresses.extend(account_addresses); } @@ -465,61 +471,23 @@ impl AccountService { continue; }; - let balance: AccountBalance = match ( - &account_asset.balance, - balance_considered_fresh, - ) { - (None, _) | (_, false) => { - // find a standard that supports fetch balance operation - let Some(standard) = asset.standards.iter().find(|standard| { - standard - .get_supported_operations() - .contains(&StandardOperation::Balance) - }) else { - // Could not find a standard to fetch the balance. - // This becomes normal there are assets that do not support fetching the balance. - ic_cdk::println!( - "Could not find a standard to fetch the balance in account {}({}) for asset {}({}) on {}", - account.name, - Uuid::from_bytes(account.id).hyphenated(), - asset.symbol, - asset.name, - asset.blockchain.to_string() - ); - continue; - }; - - // get the supported address formats of the standard - let standard_info = standard.get_info(); - - // find an address that is supported by the standard - let Some(address) = account.addresses.iter().find(|address| { - standard_info.address_formats.contains(&address.format) - }) else { - // could not find address for the standard to fetch the balance - ic_cdk::println!( - "Could not find address for the standard {} to fetch the balance in account {}({})", - standard_info.name, - account.name, - Uuid::from_bytes(account.id).hyphenated() - ); - continue; - }; - - let blockchain_api = - BlockchainApiFactory::build(&asset.blockchain, standard)?; - let fetched_balance = blockchain_api.balance(&asset, address).await?; - let new_balance = AccountBalance { - balance: candid::Nat(fetched_balance), - last_modification_timestamp: next_time(), - }; - - account_asset.balance = Some(new_balance.clone()); - - new_balance - } - (Some(balance), _) => balance.to_owned(), - }; + let balance: AccountBalance = + match (&account_asset.balance, balance_considered_fresh) { + (None, _) | (_, false) => { + let blockchain_api = BlockchainApiFactory::build(&asset.blockchain)?; + let fetched_balance = + blockchain_api.balance(&asset, &account.addresses).await?; + let new_balance = AccountBalance { + balance: candid::Nat(fetched_balance), + last_modification_timestamp: next_time(), + }; + + account_asset.balance = Some(new_balance.clone()); + + new_balance + } + (Some(balance), _) => balance.to_owned(), + }; balances.push(AccountMapper::to_balance_dto( balance, @@ -553,6 +521,7 @@ mod tests { AddAccountOperation, AddAccountOperationInput, ChangeAssets, Metadata, User, }, repositories::UserRepository, + services::ASSET_SERVICE, }; struct TestContext { @@ -962,4 +931,40 @@ mod tests { .await .expect_err("transfer_request_policy should be invalid"); } + + #[tokio::test] + async fn can_add_icrc1_asset() { + disable_mock_resource_validation(); + + let asset = ASSET_SERVICE + .create( + crate::models::AddAssetOperationInput { + name: "Test ICRC1 token".to_owned(), + symbol: "TEST".to_owned(), + decimals: 4, + metadata: Metadata::default(), + blockchain: Blockchain::InternetComputer, + standards: vec![TokenStandard::ICRC1], + }, + None, + ) + .expect("asset creation should be successful"); + + ACCOUNT_SERVICE + .create_account( + AddAccountOperationInput { + name: "Test account".to_owned(), + assets: vec![asset.id], + metadata: Metadata::default(), + read_permission: Allow::authenticated(), + configs_permission: Allow::authenticated(), + transfer_permission: Allow::authenticated(), + configs_request_policy: Some(RequestPolicyRule::AutoApproved), + transfer_request_policy: Some(RequestPolicyRule::AutoApproved), + }, + None, + ) + .await + .expect("account creation should be successful"); + } } diff --git a/core/station/impl/src/services/system.rs b/core/station/impl/src/services/system.rs index 4313da176..eb606c312 100644 --- a/core/station/impl/src/services/system.rs +++ b/core/station/impl/src/services/system.rs @@ -541,7 +541,10 @@ mod init_canister_sync_handlers { pub fn add_initial_assets() { let initial_assets: Vec = vec![Asset { blockchain: Blockchain::InternetComputer, - standards: BTreeSet::from([TokenStandard::InternetComputerNative]), + standards: BTreeSet::from([ + TokenStandard::InternetComputerNative, + TokenStandard::ICRC1, + ]), symbol: "ICP".to_string(), name: "Internet Computer".to_string(), metadata: Metadata::new(BTreeMap::from([ diff --git a/core/station/impl/src/services/transfer.rs b/core/station/impl/src/services/transfer.rs index bf5896ce4..39d97b196 100644 --- a/core/station/impl/src/services/transfer.rs +++ b/core/station/impl/src/services/transfer.rs @@ -104,12 +104,15 @@ mod tests { use crate::{ core::{test_utils, validation::disable_mock_resource_validation}, models::{ - account_test_utils::mock_account, request_test_utils::mock_request, - transfer_test_utils::mock_transfer, user_test_utils::mock_user, Account, User, + account_test_utils::mock_account, asset_test_utils::mock_asset, permission::Allow, + request_test_utils::mock_request, transfer_test_utils::mock_transfer, + user_test_utils::mock_user, Account, Metadata, User, }, repositories::{ - ACCOUNT_REPOSITORY, REQUEST_REPOSITORY, TRANSFER_REPOSITORY, USER_REPOSITORY, + ACCOUNT_REPOSITORY, ASSET_REPOSITORY, REQUEST_REPOSITORY, TRANSFER_REPOSITORY, + USER_REPOSITORY, }, + services::ACCOUNT_SERVICE, }; use candid::Principal; @@ -121,7 +124,7 @@ mod tests { call_context: CallContext, } - fn setup() -> TestContext { + async fn setup() -> TestContext { test_utils::init_canister_system(); let call_context = CallContext::new(Principal::from_slice(&[9; 29])); @@ -130,9 +133,28 @@ mod tests { USER_REPOSITORY.insert(user.to_key(), user.clone()); + let asset = mock_asset(); + + ASSET_REPOSITORY.insert(asset.id, asset.clone()); + let account = mock_account(); - ACCOUNT_REPOSITORY.insert(account.to_key(), account.clone()); + ACCOUNT_SERVICE + .create_account( + crate::models::AddAccountOperationInput { + name: "foo".to_owned(), + assets: vec![asset.id], + metadata: Metadata::default(), + read_permission: Allow::default(), + configs_permission: Allow::default(), + transfer_permission: Allow::default(), + configs_request_policy: None, + transfer_request_policy: None, + }, + Some(account.id), + ) + .await + .expect("Failed to create account"); let mut request = mock_request(); request.id = [2; 16]; @@ -148,9 +170,9 @@ mod tests { } } - #[test] - fn add_transfer_successfully() { - let ctx = setup(); + #[tokio::test] + async fn add_transfer_successfully() { + let ctx = setup().await; disable_mock_resource_validation(); @@ -163,9 +185,9 @@ mod tests { assert!(result.is_ok()); } - #[test] - fn fail_add_transfer_missing_initiator_user() { - let ctx = setup(); + #[tokio::test] + async fn fail_add_transfer_missing_initiator_user() { + let ctx = setup().await; disable_mock_resource_validation(); @@ -185,9 +207,9 @@ mod tests { ); } - #[test] - fn fail_add_transfer_missing_from_account() { - let ctx = setup(); + #[tokio::test] + async fn fail_add_transfer_missing_from_account() { + let ctx = setup().await; disable_mock_resource_validation(); @@ -206,9 +228,9 @@ mod tests { ); } - #[test] - fn fail_add_transfer_missing_request_id() { - let ctx = setup(); + #[tokio::test] + async fn fail_add_transfer_missing_request_id() { + let ctx = setup().await; disable_mock_resource_validation(); @@ -226,9 +248,9 @@ mod tests { ); } - #[test] - fn get_transfer() { - let ctx = setup(); + #[tokio::test] + async fn get_transfer() { + let ctx = setup().await; let mut transfer = mock_transfer(); transfer.from_account = ctx.account.id; transfer.initiator_user = ctx.caller_user.id; @@ -240,9 +262,9 @@ mod tests { assert!(result.is_ok()); } - #[test] - fn fail_get_transfer_not_allowed() { - let ctx = setup(); + #[tokio::test] + async fn fail_get_transfer_not_allowed() { + let ctx = setup().await; let mut user = mock_user(); user.identities = vec![Principal::from_slice(&[10; 29])]; diff --git a/scripts/run-integration-tests.sh b/scripts/run-integration-tests.sh index 2d8b6f9b0..c356e8534 100755 --- a/scripts/run-integration-tests.sh +++ b/scripts/run-integration-tests.sh @@ -41,6 +41,7 @@ if [ $DOWNLOAD_NNS_CANISTERS == "true" ]; then ./scripts/download-nns-canister-wasm.sh icp_ledger ledger-canister ./scripts/download-nns-canister-wasm.sh icp_index ic-icp-index-canister ./scripts/download-nns-canister-wasm.sh cmc cycles-minting-canister + ./scripts/download-nns-canister-wasm.sh icrc1_ledger ic-icrc1-ledger fi if [ $DOWNLOAD_ASSET_CANISTER == "true" ]; then diff --git a/tests/integration/Cargo.toml b/tests/integration/Cargo.toml index 9ca90288b..5d3e32b46 100644 --- a/tests/integration/Cargo.toml +++ b/tests/integration/Cargo.toml @@ -13,6 +13,7 @@ hex = { workspace = true } orbit-essentials = { path = '../../libs/orbit-essentials', version = '0.0.2-alpha.4' } ic-cdk = { workspace = true } ic-ledger-types = { workspace = true } +icrc-ledger-types = { workspace = true } itertools = { workspace = true } lazy_static = { workspace = true } num-bigint = { workspace = true } diff --git a/tests/integration/src/address_book_tests.rs b/tests/integration/src/address_book_tests.rs index 18c85f6f6..c0fbaee9f 100644 --- a/tests/integration/src/address_book_tests.rs +++ b/tests/integration/src/address_book_tests.rs @@ -311,6 +311,7 @@ fn check_address_book_for_transfer() { ICP + ICP_FEE, 0, None, + None, ) .unwrap(); diff --git a/tests/integration/src/cycles_monitor_tests.rs b/tests/integration/src/cycles_monitor_tests.rs index 5a8a75f5f..46cfb8186 100644 --- a/tests/integration/src/cycles_monitor_tests.rs +++ b/tests/integration/src/cycles_monitor_tests.rs @@ -237,7 +237,7 @@ fn can_mint_cycles_to_top_up_self() { ) .unwrap(); - send_icp_to_account(&env, controller, account_id, 100 * ICP, 0, None).unwrap(); + send_icp_to_account(&env, controller, account_id, 100 * ICP, 0, None, None).unwrap(); let pre_account_balance = get_icp_account_balance(&env, account_id); let pre_cycle_balance = env.cycle_balance(canister_ids.station); assert_eq!(pre_account_balance, 100 * ICP); diff --git a/tests/integration/src/interfaces.rs b/tests/integration/src/interfaces.rs index 3c2aea9a9..a2b5bd2e2 100644 --- a/tests/integration/src/interfaces.rs +++ b/tests/integration/src/interfaces.rs @@ -1,11 +1,13 @@ -use candid::{CandidType, Principal}; +use candid::{CandidType, Encode, Principal}; use ic_ledger_types::{ AccountBalanceArgs, AccountIdentifier, Memo, Subaccount, Tokens, TransferArgs, TransferError, DEFAULT_SUBACCOUNT, }; -use pocket_ic::{update_candid_as, PocketIc}; +use pocket_ic::{query_candid_as, update_candid_as, PocketIc}; use std::collections::{HashMap, HashSet}; +use crate::setup::{create_canister_with_cycles, get_canister_wasm}; + #[derive(CandidType)] pub enum NnsLedgerCanisterPayload { Init(NnsLedgerCanisterInitPayload), @@ -71,12 +73,13 @@ pub fn send_icp_to_account( e8s: u64, memo: u64, from_subaccount: Option, + fee: Option, ) -> Result { let ledger_canister_id = Principal::from_text("ryjl3-tyaaa-aaaaa-aaaba-cai").unwrap(); let transfer_args = TransferArgs { memo: Memo(memo), amount: Tokens::from_e8s(e8s), - fee: Tokens::from_e8s(10_000), + fee: Tokens::from_e8s(fee.unwrap_or(10_000)), from_subaccount, to: beneficiary_account, created_at_time: None, @@ -100,5 +103,126 @@ pub fn send_icp( memo: u64, ) -> Result { let to = AccountIdentifier::new(&beneficiary_id, &DEFAULT_SUBACCOUNT); - send_icp_to_account(env, sender_id, to, e8s, memo, None) + send_icp_to_account(env, sender_id, to, e8s, memo, None, None) +} + +pub fn mint_icp( + env: &PocketIc, + minter_id: Principal, + to: &AccountIdentifier, + e8s: u64, +) -> Result { + send_icp_to_account(env, minter_id, *to, e8s, 0, None, Some(0)) +} + +#[derive(CandidType)] +pub struct Icrc1LedgerInitArgs { + pub minting_account: icrc_ledger_types::icrc1::account::Account, + pub fee_collector_account: Option, + pub initial_balances: Vec<(icrc_ledger_types::icrc1::account::Account, candid::Nat)>, + pub transfer_fee: candid::Nat, + pub decimals: Option, + pub token_name: String, + pub token_symbol: String, + pub metadata: Vec<( + String, + icrc_ledger_types::icrc::generic_metadata_value::MetadataValue, + )>, + pub archive_options: ArchiveOptions, + pub max_memo_length: Option, + pub feature_flags: Option, + pub maximum_number_of_accounts: Option, + pub accounts_overflow_trim_quantity: Option, +} + +#[derive(CandidType)] +pub struct ArchiveOptions { + pub trigger_threshold: usize, + pub num_blocks_to_archive: usize, + pub node_max_memory_size_bytes: Option, + pub max_message_size_bytes: Option, + pub controller_id: Principal, + pub more_controller_ids: Option>, + pub cycles_for_archive_creation: Option, + pub max_transactions_per_response: Option, +} + +#[derive(CandidType)] +pub struct FeatureFlags { + pub icrc2: bool, +} + +#[derive(CandidType)] +pub enum Icrc1LedgerArgument { + Init(Icrc1LedgerInitArgs), +} + +pub fn deploy_icrc1_token( + env: &mut PocketIc, + controller: Principal, + init: Icrc1LedgerInitArgs, +) -> Principal { + let wasm_module = get_canister_wasm("icrc1_ledger").to_vec(); + + let canister_id = create_canister_with_cycles(env, controller, 1_000_000_000_000); + + env.install_canister( + canister_id, + wasm_module, + Encode!(&Icrc1LedgerArgument::Init(init)).unwrap(), + Some(controller), + ); + + canister_id +} + +pub fn mint_icrc1_tokens( + env: &PocketIc, + ledger_id: Principal, + minter: Principal, + to: icrc_ledger_types::icrc1::account::Account, + amount: u64, +) -> Result< + icrc_ledger_types::icrc1::transfer::BlockIndex, + icrc_ledger_types::icrc1::transfer::TransferError, +> { + let res: ( + Result< + icrc_ledger_types::icrc1::transfer::BlockIndex, + icrc_ledger_types::icrc1::transfer::TransferError, + >, + ) = update_candid_as( + env, + ledger_id, + minter, + "icrc1_transfer", + (icrc_ledger_types::icrc1::transfer::TransferArg { + from_subaccount: None, + to, + fee: None, + created_at_time: None, + memo: None, + amount: amount.into(), + },), + ) + .expect("Failed to make update call"); + + res.0 +} + +pub fn get_icrc1_balance_of( + env: &PocketIc, + ledger_id: Principal, + account: icrc_ledger_types::icrc1::account::Account, +) -> candid::Nat { + let res: (candid::Nat,) = query_candid_as( + env, + ledger_id, + Principal::anonymous(), + "icrc1_balance_of", + (account,), + ) + .expect("Failed to make query call"); + + res.0 } diff --git a/tests/integration/src/transfer_tests.rs b/tests/integration/src/transfer_tests.rs index ea7673a19..181bd68e2 100644 --- a/tests/integration/src/transfer_tests.rs +++ b/tests/integration/src/transfer_tests.rs @@ -1,19 +1,28 @@ use crate::interfaces::{ - default_account, get_icp_balance, send_icp, send_icp_to_account, ICP, ICP_FEE, + default_account, deploy_icrc1_token, get_icp_balance, get_icrc1_balance_of, mint_icp, + mint_icrc1_tokens, send_icp, send_icp_to_account, ArchiveOptions, Icrc1LedgerInitArgs, ICP, + ICP_FEE, }; use crate::setup::{setup_new_env, WALLET_ADMIN_USER}; -use crate::utils::{get_icp_account_identifier, get_icp_asset, user_test_id}; +use crate::test_data::asset::add_asset_with_input; +use crate::utils::{ + create_account, create_transfer, fetch_account_balances, get_icp_account_identifier, + get_icp_asset, user_test_id, +}; use crate::TestEnv; +use candid::Principal; use ic_ledger_types::AccountIdentifier; use orbit_essentials::api::ApiResult; use pocket_ic::{query_candid_as, update_candid_as}; use station_api::{ - AddAccountOperationInput, AllowDTO, ApiErrorDTO, CreateRequestInput, CreateRequestResponse, - GetRequestInput, GetRequestResponse, GetTransfersInput, GetTransfersResponse, - ListAccountTransfersInput, ListAccountTransfersResponse, MeResponse, QuorumPercentageDTO, - RequestExecutionScheduleDTO, RequestOperationDTO, RequestOperationInput, RequestPolicyRuleDTO, - RequestStatusDTO, TransferOperationInput, UserSpecifierDTO, + AddAccountOperationInput, AddAssetOperationInput, AllowDTO, ApiErrorDTO, CreateRequestInput, + CreateRequestResponse, GetRequestInput, GetRequestResponse, GetTransfersInput, + GetTransfersResponse, ListAccountTransfersInput, ListAccountTransfersResponse, MeResponse, + MetadataDTO, QuorumPercentageDTO, RequestExecutionScheduleDTO, RequestOperationDTO, + RequestOperationInput, RequestPolicyRuleDTO, RequestStatusDTO, TransferOperationInput, + UserSpecifierDTO, }; +use std::str::FromStr; use std::time::Duration; #[test] @@ -145,6 +154,7 @@ fn make_transfer_successful() { ICP + ICP_FEE, 0, None, + None, ) .unwrap(); @@ -191,6 +201,10 @@ fn make_transfer_successful() { env.tick(); env.tick(); env.tick(); + env.advance_time(Duration::from_secs(5)); + env.tick(); + env.tick(); + env.tick(); // check transfer request status let get_request_args = GetRequestInput { @@ -277,3 +291,301 @@ fn make_transfer_successful() { assert!(all_have_transaction_hash); } + +#[test] +fn make_icrc1_transfer() { + let TestEnv { + mut env, + canister_ids, + // controller, + .. + } = setup_new_env(); + + let beneficiary_id = user_test_id(1); + + // register user + let res: (ApiResult,) = + update_candid_as(&env, canister_ids.station, WALLET_ADMIN_USER, "me", ()).unwrap(); + let user_dto = res.0.unwrap().me; + + let ledger_controller = Principal::from_slice(&[99; 29]); + + let token_ledger_canister_id = deploy_icrc1_token( + &mut env, + ledger_controller, + Icrc1LedgerInitArgs { + minting_account: icrc_ledger_types::icrc1::account::Account { + owner: ledger_controller, + subaccount: None, + }, + fee_collector_account: None, + initial_balances: vec![], + transfer_fee: 50u64.into(), + decimals: Some(12), + token_name: "TEST_ICRC1".to_owned(), + token_symbol: "TST".to_owned(), + metadata: vec![], + archive_options: ArchiveOptions { + trigger_threshold: 1000, + num_blocks_to_archive: 1000, + node_max_memory_size_bytes: None, + max_message_size_bytes: None, + controller_id: ledger_controller, + more_controller_ids: None, + cycles_for_archive_creation: None, + max_transactions_per_response: None, + }, + max_memo_length: None, + feature_flags: None, + maximum_number_of_accounts: None, + accounts_overflow_trim_quantity: None, + }, + ); + + let asset = add_asset_with_input( + &env, + canister_ids.station, + user_dto.identities[0], + AddAssetOperationInput { + name: "Test ICRC1 Token".to_owned(), + blockchain: "icp".to_owned(), + standards: vec!["icrc1".to_owned()], + symbol: "TEST".to_owned(), + decimals: 4, + metadata: vec![ + MetadataDTO { + key: "ledger_canister_id".to_owned(), + value: Principal::to_text(&token_ledger_canister_id), + }, + MetadataDTO { + key: "index_canister_id".to_owned(), + value: Principal::to_text(&token_ledger_canister_id), + }, + ], + }, + ); + + let permission = AllowDTO { + auth_scope: station_api::AuthScopeDTO::Restricted, + user_groups: vec![], + users: vec![user_dto.id.clone()], + }; + + let account = create_account( + &env, + canister_ids.station, + user_dto.identities[0], + AddAccountOperationInput { + name: "test account".to_owned(), + assets: vec![asset.id.clone()], + metadata: vec![], + read_permission: permission.clone(), + configs_permission: permission.clone(), + transfer_permission: permission.clone(), + configs_request_policy: Some(RequestPolicyRuleDTO::AutoApproved), + transfer_request_policy: Some(RequestPolicyRuleDTO::AutoApproved), + }, + ); + + let station_account_icrc1_account = + icrc_ledger_types::icrc1::account::Account::from_str(&account.addresses[0].address) + .expect("invalid account address"); + + mint_icrc1_tokens( + &env, + token_ledger_canister_id, + ledger_controller, + station_account_icrc1_account, + 1_000_000, + ) + .expect("failed to mint icrc1 tokens"); + + let to_address = icrc_ledger_types::icrc1::account::Account { + owner: beneficiary_id, + subaccount: None, + } + .to_string(); + + create_transfer( + &env, + canister_ids.station, + user_dto.identities[0], + station_api::TransferOperationInput { + from_account_id: account.id.clone(), + from_asset_id: asset.id.clone(), + with_standard: "icrc1".to_owned(), + to: to_address.clone(), + amount: candid::Nat::from(100u128), + fee: Some(50u64.into()), + metadata: vec![], + network: None, + }, + ); + + let balance = get_icrc1_balance_of( + &env, + token_ledger_canister_id, + icrc_ledger_types::icrc1::account::Account { + owner: beneficiary_id, + subaccount: None, + }, + ); + + assert_eq!(balance, candid::Nat::from(100u128)); + + let account_balances = fetch_account_balances( + &env, + canister_ids.station, + user_dto.identities[0], + station_api::FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }, + ); + + assert_eq!( + account_balances.balances[0].balance, + candid::Nat::from(999_850u128) + ); + + // test transfering without specifying fee + let transfer_without_fee = create_transfer( + &env, + canister_ids.station, + user_dto.identities[0], + station_api::TransferOperationInput { + from_account_id: account.id.clone(), + from_asset_id: asset.id.clone(), + with_standard: "icrc1".to_owned(), + to: to_address, + amount: candid::Nat::from(500u128), + fee: None, + metadata: vec![], + network: None, + }, + ); + + // the station queries the ledger canister to get the fee + assert_eq!(transfer_without_fee.fee, candid::Nat::from(50u64)); +} + +#[test] +fn make_icrc1_icp_transfer() { + let TestEnv { + env, + canister_ids, + // controller, + minter, + .. + } = setup_new_env(); + + // register user + let res: (ApiResult,) = + update_candid_as(&env, canister_ids.station, WALLET_ADMIN_USER, "me", ()).unwrap(); + let user_dto = res.0.unwrap().me; + + let icp_asset = get_icp_asset(&env, canister_ids.station, WALLET_ADMIN_USER); + + let permission = AllowDTO { + auth_scope: station_api::AuthScopeDTO::Restricted, + user_groups: vec![], + users: vec![user_dto.id.clone()], + }; + + let account = create_account( + &env, + canister_ids.station, + user_dto.identities[0], + AddAccountOperationInput { + name: "test account".to_owned(), + assets: vec![icp_asset.id.clone()], + metadata: vec![], + read_permission: permission.clone(), + configs_permission: permission.clone(), + transfer_permission: permission.clone(), + configs_request_policy: Some(RequestPolicyRuleDTO::AutoApproved), + transfer_request_policy: Some(RequestPolicyRuleDTO::AutoApproved), + }, + ); + + assert_eq!(account.addresses.len(), 2); + + let icp_account_identifier = AccountIdentifier::from_hex( + &account + .addresses + .iter() + .find(|a| a.format == "icp_account_identifier") + .expect("cannot get ICP account identifier") + .address, + ) + .expect("cannot parse ICP account identifier"); + + let icp_icrc1_account = icrc_ledger_types::icrc1::account::Account::from_str( + &account + .addresses + .iter() + .find(|a| a.format == "icrc1_account") + .expect("cannot get ICRC1 account") + .address, + ) + .expect("invalid account address"); + + mint_icp(&env, minter, &icp_account_identifier, 10 * 100_000_000) + .expect("failed to mint ICP to account"); + + mint_icrc1_tokens( + &env, + Principal::from_text("ryjl3-tyaaa-aaaaa-aaaba-cai").unwrap(), + minter, + icp_icrc1_account, + 20 * 100_000_000, + ) + .expect("failed to mint ICP to ICRC1 account"); + + let account_balances = fetch_account_balances( + &env, + canister_ids.station, + user_dto.identities[0], + station_api::FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }, + ); + assert_eq!(account_balances.balances.len(), 1); + assert_eq!( + account_balances.balances[0].balance, + candid::Nat::from(30 * 100_000_000u64) + ); + + create_transfer( + &env, + canister_ids.station, + user_dto.identities[0], + station_api::TransferOperationInput { + from_account_id: account.id.clone(), + from_asset_id: icp_asset.id.clone(), + with_standard: "icrc1".to_owned(), + to: icrc_ledger_types::icrc1::account::Account { + owner: user_dto.identities[0], + subaccount: None, + } + .to_string(), + amount: candid::Nat::from(25 * 100_000_000u64), + fee: None, + metadata: vec![], + network: None, + }, + ); + + let account_balances = fetch_account_balances( + &env, + canister_ids.station, + user_dto.identities[0], + station_api::FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }, + ); + assert_eq!(account_balances.balances.len(), 1); + assert_eq!( + account_balances.balances[0].balance, + candid::Nat::from(5 * 100_000_000u64 - 10_000) + ); +} diff --git a/tests/integration/src/utils.rs b/tests/integration/src/utils.rs index 0a0e9b500..4f75a8022 100644 --- a/tests/integration/src/utils.rs +++ b/tests/integration/src/utils.rs @@ -10,12 +10,14 @@ use pocket_ic::{query_candid_as, update_candid_as, CallError, PocketIc, UserErro use sha2::Digest; use station_api::{ AccountDTO, AddAccountOperationInput, AddUserOperationInput, AllowDTO, ApiErrorDTO, - CreateRequestInput, CreateRequestResponse, GetPermissionResponse, GetRequestInput, - GetRequestResponse, HealthStatus, MeResponse, QuorumPercentageDTO, RequestApprovalStatusDTO, - RequestDTO, RequestExecutionScheduleDTO, RequestOperationDTO, RequestOperationInput, - RequestPolicyRuleDTO, RequestStatusDTO, ResourceIdDTO, SetDisasterRecoveryOperationDTO, - SetDisasterRecoveryOperationInput, SubmitRequestApprovalInput, SubmitRequestApprovalResponse, - SystemInfoDTO, SystemInfoResponse, UserDTO, UserSpecifierDTO, UserStatusDTO, UuidDTO, + CreateRequestInput, CreateRequestResponse, FetchAccountBalancesInput, + FetchAccountBalancesResponse, GetPermissionResponse, GetRequestInput, GetRequestResponse, + GetTransfersInput, GetTransfersResponse, HealthStatus, MeResponse, QuorumPercentageDTO, + RequestApprovalStatusDTO, RequestDTO, RequestExecutionScheduleDTO, RequestOperationDTO, + RequestOperationInput, RequestPolicyRuleDTO, RequestStatusDTO, ResourceIdDTO, + SetDisasterRecoveryOperationDTO, SetDisasterRecoveryOperationInput, SubmitRequestApprovalInput, + SubmitRequestApprovalResponse, SystemInfoDTO, SystemInfoResponse, UserDTO, UserSpecifierDTO, + UserStatusDTO, UuidDTO, }; use std::io::Write; use std::time::Duration; @@ -223,6 +225,10 @@ pub fn wait_for_request_with_extra_ticks( // wait for the request to be processing env.advance_time(Duration::from_secs(2)); env.tick(); + // wait in case the request calls out to other canisters + env.advance_time(Duration::from_secs(2)); + env.tick(); + for _ in 0..extra_ticks { env.tick(); } @@ -602,8 +608,18 @@ pub fn create_icp_account(env: &PocketIc, station_id: Principal, user_id: UuidDT )), metadata: vec![], }; + + create_account(env, station_id, WALLET_ADMIN_USER, create_account_args) +} + +pub fn create_account( + env: &PocketIc, + station_id: Principal, + requester: Principal, + input: AddAccountOperationInput, +) -> AccountDTO { let add_account_request = CreateRequestInput { - operation: RequestOperationInput::AddAccount(create_account_args), + operation: RequestOperationInput::AddAccount(input), title: None, summary: None, execution_plan: Some(RequestExecutionScheduleDTO::Immediate), @@ -611,7 +627,7 @@ pub fn create_icp_account(env: &PocketIc, station_id: Principal, user_id: UuidDT let res: (ApiResult,) = update_candid_as( env, station_id, - WALLET_ADMIN_USER, + requester, "create_request", (add_account_request,), ) @@ -640,7 +656,7 @@ pub fn create_icp_account(env: &PocketIc, station_id: Principal, user_id: UuidDT let res: (ApiResult,) = update_candid_as( env, station_id, - WALLET_ADMIN_USER, + requester, "get_request", (get_request_args,), ) @@ -666,6 +682,114 @@ pub fn create_icp_account(env: &PocketIc, station_id: Principal, user_id: UuidDT } } +pub fn create_transfer( + env: &PocketIc, + station_id: Principal, + requester: Principal, + input: station_api::TransferOperationInput, +) -> station_api::TransferDTO { + // make transfer request to beneficiary + + let transfer_request = CreateRequestInput { + operation: RequestOperationInput::Transfer(input), + title: None, + summary: None, + execution_plan: Some(RequestExecutionScheduleDTO::Immediate), + }; + let res: (Result,) = update_candid_as( + env, + station_id, + requester, + "create_request", + (transfer_request,), + ) + .unwrap(); + let request_dto = res.0.unwrap().request; + + // wait for the request to be approved (timer's period is 5 seconds) + env.advance_time(Duration::from_secs(5)); + env.tick(); + // wait for the request to be processing (timer's period is 5 seconds) and first is set to processing + env.advance_time(Duration::from_secs(5)); + env.tick(); + env.tick(); + env.tick(); + env.advance_time(Duration::from_secs(5)); + env.tick(); + env.tick(); + env.tick(); + + // check transfer request status + let get_request_args = GetRequestInput { + request_id: request_dto.id.clone(), + }; + let res: (Result,) = update_candid_as( + env, + station_id, + requester, + "get_request", + (get_request_args,), + ) + .unwrap(); + let new_request_dto = res.0.unwrap().request; + match new_request_dto.status { + RequestStatusDTO::Completed { .. } => {} + _ => { + panic!( + "request must be completed by now but instead is {:?}", + new_request_dto.status + ); + } + }; + + // request has the transfer id filled out + let transfer_id = match new_request_dto.operation { + RequestOperationDTO::Transfer(transfer) => transfer + .transfer_id + .expect("transfer id must be set for completed transfer"), + _ => { + panic!("request must be Transfer"); + } + }; + + // fetch the transfer and check if its request id matches the request id that created it + let res: (Result,) = query_candid_as( + env, + station_id, + requester, + "get_transfers", + (GetTransfersInput { + transfer_ids: vec![transfer_id], + },), + ) + .expect("Failed to send query call"); + + res.0 + .expect("Failed to get transfers") + .transfers + .first() + .expect("no transfer in result") + .clone() +} + +pub fn fetch_account_balances( + env: &PocketIc, + station_canister_id: Principal, + requester: Principal, + input: FetchAccountBalancesInput, +) -> station_api::FetchAccountBalancesResponse { + update_candid_as::<(FetchAccountBalancesInput,), (ApiResult,)>( + env, + station_canister_id, + requester, + "fetch_account_balances", + (input,), + ) + .expect("Failed to send query call") + .0 + .expect("Failed to get account balances") +} + pub fn get_icp_asset( env: &PocketIc, station_canister_id: Principal, From a1b8d78667125fc92fdca6d7cceb7f5ce3625633 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Thu, 10 Oct 2024 18:30:27 +0200 Subject: [PATCH 06/18] fix merge errors --- apps/wallet/src/locales/en.locale.ts | 1 + apps/wallet/src/locales/fr.locale.ts | 1 + apps/wallet/src/locales/pt.locale.ts | 1 + tests/integration/src/rate_limiter.rs | 2 +- tests/integration/src/utils.rs | 3 +-- tools/dfx-orbit/src/me.rs | 2 ++ tools/dfx-orbit/src/review/display.rs | 3 +++ 7 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/wallet/src/locales/en.locale.ts b/apps/wallet/src/locales/en.locale.ts index 345b559dc..0314d4732 100644 --- a/apps/wallet/src/locales/en.locale.ts +++ b/apps/wallet/src/locales/en.locale.ts @@ -293,6 +293,7 @@ export default { removeasset: { title: 'Remove asset', request_title: 'Remove asset request', + }, createexternalcanister: { title: 'Create canister', request_title: 'Create canister request', diff --git a/apps/wallet/src/locales/fr.locale.ts b/apps/wallet/src/locales/fr.locale.ts index 5fdcf13f3..103abf56d 100644 --- a/apps/wallet/src/locales/fr.locale.ts +++ b/apps/wallet/src/locales/fr.locale.ts @@ -303,6 +303,7 @@ export default { removeasset: { title: 'Supprimer un actif', request_title: 'Demande de supprimer un actif', + }, createexternalcanister: { title: 'Créer un canister', request_title: 'Demande de création de canister', diff --git a/apps/wallet/src/locales/pt.locale.ts b/apps/wallet/src/locales/pt.locale.ts index 30fec338f..aabd9222e 100644 --- a/apps/wallet/src/locales/pt.locale.ts +++ b/apps/wallet/src/locales/pt.locale.ts @@ -302,6 +302,7 @@ export default { removeasset: { title: 'Remover ativo', request_title: 'Pedido de remoção de ativo', + }, createexternalcanister: { title: 'Criar canister', request_title: 'Pedido de criação de canister', diff --git a/tests/integration/src/rate_limiter.rs b/tests/integration/src/rate_limiter.rs index 55d736df8..6954f9a12 100644 --- a/tests/integration/src/rate_limiter.rs +++ b/tests/integration/src/rate_limiter.rs @@ -43,7 +43,7 @@ fn test_request_size_rate_limiter() { test_rate_limit(&env, canister_ids, request_count, |_| { // the rate limiter uses the binary size of the (candid-encoded) argument // and thus we need to subtract the (estimated) overhead here - let arg_length = request_size - 2150; + let arg_length = request_size - 2306; let call_external_canister_operation_input = CallExternalCanisterOperationInput { validation_method: None, execution_method: CanisterMethodDTO { diff --git a/tests/integration/src/utils.rs b/tests/integration/src/utils.rs index 07c7da28f..f8bbfd96c 100644 --- a/tests/integration/src/utils.rs +++ b/tests/integration/src/utils.rs @@ -1,8 +1,7 @@ use crate::setup::{create_canister, get_canister_wasm, WALLET_ADMIN_USER}; -use crate::setup::{get_canister_wasm, WALLET_ADMIN_USER}; use crate::test_data::asset::list_assets; use candid::Principal; -use candid::{CandidType, Encode, Principal}; +use candid::{CandidType, Encode}; use control_panel_api::UploadCanisterModulesInput; use flate2::{write::GzEncoder, Compression}; use ic_cdk::api::management_canister::main::CanisterStatusResponse; diff --git a/tools/dfx-orbit/src/me.rs b/tools/dfx-orbit/src/me.rs index bb48f4cac..f7483c1ff 100644 --- a/tools/dfx-orbit/src/me.rs +++ b/tools/dfx-orbit/src/me.rs @@ -83,5 +83,7 @@ fn display_privilege(privilege: &UserPrivilege) -> &'static str { UserPrivilege::ListRequests => "ListRequests", UserPrivilege::CreateExternalCanister => "CreateExternalCanister", UserPrivilege::ListExternalCanisters => "ListExternalCanisters", + UserPrivilege::AddAsset => "AddAsset", + UserPrivilege::ListAssets => "ListAssets", } } diff --git a/tools/dfx-orbit/src/review/display.rs b/tools/dfx-orbit/src/review/display.rs index d1a3c760a..2f6155b65 100644 --- a/tools/dfx-orbit/src/review/display.rs +++ b/tools/dfx-orbit/src/review/display.rs @@ -283,6 +283,9 @@ fn display_request_operation(op: &RequestOperationDTO) -> &'static str { RequestOperationDTO::EditRequestPolicy(_) => "EditRequestPolicy", RequestOperationDTO::RemoveRequestPolicy(_) => "RemoveRequestPolicy", RequestOperationDTO::ManageSystemInfo(_) => "ManageSystemInfo", + RequestOperationDTO::AddAsset(_) => "AddAsset", + RequestOperationDTO::EditAsset(_) => "EditAsset", + RequestOperationDTO::RemoveAsset(_) => "RemoveAsset", } } From ba10edcf089239c242f9d1f41a80bc4ec294e713 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Thu, 24 Oct 2024 12:40:11 +0200 Subject: [PATCH 07/18] feat(wallet): update frontend with new asset account data models (#388) Todo: - [x] add frontend tests - [x] update locales - [x] remove duplicated account name - [x] make index canister optional and display a warning when transactions cannot be loaded if it's missing - [x] fix icrc1 address shortening ...c0337e7f4d424...dec70df... - [x] unify address display across the frontend - [x] account page Requests button should filter for Accounts - [x] fix notification error -- `was local dev issue with unmigrated account` - [x] disallow removing an asset if any accounts reference it - [x] localize assets page standards - [x] fix edit account request views - [x] restore ICP/ICRC1 asset creation custom form fields POST MVP: - [ ] show fee at transfer - [ ] add icrc1/icp ledger interfaces to UI (dfx generate) - [ ] fetch when the dialog is displayed --------- Co-authored-by: Kepler Vital --- .github/workflows/validation.yaml | 2 - apps/wallet/package.json | 11 +- .../src/components/ShortenedAddress.vue | 20 + apps/wallet/src/components/TextOverflow.vue | 22 +- .../components/accounts/AccountAssetsCell.vue | 21 + .../accounts/AccountSetupDialog.vue | 3 +- .../accounts/AddAccountAssetBtn.vue | 65 +++ .../accounts/AddAccountAssetDialog.spec.ts | 116 ++++ .../accounts/AddAccountAssetDialog.vue | 137 +++++ .../accounts/BatchTransfersActionBtn.vue | 39 +- .../accounts/RemoveAssetDialog.spec.ts | 99 ++++ .../components/accounts/RemoveAssetDialog.vue | 122 +++++ .../src/components/accounts/TransferBtn.vue | 4 +- .../accounts/TransferDialog.spec.ts | 32 +- .../components/accounts/TransferDialog.vue | 28 +- .../src/components/accounts/TransferForm.vue | 11 +- .../wizard/AccountConfigurationSettings.vue | 27 +- .../address-book/AddressBookDialog.vue | 14 +- .../src/components/assets/AssetDialog.spec.ts | 7 +- .../src/components/assets/AssetForm.spec.ts | 5 +- .../src/components/assets/AssetForm.vue | 32 +- .../InternetComputerNativeStandardForm.vue | 12 +- .../components/inputs/AccountAutocomplete.vue | 2 +- .../inputs/AddressBookAutocomplete.vue | 2 +- .../src/components/inputs/MetadataField.vue | 64 ++- .../inputs/StandardsAutocomplete.spec.ts | 4 +- .../inputs/StandardsAutocomplete.vue | 19 +- .../components/inputs/TokenAutocomplete.vue | 34 +- .../components/inputs/UserAutocomplete.vue | 2 +- .../components/requests/RequestDialog.spec.ts | 17 +- .../operations/AddAccountOperation.vue | 20 +- .../requests/operations/AddAssetOperation.vue | 1 - .../operations/EditAccountOperation.vue | 70 ++- .../operations/EditAssetOperation.vue | 28 +- .../requests/operations/TransferOperation.vue | 15 +- .../src/composables/account.composable.ts | 9 +- apps/wallet/src/configs/routes.config.ts | 1 + .../src/generated/icp_ledger/icp_ledger.did | 451 +++++++++++++++ .../generated/icp_ledger/icp_ledger.did.d.ts | 248 +++++++++ .../generated/icp_ledger/icp_ledger.did.js | 342 ++++++++++++ .../src/generated/icp_ledger/index.d.ts | 50 ++ apps/wallet/src/generated/icp_ledger/index.js | 40 ++ .../icrc1_index/icrc1_index_canister.did | 143 +++++ .../icrc1_index/icrc1_index_canister.did.d.ts | 108 ++++ .../icrc1_index/icrc1_index_canister.did.js | 126 +++++ .../src/generated/icrc1_index/index.d.ts | 50 ++ .../wallet/src/generated/icrc1_index/index.js | 40 ++ .../icrc1_ledger/icrc1_ledger_canister.did | 379 +++++++++++++ .../icrc1_ledger_canister.did.d.ts | 245 +++++++++ .../icrc1_ledger/icrc1_ledger_canister.did.js | 342 ++++++++++++ .../src/generated/icrc1_ledger/index.d.ts | 50 ++ .../src/generated/icrc1_ledger/index.js | 40 ++ .../internet-identity/internet_identity.did | 136 +++-- .../internet_identity.did.d.ts | 41 +- .../internet_identity.did.js | 59 +- apps/wallet/src/generated/station/station.did | 4 + .../src/generated/station/station.did.d.ts | 2 + .../src/generated/station/station.did.js | 2 + apps/wallet/src/locales/en.locale.ts | 19 +- apps/wallet/src/locales/fr.locale.ts | 19 +- apps/wallet/src/locales/pt.locale.ts | 19 +- apps/wallet/src/mappers/requests.mapper.ts | 29 +- apps/wallet/src/pages/AccountAssetPage.vue | 514 ++++++++++++++++++ apps/wallet/src/pages/AccountPage.vue | 277 +++++----- apps/wallet/src/pages/AccountsPage.vue | 41 +- apps/wallet/src/pages/AddressBookPage.vue | 12 +- apps/wallet/src/pages/AssetsPage.vue | 10 +- apps/wallet/src/plugins/router.plugin.ts | 49 +- .../services/chains/ic-native-api.service.ts | 62 ++- .../src/services/chains/icrc1-api.service.ts | 144 +++++ apps/wallet/src/services/chains/index.ts | 48 +- apps/wallet/src/stores/station.store.ts | 9 +- apps/wallet/src/types/chain.types.ts | 15 +- apps/wallet/src/utils/asset.utils.spec.ts | 27 + apps/wallet/src/utils/asset.utils.ts | 72 +++ apps/wallet/src/utils/helper.utils.ts | 10 + core/station/api/spec.did | 4 + core/station/api/src/capabilities.rs | 1 + core/station/api/src/transfer.rs | 3 +- core/station/impl/results.yml | 22 +- .../impl/src/controllers/capabilities.rs | 6 + core/station/impl/src/core/standards.rs | 2 +- core/station/impl/src/errors/asset.rs | 8 + .../station/impl/src/errors/blockchain_api.rs | 4 +- .../blockchains/internet_computer.rs | 18 +- .../impl/src/factories/requests/transfer.rs | 19 +- .../src/jobs/execute_created_transfers.rs | 10 +- .../impl/src/mappers/request_operation.rs | 1 + core/station/impl/src/models/asset.rs | 2 +- .../impl/src/models/blockchain_standard.rs | 2 +- core/station/impl/src/models/request.rs | 7 +- .../impl/src/models/request_operation.rs | 3 +- core/station/impl/src/services/account.rs | 75 ++- core/station/impl/src/services/asset.rs | 47 +- core/station/impl/src/services/request.rs | 20 +- dfx.json | 44 +- orbit | 68 +++ pnpm-lock.yaml | 115 +++- 98 files changed, 5305 insertions(+), 567 deletions(-) create mode 100644 apps/wallet/src/components/ShortenedAddress.vue create mode 100644 apps/wallet/src/components/accounts/AccountAssetsCell.vue create mode 100644 apps/wallet/src/components/accounts/AddAccountAssetBtn.vue create mode 100644 apps/wallet/src/components/accounts/AddAccountAssetDialog.spec.ts create mode 100644 apps/wallet/src/components/accounts/AddAccountAssetDialog.vue create mode 100644 apps/wallet/src/components/accounts/RemoveAssetDialog.spec.ts create mode 100644 apps/wallet/src/components/accounts/RemoveAssetDialog.vue create mode 100644 apps/wallet/src/generated/icp_ledger/icp_ledger.did create mode 100644 apps/wallet/src/generated/icp_ledger/icp_ledger.did.d.ts create mode 100644 apps/wallet/src/generated/icp_ledger/icp_ledger.did.js create mode 100644 apps/wallet/src/generated/icp_ledger/index.d.ts create mode 100644 apps/wallet/src/generated/icp_ledger/index.js create mode 100644 apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did create mode 100644 apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did.d.ts create mode 100644 apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did.js create mode 100644 apps/wallet/src/generated/icrc1_index/index.d.ts create mode 100644 apps/wallet/src/generated/icrc1_index/index.js create mode 100644 apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did create mode 100644 apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did.d.ts create mode 100644 apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did.js create mode 100644 apps/wallet/src/generated/icrc1_ledger/index.d.ts create mode 100644 apps/wallet/src/generated/icrc1_ledger/index.js create mode 100644 apps/wallet/src/pages/AccountAssetPage.vue create mode 100644 apps/wallet/src/services/chains/icrc1-api.service.ts create mode 100644 apps/wallet/src/utils/asset.utils.spec.ts create mode 100644 apps/wallet/src/utils/asset.utils.ts diff --git a/.github/workflows/validation.yaml b/.github/workflows/validation.yaml index 1850dd139..5348e682f 100644 --- a/.github/workflows/validation.yaml +++ b/.github/workflows/validation.yaml @@ -89,8 +89,6 @@ jobs: validate-node: name: 'validate-node:required' runs-on: ubuntu-latest - # disable until the frontend is ready - if: false steps: - name: 'Checkout' uses: actions/checkout@v4 diff --git a/apps/wallet/package.json b/apps/wallet/package.json index c78c71866..3caffe0da 100644 --- a/apps/wallet/package.json +++ b/apps/wallet/package.json @@ -24,11 +24,12 @@ "format": "concurrently -n prettier,eslint -c auto \"prettier --ignore-path ../../.prettierignore --write .\" \"eslint --ext .js,.vue,.ts,.cjs --fix .\"" }, "dependencies": { - "@dfinity/agent": "1.4.0", - "@dfinity/auth-client": "1.4.0", - "@dfinity/candid": "1.4.0", - "@dfinity/identity": "1.4.0", - "@dfinity/principal": "1.4.0", + "@dfinity/agent": "2.1.2", + "@dfinity/auth-client": "2.1.2", + "@dfinity/candid": "2.1.2", + "@dfinity/identity": "2.1.2", + "@dfinity/principal": "2.1.2", + "@dfinity/ledger-icrc": "2.6.1", "@mdi/font": "7.4.47", "@mdi/js": "7.4.47", "buffer": "6.0.3", diff --git a/apps/wallet/src/components/ShortenedAddress.vue b/apps/wallet/src/components/ShortenedAddress.vue new file mode 100644 index 000000000..02f39f3d6 --- /dev/null +++ b/apps/wallet/src/components/ShortenedAddress.vue @@ -0,0 +1,20 @@ + + + diff --git a/apps/wallet/src/components/TextOverflow.vue b/apps/wallet/src/components/TextOverflow.vue index 649a5d5af..b0551f2c2 100644 --- a/apps/wallet/src/components/TextOverflow.vue +++ b/apps/wallet/src/components/TextOverflow.vue @@ -13,7 +13,7 @@ const props = withDefaults( text: string; maxLength?: number; overflowText?: string; - overflowPosition?: 'start' | 'middle' | 'end'; + overflowPosition?: 'start' | 'middle' | 'end' | ((input: string) => string); }>(), { maxLength: 18, @@ -40,15 +40,19 @@ const truncatedText = computed(() => { }`; } - const overflowLengthStart = Math.ceil(props.overflowText.length / 2); - const overflowLengthEnd = Math.floor(props.overflowText.length / 2); - const start = Math.ceil((props.maxLength - 1) / 2) - overflowLengthStart; - const end = Math.floor((props.maxLength - 1) / 2) - overflowLengthEnd; + if (props.overflowPosition === 'middle') { + const overflowLengthStart = Math.ceil(props.overflowText.length / 2); + const overflowLengthEnd = Math.floor(props.overflowText.length / 2); + const start = Math.ceil((props.maxLength - 1) / 2) - overflowLengthStart; + const end = Math.floor((props.maxLength - 1) / 2) - overflowLengthEnd; - return `${props.text.slice(0, start)}${props.overflowText}${props.text.slice( - props.text.length - end, - props.text.length, - )}`; + return `${props.text.slice(0, start)}${props.overflowText}${props.text.slice( + props.text.length - end, + props.text.length, + )}`; + } + + return props.overflowPosition(props.text); }); const handleCopy = (event: ClipboardEvent): void => { diff --git a/apps/wallet/src/components/accounts/AccountAssetsCell.vue b/apps/wallet/src/components/accounts/AccountAssetsCell.vue new file mode 100644 index 000000000..da61b97c7 --- /dev/null +++ b/apps/wallet/src/components/accounts/AccountAssetsCell.vue @@ -0,0 +1,21 @@ + + + diff --git a/apps/wallet/src/components/accounts/AccountSetupDialog.vue b/apps/wallet/src/components/accounts/AccountSetupDialog.vue index bab9f03ce..b2be68fba 100644 --- a/apps/wallet/src/components/accounts/AccountSetupDialog.vue +++ b/apps/wallet/src/components/accounts/AccountSetupDialog.vue @@ -160,9 +160,8 @@ const saveChangesToExistingAccount = async (accountId: UUID): Promise = const createNewAccount = async (): Promise => { const changes: Partial = {}; + changes.assets = assertAndReturn(wizard.value.configuration.assets, 'assets'); changes.name = assertAndReturn(wizard.value.configuration.name, 'name'); - changes.blockchain = assertAndReturn(wizard.value.configuration.blockchain, 'blockchain'); - changes.standard = assertAndReturn(wizard.value.configuration.standard, 'standard'); changes.configs_request_policy = wizard.value.request_policy.configurationRule ? [wizard.value.request_policy.configurationRule] : []; diff --git a/apps/wallet/src/components/accounts/AddAccountAssetBtn.vue b/apps/wallet/src/components/accounts/AddAccountAssetBtn.vue new file mode 100644 index 000000000..ef11f0a05 --- /dev/null +++ b/apps/wallet/src/components/accounts/AddAccountAssetBtn.vue @@ -0,0 +1,65 @@ + + diff --git a/apps/wallet/src/components/accounts/AddAccountAssetDialog.spec.ts b/apps/wallet/src/components/accounts/AddAccountAssetDialog.spec.ts new file mode 100644 index 000000000..684fe4c93 --- /dev/null +++ b/apps/wallet/src/components/accounts/AddAccountAssetDialog.spec.ts @@ -0,0 +1,116 @@ +import { describe, expect, it, vi } from 'vitest'; +import { Account, Asset } from '~/generated/station/station.did'; +import { mount } from '~/test.utils'; +import AddAccountAssetDialog from './AddAccountAssetDialog.vue'; +import { BlockchainStandard } from '~/types/chain.types'; +import { useStationStore } from '~/stores/station.store'; +import TokenAutocomplete from '../inputs/TokenAutocomplete.vue'; +import { flushPromises } from '@vue/test-utils'; +import { StationService } from '~/services/station.service'; +import { services } from '~/plugins/services.plugin'; + +vi.mock('~/services/station.service', () => { + const mock: Partial = { + editAccount: vi.fn().mockImplementation(() => Promise.resolve({} as Account)), + }; + + return { + StationService: vi.fn(() => mock), + }; +}); + +const mockAssets: Asset[] = [ + { + id: '1', + blockchain: 'icp', + decimals: 8, + metadata: [], + name: 'Test', + symbol: 'TEST', + standards: [BlockchainStandard.Native], + }, + + { + id: '2', + blockchain: 'icp', + decimals: 8, + metadata: [], + name: 'Test2', + symbol: 'TEST2', + standards: [BlockchainStandard.ICRC1], + }, +]; + +const mockAccount: Account = { + id: '1', + assets: [ + { + asset_id: mockAssets[0].id, + balance: [], + }, + ], + addresses: [], + configs_request_policy: [], + metadata: [], + last_modification_timestamp: '2021-09-01T00:00:00Z', + name: 'Test', + transfer_request_policy: [], +}; + +describe('AddAccountAssetDialog', () => { + it('renders correctly', () => { + const wrapper = mount(AddAccountAssetDialog, { + props: { + account: mockAccount, + + open: true, + attach: true, + }, + }); + + expect(wrapper.exists()).toBe(true); + }); + + it('edits the account when submitted', async () => { + const wrapper = mount(AddAccountAssetDialog, { + props: { + account: { ...mockAccount }, + open: true, + attach: true, + }, + }); + + const station = useStationStore(); + station.configuration.details.supported_assets = mockAssets; + + const submitBtn = wrapper.find('button[data-test-id="add-asset-dialog-save-button"]'); + + const tokenField = wrapper.findComponent(TokenAutocomplete); + + tokenField.vm.$emit('update:modelValue', [mockAssets[1].id]); + + await wrapper.vm.$nextTick(); + await flushPromises(); + + await submitBtn.trigger('click'); + + await wrapper.vm.$nextTick(); + await flushPromises(); + + // check if editAccount was called with the correct asset + expect(services().station.editAccount).toHaveBeenCalledWith( + expect.objectContaining({ + change_assets: [ + { + Change: { + add_assets: [mockAssets[1].id], + remove_assets: [], + }, + }, + ], + }), + ); + + vi.clearAllMocks(); + }); +}); diff --git a/apps/wallet/src/components/accounts/AddAccountAssetDialog.vue b/apps/wallet/src/components/accounts/AddAccountAssetDialog.vue new file mode 100644 index 000000000..7959fc9d8 --- /dev/null +++ b/apps/wallet/src/components/accounts/AddAccountAssetDialog.vue @@ -0,0 +1,137 @@ + + diff --git a/apps/wallet/src/components/accounts/BatchTransfersActionBtn.vue b/apps/wallet/src/components/accounts/BatchTransfersActionBtn.vue index 0ff2cdbe2..35ea1f8a4 100644 --- a/apps/wallet/src/components/accounts/BatchTransfersActionBtn.vue +++ b/apps/wallet/src/components/accounts/BatchTransfersActionBtn.vue @@ -83,7 +83,7 @@ - {{ formatBalance(transfer.amount, account.decimals) }} + {{ formatBalance(transfer.amount, asset.decimals) }} @@ -98,6 +96,7 @@ import { VFormValidation } from '~/types/helper.types'; import { requiredRule } from '~/utils/form.utils'; import StandardsAutocomplete from '../inputs/StandardsAutocomplete.vue'; import InternetComputerNativeStandardForm from './standards/InternetComputerNativeStandardForm.vue'; +import { BlockchainStandard } from '~/types/chain.types'; export type AssetFormProps = { modelValue: Partial; @@ -170,4 +169,15 @@ const submit = async () => { emit('submit', model.value); } }; + +const shouldUseIcpForm = computed( + () => + model.value.blockchain === 'icp' && + ((model.value.standards && model.value.standards.includes(BlockchainStandard.Native)) || + (model.value.standards && model.value.standards.includes(BlockchainStandard.ICRC1))), +); + +const hiddenMetadataKeys = computed(() => + shouldUseIcpForm.value ? ['ledger_canister_id', 'index_canister_id'] : [], +); diff --git a/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.vue b/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.vue index cd11eb4aa..712dcb235 100644 --- a/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.vue +++ b/apps/wallet/src/components/assets/standards/InternetComputerNativeStandardForm.vue @@ -17,7 +17,7 @@ density="comfortable" :disabled="props.readonly" :prepend-icon="mdiDatabase" - :rules="[requiredRule, validCanisterId]" + :rules="[validCanisterId]" /> diff --git a/apps/wallet/src/components/inputs/TokenAutocomplete.vue b/apps/wallet/src/components/inputs/TokenAutocomplete.vue index 9f3d8c35b..d47fb97c5 100644 --- a/apps/wallet/src/components/inputs/TokenAutocomplete.vue +++ b/apps/wallet/src/components/inputs/TokenAutocomplete.vue @@ -3,26 +3,29 @@ v-model="model" :multiple="props.multiple.value" :label="props.label.value" - item-value="value" - item-title="text" + item-value="id" + :item-title="item => `${item.name} (${item.symbol})`" :items="items" :variant="props.variant.value" :density="props.density.value" :readonly="props.readonly.value" :disabled="props.disabled.value" :rules="props.rules.value" + :no-data-text="props.noDataText.value" + data-test-id="token-autocomplete" /> diff --git a/apps/wallet/src/components/inputs/UserAutocomplete.vue b/apps/wallet/src/components/inputs/UserAutocomplete.vue index 8eca27836..8fd363b88 100644 --- a/apps/wallet/src/components/inputs/UserAutocomplete.vue +++ b/apps/wallet/src/components/inputs/UserAutocomplete.vue @@ -12,7 +12,7 @@ :disabled="props.disabled.value" :prepend-icon="props.prependIcon.value" :rules="props.rules.value" - @update:search="autocomplete.search" + @update:search="autocomplete.search = $event" /> diff --git a/apps/wallet/src/components/requests/operations/TransferOperation.vue b/apps/wallet/src/components/requests/operations/TransferOperation.vue index 08542c758..aa23fb3cb 100644 --- a/apps/wallet/src/components/requests/operations/TransferOperation.vue +++ b/apps/wallet/src/components/requests/operations/TransferOperation.vue @@ -18,7 +18,7 @@

- +
- {{ account ? formatBalance(formValue.amount, account.decimals) : '-' }} - {{ account ? account.symbol : '' }} + {{ account ? formatBalance(formValue.amount, asset.decimals) : '-' }} + {{ account ? asset.symbol : '' }}
@@ -46,7 +46,7 @@ :prepend-icon="mdiWallet" readonly /> - + @@ -60,6 +60,9 @@ import { Routes } from '~/configs/routes.config'; import TextOverflow from '~/components/TextOverflow.vue'; import { copyToClipboard } from '~/utils/app.utils'; import { formatBalance } from '~/utils/helper.utils'; +import ShortenedAddress from '~/components/ShortenedAddress.vue'; +import { AddressFormat } from '~/types/chain.types'; +import { detectAddressFormat } from '~/utils/asset.utils'; const props = withDefaults( defineProps<{ @@ -75,6 +78,8 @@ const props = withDefaults( const isListMode = computed(() => props.mode === 'list'); const formValue: Ref> = ref({}); const account = computed(() => props.operation.from_account?.[0]); +const asset = computed(() => props.operation.from_asset); +const format = ref(undefined); onBeforeMount(() => { const transfer: Partial = {}; @@ -89,6 +94,8 @@ onBeforeMount(() => { } transfer.metadata = props.operation.input.metadata; + format.value = detectAddressFormat(props.operation.from_asset.blockchain, transfer.to); + formValue.value = transfer; }); diff --git a/apps/wallet/src/composables/account.composable.ts b/apps/wallet/src/composables/account.composable.ts index 34b7cb944..2699de2e3 100644 --- a/apps/wallet/src/composables/account.composable.ts +++ b/apps/wallet/src/composables/account.composable.ts @@ -7,7 +7,6 @@ import logger from '~/core/logger.core'; import { UUID } from '~/generated/station/station.did'; import { useAppStore } from '~/stores/app.store'; import { useStationStore } from '~/stores/station.store'; -import { BlockchainStandard, BlockchainType, TokenSymbol } from '~/types/chain.types'; import { parseDate } from '~/utils/date.utils'; export type Filters = { @@ -84,9 +83,7 @@ export const useDefaultAccountSetupWizardModel = ({ } = {}): AccountSetupWizardModel => { return { configuration: { - blockchain: BlockchainType.InternetComputer, - standard: BlockchainStandard.Native, - symbol: TokenSymbol.ICP, + assets: [], }, permission: { read: { @@ -147,10 +144,8 @@ export const useLoadAccountSetupWizardModel = async ( configuration: { id: account.id, name: account.name, - blockchain: account.blockchain, lastModified: account.last_modification_timestamp, - standard: account.standard, - symbol: account.symbol, + assets: account.assets.map(accountAsset => accountAsset.asset_id), }, permission: { read, diff --git a/apps/wallet/src/configs/routes.config.ts b/apps/wallet/src/configs/routes.config.ts index 7405b7080..ba23ae257 100644 --- a/apps/wallet/src/configs/routes.config.ts +++ b/apps/wallet/src/configs/routes.config.ts @@ -4,6 +4,7 @@ export enum Routes { NotFound = 'NotFound', Accounts = 'Accounts', Account = 'Account', + AccountAsset = 'AccountAsset', MySettings = 'MySettings', UserGroups = 'UserGroups', SystemSettings = 'SystemSettings', diff --git a/apps/wallet/src/generated/icp_ledger/icp_ledger.did b/apps/wallet/src/generated/icp_ledger/icp_ledger.did new file mode 100644 index 000000000..c11b9434f --- /dev/null +++ b/apps/wallet/src/generated/icp_ledger/icp_ledger.did @@ -0,0 +1,451 @@ +// This is the official Ledger interface that is guaranteed to be backward compatible. + +// Amount of tokens, measured in 10^-8 of a token. +type Tokens = record { + e8s : nat64; +}; + +// Number of nanoseconds from the UNIX epoch in UTC timezone. +type TimeStamp = record { + timestamp_nanos: nat64; +}; + +// AccountIdentifier is a 32-byte array. +// The first 4 bytes is big-endian encoding of a CRC32 checksum of the last 28 bytes. +type AccountIdentifier = blob; + +// Subaccount is an arbitrary 32-byte byte array. +// Ledger uses subaccounts to compute the source address, which enables one +// principal to control multiple ledger accounts. +type SubAccount = blob; + +// Sequence number of a block produced by the ledger. +type BlockIndex = nat64; + +type Transaction = record { + memo : Memo; + icrc1_memo: opt blob; + operation : opt Operation; + created_at_time : TimeStamp; +}; + +// An arbitrary number associated with a transaction. +// The caller can set it in a `transfer` call as a correlation identifier. +type Memo = nat64; + +// Arguments for the `transfer` call. +type TransferArgs = record { + // Transaction memo. + // See comments for the `Memo` type. + memo: Memo; + // The amount that the caller wants to transfer to the destination address. + amount: Tokens; + // The amount that the caller pays for the transaction. + // Must be 10000 e8s. + fee: Tokens; + // The subaccount from which the caller wants to transfer funds. + // If null, the ledger uses the default (all zeros) subaccount to compute the source address. + // See comments for the `SubAccount` type. + from_subaccount: opt SubAccount; + // The destination account. + // If the transfer is successful, the balance of this address increases by `amount`. + to: AccountIdentifier; + // The point in time when the caller created this request. + // If null, the ledger uses current IC time as the timestamp. + created_at_time: opt TimeStamp; +}; + +type TransferError = variant { + // The fee that the caller specified in the transfer request was not the one that ledger expects. + // The caller can change the transfer fee to the `expected_fee` and retry the request. + BadFee : record { expected_fee : Tokens; }; + // The account specified by the caller doesn't have enough funds. + InsufficientFunds : record { balance: Tokens; }; + // The request is too old. + // The ledger only accepts requests created within 24 hours window. + // This is a non-recoverable error. + TxTooOld : record { allowed_window_nanos: nat64 }; + // The caller specified `created_at_time` that is too far in future. + // The caller can retry the request later. + TxCreatedInFuture : null; + // The ledger has already executed the request. + // `duplicate_of` field is equal to the index of the block containing the original transaction. + TxDuplicate : record { duplicate_of: BlockIndex; } +}; + +type TransferResult = variant { + Ok : BlockIndex; + Err : TransferError; +}; + +// Arguments for the `account_balance` call. +type AccountBalanceArgs = record { + account: AccountIdentifier; +}; + +type TransferFeeArg = record {}; + +type TransferFee = record { + // The fee to pay to perform a transfer + transfer_fee: Tokens; +}; + +type GetBlocksArgs = record { + // The index of the first block to fetch. + start : BlockIndex; + // Max number of blocks to fetch. + length : nat64; +}; + +type Operation = variant { + Mint : record { + to : AccountIdentifier; + amount : Tokens; + }; + Burn : record { + from : AccountIdentifier; + spender : opt AccountIdentifier; + amount : Tokens; + }; + Transfer : record { + from : AccountIdentifier; + to : AccountIdentifier; + amount : Tokens; + fee : Tokens; + }; + Approve : record { + from : AccountIdentifier; + spender : AccountIdentifier; + // This field is deprecated and should not be used. + allowance_e8s : int; + allowance: Tokens; + fee : Tokens; + expires_at : opt TimeStamp; + }; + TransferFrom : record { + from : AccountIdentifier; + to : AccountIdentifier; + spender : AccountIdentifier; + amount : Tokens; + fee : Tokens; + }; +}; + + + +type Block = record { + parent_hash : opt blob; + transaction : Transaction; + timestamp : TimeStamp; +}; + +// A prefix of the block range specified in the [GetBlocksArgs] request. +type BlockRange = record { + // A prefix of the requested block range. + // The index of the first block is equal to [GetBlocksArgs.from]. + // + // Note that the number of blocks might be less than the requested + // [GetBlocksArgs.len] for various reasons, for example: + // + // 1. The query might have hit the replica with an outdated state + // that doesn't have the full block range yet. + // 2. The requested range is too large to fit into a single reply. + // + // NOTE: the list of blocks can be empty if: + // 1. [GetBlocksArgs.len] was zero. + // 2. [GetBlocksArgs.from] was larger than the last block known to the canister. + blocks : vec Block; +}; + +// An error indicating that the arguments passed to [QueryArchiveFn] were invalid. +type QueryArchiveError = variant { + // [GetBlocksArgs.from] argument was smaller than the first block + // served by the canister that received the request. + BadFirstBlockIndex : record { + requested_index : BlockIndex; + first_valid_index : BlockIndex; + }; + + // Reserved for future use. + Other : record { + error_code : nat64; + error_message : text; + }; +}; + +type QueryArchiveResult = variant { + // Successfully fetched zero or more blocks. + Ok : BlockRange; + // The [GetBlocksArgs] request was invalid. + Err : QueryArchiveError; +}; + +// A function that is used for fetching archived ledger blocks. +type QueryArchiveFn = func (GetBlocksArgs) -> (QueryArchiveResult) query; + +// The result of a "query_blocks" call. +// +// The structure of the result is somewhat complicated because the main ledger canister might +// not have all the blocks that the caller requested: One or more "archive" canisters might +// store some of the requested blocks. +// +// Note: as of Q4 2021 when this interface is authored, the IC doesn't support making nested +// query calls within a query call. +type QueryBlocksResponse = record { + // The total number of blocks in the chain. + // If the chain length is positive, the index of the last block is `chain_len - 1`. + chain_length : nat64; + + // System certificate for the hash of the latest block in the chain. + // Only present if `query_blocks` is called in a non-replicated query context. + certificate : opt blob; + + // List of blocks that were available in the ledger when it processed the call. + // + // The blocks form a contiguous range, with the first block having index + // [first_block_index] (see below), and the last block having index + // [first_block_index] + len(blocks) - 1. + // + // The block range can be an arbitrary sub-range of the originally requested range. + blocks : vec Block; + + // The index of the first block in "blocks". + // If the blocks vector is empty, the exact value of this field is not specified. + first_block_index : BlockIndex; + + // Encoding of instructions for fetching archived blocks whose indices fall into the + // requested range. + // + // For each entry `e` in [archived_blocks], `[e.from, e.from + len)` is a sub-range + // of the originally requested block range. + archived_blocks : vec ArchivedBlocksRange; +}; + +type ArchivedBlocksRange = record { + // The index of the first archived block that can be fetched using the callback. + start : BlockIndex; + + // The number of blocks that can be fetch using the callback. + length : nat64; + + // The function that should be called to fetch the archived blocks. + // The range of the blocks accessible using this function is given by [from] + // and [len] fields above. + callback : QueryArchiveFn; +}; + +type ArchivedEncodedBlocksRange = record { + callback : func (GetBlocksArgs) -> ( + variant { Ok : vec blob; Err : QueryArchiveError }, + ) query; + start : nat64; + length : nat64; +}; + +type QueryEncodedBlocksResponse = record { + certificate : opt blob; + blocks : vec blob; + chain_length : nat64; + first_block_index : nat64; + archived_blocks : vec ArchivedEncodedBlocksRange; +}; + +type Archive = record { + canister_id: principal; +}; + +type Archives = record { + archives: vec Archive; +}; + +type Duration = record { + secs: nat64; + nanos: nat32; +}; + +type ArchiveOptions = record { + trigger_threshold : nat64; + num_blocks_to_archive : nat64; + node_max_memory_size_bytes: opt nat64; + max_message_size_bytes: opt nat64; + controller_id: principal; + cycles_for_archive_creation: opt nat64; +}; + +// Account identifier encoded as a 64-byte ASCII hex string. +type TextAccountIdentifier = text; + +// Arguments for the `send_dfx` call. +type SendArgs = record { + memo: Memo; + amount: Tokens; + fee: Tokens; + from_subaccount: opt SubAccount; + to: TextAccountIdentifier; + created_at_time: opt TimeStamp; +}; + +type AccountBalanceArgsDfx = record { + account: TextAccountIdentifier; +}; + +type FeatureFlags = record { + icrc2 : bool; +}; + +type InitArgs = record { + minting_account: TextAccountIdentifier; + icrc1_minting_account: opt Account; + initial_values: vec record {TextAccountIdentifier; Tokens}; + max_message_size_bytes: opt nat64; + transaction_window: opt Duration; + archive_options: opt ArchiveOptions; + send_whitelist: vec principal; + transfer_fee: opt Tokens; + token_symbol: opt text; + token_name: opt text; + feature_flags : opt FeatureFlags; + maximum_number_of_accounts : opt nat64; + accounts_overflow_trim_quantity: opt nat64; +}; + +type Icrc1BlockIndex = nat; +// Number of nanoseconds since the UNIX epoch in UTC timezone. +type Icrc1Timestamp = nat64; +type Icrc1Tokens = nat; + +type Account = record { + owner : principal; + subaccount : opt SubAccount; +}; + +type TransferArg = record { + from_subaccount : opt SubAccount; + to : Account; + amount : Icrc1Tokens; + fee : opt Icrc1Tokens; + memo : opt blob; + created_at_time: opt Icrc1Timestamp; +}; + +type Icrc1TransferError = variant { + BadFee : record { expected_fee : Icrc1Tokens }; + BadBurn : record { min_burn_amount : Icrc1Tokens }; + InsufficientFunds : record { balance : Icrc1Tokens }; + TooOld; + CreatedInFuture : record { ledger_time : nat64 }; + TemporarilyUnavailable; + Duplicate : record { duplicate_of : Icrc1BlockIndex }; + GenericError : record { error_code : nat; message : text }; +}; + +type Icrc1TransferResult = variant { + Ok : Icrc1BlockIndex; + Err : Icrc1TransferError; +}; + +// The value returned from the [icrc1_metadata] endpoint. +type Value = variant { + Nat : nat; + Int : int; + Text : text; + Blob : blob; +}; + +type UpgradeArgs = record { + maximum_number_of_accounts : opt nat64; + icrc1_minting_account : opt Account; + feature_flags : opt FeatureFlags; +}; + +type LedgerCanisterPayload = variant { + Init: InitArgs; + Upgrade: opt UpgradeArgs; +}; + +type ApproveArgs = record { + from_subaccount : opt SubAccount; + spender : Account; + amount : Icrc1Tokens; + expected_allowance : opt Icrc1Tokens; + expires_at : opt TimeStamp; + fee : opt Icrc1Tokens; + memo : opt blob; + created_at_time: opt TimeStamp; +}; + +type ApproveError = variant { + BadFee : record { expected_fee : Icrc1Tokens }; + InsufficientFunds : record { balance : Icrc1Tokens }; + AllowanceChanged : record { current_allowance : Icrc1Tokens }; + Expired : record { ledger_time : nat64 }; + TooOld; + CreatedInFuture : record { ledger_time : nat64 }; + Duplicate : record { duplicate_of : Icrc1BlockIndex }; + TemporarilyUnavailable; + GenericError : record { error_code : nat; message : text }; +}; + +type ApproveResult = variant { + Ok : Icrc1BlockIndex; + Err : ApproveError; +}; + +type AllowanceArgs = record { + account : Account; + spender : Account; +}; + +type Allowance = record { + allowance : Icrc1Tokens; + expires_at : opt TimeStamp; +}; + +service: (LedgerCanisterPayload) -> { + // Transfers tokens from a subaccount of the caller to the destination address. + // The source address is computed from the principal of the caller and the specified subaccount. + // When successful, returns the index of the block containing the transaction. + transfer : (TransferArgs) -> (TransferResult); + + // Returns the amount of Tokens on the specified account. + account_balance : (AccountBalanceArgs) -> (Tokens) query; + + // Returns the current transfer_fee. + transfer_fee : (TransferFeeArg) -> (TransferFee) query; + + // Queries blocks in the specified range. + query_blocks : (GetBlocksArgs) -> (QueryBlocksResponse) query; + + // Queries encoded blocks in the specified range + query_encoded_blocks : (GetBlocksArgs) -> (QueryEncodedBlocksResponse) query; + + // Returns token symbol. + symbol : () -> (record { symbol: text }) query; + + // Returns token name. + name : () -> (record { name: text }) query; + + // Returns token decimals. + decimals : () -> (record { decimals: nat32 }) query; + + // Returns the existing archive canisters information. + archives : () -> (Archives) query; + + send_dfx : (SendArgs) -> (BlockIndex); + account_balance_dfx : (AccountBalanceArgsDfx) -> (Tokens) query; + + // The following methods implement the ICRC-1 Token Standard. + // https://github.com/dfinity/ICRC-1/tree/main/standards/ICRC-1 + icrc1_name : () -> (text) query; + icrc1_symbol : () -> (text) query; + icrc1_decimals : () -> (nat8) query; + icrc1_metadata : () -> (vec record { text; Value }) query; + icrc1_total_supply : () -> (Icrc1Tokens) query; + icrc1_fee : () -> (Icrc1Tokens) query; + icrc1_minting_account : () -> (opt Account) query; + icrc1_balance_of : (Account) -> (Icrc1Tokens) query; + icrc1_transfer : (TransferArg) -> (Icrc1TransferResult); + icrc1_supported_standards : () -> (vec record { name : text; url : text }) query; + icrc2_approve : (ApproveArgs) -> (ApproveResult); + icrc2_allowance : (AllowanceArgs) -> (Allowance) query; +} diff --git a/apps/wallet/src/generated/icp_ledger/icp_ledger.did.d.ts b/apps/wallet/src/generated/icp_ledger/icp_ledger.did.d.ts new file mode 100644 index 000000000..420381746 --- /dev/null +++ b/apps/wallet/src/generated/icp_ledger/icp_ledger.did.d.ts @@ -0,0 +1,248 @@ +import type { Principal } from '@dfinity/principal'; +import type { ActorMethod } from '@dfinity/agent'; +import type { IDL } from '@dfinity/candid'; + +export interface Account { + 'owner' : Principal, + 'subaccount' : [] | [SubAccount], +} +export interface AccountBalanceArgs { 'account' : AccountIdentifier } +export interface AccountBalanceArgsDfx { 'account' : TextAccountIdentifier } +export type AccountIdentifier = Uint8Array | number[]; +export interface Allowance { + 'allowance' : Icrc1Tokens, + 'expires_at' : [] | [TimeStamp], +} +export interface AllowanceArgs { 'account' : Account, 'spender' : Account } +export interface ApproveArgs { + 'fee' : [] | [Icrc1Tokens], + 'memo' : [] | [Uint8Array | number[]], + 'from_subaccount' : [] | [SubAccount], + 'created_at_time' : [] | [TimeStamp], + 'amount' : Icrc1Tokens, + 'expected_allowance' : [] | [Icrc1Tokens], + 'expires_at' : [] | [TimeStamp], + 'spender' : Account, +} +export type ApproveError = { + 'GenericError' : { 'message' : string, 'error_code' : bigint } + } | + { 'TemporarilyUnavailable' : null } | + { 'Duplicate' : { 'duplicate_of' : Icrc1BlockIndex } } | + { 'BadFee' : { 'expected_fee' : Icrc1Tokens } } | + { 'AllowanceChanged' : { 'current_allowance' : Icrc1Tokens } } | + { 'CreatedInFuture' : { 'ledger_time' : bigint } } | + { 'TooOld' : null } | + { 'Expired' : { 'ledger_time' : bigint } } | + { 'InsufficientFunds' : { 'balance' : Icrc1Tokens } }; +export type ApproveResult = { 'Ok' : Icrc1BlockIndex } | + { 'Err' : ApproveError }; +export interface Archive { 'canister_id' : Principal } +export interface ArchiveOptions { + 'num_blocks_to_archive' : bigint, + 'trigger_threshold' : bigint, + 'max_message_size_bytes' : [] | [bigint], + 'cycles_for_archive_creation' : [] | [bigint], + 'node_max_memory_size_bytes' : [] | [bigint], + 'controller_id' : Principal, +} +export interface ArchivedBlocksRange { + 'callback' : QueryArchiveFn, + 'start' : BlockIndex, + 'length' : bigint, +} +export interface ArchivedEncodedBlocksRange { + 'callback' : [Principal, string], + 'start' : bigint, + 'length' : bigint, +} +export interface Archives { 'archives' : Array } +export interface Block { + 'transaction' : Transaction, + 'timestamp' : TimeStamp, + 'parent_hash' : [] | [Uint8Array | number[]], +} +export type BlockIndex = bigint; +export interface BlockRange { 'blocks' : Array } +export interface Duration { 'secs' : bigint, 'nanos' : number } +export interface FeatureFlags { 'icrc2' : boolean } +export interface GetBlocksArgs { 'start' : BlockIndex, 'length' : bigint } +export type Icrc1BlockIndex = bigint; +export type Icrc1Timestamp = bigint; +export type Icrc1Tokens = bigint; +export type Icrc1TransferError = { + 'GenericError' : { 'message' : string, 'error_code' : bigint } + } | + { 'TemporarilyUnavailable' : null } | + { 'BadBurn' : { 'min_burn_amount' : Icrc1Tokens } } | + { 'Duplicate' : { 'duplicate_of' : Icrc1BlockIndex } } | + { 'BadFee' : { 'expected_fee' : Icrc1Tokens } } | + { 'CreatedInFuture' : { 'ledger_time' : bigint } } | + { 'TooOld' : null } | + { 'InsufficientFunds' : { 'balance' : Icrc1Tokens } }; +export type Icrc1TransferResult = { 'Ok' : Icrc1BlockIndex } | + { 'Err' : Icrc1TransferError }; +export interface InitArgs { + 'send_whitelist' : Array, + 'token_symbol' : [] | [string], + 'transfer_fee' : [] | [Tokens], + 'minting_account' : TextAccountIdentifier, + 'maximum_number_of_accounts' : [] | [bigint], + 'accounts_overflow_trim_quantity' : [] | [bigint], + 'transaction_window' : [] | [Duration], + 'max_message_size_bytes' : [] | [bigint], + 'icrc1_minting_account' : [] | [Account], + 'archive_options' : [] | [ArchiveOptions], + 'initial_values' : Array<[TextAccountIdentifier, Tokens]>, + 'token_name' : [] | [string], + 'feature_flags' : [] | [FeatureFlags], +} +export type LedgerCanisterPayload = { 'Upgrade' : [] | [UpgradeArgs] } | + { 'Init' : InitArgs }; +export type Memo = bigint; +export type Operation = { + 'Approve' : { + 'fee' : Tokens, + 'from' : AccountIdentifier, + 'allowance_e8s' : bigint, + 'allowance' : Tokens, + 'expires_at' : [] | [TimeStamp], + 'spender' : AccountIdentifier, + } + } | + { + 'Burn' : { + 'from' : AccountIdentifier, + 'amount' : Tokens, + 'spender' : [] | [AccountIdentifier], + } + } | + { 'Mint' : { 'to' : AccountIdentifier, 'amount' : Tokens } } | + { + 'Transfer' : { + 'to' : AccountIdentifier, + 'fee' : Tokens, + 'from' : AccountIdentifier, + 'amount' : Tokens, + } + } | + { + 'TransferFrom' : { + 'to' : AccountIdentifier, + 'fee' : Tokens, + 'from' : AccountIdentifier, + 'amount' : Tokens, + 'spender' : AccountIdentifier, + } + }; +export type QueryArchiveError = { + 'BadFirstBlockIndex' : { + 'requested_index' : BlockIndex, + 'first_valid_index' : BlockIndex, + } + } | + { 'Other' : { 'error_message' : string, 'error_code' : bigint } }; +export type QueryArchiveFn = ActorMethod<[GetBlocksArgs], QueryArchiveResult>; +export type QueryArchiveResult = { 'Ok' : BlockRange } | + { 'Err' : QueryArchiveError }; +export interface QueryBlocksResponse { + 'certificate' : [] | [Uint8Array | number[]], + 'blocks' : Array, + 'chain_length' : bigint, + 'first_block_index' : BlockIndex, + 'archived_blocks' : Array, +} +export interface QueryEncodedBlocksResponse { + 'certificate' : [] | [Uint8Array | number[]], + 'blocks' : Array, + 'chain_length' : bigint, + 'first_block_index' : bigint, + 'archived_blocks' : Array, +} +export interface SendArgs { + 'to' : TextAccountIdentifier, + 'fee' : Tokens, + 'memo' : Memo, + 'from_subaccount' : [] | [SubAccount], + 'created_at_time' : [] | [TimeStamp], + 'amount' : Tokens, +} +export type SubAccount = Uint8Array | number[]; +export type TextAccountIdentifier = string; +export interface TimeStamp { 'timestamp_nanos' : bigint } +export interface Tokens { 'e8s' : bigint } +export interface Transaction { + 'memo' : Memo, + 'icrc1_memo' : [] | [Uint8Array | number[]], + 'operation' : [] | [Operation], + 'created_at_time' : TimeStamp, +} +export interface TransferArg { + 'to' : Account, + 'fee' : [] | [Icrc1Tokens], + 'memo' : [] | [Uint8Array | number[]], + 'from_subaccount' : [] | [SubAccount], + 'created_at_time' : [] | [Icrc1Timestamp], + 'amount' : Icrc1Tokens, +} +export interface TransferArgs { + 'to' : AccountIdentifier, + 'fee' : Tokens, + 'memo' : Memo, + 'from_subaccount' : [] | [SubAccount], + 'created_at_time' : [] | [TimeStamp], + 'amount' : Tokens, +} +export type TransferError = { + 'TxTooOld' : { 'allowed_window_nanos' : bigint } + } | + { 'BadFee' : { 'expected_fee' : Tokens } } | + { 'TxDuplicate' : { 'duplicate_of' : BlockIndex } } | + { 'TxCreatedInFuture' : null } | + { 'InsufficientFunds' : { 'balance' : Tokens } }; +export interface TransferFee { 'transfer_fee' : Tokens } +export type TransferFeeArg = {}; +export type TransferResult = { 'Ok' : BlockIndex } | + { 'Err' : TransferError }; +export interface UpgradeArgs { + 'maximum_number_of_accounts' : [] | [bigint], + 'icrc1_minting_account' : [] | [Account], + 'feature_flags' : [] | [FeatureFlags], +} +export type Value = { 'Int' : bigint } | + { 'Nat' : bigint } | + { 'Blob' : Uint8Array | number[] } | + { 'Text' : string }; +export interface _SERVICE { + 'account_balance' : ActorMethod<[AccountBalanceArgs], Tokens>, + 'account_balance_dfx' : ActorMethod<[AccountBalanceArgsDfx], Tokens>, + 'archives' : ActorMethod<[], Archives>, + 'decimals' : ActorMethod<[], { 'decimals' : number }>, + 'icrc1_balance_of' : ActorMethod<[Account], Icrc1Tokens>, + 'icrc1_decimals' : ActorMethod<[], number>, + 'icrc1_fee' : ActorMethod<[], Icrc1Tokens>, + 'icrc1_metadata' : ActorMethod<[], Array<[string, Value]>>, + 'icrc1_minting_account' : ActorMethod<[], [] | [Account]>, + 'icrc1_name' : ActorMethod<[], string>, + 'icrc1_supported_standards' : ActorMethod< + [], + Array<{ 'url' : string, 'name' : string }> + >, + 'icrc1_symbol' : ActorMethod<[], string>, + 'icrc1_total_supply' : ActorMethod<[], Icrc1Tokens>, + 'icrc1_transfer' : ActorMethod<[TransferArg], Icrc1TransferResult>, + 'icrc2_allowance' : ActorMethod<[AllowanceArgs], Allowance>, + 'icrc2_approve' : ActorMethod<[ApproveArgs], ApproveResult>, + 'name' : ActorMethod<[], { 'name' : string }>, + 'query_blocks' : ActorMethod<[GetBlocksArgs], QueryBlocksResponse>, + 'query_encoded_blocks' : ActorMethod< + [GetBlocksArgs], + QueryEncodedBlocksResponse + >, + 'send_dfx' : ActorMethod<[SendArgs], BlockIndex>, + 'symbol' : ActorMethod<[], { 'symbol' : string }>, + 'transfer' : ActorMethod<[TransferArgs], TransferResult>, + 'transfer_fee' : ActorMethod<[TransferFeeArg], TransferFee>, +} +export declare const idlFactory: IDL.InterfaceFactory; +export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[]; diff --git a/apps/wallet/src/generated/icp_ledger/icp_ledger.did.js b/apps/wallet/src/generated/icp_ledger/icp_ledger.did.js new file mode 100644 index 000000000..1dc00ee62 --- /dev/null +++ b/apps/wallet/src/generated/icp_ledger/icp_ledger.did.js @@ -0,0 +1,342 @@ +export const idlFactory = ({ IDL }) => { + const SubAccount = IDL.Vec(IDL.Nat8); + const Account = IDL.Record({ + 'owner' : IDL.Principal, + 'subaccount' : IDL.Opt(SubAccount), + }); + const FeatureFlags = IDL.Record({ 'icrc2' : IDL.Bool }); + const UpgradeArgs = IDL.Record({ + 'maximum_number_of_accounts' : IDL.Opt(IDL.Nat64), + 'icrc1_minting_account' : IDL.Opt(Account), + 'feature_flags' : IDL.Opt(FeatureFlags), + }); + const Tokens = IDL.Record({ 'e8s' : IDL.Nat64 }); + const TextAccountIdentifier = IDL.Text; + const Duration = IDL.Record({ 'secs' : IDL.Nat64, 'nanos' : IDL.Nat32 }); + const ArchiveOptions = IDL.Record({ + 'num_blocks_to_archive' : IDL.Nat64, + 'trigger_threshold' : IDL.Nat64, + 'max_message_size_bytes' : IDL.Opt(IDL.Nat64), + 'cycles_for_archive_creation' : IDL.Opt(IDL.Nat64), + 'node_max_memory_size_bytes' : IDL.Opt(IDL.Nat64), + 'controller_id' : IDL.Principal, + }); + const InitArgs = IDL.Record({ + 'send_whitelist' : IDL.Vec(IDL.Principal), + 'token_symbol' : IDL.Opt(IDL.Text), + 'transfer_fee' : IDL.Opt(Tokens), + 'minting_account' : TextAccountIdentifier, + 'maximum_number_of_accounts' : IDL.Opt(IDL.Nat64), + 'accounts_overflow_trim_quantity' : IDL.Opt(IDL.Nat64), + 'transaction_window' : IDL.Opt(Duration), + 'max_message_size_bytes' : IDL.Opt(IDL.Nat64), + 'icrc1_minting_account' : IDL.Opt(Account), + 'archive_options' : IDL.Opt(ArchiveOptions), + 'initial_values' : IDL.Vec(IDL.Tuple(TextAccountIdentifier, Tokens)), + 'token_name' : IDL.Opt(IDL.Text), + 'feature_flags' : IDL.Opt(FeatureFlags), + }); + const LedgerCanisterPayload = IDL.Variant({ + 'Upgrade' : IDL.Opt(UpgradeArgs), + 'Init' : InitArgs, + }); + const AccountIdentifier = IDL.Vec(IDL.Nat8); + const AccountBalanceArgs = IDL.Record({ 'account' : AccountIdentifier }); + const AccountBalanceArgsDfx = IDL.Record({ + 'account' : TextAccountIdentifier, + }); + const Archive = IDL.Record({ 'canister_id' : IDL.Principal }); + const Archives = IDL.Record({ 'archives' : IDL.Vec(Archive) }); + const Icrc1Tokens = IDL.Nat; + const Value = IDL.Variant({ + 'Int' : IDL.Int, + 'Nat' : IDL.Nat, + 'Blob' : IDL.Vec(IDL.Nat8), + 'Text' : IDL.Text, + }); + const Icrc1Timestamp = IDL.Nat64; + const TransferArg = IDL.Record({ + 'to' : Account, + 'fee' : IDL.Opt(Icrc1Tokens), + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'from_subaccount' : IDL.Opt(SubAccount), + 'created_at_time' : IDL.Opt(Icrc1Timestamp), + 'amount' : Icrc1Tokens, + }); + const Icrc1BlockIndex = IDL.Nat; + const Icrc1TransferError = IDL.Variant({ + 'GenericError' : IDL.Record({ + 'message' : IDL.Text, + 'error_code' : IDL.Nat, + }), + 'TemporarilyUnavailable' : IDL.Null, + 'BadBurn' : IDL.Record({ 'min_burn_amount' : Icrc1Tokens }), + 'Duplicate' : IDL.Record({ 'duplicate_of' : Icrc1BlockIndex }), + 'BadFee' : IDL.Record({ 'expected_fee' : Icrc1Tokens }), + 'CreatedInFuture' : IDL.Record({ 'ledger_time' : IDL.Nat64 }), + 'TooOld' : IDL.Null, + 'InsufficientFunds' : IDL.Record({ 'balance' : Icrc1Tokens }), + }); + const Icrc1TransferResult = IDL.Variant({ + 'Ok' : Icrc1BlockIndex, + 'Err' : Icrc1TransferError, + }); + const AllowanceArgs = IDL.Record({ + 'account' : Account, + 'spender' : Account, + }); + const TimeStamp = IDL.Record({ 'timestamp_nanos' : IDL.Nat64 }); + const Allowance = IDL.Record({ + 'allowance' : Icrc1Tokens, + 'expires_at' : IDL.Opt(TimeStamp), + }); + const ApproveArgs = IDL.Record({ + 'fee' : IDL.Opt(Icrc1Tokens), + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'from_subaccount' : IDL.Opt(SubAccount), + 'created_at_time' : IDL.Opt(TimeStamp), + 'amount' : Icrc1Tokens, + 'expected_allowance' : IDL.Opt(Icrc1Tokens), + 'expires_at' : IDL.Opt(TimeStamp), + 'spender' : Account, + }); + const ApproveError = IDL.Variant({ + 'GenericError' : IDL.Record({ + 'message' : IDL.Text, + 'error_code' : IDL.Nat, + }), + 'TemporarilyUnavailable' : IDL.Null, + 'Duplicate' : IDL.Record({ 'duplicate_of' : Icrc1BlockIndex }), + 'BadFee' : IDL.Record({ 'expected_fee' : Icrc1Tokens }), + 'AllowanceChanged' : IDL.Record({ 'current_allowance' : Icrc1Tokens }), + 'CreatedInFuture' : IDL.Record({ 'ledger_time' : IDL.Nat64 }), + 'TooOld' : IDL.Null, + 'Expired' : IDL.Record({ 'ledger_time' : IDL.Nat64 }), + 'InsufficientFunds' : IDL.Record({ 'balance' : Icrc1Tokens }), + }); + const ApproveResult = IDL.Variant({ + 'Ok' : Icrc1BlockIndex, + 'Err' : ApproveError, + }); + const BlockIndex = IDL.Nat64; + const GetBlocksArgs = IDL.Record({ + 'start' : BlockIndex, + 'length' : IDL.Nat64, + }); + const Memo = IDL.Nat64; + const Operation = IDL.Variant({ + 'Approve' : IDL.Record({ + 'fee' : Tokens, + 'from' : AccountIdentifier, + 'allowance_e8s' : IDL.Int, + 'allowance' : Tokens, + 'expires_at' : IDL.Opt(TimeStamp), + 'spender' : AccountIdentifier, + }), + 'Burn' : IDL.Record({ + 'from' : AccountIdentifier, + 'amount' : Tokens, + 'spender' : IDL.Opt(AccountIdentifier), + }), + 'Mint' : IDL.Record({ 'to' : AccountIdentifier, 'amount' : Tokens }), + 'Transfer' : IDL.Record({ + 'to' : AccountIdentifier, + 'fee' : Tokens, + 'from' : AccountIdentifier, + 'amount' : Tokens, + }), + 'TransferFrom' : IDL.Record({ + 'to' : AccountIdentifier, + 'fee' : Tokens, + 'from' : AccountIdentifier, + 'amount' : Tokens, + 'spender' : AccountIdentifier, + }), + }); + const Transaction = IDL.Record({ + 'memo' : Memo, + 'icrc1_memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'operation' : IDL.Opt(Operation), + 'created_at_time' : TimeStamp, + }); + const Block = IDL.Record({ + 'transaction' : Transaction, + 'timestamp' : TimeStamp, + 'parent_hash' : IDL.Opt(IDL.Vec(IDL.Nat8)), + }); + const BlockRange = IDL.Record({ 'blocks' : IDL.Vec(Block) }); + const QueryArchiveError = IDL.Variant({ + 'BadFirstBlockIndex' : IDL.Record({ + 'requested_index' : BlockIndex, + 'first_valid_index' : BlockIndex, + }), + 'Other' : IDL.Record({ + 'error_message' : IDL.Text, + 'error_code' : IDL.Nat64, + }), + }); + const QueryArchiveResult = IDL.Variant({ + 'Ok' : BlockRange, + 'Err' : QueryArchiveError, + }); + const QueryArchiveFn = IDL.Func( + [GetBlocksArgs], + [QueryArchiveResult], + ['query'], + ); + const ArchivedBlocksRange = IDL.Record({ + 'callback' : QueryArchiveFn, + 'start' : BlockIndex, + 'length' : IDL.Nat64, + }); + const QueryBlocksResponse = IDL.Record({ + 'certificate' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'blocks' : IDL.Vec(Block), + 'chain_length' : IDL.Nat64, + 'first_block_index' : BlockIndex, + 'archived_blocks' : IDL.Vec(ArchivedBlocksRange), + }); + const ArchivedEncodedBlocksRange = IDL.Record({ + 'callback' : IDL.Func( + [GetBlocksArgs], + [ + IDL.Variant({ + 'Ok' : IDL.Vec(IDL.Vec(IDL.Nat8)), + 'Err' : QueryArchiveError, + }), + ], + ['query'], + ), + 'start' : IDL.Nat64, + 'length' : IDL.Nat64, + }); + const QueryEncodedBlocksResponse = IDL.Record({ + 'certificate' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'blocks' : IDL.Vec(IDL.Vec(IDL.Nat8)), + 'chain_length' : IDL.Nat64, + 'first_block_index' : IDL.Nat64, + 'archived_blocks' : IDL.Vec(ArchivedEncodedBlocksRange), + }); + const SendArgs = IDL.Record({ + 'to' : TextAccountIdentifier, + 'fee' : Tokens, + 'memo' : Memo, + 'from_subaccount' : IDL.Opt(SubAccount), + 'created_at_time' : IDL.Opt(TimeStamp), + 'amount' : Tokens, + }); + const TransferArgs = IDL.Record({ + 'to' : AccountIdentifier, + 'fee' : Tokens, + 'memo' : Memo, + 'from_subaccount' : IDL.Opt(SubAccount), + 'created_at_time' : IDL.Opt(TimeStamp), + 'amount' : Tokens, + }); + const TransferError = IDL.Variant({ + 'TxTooOld' : IDL.Record({ 'allowed_window_nanos' : IDL.Nat64 }), + 'BadFee' : IDL.Record({ 'expected_fee' : Tokens }), + 'TxDuplicate' : IDL.Record({ 'duplicate_of' : BlockIndex }), + 'TxCreatedInFuture' : IDL.Null, + 'InsufficientFunds' : IDL.Record({ 'balance' : Tokens }), + }); + const TransferResult = IDL.Variant({ + 'Ok' : BlockIndex, + 'Err' : TransferError, + }); + const TransferFeeArg = IDL.Record({}); + const TransferFee = IDL.Record({ 'transfer_fee' : Tokens }); + return IDL.Service({ + 'account_balance' : IDL.Func([AccountBalanceArgs], [Tokens], ['query']), + 'account_balance_dfx' : IDL.Func( + [AccountBalanceArgsDfx], + [Tokens], + ['query'], + ), + 'archives' : IDL.Func([], [Archives], ['query']), + 'decimals' : IDL.Func( + [], + [IDL.Record({ 'decimals' : IDL.Nat32 })], + ['query'], + ), + 'icrc1_balance_of' : IDL.Func([Account], [Icrc1Tokens], ['query']), + 'icrc1_decimals' : IDL.Func([], [IDL.Nat8], ['query']), + 'icrc1_fee' : IDL.Func([], [Icrc1Tokens], ['query']), + 'icrc1_metadata' : IDL.Func( + [], + [IDL.Vec(IDL.Tuple(IDL.Text, Value))], + ['query'], + ), + 'icrc1_minting_account' : IDL.Func([], [IDL.Opt(Account)], ['query']), + 'icrc1_name' : IDL.Func([], [IDL.Text], ['query']), + 'icrc1_supported_standards' : IDL.Func( + [], + [IDL.Vec(IDL.Record({ 'url' : IDL.Text, 'name' : IDL.Text }))], + ['query'], + ), + 'icrc1_symbol' : IDL.Func([], [IDL.Text], ['query']), + 'icrc1_total_supply' : IDL.Func([], [Icrc1Tokens], ['query']), + 'icrc1_transfer' : IDL.Func([TransferArg], [Icrc1TransferResult], []), + 'icrc2_allowance' : IDL.Func([AllowanceArgs], [Allowance], ['query']), + 'icrc2_approve' : IDL.Func([ApproveArgs], [ApproveResult], []), + 'name' : IDL.Func([], [IDL.Record({ 'name' : IDL.Text })], ['query']), + 'query_blocks' : IDL.Func( + [GetBlocksArgs], + [QueryBlocksResponse], + ['query'], + ), + 'query_encoded_blocks' : IDL.Func( + [GetBlocksArgs], + [QueryEncodedBlocksResponse], + ['query'], + ), + 'send_dfx' : IDL.Func([SendArgs], [BlockIndex], []), + 'symbol' : IDL.Func([], [IDL.Record({ 'symbol' : IDL.Text })], ['query']), + 'transfer' : IDL.Func([TransferArgs], [TransferResult], []), + 'transfer_fee' : IDL.Func([TransferFeeArg], [TransferFee], ['query']), + }); +}; +export const init = ({ IDL }) => { + const SubAccount = IDL.Vec(IDL.Nat8); + const Account = IDL.Record({ + 'owner' : IDL.Principal, + 'subaccount' : IDL.Opt(SubAccount), + }); + const FeatureFlags = IDL.Record({ 'icrc2' : IDL.Bool }); + const UpgradeArgs = IDL.Record({ + 'maximum_number_of_accounts' : IDL.Opt(IDL.Nat64), + 'icrc1_minting_account' : IDL.Opt(Account), + 'feature_flags' : IDL.Opt(FeatureFlags), + }); + const Tokens = IDL.Record({ 'e8s' : IDL.Nat64 }); + const TextAccountIdentifier = IDL.Text; + const Duration = IDL.Record({ 'secs' : IDL.Nat64, 'nanos' : IDL.Nat32 }); + const ArchiveOptions = IDL.Record({ + 'num_blocks_to_archive' : IDL.Nat64, + 'trigger_threshold' : IDL.Nat64, + 'max_message_size_bytes' : IDL.Opt(IDL.Nat64), + 'cycles_for_archive_creation' : IDL.Opt(IDL.Nat64), + 'node_max_memory_size_bytes' : IDL.Opt(IDL.Nat64), + 'controller_id' : IDL.Principal, + }); + const InitArgs = IDL.Record({ + 'send_whitelist' : IDL.Vec(IDL.Principal), + 'token_symbol' : IDL.Opt(IDL.Text), + 'transfer_fee' : IDL.Opt(Tokens), + 'minting_account' : TextAccountIdentifier, + 'maximum_number_of_accounts' : IDL.Opt(IDL.Nat64), + 'accounts_overflow_trim_quantity' : IDL.Opt(IDL.Nat64), + 'transaction_window' : IDL.Opt(Duration), + 'max_message_size_bytes' : IDL.Opt(IDL.Nat64), + 'icrc1_minting_account' : IDL.Opt(Account), + 'archive_options' : IDL.Opt(ArchiveOptions), + 'initial_values' : IDL.Vec(IDL.Tuple(TextAccountIdentifier, Tokens)), + 'token_name' : IDL.Opt(IDL.Text), + 'feature_flags' : IDL.Opt(FeatureFlags), + }); + const LedgerCanisterPayload = IDL.Variant({ + 'Upgrade' : IDL.Opt(UpgradeArgs), + 'Init' : InitArgs, + }); + return [LedgerCanisterPayload]; +}; diff --git a/apps/wallet/src/generated/icp_ledger/index.d.ts b/apps/wallet/src/generated/icp_ledger/index.d.ts new file mode 100644 index 000000000..513ca9e74 --- /dev/null +++ b/apps/wallet/src/generated/icp_ledger/index.d.ts @@ -0,0 +1,50 @@ +import type { + ActorSubclass, + HttpAgentOptions, + ActorConfig, + Agent, +} from "@dfinity/agent"; +import type { Principal } from "@dfinity/principal"; +import type { IDL } from "@dfinity/candid"; + +import { _SERVICE } from './icp_ledger.did'; + +export declare const idlFactory: IDL.InterfaceFactory; +export declare const canisterId: string; + +export declare interface CreateActorOptions { + /** + * @see {@link Agent} + */ + agent?: Agent; + /** + * @see {@link HttpAgentOptions} + */ + agentOptions?: HttpAgentOptions; + /** + * @see {@link ActorConfig} + */ + actorOptions?: ActorConfig; +} + +/** + * Intializes an {@link ActorSubclass}, configured with the provided SERVICE interface of a canister. + * @constructs {@link ActorSubClass} + * @param {string | Principal} canisterId - ID of the canister the {@link Actor} will talk to + * @param {CreateActorOptions} options - see {@link CreateActorOptions} + * @param {CreateActorOptions["agent"]} options.agent - a pre-configured agent you'd like to use. Supercedes agentOptions + * @param {CreateActorOptions["agentOptions"]} options.agentOptions - options to set up a new agent + * @see {@link HttpAgentOptions} + * @param {CreateActorOptions["actorOptions"]} options.actorOptions - options for the Actor + * @see {@link ActorConfig} + */ +export declare const createActor: ( + canisterId: string | Principal, + options?: CreateActorOptions +) => ActorSubclass<_SERVICE>; + +/** + * Intialized Actor using default settings, ready to talk to a canister using its candid interface + * @constructs {@link ActorSubClass} + */ +export declare const icp_ledger: ActorSubclass<_SERVICE>; diff --git a/apps/wallet/src/generated/icp_ledger/index.js b/apps/wallet/src/generated/icp_ledger/index.js new file mode 100644 index 000000000..e0f474543 --- /dev/null +++ b/apps/wallet/src/generated/icp_ledger/index.js @@ -0,0 +1,40 @@ +import { Actor, HttpAgent } from "@dfinity/agent"; + +// Imports and re-exports candid interface +import { idlFactory } from "./icp_ledger.did.js"; +export { idlFactory } from "./icp_ledger.did.js"; + +/* CANISTER_ID is replaced by webpack based on node environment + * Note: canister environment variable will be standardized as + * process.env.CANISTER_ID_ + * beginning in dfx 0.15.0 + */ +export const canisterId = + process.env.CANISTER_ID_ICP_LEDGER; + +export const createActor = (canisterId, options = {}) => { + const agent = options.agent || new HttpAgent({ ...options.agentOptions }); + + if (options.agent && options.agentOptions) { + console.warn( + "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." + ); + } + + // Fetch root key for certificate validation during development + if (process.env.DFX_NETWORK !== "ic") { + agent.fetchRootKey().catch((err) => { + console.warn( + "Unable to fetch root key. Check to ensure that your local replica is running" + ); + console.error(err); + }); + } + + // Creates an actor with using the candid interface and the HttpAgent + return Actor.createActor(idlFactory, { + agent, + canisterId, + ...options.actorOptions, + }); +}; diff --git a/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did b/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did new file mode 100644 index 000000000..5cc7429a6 --- /dev/null +++ b/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did @@ -0,0 +1,143 @@ +type Tokens = nat; + +type InitArg = record { + ledger_id: principal; +}; + +type UpgradeArg = record { + ledger_id: opt principal; +}; + +type IndexArg = variant { + Init: InitArg; + Upgrade: UpgradeArg; +}; + +type GetBlocksRequest = record { + start : nat; + length : nat; +}; + +type Value = variant { + Blob : blob; + Text : text; + Nat : nat; + Nat64: nat64; + Int : int; + Array : vec Value; + Map : Map; +}; + +type Map = vec record { text; Value }; + +type Block = Value; + +type GetBlocksResponse = record { + chain_length: nat64; + blocks: vec Block; +}; + +type BlockIndex = nat; + +type SubAccount = blob; + +type Account = record { owner : principal; subaccount : opt SubAccount }; + +type Transaction = record { + burn : opt Burn; + kind : text; + mint : opt Mint; + approve : opt Approve; + timestamp : nat64; + transfer : opt Transfer; +}; + +type Approve = record { + fee : opt nat; + from : Account; + memo : opt vec nat8; + created_at_time : opt nat64; + amount : nat; + expected_allowance : opt nat; + expires_at : opt nat64; + spender : Account; +}; + +type Burn = record { + from : Account; + memo : opt vec nat8; + created_at_time : opt nat64; + amount : nat; + spender : opt Account; +}; + +type Mint = record { + to : Account; + memo : opt vec nat8; + created_at_time : opt nat64; + amount : nat; +}; + +type Transfer = record { + to : Account; + fee : opt nat; + from : Account; + memo : opt vec nat8; + created_at_time : opt nat64; + amount : nat; + spender : opt Account; +}; + +type GetAccountTransactionsArgs = record { + account : Account; + // The txid of the last transaction seen by the client. + // If None then the results will start from the most recent + // txid. + start : opt BlockIndex; + // Maximum number of transactions to fetch. + max_results : nat; +}; + +type TransactionWithId = record { + id : BlockIndex; + transaction : Transaction; +}; + +type GetTransactions = record { + balance : Tokens; + transactions : vec TransactionWithId; + // The txid of the oldest transaction the account has + oldest_tx_id : opt BlockIndex; +}; + +type GetTransactionsErr = record { + message : text; +}; + +type GetTransactionsResult = variant { + Ok : GetTransactions; + Err : GetTransactionsErr; +}; + +type ListSubaccountsArgs = record { + owner: principal; + start: opt SubAccount; +}; + +type Status = record { + num_blocks_synced : BlockIndex; +}; + +type FeeCollectorRanges = record { + ranges : vec record { Account; vec record { BlockIndex; BlockIndex } }; +} + +service : (index_arg: opt IndexArg) -> { + get_account_transactions : (GetAccountTransactionsArgs) -> (GetTransactionsResult) query; + get_blocks : (GetBlocksRequest) -> (GetBlocksResponse) query; + get_fee_collectors_ranges : () -> (FeeCollectorRanges) query; + icrc1_balance_of : (Account) -> (Tokens) query; + ledger_id : () -> (principal) query; + list_subaccounts : (ListSubaccountsArgs) -> (vec SubAccount) query; + status : () -> (Status) query; +} diff --git a/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did.d.ts b/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did.d.ts new file mode 100644 index 000000000..9a93a9a71 --- /dev/null +++ b/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did.d.ts @@ -0,0 +1,108 @@ +import type { Principal } from '@dfinity/principal'; +import type { ActorMethod } from '@dfinity/agent'; +import type { IDL } from '@dfinity/candid'; + +export interface Account { + 'owner' : Principal, + 'subaccount' : [] | [SubAccount], +} +export interface Approve { + 'fee' : [] | [bigint], + 'from' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, + 'expected_allowance' : [] | [bigint], + 'expires_at' : [] | [bigint], + 'spender' : Account, +} +export type Block = Value; +export type BlockIndex = bigint; +export interface Burn { + 'from' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, + 'spender' : [] | [Account], +} +export interface FeeCollectorRanges { + 'ranges' : Array<[Account, Array<[BlockIndex, BlockIndex]>]>, +} +export interface GetAccountTransactionsArgs { + 'max_results' : bigint, + 'start' : [] | [BlockIndex], + 'account' : Account, +} +export interface GetBlocksRequest { 'start' : bigint, 'length' : bigint } +export interface GetBlocksResponse { + 'blocks' : Array, + 'chain_length' : bigint, +} +export interface GetTransactions { + 'balance' : Tokens, + 'transactions' : Array, + 'oldest_tx_id' : [] | [BlockIndex], +} +export interface GetTransactionsErr { 'message' : string } +export type GetTransactionsResult = { 'Ok' : GetTransactions } | + { 'Err' : GetTransactionsErr }; +export type IndexArg = { 'Upgrade' : UpgradeArg } | + { 'Init' : InitArg }; +export interface InitArg { 'ledger_id' : Principal } +export interface ListSubaccountsArgs { + 'owner' : Principal, + 'start' : [] | [SubAccount], +} +export type Map = Array<[string, Value]>; +export interface Mint { + 'to' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, +} +export interface Status { 'num_blocks_synced' : BlockIndex } +export type SubAccount = Uint8Array | number[]; +export type Tokens = bigint; +export interface Transaction { + 'burn' : [] | [Burn], + 'kind' : string, + 'mint' : [] | [Mint], + 'approve' : [] | [Approve], + 'timestamp' : bigint, + 'transfer' : [] | [Transfer], +} +export interface TransactionWithId { + 'id' : BlockIndex, + 'transaction' : Transaction, +} +export interface Transfer { + 'to' : Account, + 'fee' : [] | [bigint], + 'from' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, + 'spender' : [] | [Account], +} +export interface UpgradeArg { 'ledger_id' : [] | [Principal] } +export type Value = { 'Int' : bigint } | + { 'Map' : Map } | + { 'Nat' : bigint } | + { 'Nat64' : bigint } | + { 'Blob' : Uint8Array | number[] } | + { 'Text' : string } | + { 'Array' : Array }; +export interface _SERVICE { + 'get_account_transactions' : ActorMethod< + [GetAccountTransactionsArgs], + GetTransactionsResult + >, + 'get_blocks' : ActorMethod<[GetBlocksRequest], GetBlocksResponse>, + 'get_fee_collectors_ranges' : ActorMethod<[], FeeCollectorRanges>, + 'icrc1_balance_of' : ActorMethod<[Account], Tokens>, + 'ledger_id' : ActorMethod<[], Principal>, + 'list_subaccounts' : ActorMethod<[ListSubaccountsArgs], Array>, + 'status' : ActorMethod<[], Status>, +} +export declare const idlFactory: IDL.InterfaceFactory; +export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[]; diff --git a/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did.js b/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did.js new file mode 100644 index 000000000..0374e7632 --- /dev/null +++ b/apps/wallet/src/generated/icrc1_index/icrc1_index_canister.did.js @@ -0,0 +1,126 @@ +export const idlFactory = ({ IDL }) => { + const Value = IDL.Rec(); + const UpgradeArg = IDL.Record({ 'ledger_id' : IDL.Opt(IDL.Principal) }); + const InitArg = IDL.Record({ 'ledger_id' : IDL.Principal }); + const IndexArg = IDL.Variant({ 'Upgrade' : UpgradeArg, 'Init' : InitArg }); + const BlockIndex = IDL.Nat; + const SubAccount = IDL.Vec(IDL.Nat8); + const Account = IDL.Record({ + 'owner' : IDL.Principal, + 'subaccount' : IDL.Opt(SubAccount), + }); + const GetAccountTransactionsArgs = IDL.Record({ + 'max_results' : IDL.Nat, + 'start' : IDL.Opt(BlockIndex), + 'account' : Account, + }); + const Tokens = IDL.Nat; + const Burn = IDL.Record({ + 'from' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + 'spender' : IDL.Opt(Account), + }); + const Mint = IDL.Record({ + 'to' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + }); + const Approve = IDL.Record({ + 'fee' : IDL.Opt(IDL.Nat), + 'from' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + 'expected_allowance' : IDL.Opt(IDL.Nat), + 'expires_at' : IDL.Opt(IDL.Nat64), + 'spender' : Account, + }); + const Transfer = IDL.Record({ + 'to' : Account, + 'fee' : IDL.Opt(IDL.Nat), + 'from' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + 'spender' : IDL.Opt(Account), + }); + const Transaction = IDL.Record({ + 'burn' : IDL.Opt(Burn), + 'kind' : IDL.Text, + 'mint' : IDL.Opt(Mint), + 'approve' : IDL.Opt(Approve), + 'timestamp' : IDL.Nat64, + 'transfer' : IDL.Opt(Transfer), + }); + const TransactionWithId = IDL.Record({ + 'id' : BlockIndex, + 'transaction' : Transaction, + }); + const GetTransactions = IDL.Record({ + 'balance' : Tokens, + 'transactions' : IDL.Vec(TransactionWithId), + 'oldest_tx_id' : IDL.Opt(BlockIndex), + }); + const GetTransactionsErr = IDL.Record({ 'message' : IDL.Text }); + const GetTransactionsResult = IDL.Variant({ + 'Ok' : GetTransactions, + 'Err' : GetTransactionsErr, + }); + const GetBlocksRequest = IDL.Record({ + 'start' : IDL.Nat, + 'length' : IDL.Nat, + }); + const Map = IDL.Vec(IDL.Tuple(IDL.Text, Value)); + Value.fill( + IDL.Variant({ + 'Int' : IDL.Int, + 'Map' : Map, + 'Nat' : IDL.Nat, + 'Nat64' : IDL.Nat64, + 'Blob' : IDL.Vec(IDL.Nat8), + 'Text' : IDL.Text, + 'Array' : IDL.Vec(Value), + }) + ); + const Block = Value; + const GetBlocksResponse = IDL.Record({ + 'blocks' : IDL.Vec(Block), + 'chain_length' : IDL.Nat64, + }); + const FeeCollectorRanges = IDL.Record({ + 'ranges' : IDL.Vec( + IDL.Tuple(Account, IDL.Vec(IDL.Tuple(BlockIndex, BlockIndex))) + ), + }); + const ListSubaccountsArgs = IDL.Record({ + 'owner' : IDL.Principal, + 'start' : IDL.Opt(SubAccount), + }); + const Status = IDL.Record({ 'num_blocks_synced' : BlockIndex }); + return IDL.Service({ + 'get_account_transactions' : IDL.Func( + [GetAccountTransactionsArgs], + [GetTransactionsResult], + ['query'], + ), + 'get_blocks' : IDL.Func([GetBlocksRequest], [GetBlocksResponse], ['query']), + 'get_fee_collectors_ranges' : IDL.Func([], [FeeCollectorRanges], ['query']), + 'icrc1_balance_of' : IDL.Func([Account], [Tokens], ['query']), + 'ledger_id' : IDL.Func([], [IDL.Principal], ['query']), + 'list_subaccounts' : IDL.Func( + [ListSubaccountsArgs], + [IDL.Vec(SubAccount)], + ['query'], + ), + 'status' : IDL.Func([], [Status], ['query']), + }); +}; +export const init = ({ IDL }) => { + const UpgradeArg = IDL.Record({ 'ledger_id' : IDL.Opt(IDL.Principal) }); + const InitArg = IDL.Record({ 'ledger_id' : IDL.Principal }); + const IndexArg = IDL.Variant({ 'Upgrade' : UpgradeArg, 'Init' : InitArg }); + return [IDL.Opt(IndexArg)]; +}; diff --git a/apps/wallet/src/generated/icrc1_index/index.d.ts b/apps/wallet/src/generated/icrc1_index/index.d.ts new file mode 100644 index 000000000..b5d550620 --- /dev/null +++ b/apps/wallet/src/generated/icrc1_index/index.d.ts @@ -0,0 +1,50 @@ +import type { + ActorSubclass, + HttpAgentOptions, + ActorConfig, + Agent, +} from "@dfinity/agent"; +import type { Principal } from "@dfinity/principal"; +import type { IDL } from "@dfinity/candid"; + +import { _SERVICE } from './icrc1_index_canister.did'; + +export declare const idlFactory: IDL.InterfaceFactory; +export declare const canisterId: string; + +export declare interface CreateActorOptions { + /** + * @see {@link Agent} + */ + agent?: Agent; + /** + * @see {@link HttpAgentOptions} + */ + agentOptions?: HttpAgentOptions; + /** + * @see {@link ActorConfig} + */ + actorOptions?: ActorConfig; +} + +/** + * Intializes an {@link ActorSubclass}, configured with the provided SERVICE interface of a canister. + * @constructs {@link ActorSubClass} + * @param {string | Principal} canisterId - ID of the canister the {@link Actor} will talk to + * @param {CreateActorOptions} options - see {@link CreateActorOptions} + * @param {CreateActorOptions["agent"]} options.agent - a pre-configured agent you'd like to use. Supercedes agentOptions + * @param {CreateActorOptions["agentOptions"]} options.agentOptions - options to set up a new agent + * @see {@link HttpAgentOptions} + * @param {CreateActorOptions["actorOptions"]} options.actorOptions - options for the Actor + * @see {@link ActorConfig} + */ +export declare const createActor: ( + canisterId: string | Principal, + options?: CreateActorOptions +) => ActorSubclass<_SERVICE>; + +/** + * Intialized Actor using default settings, ready to talk to a canister using its candid interface + * @constructs {@link ActorSubClass} + */ +export declare const icrc1_index_canister: ActorSubclass<_SERVICE>; diff --git a/apps/wallet/src/generated/icrc1_index/index.js b/apps/wallet/src/generated/icrc1_index/index.js new file mode 100644 index 000000000..084e136d6 --- /dev/null +++ b/apps/wallet/src/generated/icrc1_index/index.js @@ -0,0 +1,40 @@ +import { Actor, HttpAgent } from "@dfinity/agent"; + +// Imports and re-exports candid interface +import { idlFactory } from "./icrc1_index_canister.did.js"; +export { idlFactory } from "./icrc1_index_canister.did.js"; + +/* CANISTER_ID is replaced by webpack based on node environment + * Note: canister environment variable will be standardized as + * process.env.CANISTER_ID_ + * beginning in dfx 0.15.0 + */ +export const canisterId = + process.env.CANISTER_ID_ICRC1_INDEX_CANISTER; + +export const createActor = (canisterId, options = {}) => { + const agent = options.agent || new HttpAgent({ ...options.agentOptions }); + + if (options.agent && options.agentOptions) { + console.warn( + "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." + ); + } + + // Fetch root key for certificate validation during development + if (process.env.DFX_NETWORK !== "ic") { + agent.fetchRootKey().catch((err) => { + console.warn( + "Unable to fetch root key. Check to ensure that your local replica is running" + ); + console.error(err); + }); + } + + // Creates an actor with using the candid interface and the HttpAgent + return Actor.createActor(idlFactory, { + agent, + canisterId, + ...options.actorOptions, + }); +}; diff --git a/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did b/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did new file mode 100644 index 000000000..1efe7f6fb --- /dev/null +++ b/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did @@ -0,0 +1,379 @@ +type BlockIndex = nat; +type Subaccount = blob; +// Number of nanoseconds since the UNIX epoch in UTC timezone. +type Timestamp = nat64; +// Number of nanoseconds between two [Timestamp]s. +type Duration = nat64; +type Tokens = nat; +type TxIndex = nat; +type Allowance = record { allowance : nat; expires_at : opt nat64 }; +type AllowanceArgs = record { account : Account; spender : Account }; +type Approve = record { + fee : opt nat; + from : Account; + memo : opt vec nat8; + created_at_time : opt nat64; + amount : nat; + expected_allowance : opt nat; + expires_at : opt nat64; + spender : Account; +}; +type ApproveArgs = record { + fee : opt nat; + memo : opt vec nat8; + from_subaccount : opt vec nat8; + created_at_time : opt nat64; + amount : nat; + expected_allowance : opt nat; + expires_at : opt nat64; + spender : Account; +}; +type ApproveError = variant { + GenericError : record { message : text; error_code : nat }; + TemporarilyUnavailable; + Duplicate : record { duplicate_of : nat }; + BadFee : record { expected_fee : nat }; + AllowanceChanged : record { current_allowance : nat }; + CreatedInFuture : record { ledger_time : nat64 }; + TooOld; + Expired : record { ledger_time : nat64 }; + InsufficientFunds : record { balance : nat }; +}; +type ApproveResult = variant { Ok : nat; Err : ApproveError }; + +type HttpRequest = record { + url : text; + method : text; + body : vec nat8; + headers : vec record { text; text }; +}; +type HttpResponse = record { + body : vec nat8; + headers : vec record { text; text }; + status_code : nat16; +}; + +type Account = record { + owner : principal; + subaccount : opt Subaccount; +}; + +type TransferArg = record { + from_subaccount : opt Subaccount; + to : Account; + amount : Tokens; + fee : opt Tokens; + memo : opt blob; + created_at_time: opt Timestamp; +}; + +type TransferError = variant { + BadFee : record { expected_fee : Tokens }; + BadBurn : record { min_burn_amount : Tokens }; + InsufficientFunds : record { balance : Tokens }; + TooOld; + CreatedInFuture : record { ledger_time : nat64 }; + TemporarilyUnavailable; + Duplicate : record { duplicate_of : BlockIndex }; + GenericError : record { error_code : nat; message : text }; +}; + +type TransferResult = variant { + Ok : BlockIndex; + Err : TransferError; +}; + +// The value returned from the [icrc1_metadata] endpoint. +type MetadataValue = variant { + Nat : nat; + Int : int; + Text : text; + Blob : blob; +}; + +type FeatureFlags = record { + icrc2 : bool; +}; + +// The initialization parameters of the Ledger +type InitArgs = record { + minting_account : Account; + fee_collector_account : opt Account; + transfer_fee : nat; + decimals : opt nat8; + max_memo_length : opt nat16; + token_symbol : text; + token_name : text; + metadata : vec record { text; MetadataValue }; + initial_balances : vec record { Account; nat }; + feature_flags : opt FeatureFlags; + maximum_number_of_accounts : opt nat64; + accounts_overflow_trim_quantity : opt nat64; + archive_options : record { + num_blocks_to_archive : nat64; + max_transactions_per_response : opt nat64; + trigger_threshold : nat64; + max_message_size_bytes : opt nat64; + cycles_for_archive_creation : opt nat64; + node_max_memory_size_bytes : opt nat64; + controller_id : principal; + }; +}; + +type ChangeFeeCollector = variant { + Unset; SetTo: Account; +}; + +type UpgradeArgs = record { + metadata : opt vec record { text; MetadataValue }; + token_symbol : opt text; + token_name : opt text; + transfer_fee : opt nat; + change_fee_collector : opt ChangeFeeCollector; + max_memo_length : opt nat16; + feature_flags : opt FeatureFlags; + maximum_number_of_accounts: opt nat64; + accounts_overflow_trim_quantity: opt nat64; +}; + +type LedgerArg = variant { + Init: InitArgs; + Upgrade: opt UpgradeArgs; +}; + +type GetTransactionsRequest = record { + // The index of the first tx to fetch. + start : TxIndex; + // The number of transactions to fetch. + length : nat; +}; + +type GetTransactionsResponse = record { + // The total number of transactions in the log. + log_length : nat; + + // List of transaction that were available in the ledger when it processed the call. + // + // The transactions form a contiguous range, with the first transaction having index + // [first_index] (see below), and the last transaction having index + // [first_index] + len(transactions) - 1. + // + // The transaction range can be an arbitrary sub-range of the originally requested range. + transactions : vec Transaction; + + // The index of the first transaction in [transactions]. + // If the transaction vector is empty, the exact value of this field is not specified. + first_index : TxIndex; + + // Encoding of instructions for fetching archived transactions whose indices fall into the + // requested range. + // + // For each entry `e` in [archived_transactions], `[e.from, e.from + len)` is a sub-range + // of the originally requested transaction range. + archived_transactions : vec record { + // The index of the first archived transaction you can fetch using the [callback]. + start : TxIndex; + + // The number of transactions you can fetch using the callback. + length : nat; + + // The function you should call to fetch the archived transactions. + // The range of the transaction accessible using this function is given by [from] + // and [len] fields above. + callback : QueryArchiveFn; + }; +}; + + +// A prefix of the transaction range specified in the [GetTransactionsRequest] request. +type TransactionRange = record { + // A prefix of the requested transaction range. + // The index of the first transaction is equal to [GetTransactionsRequest.from]. + // + // Note that the number of transactions might be less than the requested + // [GetTransactionsRequest.length] for various reasons, for example: + // + // 1. The query might have hit the replica with an outdated state + // that doesn't have the whole range yet. + // 2. The requested range is too large to fit into a single reply. + // + // NOTE: the list of transactions can be empty if: + // + // 1. [GetTransactionsRequest.length] was zero. + // 2. [GetTransactionsRequest.from] was larger than the last transaction known to + // the canister. + transactions : vec Transaction; +}; + +// A function for fetching archived transaction. +type QueryArchiveFn = func (GetTransactionsRequest) -> (TransactionRange) query; + +type Transaction = record { + burn : opt Burn; + kind : text; + mint : opt Mint; + approve : opt Approve; + timestamp : nat64; + transfer : opt Transfer; +}; + +type Burn = record { + from : Account; + memo : opt vec nat8; + created_at_time : opt nat64; + amount : nat; + spender : opt Account; +}; + +type Mint = record { + to : Account; + memo : opt vec nat8; + created_at_time : opt nat64; + amount : nat; +}; + +type Transfer = record { + to : Account; + fee : opt nat; + from : Account; + memo : opt vec nat8; + created_at_time : opt nat64; + amount : nat; + spender : opt Account; +}; + +type Value = variant { + Blob : blob; + Text : text; + Nat : nat; + Nat64: nat64; + Int : int; + Array : vec Value; + Map : Map; +}; + +type Map = vec record { text; Value }; + +type Block = Value; + +type GetBlocksArgs = record { + // The index of the first block to fetch. + start : BlockIndex; + // Max number of blocks to fetch. + length : nat; +}; + +// A prefix of the block range specified in the [GetBlocksArgs] request. +type BlockRange = record { + // A prefix of the requested block range. + // The index of the first block is equal to [GetBlocksArgs.start]. + // + // Note that the number of blocks might be less than the requested + // [GetBlocksArgs.length] for various reasons, for example: + // + // 1. The query might have hit the replica with an outdated state + // that doesn't have the whole range yet. + // 2. The requested range is too large to fit into a single reply. + // + // NOTE: the list of blocks can be empty if: + // + // 1. [GetBlocksArgs.length] was zero. + // 2. [GetBlocksArgs.start] was larger than the last block known to + // the canister. + blocks : vec Block; +}; + +// A function for fetching archived blocks. +type QueryBlockArchiveFn = func (GetBlocksArgs) -> (BlockRange) query; + +// The result of a "get_blocks" call. +type GetBlocksResponse = record { + // The index of the first block in "blocks". + // If the blocks vector is empty, the exact value of this field is not specified. + first_index : BlockIndex; + + // The total number of blocks in the chain. + // If the chain length is positive, the index of the last block is `chain_len - 1`. + chain_length : nat64; + + // System certificate for the hash of the latest block in the chain. + // Only present if `get_blocks` is called in a non-replicated query context. + certificate : opt blob; + + // List of blocks that were available in the ledger when it processed the call. + // + // The blocks form a contiguous range, with the first block having index + // [first_block_index] (see below), and the last block having index + // [first_block_index] + len(blocks) - 1. + // + // The block range can be an arbitrary sub-range of the originally requested range. + blocks : vec Block; + + // Encoding of instructions for fetching archived blocks. + archived_blocks : vec record { + // The index of the first archived block. + start : BlockIndex; + + // The number of blocks that can be fetched. + length : nat; + + // Callback to fetch the archived blocks. + callback : QueryBlockArchiveFn; + }; +}; + +// Certificate for the block at `block_index`. +type DataCertificate = record { + certificate : opt blob; + hash_tree : blob; +}; + +type StandardRecord = record { url : text; name : text }; + +type TransferFromArgs = record { + spender_subaccount : opt Subaccount; + from : Account; + to : Account; + amount : Tokens; + fee : opt Tokens; + memo : opt blob; + created_at_time: opt Timestamp; +}; + +type TransferFromResult = variant { + Ok : BlockIndex; + Err : TransferFromError; +}; + +type TransferFromError = variant { + BadFee : record { expected_fee : Tokens }; + BadBurn : record { min_burn_amount : Tokens }; + InsufficientFunds : record { balance : Tokens }; + InsufficientAllowance : record { allowance : Tokens }; + TooOld; + CreatedInFuture : record { ledger_time : nat64 }; + Duplicate : record { duplicate_of : BlockIndex }; + TemporarilyUnavailable; + GenericError : record { error_code : nat; message : text }; +}; + +service : (ledger_arg : LedgerArg) -> { + get_transactions : (GetTransactionsRequest) -> (GetTransactionsResponse) query; + get_blocks : (GetBlocksArgs) -> (GetBlocksResponse) query; + get_data_certificate : () -> (DataCertificate) query; + + icrc1_name : () -> (text) query; + icrc1_symbol : () -> (text) query; + icrc1_decimals : () -> (nat8) query; + icrc1_metadata : () -> (vec record { text; MetadataValue }) query; + icrc1_total_supply : () -> (Tokens) query; + icrc1_fee : () -> (Tokens) query; + icrc1_minting_account : () -> (opt Account) query; + icrc1_balance_of : (Account) -> (Tokens) query; + icrc1_transfer : (TransferArg) -> (TransferResult); + icrc1_supported_standards : () -> (vec StandardRecord) query; + + icrc2_approve : (ApproveArgs) -> (ApproveResult); + icrc2_allowance : (AllowanceArgs) -> (Allowance) query; + icrc2_transfer_from : (TransferFromArgs) -> (TransferFromResult); +} diff --git a/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did.d.ts b/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did.d.ts new file mode 100644 index 000000000..5a6ef4b78 --- /dev/null +++ b/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did.d.ts @@ -0,0 +1,245 @@ +import type { Principal } from '@dfinity/principal'; +import type { ActorMethod } from '@dfinity/agent'; +import type { IDL } from '@dfinity/candid'; + +export interface Account { + 'owner' : Principal, + 'subaccount' : [] | [Subaccount], +} +export interface Allowance { + 'allowance' : bigint, + 'expires_at' : [] | [bigint], +} +export interface AllowanceArgs { 'account' : Account, 'spender' : Account } +export interface Approve { + 'fee' : [] | [bigint], + 'from' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, + 'expected_allowance' : [] | [bigint], + 'expires_at' : [] | [bigint], + 'spender' : Account, +} +export interface ApproveArgs { + 'fee' : [] | [bigint], + 'memo' : [] | [Uint8Array | number[]], + 'from_subaccount' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, + 'expected_allowance' : [] | [bigint], + 'expires_at' : [] | [bigint], + 'spender' : Account, +} +export type ApproveError = { + 'GenericError' : { 'message' : string, 'error_code' : bigint } + } | + { 'TemporarilyUnavailable' : null } | + { 'Duplicate' : { 'duplicate_of' : bigint } } | + { 'BadFee' : { 'expected_fee' : bigint } } | + { 'AllowanceChanged' : { 'current_allowance' : bigint } } | + { 'CreatedInFuture' : { 'ledger_time' : bigint } } | + { 'TooOld' : null } | + { 'Expired' : { 'ledger_time' : bigint } } | + { 'InsufficientFunds' : { 'balance' : bigint } }; +export type ApproveResult = { 'Ok' : bigint } | + { 'Err' : ApproveError }; +export type Block = Value; +export type BlockIndex = bigint; +export interface BlockRange { 'blocks' : Array } +export interface Burn { + 'from' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, + 'spender' : [] | [Account], +} +export type ChangeFeeCollector = { 'SetTo' : Account } | + { 'Unset' : null }; +export interface DataCertificate { + 'certificate' : [] | [Uint8Array | number[]], + 'hash_tree' : Uint8Array | number[], +} +export type Duration = bigint; +export interface FeatureFlags { 'icrc2' : boolean } +export interface GetBlocksArgs { 'start' : BlockIndex, 'length' : bigint } +export interface GetBlocksResponse { + 'certificate' : [] | [Uint8Array | number[]], + 'first_index' : BlockIndex, + 'blocks' : Array, + 'chain_length' : bigint, + 'archived_blocks' : Array< + { + 'callback' : QueryBlockArchiveFn, + 'start' : BlockIndex, + 'length' : bigint, + } + >, +} +export interface GetTransactionsRequest { 'start' : TxIndex, 'length' : bigint } +export interface GetTransactionsResponse { + 'first_index' : TxIndex, + 'log_length' : bigint, + 'transactions' : Array, + 'archived_transactions' : Array< + { 'callback' : QueryArchiveFn, 'start' : TxIndex, 'length' : bigint } + >, +} +export interface HttpRequest { + 'url' : string, + 'method' : string, + 'body' : Uint8Array | number[], + 'headers' : Array<[string, string]>, +} +export interface HttpResponse { + 'body' : Uint8Array | number[], + 'headers' : Array<[string, string]>, + 'status_code' : number, +} +export interface InitArgs { + 'decimals' : [] | [number], + 'token_symbol' : string, + 'transfer_fee' : bigint, + 'metadata' : Array<[string, MetadataValue]>, + 'minting_account' : Account, + 'initial_balances' : Array<[Account, bigint]>, + 'maximum_number_of_accounts' : [] | [bigint], + 'accounts_overflow_trim_quantity' : [] | [bigint], + 'fee_collector_account' : [] | [Account], + 'archive_options' : { + 'num_blocks_to_archive' : bigint, + 'max_transactions_per_response' : [] | [bigint], + 'trigger_threshold' : bigint, + 'max_message_size_bytes' : [] | [bigint], + 'cycles_for_archive_creation' : [] | [bigint], + 'node_max_memory_size_bytes' : [] | [bigint], + 'controller_id' : Principal, + }, + 'max_memo_length' : [] | [number], + 'token_name' : string, + 'feature_flags' : [] | [FeatureFlags], +} +export type LedgerArg = { 'Upgrade' : [] | [UpgradeArgs] } | + { 'Init' : InitArgs }; +export type Map = Array<[string, Value]>; +export type MetadataValue = { 'Int' : bigint } | + { 'Nat' : bigint } | + { 'Blob' : Uint8Array | number[] } | + { 'Text' : string }; +export interface Mint { + 'to' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, +} +export type QueryArchiveFn = ActorMethod< + [GetTransactionsRequest], + TransactionRange +>; +export type QueryBlockArchiveFn = ActorMethod<[GetBlocksArgs], BlockRange>; +export interface StandardRecord { 'url' : string, 'name' : string } +export type Subaccount = Uint8Array | number[]; +export type Timestamp = bigint; +export type Tokens = bigint; +export interface Transaction { + 'burn' : [] | [Burn], + 'kind' : string, + 'mint' : [] | [Mint], + 'approve' : [] | [Approve], + 'timestamp' : bigint, + 'transfer' : [] | [Transfer], +} +export interface TransactionRange { 'transactions' : Array } +export interface Transfer { + 'to' : Account, + 'fee' : [] | [bigint], + 'from' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [bigint], + 'amount' : bigint, + 'spender' : [] | [Account], +} +export interface TransferArg { + 'to' : Account, + 'fee' : [] | [Tokens], + 'memo' : [] | [Uint8Array | number[]], + 'from_subaccount' : [] | [Subaccount], + 'created_at_time' : [] | [Timestamp], + 'amount' : Tokens, +} +export type TransferError = { + 'GenericError' : { 'message' : string, 'error_code' : bigint } + } | + { 'TemporarilyUnavailable' : null } | + { 'BadBurn' : { 'min_burn_amount' : Tokens } } | + { 'Duplicate' : { 'duplicate_of' : BlockIndex } } | + { 'BadFee' : { 'expected_fee' : Tokens } } | + { 'CreatedInFuture' : { 'ledger_time' : bigint } } | + { 'TooOld' : null } | + { 'InsufficientFunds' : { 'balance' : Tokens } }; +export interface TransferFromArgs { + 'to' : Account, + 'fee' : [] | [Tokens], + 'spender_subaccount' : [] | [Subaccount], + 'from' : Account, + 'memo' : [] | [Uint8Array | number[]], + 'created_at_time' : [] | [Timestamp], + 'amount' : Tokens, +} +export type TransferFromError = { + 'GenericError' : { 'message' : string, 'error_code' : bigint } + } | + { 'TemporarilyUnavailable' : null } | + { 'InsufficientAllowance' : { 'allowance' : Tokens } } | + { 'BadBurn' : { 'min_burn_amount' : Tokens } } | + { 'Duplicate' : { 'duplicate_of' : BlockIndex } } | + { 'BadFee' : { 'expected_fee' : Tokens } } | + { 'CreatedInFuture' : { 'ledger_time' : bigint } } | + { 'TooOld' : null } | + { 'InsufficientFunds' : { 'balance' : Tokens } }; +export type TransferFromResult = { 'Ok' : BlockIndex } | + { 'Err' : TransferFromError }; +export type TransferResult = { 'Ok' : BlockIndex } | + { 'Err' : TransferError }; +export type TxIndex = bigint; +export interface UpgradeArgs { + 'token_symbol' : [] | [string], + 'transfer_fee' : [] | [bigint], + 'metadata' : [] | [Array<[string, MetadataValue]>], + 'maximum_number_of_accounts' : [] | [bigint], + 'accounts_overflow_trim_quantity' : [] | [bigint], + 'change_fee_collector' : [] | [ChangeFeeCollector], + 'max_memo_length' : [] | [number], + 'token_name' : [] | [string], + 'feature_flags' : [] | [FeatureFlags], +} +export type Value = { 'Int' : bigint } | + { 'Map' : Map } | + { 'Nat' : bigint } | + { 'Nat64' : bigint } | + { 'Blob' : Uint8Array | number[] } | + { 'Text' : string } | + { 'Array' : Array }; +export interface _SERVICE { + 'get_blocks' : ActorMethod<[GetBlocksArgs], GetBlocksResponse>, + 'get_data_certificate' : ActorMethod<[], DataCertificate>, + 'get_transactions' : ActorMethod< + [GetTransactionsRequest], + GetTransactionsResponse + >, + 'icrc1_balance_of' : ActorMethod<[Account], Tokens>, + 'icrc1_decimals' : ActorMethod<[], number>, + 'icrc1_fee' : ActorMethod<[], Tokens>, + 'icrc1_metadata' : ActorMethod<[], Array<[string, MetadataValue]>>, + 'icrc1_minting_account' : ActorMethod<[], [] | [Account]>, + 'icrc1_name' : ActorMethod<[], string>, + 'icrc1_supported_standards' : ActorMethod<[], Array>, + 'icrc1_symbol' : ActorMethod<[], string>, + 'icrc1_total_supply' : ActorMethod<[], Tokens>, + 'icrc1_transfer' : ActorMethod<[TransferArg], TransferResult>, + 'icrc2_allowance' : ActorMethod<[AllowanceArgs], Allowance>, + 'icrc2_approve' : ActorMethod<[ApproveArgs], ApproveResult>, + 'icrc2_transfer_from' : ActorMethod<[TransferFromArgs], TransferFromResult>, +} +export declare const idlFactory: IDL.InterfaceFactory; +export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[]; diff --git a/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did.js b/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did.js new file mode 100644 index 000000000..d5c422e15 --- /dev/null +++ b/apps/wallet/src/generated/icrc1_ledger/icrc1_ledger_canister.did.js @@ -0,0 +1,342 @@ +export const idlFactory = ({ IDL }) => { + const Value = IDL.Rec(); + const MetadataValue = IDL.Variant({ + 'Int' : IDL.Int, + 'Nat' : IDL.Nat, + 'Blob' : IDL.Vec(IDL.Nat8), + 'Text' : IDL.Text, + }); + const Subaccount = IDL.Vec(IDL.Nat8); + const Account = IDL.Record({ + 'owner' : IDL.Principal, + 'subaccount' : IDL.Opt(Subaccount), + }); + const ChangeFeeCollector = IDL.Variant({ + 'SetTo' : Account, + 'Unset' : IDL.Null, + }); + const FeatureFlags = IDL.Record({ 'icrc2' : IDL.Bool }); + const UpgradeArgs = IDL.Record({ + 'token_symbol' : IDL.Opt(IDL.Text), + 'transfer_fee' : IDL.Opt(IDL.Nat), + 'metadata' : IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, MetadataValue))), + 'maximum_number_of_accounts' : IDL.Opt(IDL.Nat64), + 'accounts_overflow_trim_quantity' : IDL.Opt(IDL.Nat64), + 'change_fee_collector' : IDL.Opt(ChangeFeeCollector), + 'max_memo_length' : IDL.Opt(IDL.Nat16), + 'token_name' : IDL.Opt(IDL.Text), + 'feature_flags' : IDL.Opt(FeatureFlags), + }); + const InitArgs = IDL.Record({ + 'decimals' : IDL.Opt(IDL.Nat8), + 'token_symbol' : IDL.Text, + 'transfer_fee' : IDL.Nat, + 'metadata' : IDL.Vec(IDL.Tuple(IDL.Text, MetadataValue)), + 'minting_account' : Account, + 'initial_balances' : IDL.Vec(IDL.Tuple(Account, IDL.Nat)), + 'maximum_number_of_accounts' : IDL.Opt(IDL.Nat64), + 'accounts_overflow_trim_quantity' : IDL.Opt(IDL.Nat64), + 'fee_collector_account' : IDL.Opt(Account), + 'archive_options' : IDL.Record({ + 'num_blocks_to_archive' : IDL.Nat64, + 'max_transactions_per_response' : IDL.Opt(IDL.Nat64), + 'trigger_threshold' : IDL.Nat64, + 'max_message_size_bytes' : IDL.Opt(IDL.Nat64), + 'cycles_for_archive_creation' : IDL.Opt(IDL.Nat64), + 'node_max_memory_size_bytes' : IDL.Opt(IDL.Nat64), + 'controller_id' : IDL.Principal, + }), + 'max_memo_length' : IDL.Opt(IDL.Nat16), + 'token_name' : IDL.Text, + 'feature_flags' : IDL.Opt(FeatureFlags), + }); + const LedgerArg = IDL.Variant({ + 'Upgrade' : IDL.Opt(UpgradeArgs), + 'Init' : InitArgs, + }); + const BlockIndex = IDL.Nat; + const GetBlocksArgs = IDL.Record({ + 'start' : BlockIndex, + 'length' : IDL.Nat, + }); + const Map = IDL.Vec(IDL.Tuple(IDL.Text, Value)); + Value.fill( + IDL.Variant({ + 'Int' : IDL.Int, + 'Map' : Map, + 'Nat' : IDL.Nat, + 'Nat64' : IDL.Nat64, + 'Blob' : IDL.Vec(IDL.Nat8), + 'Text' : IDL.Text, + 'Array' : IDL.Vec(Value), + }) + ); + const Block = Value; + const BlockRange = IDL.Record({ 'blocks' : IDL.Vec(Block) }); + const QueryBlockArchiveFn = IDL.Func( + [GetBlocksArgs], + [BlockRange], + ['query'], + ); + const GetBlocksResponse = IDL.Record({ + 'certificate' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'first_index' : BlockIndex, + 'blocks' : IDL.Vec(Block), + 'chain_length' : IDL.Nat64, + 'archived_blocks' : IDL.Vec( + IDL.Record({ + 'callback' : QueryBlockArchiveFn, + 'start' : BlockIndex, + 'length' : IDL.Nat, + }) + ), + }); + const DataCertificate = IDL.Record({ + 'certificate' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'hash_tree' : IDL.Vec(IDL.Nat8), + }); + const TxIndex = IDL.Nat; + const GetTransactionsRequest = IDL.Record({ + 'start' : TxIndex, + 'length' : IDL.Nat, + }); + const Burn = IDL.Record({ + 'from' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + 'spender' : IDL.Opt(Account), + }); + const Mint = IDL.Record({ + 'to' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + }); + const Approve = IDL.Record({ + 'fee' : IDL.Opt(IDL.Nat), + 'from' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + 'expected_allowance' : IDL.Opt(IDL.Nat), + 'expires_at' : IDL.Opt(IDL.Nat64), + 'spender' : Account, + }); + const Transfer = IDL.Record({ + 'to' : Account, + 'fee' : IDL.Opt(IDL.Nat), + 'from' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + 'spender' : IDL.Opt(Account), + }); + const Transaction = IDL.Record({ + 'burn' : IDL.Opt(Burn), + 'kind' : IDL.Text, + 'mint' : IDL.Opt(Mint), + 'approve' : IDL.Opt(Approve), + 'timestamp' : IDL.Nat64, + 'transfer' : IDL.Opt(Transfer), + }); + const TransactionRange = IDL.Record({ + 'transactions' : IDL.Vec(Transaction), + }); + const QueryArchiveFn = IDL.Func( + [GetTransactionsRequest], + [TransactionRange], + ['query'], + ); + const GetTransactionsResponse = IDL.Record({ + 'first_index' : TxIndex, + 'log_length' : IDL.Nat, + 'transactions' : IDL.Vec(Transaction), + 'archived_transactions' : IDL.Vec( + IDL.Record({ + 'callback' : QueryArchiveFn, + 'start' : TxIndex, + 'length' : IDL.Nat, + }) + ), + }); + const Tokens = IDL.Nat; + const StandardRecord = IDL.Record({ 'url' : IDL.Text, 'name' : IDL.Text }); + const Timestamp = IDL.Nat64; + const TransferArg = IDL.Record({ + 'to' : Account, + 'fee' : IDL.Opt(Tokens), + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'from_subaccount' : IDL.Opt(Subaccount), + 'created_at_time' : IDL.Opt(Timestamp), + 'amount' : Tokens, + }); + const TransferError = IDL.Variant({ + 'GenericError' : IDL.Record({ + 'message' : IDL.Text, + 'error_code' : IDL.Nat, + }), + 'TemporarilyUnavailable' : IDL.Null, + 'BadBurn' : IDL.Record({ 'min_burn_amount' : Tokens }), + 'Duplicate' : IDL.Record({ 'duplicate_of' : BlockIndex }), + 'BadFee' : IDL.Record({ 'expected_fee' : Tokens }), + 'CreatedInFuture' : IDL.Record({ 'ledger_time' : IDL.Nat64 }), + 'TooOld' : IDL.Null, + 'InsufficientFunds' : IDL.Record({ 'balance' : Tokens }), + }); + const TransferResult = IDL.Variant({ + 'Ok' : BlockIndex, + 'Err' : TransferError, + }); + const AllowanceArgs = IDL.Record({ + 'account' : Account, + 'spender' : Account, + }); + const Allowance = IDL.Record({ + 'allowance' : IDL.Nat, + 'expires_at' : IDL.Opt(IDL.Nat64), + }); + const ApproveArgs = IDL.Record({ + 'fee' : IDL.Opt(IDL.Nat), + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'from_subaccount' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(IDL.Nat64), + 'amount' : IDL.Nat, + 'expected_allowance' : IDL.Opt(IDL.Nat), + 'expires_at' : IDL.Opt(IDL.Nat64), + 'spender' : Account, + }); + const ApproveError = IDL.Variant({ + 'GenericError' : IDL.Record({ + 'message' : IDL.Text, + 'error_code' : IDL.Nat, + }), + 'TemporarilyUnavailable' : IDL.Null, + 'Duplicate' : IDL.Record({ 'duplicate_of' : IDL.Nat }), + 'BadFee' : IDL.Record({ 'expected_fee' : IDL.Nat }), + 'AllowanceChanged' : IDL.Record({ 'current_allowance' : IDL.Nat }), + 'CreatedInFuture' : IDL.Record({ 'ledger_time' : IDL.Nat64 }), + 'TooOld' : IDL.Null, + 'Expired' : IDL.Record({ 'ledger_time' : IDL.Nat64 }), + 'InsufficientFunds' : IDL.Record({ 'balance' : IDL.Nat }), + }); + const ApproveResult = IDL.Variant({ 'Ok' : IDL.Nat, 'Err' : ApproveError }); + const TransferFromArgs = IDL.Record({ + 'to' : Account, + 'fee' : IDL.Opt(Tokens), + 'spender_subaccount' : IDL.Opt(Subaccount), + 'from' : Account, + 'memo' : IDL.Opt(IDL.Vec(IDL.Nat8)), + 'created_at_time' : IDL.Opt(Timestamp), + 'amount' : Tokens, + }); + const TransferFromError = IDL.Variant({ + 'GenericError' : IDL.Record({ + 'message' : IDL.Text, + 'error_code' : IDL.Nat, + }), + 'TemporarilyUnavailable' : IDL.Null, + 'InsufficientAllowance' : IDL.Record({ 'allowance' : Tokens }), + 'BadBurn' : IDL.Record({ 'min_burn_amount' : Tokens }), + 'Duplicate' : IDL.Record({ 'duplicate_of' : BlockIndex }), + 'BadFee' : IDL.Record({ 'expected_fee' : Tokens }), + 'CreatedInFuture' : IDL.Record({ 'ledger_time' : IDL.Nat64 }), + 'TooOld' : IDL.Null, + 'InsufficientFunds' : IDL.Record({ 'balance' : Tokens }), + }); + const TransferFromResult = IDL.Variant({ + 'Ok' : BlockIndex, + 'Err' : TransferFromError, + }); + return IDL.Service({ + 'get_blocks' : IDL.Func([GetBlocksArgs], [GetBlocksResponse], ['query']), + 'get_data_certificate' : IDL.Func([], [DataCertificate], ['query']), + 'get_transactions' : IDL.Func( + [GetTransactionsRequest], + [GetTransactionsResponse], + ['query'], + ), + 'icrc1_balance_of' : IDL.Func([Account], [Tokens], ['query']), + 'icrc1_decimals' : IDL.Func([], [IDL.Nat8], ['query']), + 'icrc1_fee' : IDL.Func([], [Tokens], ['query']), + 'icrc1_metadata' : IDL.Func( + [], + [IDL.Vec(IDL.Tuple(IDL.Text, MetadataValue))], + ['query'], + ), + 'icrc1_minting_account' : IDL.Func([], [IDL.Opt(Account)], ['query']), + 'icrc1_name' : IDL.Func([], [IDL.Text], ['query']), + 'icrc1_supported_standards' : IDL.Func( + [], + [IDL.Vec(StandardRecord)], + ['query'], + ), + 'icrc1_symbol' : IDL.Func([], [IDL.Text], ['query']), + 'icrc1_total_supply' : IDL.Func([], [Tokens], ['query']), + 'icrc1_transfer' : IDL.Func([TransferArg], [TransferResult], []), + 'icrc2_allowance' : IDL.Func([AllowanceArgs], [Allowance], ['query']), + 'icrc2_approve' : IDL.Func([ApproveArgs], [ApproveResult], []), + 'icrc2_transfer_from' : IDL.Func( + [TransferFromArgs], + [TransferFromResult], + [], + ), + }); +}; +export const init = ({ IDL }) => { + const MetadataValue = IDL.Variant({ + 'Int' : IDL.Int, + 'Nat' : IDL.Nat, + 'Blob' : IDL.Vec(IDL.Nat8), + 'Text' : IDL.Text, + }); + const Subaccount = IDL.Vec(IDL.Nat8); + const Account = IDL.Record({ + 'owner' : IDL.Principal, + 'subaccount' : IDL.Opt(Subaccount), + }); + const ChangeFeeCollector = IDL.Variant({ + 'SetTo' : Account, + 'Unset' : IDL.Null, + }); + const FeatureFlags = IDL.Record({ 'icrc2' : IDL.Bool }); + const UpgradeArgs = IDL.Record({ + 'token_symbol' : IDL.Opt(IDL.Text), + 'transfer_fee' : IDL.Opt(IDL.Nat), + 'metadata' : IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, MetadataValue))), + 'maximum_number_of_accounts' : IDL.Opt(IDL.Nat64), + 'accounts_overflow_trim_quantity' : IDL.Opt(IDL.Nat64), + 'change_fee_collector' : IDL.Opt(ChangeFeeCollector), + 'max_memo_length' : IDL.Opt(IDL.Nat16), + 'token_name' : IDL.Opt(IDL.Text), + 'feature_flags' : IDL.Opt(FeatureFlags), + }); + const InitArgs = IDL.Record({ + 'decimals' : IDL.Opt(IDL.Nat8), + 'token_symbol' : IDL.Text, + 'transfer_fee' : IDL.Nat, + 'metadata' : IDL.Vec(IDL.Tuple(IDL.Text, MetadataValue)), + 'minting_account' : Account, + 'initial_balances' : IDL.Vec(IDL.Tuple(Account, IDL.Nat)), + 'maximum_number_of_accounts' : IDL.Opt(IDL.Nat64), + 'accounts_overflow_trim_quantity' : IDL.Opt(IDL.Nat64), + 'fee_collector_account' : IDL.Opt(Account), + 'archive_options' : IDL.Record({ + 'num_blocks_to_archive' : IDL.Nat64, + 'max_transactions_per_response' : IDL.Opt(IDL.Nat64), + 'trigger_threshold' : IDL.Nat64, + 'max_message_size_bytes' : IDL.Opt(IDL.Nat64), + 'cycles_for_archive_creation' : IDL.Opt(IDL.Nat64), + 'node_max_memory_size_bytes' : IDL.Opt(IDL.Nat64), + 'controller_id' : IDL.Principal, + }), + 'max_memo_length' : IDL.Opt(IDL.Nat16), + 'token_name' : IDL.Text, + 'feature_flags' : IDL.Opt(FeatureFlags), + }); + const LedgerArg = IDL.Variant({ + 'Upgrade' : IDL.Opt(UpgradeArgs), + 'Init' : InitArgs, + }); + return [LedgerArg]; +}; diff --git a/apps/wallet/src/generated/icrc1_ledger/index.d.ts b/apps/wallet/src/generated/icrc1_ledger/index.d.ts new file mode 100644 index 000000000..bff346fcc --- /dev/null +++ b/apps/wallet/src/generated/icrc1_ledger/index.d.ts @@ -0,0 +1,50 @@ +import type { + ActorSubclass, + HttpAgentOptions, + ActorConfig, + Agent, +} from "@dfinity/agent"; +import type { Principal } from "@dfinity/principal"; +import type { IDL } from "@dfinity/candid"; + +import { _SERVICE } from './icrc1_ledger_canister.did'; + +export declare const idlFactory: IDL.InterfaceFactory; +export declare const canisterId: string; + +export declare interface CreateActorOptions { + /** + * @see {@link Agent} + */ + agent?: Agent; + /** + * @see {@link HttpAgentOptions} + */ + agentOptions?: HttpAgentOptions; + /** + * @see {@link ActorConfig} + */ + actorOptions?: ActorConfig; +} + +/** + * Intializes an {@link ActorSubclass}, configured with the provided SERVICE interface of a canister. + * @constructs {@link ActorSubClass} + * @param {string | Principal} canisterId - ID of the canister the {@link Actor} will talk to + * @param {CreateActorOptions} options - see {@link CreateActorOptions} + * @param {CreateActorOptions["agent"]} options.agent - a pre-configured agent you'd like to use. Supercedes agentOptions + * @param {CreateActorOptions["agentOptions"]} options.agentOptions - options to set up a new agent + * @see {@link HttpAgentOptions} + * @param {CreateActorOptions["actorOptions"]} options.actorOptions - options for the Actor + * @see {@link ActorConfig} + */ +export declare const createActor: ( + canisterId: string | Principal, + options?: CreateActorOptions +) => ActorSubclass<_SERVICE>; + +/** + * Intialized Actor using default settings, ready to talk to a canister using its candid interface + * @constructs {@link ActorSubClass} + */ +export declare const icrc1_ledger_canister: ActorSubclass<_SERVICE>; diff --git a/apps/wallet/src/generated/icrc1_ledger/index.js b/apps/wallet/src/generated/icrc1_ledger/index.js new file mode 100644 index 000000000..a5df8d522 --- /dev/null +++ b/apps/wallet/src/generated/icrc1_ledger/index.js @@ -0,0 +1,40 @@ +import { Actor, HttpAgent } from "@dfinity/agent"; + +// Imports and re-exports candid interface +import { idlFactory } from "./icrc1_ledger_canister.did.js"; +export { idlFactory } from "./icrc1_ledger_canister.did.js"; + +/* CANISTER_ID is replaced by webpack based on node environment + * Note: canister environment variable will be standardized as + * process.env.CANISTER_ID_ + * beginning in dfx 0.15.0 + */ +export const canisterId = + process.env.CANISTER_ID_ICRC1_LEDGER_CANISTER; + +export const createActor = (canisterId, options = {}) => { + const agent = options.agent || new HttpAgent({ ...options.agentOptions }); + + if (options.agent && options.agentOptions) { + console.warn( + "Detected both agent and agentOptions passed to createActor. Ignoring agentOptions and proceeding with the provided agent." + ); + } + + // Fetch root key for certificate validation during development + if (process.env.DFX_NETWORK !== "ic") { + agent.fetchRootKey().catch((err) => { + console.warn( + "Unable to fetch root key. Check to ensure that your local replica is running" + ); + console.error(err); + }); + } + + // Creates an actor with using the candid interface and the HttpAgent + return Actor.createActor(idlFactory, { + agent, + canisterId, + ...options.actorOptions, + }); +}; diff --git a/apps/wallet/src/generated/internet-identity/internet_identity.did b/apps/wallet/src/generated/internet-identity/internet_identity.did index 43bcf2caf..500ef4d6e 100644 --- a/apps/wallet/src/generated/internet-identity/internet_identity.did +++ b/apps/wallet/src/generated/internet-identity/internet_identity.did @@ -429,23 +429,12 @@ type IdentityInfo = record { }; type IdentityInfoError = variant { - /// The principal is not authorized to call this method with the given arguments. + // The principal is not authorized to call this method with the given arguments. Unauthorized: principal; - /// Internal canister error. See the error message for details. + // Internal canister error. See the error message for details. InternalCanisterError: text; }; - - -type IdentityRegisterError = variant { - // No more registrations are possible in this instance of the II service canister. - CanisterFull; - // The captcha check was not successful. - BadCaptcha; - // The metadata of the provided authentication method contains invalid entries. - InvalidMetadata: text; -}; - type AuthnMethodAddError = variant { InvalidMetadata: text; }; @@ -458,51 +447,51 @@ type AuthnMethodReplaceError = variant { type AuthnMethodMetadataReplaceError = variant { InvalidMetadata: text; - /// No authentication method found with the given public key. + // No authentication method found with the given public key. AuthnMethodNotFound; }; type AuthnMethodSecuritySettingsReplaceError = variant { - /// No authentication method found with the given public key. + // No authentication method found with the given public key. AuthnMethodNotFound; }; type IdentityMetadataReplaceError = variant { - /// The principal is not authorized to call this method with the given arguments. + // The principal is not authorized to call this method with the given arguments. Unauthorized: principal; - /// The identity including the new metadata exceeds the maximum allowed size. + // The identity including the new metadata exceeds the maximum allowed size. StorageSpaceExceeded: record {space_available: nat64; space_required: nat64}; - /// Internal canister error. See the error message for details. + // Internal canister error. See the error message for details. InternalCanisterError: text; }; type PrepareIdAliasRequest = record { - /// Origin of the issuer in the attribute sharing flow. + // Origin of the issuer in the attribute sharing flow. issuer : FrontendHostname; - /// Origin of the relying party in the attribute sharing flow. + // Origin of the relying party in the attribute sharing flow. relying_party : FrontendHostname; - /// Identity for which the IdAlias should be generated. + // Identity for which the IdAlias should be generated. identity_number : IdentityNumber; }; type PrepareIdAliasError = variant { - /// The principal is not authorized to call this method with the given arguments. + // The principal is not authorized to call this method with the given arguments. Unauthorized: principal; - /// Internal canister error. See the error message for details. + // Internal canister error. See the error message for details. InternalCanisterError: text; }; -/// The prepared id alias contains two (still unsigned) credentials in JWT format, -/// certifying the id alias for the issuer resp. the relying party. +// The prepared id alias contains two (still unsigned) credentials in JWT format, +// certifying the id alias for the issuer resp. the relying party. type PreparedIdAlias = record { rp_id_alias_jwt : text; issuer_id_alias_jwt : text; canister_sig_pk_der : PublicKey; }; -/// The request to retrieve the actual signed id alias credentials. -/// The field values should be equal to the values of corresponding -/// fields from the preceding `PrepareIdAliasRequest` and `PrepareIdAliasResponse`. +// The request to retrieve the actual signed id alias credentials. +// The field values should be equal to the values of corresponding +// fields from the preceding `PrepareIdAliasRequest` and `PrepareIdAliasResponse`. type GetIdAliasRequest = record { rp_id_alias_jwt : text; issuer : FrontendHostname; @@ -512,15 +501,15 @@ type GetIdAliasRequest = record { }; type GetIdAliasError = variant { - /// The principal is not authorized to call this method with the given arguments. + // The principal is not authorized to call this method with the given arguments. Unauthorized: principal; - /// The credential(s) are not available: may be expired or not prepared yet (call prepare_id_alias to prepare). + // The credential(s) are not available: may be expired or not prepared yet (call prepare_id_alias to prepare). NoSuchCredentials : text; - /// Internal canister error. See the error message for details. + // Internal canister error. See the error message for details. InternalCanisterError: text; }; -/// The signed id alias credentials for each involved party. +// The signed id alias credentials for each involved party. type IdAliasCredentials = record { rp_id_alias_credential : SignedIdAlias; issuer_id_alias_credential : SignedIdAlias; @@ -532,6 +521,72 @@ type SignedIdAlias = record { id_dapp : principal; }; +type IdRegNextStepResult = record { + // The next step in the registration flow + next_step: RegistrationFlowNextStep; +}; + +type IdRegStartError = variant { + // The method was called anonymously, which is not supported. + InvalidCaller; + // Too many registrations. Please try again later. + RateLimitExceeded; + // A registration flow is already in progress. + AlreadyInProgress; +}; + +// The next step in the registration flow: +// - CheckCaptcha: supply the solution to the captcha using `check_captcha` +// - Finish: finish the registration using `identity_registration_finish` +type RegistrationFlowNextStep = variant { + // Supply the captcha solution using check_captcha + CheckCaptcha: record { + captcha_png_base64: text; + }; + // Finish the registration using identity_registration_finish + Finish; +}; + +type CheckCaptchaArg = record { + solution : text; +}; + +type CheckCaptchaError = variant { + // The supplied solution was wrong. Try again with the new captcha. + WrongSolution: record { + new_captcha_png_base64: text; + }; + // This call is unexpected, see next_step. + UnexpectedCall: record { + next_step: RegistrationFlowNextStep; + }; + // No registration flow ongoing for the caller. + NoRegistrationFlow; +}; + +type IdRegFinishArg = record { + authn_method: AuthnMethodData; +}; + +type IdRegFinishResult = record { + identity_number: nat64; +}; + +type IdRegFinishError = variant { + // The configured maximum number of identities has been reached. + IdentityLimitReached; + // This call is unexpected, see next_step. + UnexpectedCall: record { + next_step: RegistrationFlowNextStep; + }; + // No registration flow ongoing for the caller. + NoRegistrationFlow; + // The supplied authn_method is not valid. + InvalidAuthnMethod: text; + // Error while persisting the new identity. + StorageError: text; +}; + service : (opt InternetIdentityInit) -> { // Legacy identity management API // ============================== @@ -558,16 +613,17 @@ service : (opt InternetIdentityInit) -> { // V2 Identity Management API // ========================== - // WARNING: The following methods are experimental and may change in the future. + // WARNING: The following methods are experimental and may ch 0ange in the future. + + // Starts the identity registration flow to create a new identity. + identity_registration_start: () -> (variant {Ok: IdRegNextStepResult; Err: IdRegStartError;}); - // Creates a new captcha. The solution needs to be submitted using the - // `identity_register` call. - captcha_create: () -> (variant {Ok: Challenge; Err;}); + // Check the captcha challenge + // If successful, the registration can be finished with `identity_registration_finish`. + check_captcha: (CheckCaptchaArg) -> (variant {Ok: IdRegNextStepResult; Err: CheckCaptchaError;}); - // Registers a new identity with the given authn_method. - // A valid captcha solution to a previously generated captcha (using create_captcha) must be provided. - // The sender needs to match the supplied authn_method. - identity_register: (AuthnMethodData, CaptchaResult, opt principal) -> (variant {Ok: IdentityNumber; Err: IdentityRegisterError;}); + // Starts the identity registration flow to create a new identity. + identity_registration_finish: (IdRegFinishArg) -> (variant {Ok: IdRegFinishResult; Err: IdRegFinishError;}); // Returns information about the authentication methods of the identity with the given number. // Only returns the minimal information required for authentication without exposing any metadata such as aliases. diff --git a/apps/wallet/src/generated/internet-identity/internet_identity.did.d.ts b/apps/wallet/src/generated/internet-identity/internet_identity.did.d.ts index 1dc8ea53d..10fcdb7a8 100644 --- a/apps/wallet/src/generated/internet-identity/internet_identity.did.d.ts +++ b/apps/wallet/src/generated/internet-identity/internet_identity.did.d.ts @@ -89,6 +89,10 @@ export interface Challenge { } export type ChallengeKey = string; export interface ChallengeResult { 'key' : ChallengeKey, 'chars' : string } +export interface CheckCaptchaArg { 'solution' : string } +export type CheckCaptchaError = { 'NoRegistrationFlow' : null } | + { 'UnexpectedCall' : { 'next_step' : RegistrationFlowNextStep } } | + { 'WrongSolution' : { 'new_captcha_png_base64' : string } }; export type CredentialId = Uint8Array | number[]; export interface Delegation { 'pubkey' : PublicKey, @@ -158,6 +162,17 @@ export interface IdAliasCredentials { 'rp_id_alias_credential' : SignedIdAlias, 'issuer_id_alias_credential' : SignedIdAlias, } +export interface IdRegFinishArg { 'authn_method' : AuthnMethodData } +export type IdRegFinishError = { 'NoRegistrationFlow' : null } | + { 'UnexpectedCall' : { 'next_step' : RegistrationFlowNextStep } } | + { 'InvalidAuthnMethod' : string } | + { 'IdentityLimitReached' : null } | + { 'StorageError' : string }; +export interface IdRegFinishResult { 'identity_number' : bigint } +export interface IdRegNextStepResult { 'next_step' : RegistrationFlowNextStep } +export type IdRegStartError = { 'InvalidCaller' : null } | + { 'AlreadyInProgress' : null } | + { 'RateLimitExceeded' : null }; export interface IdentityAnchorInfo { 'devices' : Array, 'device_registration' : [] | [DeviceRegistrationInfo], @@ -184,9 +199,6 @@ export type IdentityMetadataReplaceError = { } }; export type IdentityNumber = bigint; -export type IdentityRegisterError = { 'BadCaptcha' : null } | - { 'CanisterFull' : null } | - { 'InvalidMetadata' : string }; export interface InternetIdentityInit { 'assigned_user_number_range' : [] | [[bigint, bigint]], 'archive_config' : [] | [ArchiveConfig], @@ -246,6 +258,10 @@ export interface RateLimitConfig { export type RegisterResponse = { 'bad_challenge' : null } | { 'canister_full' : null } | { 'registered' : { 'user_number' : UserNumber } }; +export type RegistrationFlowNextStep = { + 'CheckCaptcha' : { 'captcha_png_base64' : string } + } | + { 'Finish' : null }; export type SessionKey = PublicKey; export interface SignedDelegation { 'signature' : Uint8Array | number[], @@ -333,7 +349,11 @@ export interface _SERVICE { { 'Ok' : null } | { 'Err' : AuthnMethodSecuritySettingsReplaceError } >, - 'captcha_create' : ActorMethod<[], { 'Ok' : Challenge } | { 'Err' : null }>, + 'check_captcha' : ActorMethod< + [CheckCaptchaArg], + { 'Ok' : IdRegNextStepResult } | + { 'Err' : CheckCaptchaError } + >, 'config' : ActorMethod<[], InternetIdentityInit>, 'create_challenge' : ActorMethod<[], Challenge>, 'deploy_archive' : ActorMethod<[Uint8Array | number[]], DeployArchiveResult>, @@ -369,10 +389,15 @@ export interface _SERVICE { { 'Ok' : null } | { 'Err' : IdentityMetadataReplaceError } >, - 'identity_register' : ActorMethod< - [AuthnMethodData, CaptchaResult, [] | [Principal]], - { 'Ok' : IdentityNumber } | - { 'Err' : IdentityRegisterError } + 'identity_registration_finish' : ActorMethod< + [IdRegFinishArg], + { 'Ok' : IdRegFinishResult } | + { 'Err' : IdRegFinishError } + >, + 'identity_registration_start' : ActorMethod< + [], + { 'Ok' : IdRegNextStepResult } | + { 'Err' : IdRegStartError } >, 'init_salt' : ActorMethod<[], undefined>, 'lookup' : ActorMethod<[UserNumber], Array>, diff --git a/apps/wallet/src/generated/internet-identity/internet_identity.did.js b/apps/wallet/src/generated/internet-identity/internet_identity.did.js index baa1177d0..5f1c4e1dc 100644 --- a/apps/wallet/src/generated/internet-identity/internet_identity.did.js +++ b/apps/wallet/src/generated/internet-identity/internet_identity.did.js @@ -148,6 +148,19 @@ export const idlFactory = ({ IDL }) => { const AuthnMethodSecuritySettingsReplaceError = IDL.Variant({ 'AuthnMethodNotFound' : IDL.Null, }); + const CheckCaptchaArg = IDL.Record({ 'solution' : IDL.Text }); + const RegistrationFlowNextStep = IDL.Variant({ + 'CheckCaptcha' : IDL.Record({ 'captcha_png_base64' : IDL.Text }), + 'Finish' : IDL.Null, + }); + const IdRegNextStepResult = IDL.Record({ + 'next_step' : RegistrationFlowNextStep, + }); + const CheckCaptchaError = IDL.Variant({ + 'NoRegistrationFlow' : IDL.Null, + 'UnexpectedCall' : IDL.Record({ 'next_step' : RegistrationFlowNextStep }), + 'WrongSolution' : IDL.Record({ 'new_captcha_png_base64' : IDL.Text }), + }); const ChallengeKey = IDL.Text; const Challenge = IDL.Record({ 'png_base64' : IDL.Text, @@ -283,15 +296,19 @@ export const idlFactory = ({ IDL }) => { 'space_available' : IDL.Nat64, }), }); - const ChallengeResult = IDL.Record({ - 'key' : ChallengeKey, - 'chars' : IDL.Text, + const IdRegFinishArg = IDL.Record({ 'authn_method' : AuthnMethodData }); + const IdRegFinishResult = IDL.Record({ 'identity_number' : IDL.Nat64 }); + const IdRegFinishError = IDL.Variant({ + 'NoRegistrationFlow' : IDL.Null, + 'UnexpectedCall' : IDL.Record({ 'next_step' : RegistrationFlowNextStep }), + 'InvalidAuthnMethod' : IDL.Text, + 'IdentityLimitReached' : IDL.Null, + 'StorageError' : IDL.Text, }); - const CaptchaResult = ChallengeResult; - const IdentityRegisterError = IDL.Variant({ - 'BadCaptcha' : IDL.Null, - 'CanisterFull' : IDL.Null, - 'InvalidMetadata' : IDL.Text, + const IdRegStartError = IDL.Variant({ + 'InvalidCaller' : IDL.Null, + 'AlreadyInProgress' : IDL.Null, + 'RateLimitExceeded' : IDL.Null, }); const UserKey = PublicKey; const PrepareIdAliasRequest = IDL.Record({ @@ -308,6 +325,10 @@ export const idlFactory = ({ IDL }) => { 'InternalCanisterError' : IDL.Text, 'Unauthorized' : IDL.Principal, }); + const ChallengeResult = IDL.Record({ + 'key' : ChallengeKey, + 'chars' : IDL.Text, + }); const RegisterResponse = IDL.Variant({ 'bad_challenge' : IDL.Null, 'canister_full' : IDL.Null, @@ -411,9 +432,14 @@ export const idlFactory = ({ IDL }) => { ], [], ), - 'captcha_create' : IDL.Func( - [], - [IDL.Variant({ 'Ok' : Challenge, 'Err' : IDL.Null })], + 'check_captcha' : IDL.Func( + [CheckCaptchaArg], + [ + IDL.Variant({ + 'Ok' : IdRegNextStepResult, + 'Err' : CheckCaptchaError, + }), + ], [], ), 'config' : IDL.Func([], [InternetIdentityInit], ['query']), @@ -465,9 +491,14 @@ export const idlFactory = ({ IDL }) => { ], [], ), - 'identity_register' : IDL.Func( - [AuthnMethodData, CaptchaResult, IDL.Opt(IDL.Principal)], - [IDL.Variant({ 'Ok' : IdentityNumber, 'Err' : IdentityRegisterError })], + 'identity_registration_finish' : IDL.Func( + [IdRegFinishArg], + [IDL.Variant({ 'Ok' : IdRegFinishResult, 'Err' : IdRegFinishError })], + [], + ), + 'identity_registration_start' : IDL.Func( + [], + [IDL.Variant({ 'Ok' : IdRegNextStepResult, 'Err' : IdRegStartError })], [], ), 'init_salt' : IDL.Func([], [], []), diff --git a/apps/wallet/src/generated/station/station.did b/apps/wallet/src/generated/station/station.did index 8a533f322..ddd42ed24 100644 --- a/apps/wallet/src/generated/station/station.did +++ b/apps/wallet/src/generated/station/station.did @@ -349,6 +349,8 @@ type TransferOperationInput = record { type TransferOperation = record { // The account to use for the transaction. from_account : opt Account; + // The asset to use for the transaction. + from_asset : Asset; // The network to use for the transaction. network : Network; // The input to the request to transfer funds. @@ -1750,6 +1752,8 @@ type StandardData = record { required_metadata_fields : vec text; // Supported operations for the standard (e.g. `["transfer", "list_transfers", "balance"]`). supported_operations : vec text; + // Supported address formats of the standard. + supported_address_formats : vec text; }; // Describes a blockchain and its standards supported by the station. diff --git a/apps/wallet/src/generated/station/station.did.d.ts b/apps/wallet/src/generated/station/station.did.d.ts index 281d587ce..991115faa 100644 --- a/apps/wallet/src/generated/station/station.did.d.ts +++ b/apps/wallet/src/generated/station/station.did.d.ts @@ -1165,6 +1165,7 @@ export type SortByDirection = { 'Asc' : null } | { 'Desc' : null }; export interface StandardData { 'supported_operations' : Array, + 'supported_address_formats' : Array, 'required_metadata_fields' : Array, 'standard' : string, } @@ -1251,6 +1252,7 @@ export interface TransferListItem { export interface TransferMetadata { 'key' : string, 'value' : string } export interface TransferOperation { 'fee' : [] | [bigint], + 'from_asset' : Asset, 'network' : Network, 'transfer_id' : [] | [UUID], 'from_account' : [] | [Account], diff --git a/apps/wallet/src/generated/station/station.did.js b/apps/wallet/src/generated/station/station.did.js index 4b5c789e2..1ab3c033d 100644 --- a/apps/wallet/src/generated/station/station.did.js +++ b/apps/wallet/src/generated/station/station.did.js @@ -91,6 +91,7 @@ export const idlFactory = ({ IDL }) => { }); const StandardData = IDL.Record({ 'supported_operations' : IDL.Vec(IDL.Text), + 'supported_address_formats' : IDL.Vec(IDL.Text), 'required_metadata_fields' : IDL.Vec(IDL.Text), 'standard' : IDL.Text, }); @@ -720,6 +721,7 @@ export const idlFactory = ({ IDL }) => { }); const TransferOperation = IDL.Record({ 'fee' : IDL.Opt(IDL.Nat), + 'from_asset' : Asset, 'network' : Network, 'transfer_id' : IDL.Opt(UUID), 'from_account' : IDL.Opt(Account), diff --git a/apps/wallet/src/locales/en.locale.ts b/apps/wallet/src/locales/en.locale.ts index 0314d4732..f5a087341 100644 --- a/apps/wallet/src/locales/en.locale.ts +++ b/apps/wallet/src/locales/en.locale.ts @@ -109,7 +109,12 @@ export default { icp: { name: 'Internet Computer', standards: { - native: 'Native', + icp_native: 'ICP (Native)', + icrc1: 'ICRC-1', + }, + formats: { + icp_account_identifier: 'ICP Native', + icrc1_account: 'ICRC-1', }, }, eth: { @@ -265,6 +270,9 @@ export default { editaccount: { title: 'Edit account', request_title: 'Edit account request', + added_assets: 'Added', + removed_assets: 'Removed', + replaced_assets: 'Replaced', }, editaddressbookentry: { title: 'Edit address book entry', @@ -693,6 +701,7 @@ export default { navigation: { home: 'Home', accounts: 'Accounts', + account: 'Account', address_book: 'Address Book', users: 'Users', settings: 'Settings', @@ -730,6 +739,14 @@ export default { csv_ignored_transfers_hint: 'Transfers with errors will be ignored.', csv_transfer_failed: 'Failed to process transfers, please try again.', csv_download_invalid: 'Download invalid', + add_asset: 'Add asset', + remove_asset: 'Remove asset', + no_assets_to_add: 'No assets available to add.', + remove_asset_confirm: + 'Are you sure you want to remove this asset? Removing the asset does not affect the account balance. Re-adding the asset will restore access to the balance.', + transfers_not_supported: 'Transfers are not supported for this asset.', + add_index_canister_to_see_transactions: + 'Consider adding the index canister to the asset to see transactions.', }, address_book: { title: 'Address Book', diff --git a/apps/wallet/src/locales/fr.locale.ts b/apps/wallet/src/locales/fr.locale.ts index 103abf56d..dcb225139 100644 --- a/apps/wallet/src/locales/fr.locale.ts +++ b/apps/wallet/src/locales/fr.locale.ts @@ -119,7 +119,12 @@ export default { icp: { name: 'Internet Computer', standards: { - native: 'Native', + icp_native: 'ICP (Native)', + icrc1: 'ICRC-1', + }, + formats: { + icp_account_identifier: 'ICP Native', + icrc1_account: 'ICRC-1', }, }, eth: { @@ -275,6 +280,9 @@ export default { editaccount: { title: 'Modifier de modifier un compte', request_title: 'Demande de modifier un compte', + added_assets: 'Ajouté', + removed_assets: 'Supprimé', + replaced_assets: 'Remplacé', }, editaddressbookentry: { title: "Modifier une entrée de carnet d'adresses", @@ -698,6 +706,7 @@ export default { navigation: { home: 'Acceuil', accounts: 'Comptes', + account: 'Compte', address_book: "Carnet d'Adresses", users: 'Usagers', settings: 'Settings', @@ -737,6 +746,14 @@ export default { csv_ignored_transfers_hint: 'Transfers with errors will be ignored.', csv_transfer_failed: 'Échec de process transfers, veuillez essayer de nouveau.', csv_download_invalid: 'Téléchargement invalide', + add_asset: 'Ajouter un actif', + remove_asset: 'Supprimer un actif', + no_assets_to_add: 'Pas d actifs disponibles à ajouter.', + remove_asset_confirm: + 'Êtes-vous sûr de vouloir supprimer cet actif? Supprimer l actif n affecte pas le solde du compte. Réajouter l actif restaurera l accès au solde.', + transfers_not_supported: 'Les transferts ne sont pas supportés pour cet actif.', + add_index_canister_to_see_transactions: + 'Considérez d ajouter le canister d index à l actif pour voir les transactions.', }, address_book: { title: "Carnet d'Adresses", diff --git a/apps/wallet/src/locales/pt.locale.ts b/apps/wallet/src/locales/pt.locale.ts index aabd9222e..25e93f176 100644 --- a/apps/wallet/src/locales/pt.locale.ts +++ b/apps/wallet/src/locales/pt.locale.ts @@ -124,7 +124,12 @@ export default { icp: { name: 'Internet Computer', standards: { - native: 'Nativo', + icp_native: 'ICP (Nativo)', + icrc1: 'ICRC-1', + }, + formats: { + icp_account_identifier: 'ICP Nativo', + icrc1_account: 'ICRC-1', }, }, eth: { @@ -274,6 +279,9 @@ export default { editaccount: { title: 'Editar conta', request_title: 'Pedido de alteração de conta', + added_assets: 'Adicionado', + removed_assets: 'Removido', + replaced_assets: 'Substituído', }, editaddressbookentry: { title: 'Editar endereço', @@ -695,6 +703,7 @@ export default { navigation: { home: 'Início', accounts: 'Contas', + account: 'Conta', address_book: 'Endereços', users: 'Usuários', settings: 'Configuraçōes', @@ -733,6 +742,14 @@ export default { csv_ignored_transfers_hint: 'Transferências com erros serão ignoradas.', csv_transfer_failed: 'Error ao processar transferências, por favor, tente novamente.', csv_download_invalid: 'Baixar erros', + add_asset: 'Adicionar ativo', + remove_asset: 'Remover ativo', + no_assets_to_add: 'Nenhum ativo disponível para adicionar.', + remove_asset_confirm: + 'Tem a certeza que deseja remover este ativo? Remover o ativo não afeta o saldo da conta. Re-adicionar o ativo restaurará o acesso ao saldo.', + transfers_not_supported: 'As transferências não são suportadas para este ativo.', + add_index_canister_to_see_transactions: + 'Considere adicionar o canister de índice ao ativo para ver as transações.', }, address_book: { title: 'Livro de endereços', diff --git a/apps/wallet/src/mappers/requests.mapper.ts b/apps/wallet/src/mappers/requests.mapper.ts index c18b5b81f..1bba7ffcd 100644 --- a/apps/wallet/src/mappers/requests.mapper.ts +++ b/apps/wallet/src/mappers/requests.mapper.ts @@ -13,6 +13,7 @@ import { RequestWithDetails, } from '~/types/requests.types'; import { RequestOperationEnum, RequestStatusEnum } from '~/types/station.types'; +import { detectAddressFormat } from '~/utils/asset.utils'; import { formatBalance, stringify, unreachable, variantIs } from '~/utils/helper.utils'; export const mapRequestsOperationTypeToGroup = ( @@ -444,10 +445,9 @@ const mapRequestToAccountCsvRow = (request: Request): CsvRow => { return { account_id: request.operation.AddAccount.account?.[0]?.id ?? '', account_name: request.operation.AddAccount.input.name, - blockchain: request.operation.AddAccount.input.blockchain, details: stringify({ metadata: request.operation.AddAccount.input.metadata, - standard: request.operation.AddAccount.input.standard, + assets: request.operation.AddAccount.input.assets, configs_request_policy: request.operation.AddAccount.input.configs_request_policy, transfer_request_policy: request.operation.AddAccount.input.transfer_request_policy, }), @@ -503,18 +503,31 @@ const mapRequestToTransferCsvRow = (request: Request): CsvRow => { if (variantIs(request.operation, 'Transfer') && request.operation.Transfer.from_account?.[0]) { const account = request.operation.Transfer.from_account[0]; + const asset = request.operation.Transfer.from_asset; + + // to determine the `from address` we find a matching address to the format of the `to address` + const maybeToAddressFormat = detectAddressFormat( + asset.blockchain, + request.operation.Transfer.input.to, + ); + + const fallbackAddress = account.addresses[0]?.address ?? '-'; + + const fromAddress = maybeToAddressFormat + ? (account.addresses.find(accountAddress => accountAddress.format === maybeToAddressFormat) + ?.address ?? fallbackAddress) + : fallbackAddress; + return { from_account: account.name, - from_account_address: account.address, + from_account_address: fromAddress, + from_asset: `${asset.name} (${asset.blockchain} / ${asset.name})`, to: request.operation.Transfer.input.to, amount: - formatBalance(request.operation.Transfer.input.amount, account.decimals) + - ' ' + - account.symbol, + formatBalance(request.operation.Transfer.input.amount, asset.decimals) + ' ' + asset.symbol, fee: request.operation.Transfer.fee[0] - ? formatBalance(request.operation.Transfer.fee[0], account.decimals) + ' ' + account.symbol + ? formatBalance(request.operation.Transfer.fee[0], asset.decimals) + ' ' + asset.symbol : '', - // comment: request.summary[0] ?? '', comment: request.summary[0] ?? '', }; } diff --git a/apps/wallet/src/pages/AccountAssetPage.vue b/apps/wallet/src/pages/AccountAssetPage.vue new file mode 100644 index 000000000..a0364effb --- /dev/null +++ b/apps/wallet/src/pages/AccountAssetPage.vue @@ -0,0 +1,514 @@ + + + diff --git a/apps/wallet/src/pages/AccountPage.vue b/apps/wallet/src/pages/AccountPage.vue index f5a3a2a7f..07530ac85 100644 --- a/apps/wallet/src/pages/AccountPage.vue +++ b/apps/wallet/src/pages/AccountPage.vue @@ -43,25 +43,11 @@ {{ $t('terms.settings') }} - - @@ -72,7 +58,7 @@ class="mb-4" :see-all-link="{ name: Routes.Requests, - query: { group_by: RequestDomains.Transfers }, + query: { group_by: RequestDomains.Accounts }, }" :types="[{ Transfer: [account.id] }]" hide-not-found @@ -84,71 +70,68 @@ class="d-flex flex-column-reverse flex-md-row ga-4 px-0 align-md-start pt-0" >
- - - - - - {{ $t('terms.time') }} - - {{ $t('app.destination_source') }} - - - {{ $t('app.amount_token', { token: account.symbol }) }} - - - - - - {{ $t('app.no_transfers') }} - - - - {{ - `${transfer.created_at?.toLocaleDateString()} ${transfer.created_at?.toLocaleTimeString()}` - }} - - -
- - -
- - - {{ formatBalance(transfer.amount, account.decimals) }} - - - - - - -
-
+ + + + + + + + + +
diff --git a/apps/wallet/src/plugins/navigation.plugin.ts b/apps/wallet/src/plugins/navigation.plugin.ts index eb01a79b8..77149231a 100644 --- a/apps/wallet/src/plugins/navigation.plugin.ts +++ b/apps/wallet/src/plugins/navigation.plugin.ts @@ -4,6 +4,7 @@ import { mdiDatabase, mdiFormatListText, mdiPlusBox, + mdiViewDashboard, mdiWalletBifold, } from '@mdi/js'; import { App, Ref, computed, ref, watch } from 'vue'; @@ -38,6 +39,19 @@ const sections = (): NavigationSections => ({ }, icon: mdiPlusBox, }, + { + name: 'dashboard', + localeKey: 'navigation.dashboard', + action: { + type: NavigationActionType.To, + handle: route => (route.params.locale ? `/${route.params.locale}/dashboard` : '/dashboard'), + }, + auth: { + type: NavigastionAuthType.Route, + route: Routes.Dashboard, + }, + icon: mdiViewDashboard, + }, { name: 'accounts', localeKey: 'navigation.accounts', diff --git a/apps/wallet/src/plugins/router.plugin.ts b/apps/wallet/src/plugins/router.plugin.ts index b88f27acd..02679d596 100644 --- a/apps/wallet/src/plugins/router.plugin.ts +++ b/apps/wallet/src/plugins/router.plugin.ts @@ -18,6 +18,7 @@ import { hasRequiredPrivilege, hasRequiredSession } from '~/utils/auth.utils'; import { i18n, i18nRouteGuard } from './i18n.plugin'; import { initStateGuard } from './pinia.plugin'; import { services } from './services.plugin'; +import DashboardPage from '~/pages/DashboardPage.vue'; export const redirectToKey = 'redirectTo'; @@ -53,6 +54,18 @@ const router = createRouter({ }, }, }, + { + path: 'dashboard', + name: Routes.Dashboard, + component: DashboardPage, + meta: { + auth: { + check: { + session: RequiredSessionState.ConnectedToStation, + }, + }, + }, + }, { path: 'accounts', component: RouterView, diff --git a/apps/wallet/src/services/station.service.ts b/apps/wallet/src/services/station.service.ts index 731505cca..292b4219d 100644 --- a/apps/wallet/src/services/station.service.ts +++ b/apps/wallet/src/services/station.service.ts @@ -2,7 +2,9 @@ import { Actor, ActorSubclass, HttpAgent } from '@dfinity/agent'; import { Principal } from '@dfinity/principal'; import { idlFactory } from '~/generated/station'; import { + Account, AccountBalance, + AccountCallerPrivileges, AddAccountOperationInput, AddAddressBookEntryOperationInput, AddAssetOperationInput, @@ -550,6 +552,40 @@ export class StationService { return result.Ok; } + async listAllAccounts(verifiedCall = false): Promise<{ + accounts: Account[]; + privileges: AccountCallerPrivileges[]; + }> { + const actor = verifiedCall ? this.verified_actor : this.actor; + + const accounts: Account[] = []; + const privileges: AccountCallerPrivileges[] = []; + let nextOffset: [bigint] | [] = []; + + do { + const result = await actor.list_accounts({ + paginate: [ + { + limit: [100], + offset: nextOffset, + }, + ], + search_term: [], + }); + + if (variantIs(result, 'Err')) { + throw result.Err; + } + + accounts.push(...result.Ok.accounts); + privileges.push(...result.Ok.privileges); + + nextOffset = result.Ok.next_offset as [bigint] | []; // have to force cast here because of typescript inference + } while (nextOffset.length > 0); + + return { accounts, privileges }; + } + async listAddressBook( { limit, diff --git a/apps/wallet/src/utils/form.utils.ts b/apps/wallet/src/utils/form.utils.ts index 4a254289e..db875e2f7 100644 --- a/apps/wallet/src/utils/form.utils.ts +++ b/apps/wallet/src/utils/form.utils.ts @@ -1,6 +1,7 @@ import { Principal } from '@dfinity/principal'; import isUUID from 'validator/es/lib/isUUID'; import { i18n } from '~/plugins/i18n.plugin'; +import { detectAddressFormat } from './asset.utils'; export const requiredRule = (value: unknown): string | boolean => { if (value === null || value === undefined || value === '') { @@ -241,3 +242,26 @@ export const validEmail = (value: unknown): string | boolean => { return true; }; + +export const validAddress = + (blockchain: string) => + (value: unknown): string | boolean => { + const hasValue = !!value; + if (!hasValue) { + // this rule only applies if there is a value + return true; + } + + if (typeof value !== 'string') { + return i18n.global.t('forms.rules.validAddress'); + } + + try { + if (detectAddressFormat(blockchain, value) !== undefined) { + return true; + } + return i18n.global.t('forms.rules.validAddress'); + } catch { + return i18n.global.t('forms.rules.validAddress'); + } + }; From f1346e454fe6f9224d39118af6249b6f4f908452 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Tue, 19 Nov 2024 18:32:08 +0100 Subject: [PATCH 12/18] fix(station): hardening validation (#420) --- .../wizard/AccountConfigurationSettings.vue | 5 +- .../address-book/AddressBookForm.vue | 3 +- .../src/components/assets/AssetForm.spec.ts | 12 +--- .../src/components/assets/AssetForm.vue | 8 +-- apps/wallet/src/locales/en.locale.ts | 1 + apps/wallet/src/locales/fr.locale.ts | 1 + apps/wallet/src/locales/pt.locale.ts | 1 + apps/wallet/src/utils/form.utils.ts | 14 ++++ core/station/impl/src/controllers/system.rs | 10 ++- core/station/impl/src/core/validation.rs | 66 ++++++++++++++++--- core/station/impl/src/errors/account.rs | 5 ++ core/station/impl/src/errors/asset.rs | 4 ++ core/station/impl/src/migration.rs | 6 +- core/station/impl/src/models/account.rs | 16 +++++ core/station/impl/src/models/asset.rs | 4 ++ .../impl/src/models/request_specifier.rs | 8 ++- core/station/impl/src/repositories/account.rs | 13 ++-- core/station/impl/src/repositories/asset.rs | 24 ++++++- .../impl/src/services/disaster_recovery.rs | 21 +++--- core/station/impl/src/services/system.rs | 16 ++++- tests/integration/src/test_data/asset.rs | 2 +- 21 files changed, 186 insertions(+), 54 deletions(-) diff --git a/apps/wallet/src/components/accounts/wizard/AccountConfigurationSettings.vue b/apps/wallet/src/components/accounts/wizard/AccountConfigurationSettings.vue index 71995023d..266a1bc35 100644 --- a/apps/wallet/src/components/accounts/wizard/AccountConfigurationSettings.vue +++ b/apps/wallet/src/components/accounts/wizard/AccountConfigurationSettings.vue @@ -25,14 +25,13 @@ :disabled="isViewMode || !!model.id" :multiple="true" /> - { if (asset) { model.value.blockchain = asset.blockchain; - model.value.labels = [BlockchainStandard.Native]; + model.value.labels = []; } else { model.value.blockchain = undefined; model.value.labels = undefined; diff --git a/apps/wallet/src/components/assets/AssetForm.spec.ts b/apps/wallet/src/components/assets/AssetForm.spec.ts index 486799bec..7a1c9af67 100644 --- a/apps/wallet/src/components/assets/AssetForm.spec.ts +++ b/apps/wallet/src/components/assets/AssetForm.spec.ts @@ -42,23 +42,15 @@ describe('AssetForm', () => { }, }); - // has not emitted "valid" event - expect(wrapper.emitted('valid')).toBeUndefined(); + await wrapper.vm.$nextTick(); + expect(wrapper.emitted('valid')).toEqual([[false]]); // fill out metadata for ICP await wrapper .find('input[name="metadata_ledger_canister_id"]') .setValue('ryjl3-tyaaa-aaaaa-aaaba-cai'); - expect(wrapper.emitted('valid')).toEqual([[false]]); - - await wrapper - .find('input[name="metadata_index_canister_id"]') - .setValue('qhbym-qaaaa-aaaaa-aaafq-cai'); - await wrapper.vm.$nextTick(); - - // has emitted "valid" event with value true expect(wrapper.emitted('valid')).toEqual([[false], [true]]); }); }); diff --git a/apps/wallet/src/components/assets/AssetForm.vue b/apps/wallet/src/components/assets/AssetForm.vue index bf7ff51b7..32f1fde40 100644 --- a/apps/wallet/src/components/assets/AssetForm.vue +++ b/apps/wallet/src/components/assets/AssetForm.vue @@ -50,7 +50,7 @@ density="comfortable" :disabled="isViewMode" :prepend-icon="mdiTextBox" - :rules="[requiredRule]" + :rules="[requiredRule, maxLengthRule(64, $t('terms.name'))]" /> { }; }; +export const validSymbolRule = (value: unknown): string | boolean => { + const hasValue = !!value; + if (!hasValue) { + // this rule only applies if there is a value + return true; + } + + if (typeof value !== 'string') { + throw new Error('validSymbolRule only applies to strings'); + } + + return /^[a-zA-Z0-9]{1,32}$/.test(value) ? true : i18n.global.t('forms.rules.validSymbol'); +}; + export const uniqueRule = ( existing: unknown[], errorMessage: string = i18n.global.t('forms.rules.duplicate'), diff --git a/core/station/impl/src/controllers/system.rs b/core/station/impl/src/controllers/system.rs index 982f419b1..54385f1aa 100644 --- a/core/station/impl/src/controllers/system.rs +++ b/core/station/impl/src/controllers/system.rs @@ -6,7 +6,7 @@ use crate::{ errors::AuthorizationError, migration, models::resource::{Resource, SystemResourceAction}, - services::{SystemService, SYSTEM_SERVICE}, + services::{SystemService, INITIALIZING, SYSTEM_SERVICE}, SYSTEM_VERSION, }; use ic_cdk_macros::{post_upgrade, query, update}; @@ -27,6 +27,10 @@ fn set_certified_data_for_skip_certification() { #[cfg(any(not(feature = "canbench"), test))] #[ic_cdk_macros::init] async fn initialize(input: Option) { + INITIALIZING.with_borrow_mut(|initializing| { + *initializing = true; + }); + set_certified_data_for_skip_certification(); match input { Some(SystemInstall::Init(input)) => CONTROLLER.initialize(input).await, @@ -57,6 +61,10 @@ pub async fn mock_init() { #[post_upgrade] async fn post_upgrade(input: Option) { + INITIALIZING.with_borrow_mut(|initializing| { + *initializing = true; + }); + // Runs the migrations for the canister to ensure the stable memory schema is up-to-date // // WARNING: This needs to be done before any other access to stable memory is done, this is because diff --git a/core/station/impl/src/core/validation.rs b/core/station/impl/src/core/validation.rs index b7ebf79a8..39c738e71 100644 --- a/core/station/impl/src/core/validation.rs +++ b/core/station/impl/src/core/validation.rs @@ -7,7 +7,7 @@ use crate::{ errors::{ExternalCanisterValidationError, RecordValidationError}, models::{ resource::{Resource, ResourceId, ResourceIds}, - AccountKey, AddressBookEntryKey, NotificationKey, RequestKey, UserKey, + AccountKey, AddressBookEntryKey, NotificationKey, RequestKey, TokenStandard, UserKey, }, repositories::{ permission::PERMISSION_REPOSITORY, request_policy::REQUEST_POLICY_REPOSITORY, @@ -17,12 +17,8 @@ use crate::{ services::SYSTEM_SERVICE, }; use candid::Principal; -use ic_ledger_types::MAINNET_LEDGER_CANISTER_ID; use ic_stable_structures::{Memory, Storable}; -#[cfg(not(test))] -pub use orbit_essentials::cdk as ic_cdk; -#[cfg(test)] -pub use orbit_essentials::cdk::mocks as ic_cdk; + use orbit_essentials::repository::Repository; use orbit_essentials::types::UUID; use uuid::Uuid; @@ -199,10 +195,18 @@ impl EnsureExternalCanister { pub fn is_external_canister( principal: Principal, ) -> Result<(), ExternalCanisterValidationError> { - // todo: add a mutable denylist for external canisters - if principal == Principal::management_canister() - || principal == ic_cdk::api::id() - || principal == MAINNET_LEDGER_CANISTER_ID + // Check if the target canister is a ledger canister of an asset. + let principal_str = principal.to_text(); + let is_ledger_canister_id = ASSET_REPOSITORY.list().iter().any(|asset| { + asset + .metadata + .get(TokenStandard::METADATA_KEY_LEDGER_CANISTER_ID) + .map_or(false, |canister_id| canister_id == principal_str) + }); + + if is_ledger_canister_id + || principal == Principal::management_canister() + || principal == crate::core::ic_cdk::api::id() || principal == SYSTEM_SERVICE.get_upgrader_canister_id() { return Err(ExternalCanisterValidationError::InvalidExternalCanister { principal }); @@ -243,3 +247,45 @@ impl EnsureIdExists for EnsureAsset { } impl EnsureResourceIdExists for EnsureAsset {} + +#[cfg(test)] +mod test { + use std::collections::BTreeMap; + + use candid::Principal; + use orbit_essentials::{model::ModelKey, repository::Repository}; + + use crate::{ + core::test_utils::init_canister_system, + models::{asset_test_utils::mock_asset, TokenStandard}, + repositories::ASSET_REPOSITORY, + }; + + use super::EnsureExternalCanister; + + #[test] + fn test_is_external_canister() { + init_canister_system(); + + let principal = Principal::from_slice(&[1; 29]); + + let is_external_canister = EnsureExternalCanister::is_external_canister(principal); + assert!(is_external_canister.is_ok()); + + let mut asset = mock_asset(); + + asset + .metadata + .change(crate::models::ChangeMetadata::OverrideSpecifiedBy( + BTreeMap::from([( + TokenStandard::METADATA_KEY_LEDGER_CANISTER_ID.to_string(), + principal.to_text(), + )]), + )); + + ASSET_REPOSITORY.insert(asset.key(), asset); + + let is_external_canister = EnsureExternalCanister::is_external_canister(principal); + assert!(is_external_canister.is_err()); + } +} diff --git a/core/station/impl/src/errors/account.rs b/core/station/impl/src/errors/account.rs index 874dde352..2dc117456 100644 --- a/core/station/impl/src/errors/account.rs +++ b/core/station/impl/src/errors/account.rs @@ -25,6 +25,11 @@ pub enum AccountError { r#"The account address is out of range, it must be between {min_length} and {max_length}."# )] InvalidAddressLength { min_length: u8, max_length: u8 }, + /// The account name is out of range. + #[error( + r#"The account name is out of range, it must be between {min_length} and {max_length}."# + )] + InvalidNameLength { min_length: u8, max_length: u8 }, /// The address format is unknown to the system. #[error(r#"The given address format is unknown to the system."#)] UnknownAddressFormat { address_format: String }, diff --git a/core/station/impl/src/errors/asset.rs b/core/station/impl/src/errors/asset.rs index e71a78d11..cbf91cace 100644 --- a/core/station/impl/src/errors/asset.rs +++ b/core/station/impl/src/errors/asset.rs @@ -20,6 +20,9 @@ pub enum AssetError { /// Invalid symbol length. #[error(r#"Symbol must be between {min_length} and {max_length}."#)] InvalidSymbolLength { min_length: u16, max_length: u16 }, + /// Invalid symbol. + #[error(r#"Symbol must contain only alphanumeric characters."#)] + InvalidSymbol, /// The given blockchain is unknown to the system. #[error(r#"The given blockchain is unknown to the system."#)] UnknownBlockchain { blockchain: String }, @@ -71,6 +74,7 @@ impl DetailableError for AssetError { details.insert("max_length".to_string(), max_length.to_string()); Some(details) } + AssetError::InvalidSymbol => Some(details), AssetError::InvalidSymbolLength { min_length, max_length, diff --git a/core/station/impl/src/migration.rs b/core/station/impl/src/migration.rs index 41ad6bef9..5f2007c30 100644 --- a/core/station/impl/src/migration.rs +++ b/core/station/impl/src/migration.rs @@ -193,7 +193,7 @@ impl<'de> Deserialize<'de> for AddressBookEntry { pub last_modification_timestamp: Timestamp, } - let pre_migration_entry = PreMigrationAddressBookEntry::deserialize(deserializer)?; + let mut pre_migration_entry = PreMigrationAddressBookEntry::deserialize(deserializer)?; #[cfg(test)] if pre_migration_entry.address_format.is_none() { @@ -202,6 +202,10 @@ impl<'de> Deserialize<'de> for AddressBookEntry { }); } + // the frontend used to add BlockchainStandard.Native = "native" label to new address book entries + // this label is not needed anymore + pre_migration_entry.labels.retain(|label| label != "native"); + Ok(AddressBookEntry { id: pre_migration_entry.id, address_owner: pre_migration_entry.address_owner, diff --git a/core/station/impl/src/models/account.rs b/core/station/impl/src/models/account.rs index eee166af6..4ee3540ff 100644 --- a/core/station/impl/src/models/account.rs +++ b/core/station/impl/src/models/account.rs @@ -190,10 +190,25 @@ fn validate_asset_id(asset_id: &AssetId) -> ModelValidatorResult { Ok(()) } +fn validate_account_name(name: &str) -> ModelValidatorResult { + if (name.len() < Account::NAME_RANGE.0 as usize) + || (name.len() > Account::NAME_RANGE.1 as usize) + { + return Err(AccountError::InvalidNameLength { + min_length: Account::NAME_RANGE.0, + max_length: Account::NAME_RANGE.1, + }); + } + + Ok(()) +} + impl ModelValidator for Account { fn validate(&self) -> ModelValidatorResult { self.metadata.validate()?; + validate_account_name(&self.name)?; + for asset in &self.assets { validate_asset_id(&asset.asset_id)?; } @@ -216,6 +231,7 @@ impl ModelValidator for Account { impl Account { pub const OWNERS_RANGE: (u8, u8) = (1, 10); pub const ADDRESS_RANGE: (u8, u8) = (1, 255); + pub const NAME_RANGE: (u8, u8) = (1, 64); pub const SYMBOL_RANGE: (u8, u8) = (1, 8); pub const MAX_POLICIES: u8 = 10; diff --git a/core/station/impl/src/models/asset.rs b/core/station/impl/src/models/asset.rs index c4bec6016..11071a846 100644 --- a/core/station/impl/src/models/asset.rs +++ b/core/station/impl/src/models/asset.rs @@ -82,6 +82,10 @@ fn validate_symbol(symbol: &str) -> ModelValidatorResult { }); } + if !symbol.chars().all(|c| c.is_ascii_alphanumeric()) { + return Err(AssetError::InvalidSymbol); + } + Ok(()) } diff --git a/core/station/impl/src/models/request_specifier.rs b/core/station/impl/src/models/request_specifier.rs index fa2a111af..07b316a40 100644 --- a/core/station/impl/src/models/request_specifier.rs +++ b/core/station/impl/src/models/request_specifier.rs @@ -287,6 +287,7 @@ mod tests { use crate::{ core::{validation::disable_mock_resource_validation, write_system_info}, models::{ + asset_test_utils::mock_asset, request_specifier::{ Match, RequestSpecifier, UserInvolvedInPolicyRuleForRequestResource, UserMatcher, UserSpecifier, @@ -299,11 +300,11 @@ mod tests { system::SystemInfo, CanisterMethod, RequestKey, }, - repositories::REQUEST_REPOSITORY, + repositories::{ASSET_REPOSITORY, REQUEST_REPOSITORY}, }; use candid::Principal; - use orbit_essentials::cdk::mocks::api::id; use orbit_essentials::cdk::mocks::TEST_CANISTER_ID; + use orbit_essentials::{cdk::mocks::api::id, model::ModelKey}; use orbit_essentials::{model::ModelValidator, repository::Repository}; #[tokio::test] @@ -377,6 +378,9 @@ mod tests { let system_info = SystemInfo::new(upgrader_canister_id, Vec::new()); write_system_info(system_info); + let icp_asset = mock_asset(); + ASSET_REPOSITORY.insert(icp_asset.key(), icp_asset); + RequestSpecifier::AddAccount .validate() .expect("AddAccount should be valid"); diff --git a/core/station/impl/src/repositories/account.rs b/core/station/impl/src/repositories/account.rs index 5b1733c97..72a781bd5 100644 --- a/core/station/impl/src/repositories/account.rs +++ b/core/station/impl/src/repositories/account.rs @@ -5,7 +5,7 @@ use crate::{ with_memory_manager, Memory, ACCOUNT_MEMORY_ID, }, models::{indexes::unique_index::UniqueIndexKey, Account, AccountId, AccountKey}, - services::disaster_recovery_observes_insert_account, + services::disaster_recovery_sync_accounts_and_assets_on_change, }; use ic_stable_structures::{memory_manager::VirtualMemory, StableBTreeMap}; use lazy_static::lazy_static; @@ -30,13 +30,13 @@ lazy_static! { #[derive(Debug)] pub struct AccountRepository { unique_index: UniqueIndexRepository, - change_observer: Observer<(Account, Option)>, + change_observer: Observer<()>, } impl Default for AccountRepository { fn default() -> Self { let mut change_observer = Observer::default(); - disaster_recovery_observes_insert_account(&mut change_observer); + disaster_recovery_sync_accounts_and_assets_on_change(&mut change_observer); Self { change_observer, @@ -94,10 +94,9 @@ impl Repository> for AccountRepositor self.save_entry_indexes(&value, prev.as_ref()); - let args = (value, prev); - self.change_observer.notify(&args); + self.change_observer.notify(&()); - args.1 + prev }) } @@ -118,6 +117,8 @@ impl Repository> for AccountRepositor self.remove_entry_indexes(prev); } + self.change_observer.notify(&()); + prev }) } diff --git a/core/station/impl/src/repositories/asset.rs b/core/station/impl/src/repositories/asset.rs index ecd30baaa..4fc8f6870 100644 --- a/core/station/impl/src/repositories/asset.rs +++ b/core/station/impl/src/repositories/asset.rs @@ -1,10 +1,11 @@ use super::indexes::unique_index::UniqueIndexRepository; use crate::{ core::{ - cache::Cache, ic_cdk::api::print, metrics::ASSET_METRICS, with_memory_manager, Memory, - ASSET_MEMORY_ID, + cache::Cache, ic_cdk::api::print, metrics::ASSET_METRICS, observer::Observer, + with_memory_manager, Memory, ASSET_MEMORY_ID, }, models::{indexes::unique_index::UniqueIndexKey, Asset, AssetId}, + services::disaster_recovery_sync_accounts_and_assets_on_change, }; use ic_stable_structures::{memory_manager::VirtualMemory, StableBTreeMap}; use lazy_static::lazy_static; @@ -29,9 +30,22 @@ lazy_static! { } /// A repository that enables managing assets in stable memory. -#[derive(Default, Debug)] +#[derive(Debug)] pub struct AssetRepository { unique_index: UniqueIndexRepository, + change_observer: Observer<()>, +} + +impl Default for AssetRepository { + fn default() -> Self { + let mut change_observer = Observer::default(); + disaster_recovery_sync_accounts_and_assets_on_change(&mut change_observer); + + Self { + change_observer, + unique_index: UniqueIndexRepository::default(), + } + } } impl StableDb> for AssetRepository { @@ -116,6 +130,8 @@ impl Repository> for AssetRepository { self.save_entry_indexes(&value, prev.as_ref()); + self.change_observer.notify(&()); + prev }) } @@ -137,6 +153,8 @@ impl Repository> for AssetRepository { self.remove_entry_indexes(prev); } + self.change_observer.notify(&()); + prev }) } diff --git a/core/station/impl/src/services/disaster_recovery.rs b/core/station/impl/src/services/disaster_recovery.rs index c9a1f7b77..4175325d0 100644 --- a/core/station/impl/src/services/disaster_recovery.rs +++ b/core/station/impl/src/services/disaster_recovery.rs @@ -8,7 +8,7 @@ use super::{SystemService, UserService, USER_SERVICE}; use crate::{ core::observer::Observer, errors::DisasterRecoveryError, - models::{Account, User, UserStatus}, + models::{User, UserStatus}, repositories::{AccountRepository, AssetRepository, ACCOUNT_REPOSITORY, ASSET_REPOSITORY}, services::SYSTEM_SERVICE, }; @@ -31,7 +31,7 @@ pub struct DisasterRecoveryService { } impl DisasterRecoveryService { - pub async fn sync_accounts(&self) -> ServiceResult<()> { + pub async fn sync_accounts_and_assets(&self) -> ServiceResult<()> { let upgrader_canister_id = self.system_service.get_upgrader_canister_id(); let accounts = self.account_repository.list(); @@ -126,7 +126,7 @@ impl DisasterRecoveryService { if let Err(error) = DISASTER_RECOVERY_SERVICE.sync_committee().await { crate::core::ic_cdk::api::print(format!("Failed to sync committee: {}", error,)); } - if let Err(error) = DISASTER_RECOVERY_SERVICE.sync_accounts().await { + if let Err(error) = DISASTER_RECOVERY_SERVICE.sync_accounts_and_assets().await { crate::core::ic_cdk::api::print(format!("Failed to sync accounts: {}", error,)); } } @@ -201,18 +201,19 @@ pub fn disaster_recovery_observes_remove_user(observer: &mut Observer) { })); } -pub fn disaster_recovery_observes_insert_account( - observer: &mut Observer<(Account, Option)>, -) { - observer.add_listener(Box::new(|(_account, _prev)| { +pub fn disaster_recovery_sync_accounts_and_assets_on_change(observer: &mut Observer<()>) { + observer.add_listener(Box::new(|_| { if !SYSTEM_SERVICE.is_healthy() { - // Skip syncing accounts during system init + // Skip syncing during system init return; } crate::core::ic_cdk::spawn(async { - if let Err(error) = DISASTER_RECOVERY_SERVICE.sync_accounts().await { - crate::core::ic_cdk::api::print(format!("Failed to sync accounts: {}", error,)); + if let Err(error) = DISASTER_RECOVERY_SERVICE.sync_accounts_and_assets().await { + crate::core::ic_cdk::api::print(format!( + "Failed to sync accounts and assets: {}", + error, + )); } }); })); diff --git a/core/station/impl/src/services/system.rs b/core/station/impl/src/services/system.rs index 05a557a7b..3e49186eb 100644 --- a/core/station/impl/src/services/system.rs +++ b/core/station/impl/src/services/system.rs @@ -75,6 +75,10 @@ lazy_static! { }; } +thread_local! { + pub static INITIALIZING: std::cell::RefCell = const { std::cell::RefCell::new(false) }; +} + #[derive(Default, Debug)] pub struct SystemService { request_repository: Arc, @@ -118,7 +122,13 @@ impl SystemService { let state = read_system_state(); match state { - SystemState::Initialized(_) => HealthStatus::Healthy, + SystemState::Initialized(_) => { + if INITIALIZING.with_borrow(|init| *init) { + HealthStatus::Uninitialized + } else { + HealthStatus::Healthy + } + } SystemState::Uninitialized => HealthStatus::Uninitialized, } } @@ -294,6 +304,10 @@ impl SystemService { system_info.update_last_upgrade_timestamp(); write_system_info(system_info.to_owned()); + + INITIALIZING.with_borrow_mut(|initializing| { + *initializing = false; + }); } async fn install_canister_post_process_work( diff --git a/tests/integration/src/test_data/asset.rs b/tests/integration/src/test_data/asset.rs index d6a31e1ff..66f74d997 100644 --- a/tests/integration/src/test_data/asset.rs +++ b/tests/integration/src/test_data/asset.rs @@ -43,7 +43,7 @@ pub fn add_asset( blockchain: "icp".to_string(), standards: vec!["icp_native".to_string()], metadata: Vec::new(), - symbol: format!("SYM-{}", next_id), + symbol: format!("SYM{}", next_id), decimals: 8, }, ) From 6d0a0537b6e131740d4f61e6d3d4512845435e94 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Thu, 21 Nov 2024 11:55:43 +0100 Subject: [PATCH 13/18] fix problems after merge --- apps/wallet/src/services/station.service.ts | 3 +++ core/station/impl/src/services/request.rs | 9 +++++++++ tests/integration/src/utils.rs | 1 + 3 files changed, 13 insertions(+) diff --git a/apps/wallet/src/services/station.service.ts b/apps/wallet/src/services/station.service.ts index 87d2005a7..b72df70c1 100644 --- a/apps/wallet/src/services/station.service.ts +++ b/apps/wallet/src/services/station.service.ts @@ -808,6 +808,7 @@ export class StationService { title: [], summary: [], operation: { AddAsset: input }, + expiration_dt: [], }); if (variantIs(result, 'Err')) { @@ -862,6 +863,7 @@ export class StationService { title: [], summary: [], operation: { EditAsset: input }, + expiration_dt: [], }); if (variantIs(result, 'Err')) { @@ -877,6 +879,7 @@ export class StationService { title: [], summary: [], operation: { RemoveAsset: input }, + expiration_dt: [], }); if (variantIs(result, 'Err')) { diff --git a/core/station/impl/src/services/request.rs b/core/station/impl/src/services/request.rs index 949138fda..da47cf903 100644 --- a/core/station/impl/src/services/request.rs +++ b/core/station/impl/src/services/request.rs @@ -825,8 +825,11 @@ mod tests { request.operation = RequestOperation::Transfer(TransferOperation { transfer_id: None, fee: None, + asset: mock_asset(), input: TransferOperationInput { from_account_id: [9; 16], + from_asset_id: [1; 16], + with_standard: TokenStandard::InternetComputerNative, amount: candid::Nat(100u32.into()), fee: None, metadata: Metadata::default(), @@ -860,8 +863,11 @@ mod tests { request.operation = RequestOperation::Transfer(TransferOperation { transfer_id: None, fee: None, + asset: mock_asset(), input: TransferOperationInput { from_account_id: [9; 16], + from_asset_id: [1; 16], + with_standard: TokenStandard::InternetComputerNative, amount: candid::Nat(100u32.into()), fee: None, metadata: Metadata::default(), @@ -895,8 +901,11 @@ mod tests { request.operation = RequestOperation::Transfer(TransferOperation { transfer_id: None, fee: None, + asset: mock_asset(), input: TransferOperationInput { from_account_id: [9; 16], + from_asset_id: [1; 16], + with_standard: TokenStandard::InternetComputerNative, amount: candid::Nat(100u32.into()), fee: None, metadata: Metadata::default(), diff --git a/tests/integration/src/utils.rs b/tests/integration/src/utils.rs index ae113d906..97d337345 100644 --- a/tests/integration/src/utils.rs +++ b/tests/integration/src/utils.rs @@ -714,6 +714,7 @@ pub fn create_transfer( operation: RequestOperationInput::Transfer(input), title: None, summary: None, + expiration_dt: None, execution_plan: Some(RequestExecutionScheduleDTO::Immediate), }; let res: (Result,) = update_candid_as( From 94cb1d6c56ff4da51aecce0aefa9981bc5a1ae90 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Thu, 21 Nov 2024 12:48:07 +0100 Subject: [PATCH 14/18] persist canbench --- core/station/impl/results.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/core/station/impl/results.yml b/core/station/impl/results.yml index e13141af9..0c4028f38 100644 --- a/core/station/impl/results.yml +++ b/core/station/impl/results.yml @@ -1,7 +1,7 @@ benches: batch_insert_100_requests: total: - instructions: 228994193 + instructions: 229054294 heap_increase: 0 stable_memory_increase: 96 scopes: {} @@ -13,25 +13,25 @@ benches: scopes: {} find_500_external_canister_policies_from_50k_dataset: total: - instructions: 27469607 + instructions: 27465679 heap_increase: 0 stable_memory_increase: 0 scopes: {} heap_size_of_indexed_request_fields_cache_is_lt_300mib: total: - instructions: 193912004 - heap_increase: 86 + instructions: 195191574 + heap_increase: 85 stable_memory_increase: 0 scopes: {} list_1k_requests: total: - instructions: 138475278 + instructions: 142176376 heap_increase: 14 stable_memory_increase: 0 scopes: {} list_external_canisters_with_all_statuses: total: - instructions: 202075720 + instructions: 213172583 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -43,13 +43,13 @@ benches: scopes: {} service_filter_5k_requests_from_100k_dataset: total: - instructions: 680810931 + instructions: 680919877 heap_increase: 106 stable_memory_increase: 16 scopes: {} service_find_all_requests_from_2k_dataset: total: - instructions: 275675029 + instructions: 275772307 heap_increase: 44 stable_memory_increase: 16 scopes: {} From f928e12b53f5f5bd7f49e99830d4ece30e74450b Mon Sep 17 00:00:00 2001 From: olaszakos Date: Thu, 21 Nov 2024 20:46:02 +0100 Subject: [PATCH 15/18] fix(station): Make DR sync + logging more efficient (#432) Problem: 1. The station syncs all assets and accounts to the upgrader on any account and asset change. The accounts change on each balance query since the new balance is saved back to the repository. This results in very frequent unnecessary syncs. 2. The upgrader log size is growing rapidly. Trimming is necessary, but it cannot be trimmed due to the stable Log structure only supporting append operation. Task: 1. [x] only sync assets and accounts when the change is relevant - ie. any field of the DR version of the entries change 2. [x] switch to a stable BTreeMap to keep the logs and limit the log size to 25k items Also bundled a small fix for a missing asset foreign key check. --------- Co-authored-by: Kepler Vital --- Cargo.lock | 4 +- Cargo.toml | 2 +- core/station/impl/results.yml | 14 +- core/station/impl/src/mappers/account.rs | 20 ++ core/station/impl/src/mappers/asset.rs | 14 + core/station/impl/src/models/request.rs | 1 + core/station/impl/src/repositories/account.rs | 38 +-- core/station/impl/src/repositories/asset.rs | 31 ++- core/station/impl/src/repositories/mod.rs | 5 + .../impl/src/services/disaster_recovery.rs | 247 +++++++++++++++--- core/upgrader/api/spec.did | 1 + core/upgrader/api/src/lib.rs | 4 +- core/upgrader/impl/src/controllers/logs.rs | 34 +++ core/upgrader/impl/src/lib.rs | 5 +- core/upgrader/impl/src/model/logging.rs | 4 +- core/upgrader/impl/src/services/logger.rs | 119 +++++++-- scripts/benchmark-canister.sh | 6 +- 17 files changed, 456 insertions(+), 93 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8f87aff80..d2eed4200 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2429,9 +2429,9 @@ dependencies = [ [[package]] name = "ic-stable-structures" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03f3044466a69802de74e710dc0300b706a05696a0531c942ca856751a13b0db" +checksum = "fcaf89c1bc326c72498bcc0cd954f2edf718c018e7c586d2193d701d3c9af29a" dependencies = [ "ic_principal", ] diff --git a/Cargo.toml b/Cargo.toml index 5d6625d5e..12c521b1c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,7 +57,7 @@ ic-cdk = "0.16.0" ic-cdk-macros = "0.16.0" ic-cdk-timers = "0.9.0" ic-ledger-types = "0.12.0" -ic-stable-structures = "0.6.4" +ic-stable-structures = "0.6.6" icrc-ledger-types = "0.1.6" ic-utils = "0.38" itertools = "0.13.0" diff --git a/core/station/impl/results.yml b/core/station/impl/results.yml index 0c4028f38..108226765 100644 --- a/core/station/impl/results.yml +++ b/core/station/impl/results.yml @@ -13,7 +13,7 @@ benches: scopes: {} find_500_external_canister_policies_from_50k_dataset: total: - instructions: 27465679 + instructions: 28629145 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -25,32 +25,32 @@ benches: scopes: {} list_1k_requests: total: - instructions: 142176376 + instructions: 142128177 heap_increase: 14 stable_memory_increase: 0 scopes: {} list_external_canisters_with_all_statuses: total: - instructions: 213172583 + instructions: 213226507 heap_increase: 0 stable_memory_increase: 0 scopes: {} repository_find_1k_requests_from_10k_dataset_default_filters: total: - instructions: 92231168 + instructions: 92053986 heap_increase: 17 stable_memory_increase: 0 scopes: {} service_filter_5k_requests_from_100k_dataset: total: - instructions: 680919877 + instructions: 680738365 heap_increase: 106 stable_memory_increase: 16 scopes: {} service_find_all_requests_from_2k_dataset: total: - instructions: 275772307 + instructions: 275726235 heap_increase: 44 stable_memory_increase: 16 scopes: {} -version: 0.1.5 +version: 0.1.8 diff --git a/core/station/impl/src/mappers/account.rs b/core/station/impl/src/mappers/account.rs index e7005fee3..42d1ab359 100644 --- a/core/station/impl/src/mappers/account.rs +++ b/core/station/impl/src/mappers/account.rs @@ -216,3 +216,23 @@ impl From for ChangeAssets { } } } + +impl From for upgrader_api::MultiAssetAccount { + fn from(account: Account) -> Self { + Self { + id: Uuid::from_bytes(account.id).hyphenated().to_string(), + seed: account.seed, + assets: account + .assets + .iter() + .map(|account_asset| { + Uuid::from_bytes(account_asset.asset_id) + .hyphenated() + .to_string() + }) + .collect(), + name: account.name.clone(), + metadata: account.metadata.clone().into(), + } + } +} diff --git a/core/station/impl/src/mappers/asset.rs b/core/station/impl/src/mappers/asset.rs index 73a0795ef..f34f3dff0 100644 --- a/core/station/impl/src/mappers/asset.rs +++ b/core/station/impl/src/mappers/asset.rs @@ -26,3 +26,17 @@ impl From for AssetCallerPrivilegesDTO { } } } + +impl From for upgrader_api::Asset { + fn from(asset: Asset) -> Self { + upgrader_api::Asset { + id: Uuid::from_bytes(asset.id).hyphenated().to_string(), + blockchain: asset.blockchain.to_string(), + symbol: asset.symbol.clone(), + name: asset.name.clone(), + decimals: asset.decimals, + standards: asset.standards.iter().map(|s| s.to_string()).collect(), + metadata: asset.metadata.clone().into(), + } + } +} diff --git a/core/station/impl/src/models/request.rs b/core/station/impl/src/models/request.rs index 5e3932589..057b61727 100644 --- a/core/station/impl/src/models/request.rs +++ b/core/station/impl/src/models/request.rs @@ -198,6 +198,7 @@ fn validate_request_operation_foreign_keys( RequestOperation::ManageSystemInfo(_) => (), RequestOperation::Transfer(op) => { EnsureAccount::id_exists(&op.input.from_account_id)?; + EnsureAsset::id_exists(&op.input.from_asset_id)?; } RequestOperation::AddAccount(op) => { op.input.read_permission.validate()?; diff --git a/core/station/impl/src/repositories/account.rs b/core/station/impl/src/repositories/account.rs index 72a781bd5..9fa81c3fd 100644 --- a/core/station/impl/src/repositories/account.rs +++ b/core/station/impl/src/repositories/account.rs @@ -1,11 +1,14 @@ -use super::indexes::unique_index::UniqueIndexRepository; +use super::{indexes::unique_index::UniqueIndexRepository, InsertEntryObserverArgs}; use crate::{ core::{ metrics::ACCOUNT_METRICS, observer::Observer, utils::format_unique_string, with_memory_manager, Memory, ACCOUNT_MEMORY_ID, }, models::{indexes::unique_index::UniqueIndexKey, Account, AccountId, AccountKey}, - services::disaster_recovery_sync_accounts_and_assets_on_change, + services::{ + disaster_recovery_sync_accounts_and_assets_on_insert, + disaster_recovery_sync_accounts_and_assets_on_remove, + }, }; use ic_stable_structures::{memory_manager::VirtualMemory, StableBTreeMap}; use lazy_static::lazy_static; @@ -30,16 +33,21 @@ lazy_static! { #[derive(Debug)] pub struct AccountRepository { unique_index: UniqueIndexRepository, - change_observer: Observer<()>, + insert_observer: Observer>, + remove_observer: Observer<()>, } impl Default for AccountRepository { fn default() -> Self { - let mut change_observer = Observer::default(); - disaster_recovery_sync_accounts_and_assets_on_change(&mut change_observer); + let mut remove_observer = Observer::default(); + disaster_recovery_sync_accounts_and_assets_on_remove(&mut remove_observer); + + let mut insert_observer = Observer::default(); + disaster_recovery_sync_accounts_and_assets_on_insert(&mut insert_observer); Self { - change_observer, + insert_observer, + remove_observer, unique_index: UniqueIndexRepository::default(), } } @@ -94,9 +102,14 @@ impl Repository> for AccountRepositor self.save_entry_indexes(&value, prev.as_ref()); - self.change_observer.notify(&()); + let args = InsertEntryObserverArgs { + current: value, + prev, + }; - prev + self.insert_observer.notify(&args); + + args.prev }) } @@ -117,7 +130,7 @@ impl Repository> for AccountRepositor self.remove_entry_indexes(prev); } - self.change_observer.notify(&()); + self.remove_observer.notify(&()); prev }) @@ -153,13 +166,6 @@ impl AccountRepository { self.unique_index .get(&UniqueIndexKey::AccountName(format_unique_string(name))) } - - pub fn with_empty_observers() -> Self { - Self { - change_observer: Observer::default(), - ..Default::default() - } - } } #[derive(Debug, Clone)] diff --git a/core/station/impl/src/repositories/asset.rs b/core/station/impl/src/repositories/asset.rs index 4fc8f6870..e77c689e8 100644 --- a/core/station/impl/src/repositories/asset.rs +++ b/core/station/impl/src/repositories/asset.rs @@ -1,11 +1,14 @@ -use super::indexes::unique_index::UniqueIndexRepository; +use super::{indexes::unique_index::UniqueIndexRepository, InsertEntryObserverArgs}; use crate::{ core::{ cache::Cache, ic_cdk::api::print, metrics::ASSET_METRICS, observer::Observer, with_memory_manager, Memory, ASSET_MEMORY_ID, }, models::{indexes::unique_index::UniqueIndexKey, Asset, AssetId}, - services::disaster_recovery_sync_accounts_and_assets_on_change, + services::{ + disaster_recovery_sync_accounts_and_assets_on_insert, + disaster_recovery_sync_accounts_and_assets_on_remove, + }, }; use ic_stable_structures::{memory_manager::VirtualMemory, StableBTreeMap}; use lazy_static::lazy_static; @@ -33,16 +36,21 @@ lazy_static! { #[derive(Debug)] pub struct AssetRepository { unique_index: UniqueIndexRepository, - change_observer: Observer<()>, + insert_observer: Observer>, + remove_observer: Observer<()>, } impl Default for AssetRepository { fn default() -> Self { - let mut change_observer = Observer::default(); - disaster_recovery_sync_accounts_and_assets_on_change(&mut change_observer); + let mut remove_observer = Observer::default(); + disaster_recovery_sync_accounts_and_assets_on_remove(&mut remove_observer); + + let mut insert_observer = Observer::default(); + disaster_recovery_sync_accounts_and_assets_on_insert(&mut insert_observer); Self { - change_observer, + insert_observer, + remove_observer, unique_index: UniqueIndexRepository::default(), } } @@ -130,9 +138,14 @@ impl Repository> for AssetRepository { self.save_entry_indexes(&value, prev.as_ref()); - self.change_observer.notify(&()); + let args = InsertEntryObserverArgs { + current: value, + prev, + }; - prev + self.insert_observer.notify(&args); + + args.prev }) } @@ -153,7 +166,7 @@ impl Repository> for AssetRepository { self.remove_entry_indexes(prev); } - self.change_observer.notify(&()); + self.remove_observer.notify(&()); prev }) diff --git a/core/station/impl/src/repositories/mod.rs b/core/station/impl/src/repositories/mod.rs index 73bff8399..17e5d68ad 100644 --- a/core/station/impl/src/repositories/mod.rs +++ b/core/station/impl/src/repositories/mod.rs @@ -36,3 +36,8 @@ pub use asset::*; pub mod permission; pub mod indexes; + +pub struct InsertEntryObserverArgs { + pub current: T, + pub prev: Option, +} diff --git a/core/station/impl/src/services/disaster_recovery.rs b/core/station/impl/src/services/disaster_recovery.rs index 4175325d0..f03205d8b 100644 --- a/core/station/impl/src/services/disaster_recovery.rs +++ b/core/station/impl/src/services/disaster_recovery.rs @@ -8,8 +8,11 @@ use super::{SystemService, UserService, USER_SERVICE}; use crate::{ core::observer::Observer, errors::DisasterRecoveryError, - models::{User, UserStatus}, - repositories::{AccountRepository, AssetRepository, ACCOUNT_REPOSITORY, ASSET_REPOSITORY}, + models::{Account, Asset, User, UserStatus}, + repositories::{ + AccountRepository, AssetRepository, InsertEntryObserverArgs, ACCOUNT_REPOSITORY, + ASSET_REPOSITORY, + }, services::SYSTEM_SERVICE, }; use orbit_essentials::repository::Repository; @@ -41,36 +44,8 @@ impl DisasterRecoveryService { upgrader_canister_id, "set_disaster_recovery_accounts_and_assets", (upgrader_api::SetDisasterRecoveryAccountsAndAssetsInput { - accounts: accounts - .iter() - .map(|account| upgrader_api::MultiAssetAccount { - id: Uuid::from_bytes(account.id).hyphenated().to_string(), - seed: account.seed, - assets: account - .assets - .iter() - .map(|account_asset| { - Uuid::from_bytes(account_asset.asset_id) - .hyphenated() - .to_string() - }) - .collect(), - name: account.name.clone(), - metadata: account.metadata.clone().into(), - }) - .collect(), - assets: assets - .iter() - .map(|asset| upgrader_api::Asset { - id: Uuid::from_bytes(asset.id).hyphenated().to_string(), - blockchain: asset.blockchain.to_string(), - symbol: asset.symbol.clone(), - name: asset.name.clone(), - decimals: asset.decimals, - standards: asset.standards.iter().map(|s| s.to_string()).collect(), - metadata: asset.metadata.clone().into(), - }) - .collect(), + accounts: accounts.into_iter().map(Into::into).collect(), + assets: assets.into_iter().map(Into::into).collect(), },), ) .await @@ -201,13 +176,87 @@ pub fn disaster_recovery_observes_remove_user(observer: &mut Observer) { })); } -pub fn disaster_recovery_sync_accounts_and_assets_on_change(observer: &mut Observer<()>) { +#[cfg(test)] +thread_local! { + static SYNC_CALLED: std::cell::RefCell = const { std::cell::RefCell::new(0) }; +} + +pub fn disaster_recovery_sync_accounts_and_assets_on_remove(observer: &mut Observer<()>) { observer.add_listener(Box::new(|_| { if !SYSTEM_SERVICE.is_healthy() { // Skip syncing during system init return; } + #[cfg(test)] + SYNC_CALLED.with(|sync_called| { + *sync_called.borrow_mut() += 1; + }); + + crate::core::ic_cdk::spawn(async { + if let Err(error) = DISASTER_RECOVERY_SERVICE.sync_accounts_and_assets().await { + crate::core::ic_cdk::api::print(format!( + "Failed to sync accounts and assets: {}", + error, + )); + } + }); + })); +} + +/// A trait for comparing two values for equality in the context of Disaster Recovery. +/// Two values are considered equal if they are the same when serialized into the format +/// stored by the Upgrader. +pub trait SyncEq { + fn sync_eq(&self) -> bool; +} + +impl SyncEq for InsertEntryObserverArgs { + fn sync_eq(&self) -> bool { + if let Some(prev) = &self.prev { + let current_synced: upgrader_api::MultiAssetAccount = self.current.clone().into(); + let prev_synced: upgrader_api::MultiAssetAccount = prev.clone().into(); + + current_synced == prev_synced + } else { + false + } + } +} + +impl SyncEq for InsertEntryObserverArgs { + fn sync_eq(&self) -> bool { + if let Some(prev) = &self.prev { + let current_synced: upgrader_api::Asset = self.current.clone().into(); + let prev_synced: upgrader_api::Asset = prev.clone().into(); + + current_synced == prev_synced + } else { + false + } + } +} + +pub fn disaster_recovery_sync_accounts_and_assets_on_insert(observer: &mut Observer) +where + T: SyncEq, +{ + observer.add_listener(Box::new(|sync_cmp| { + if !SYSTEM_SERVICE.is_healthy() { + // Skip syncing during system init + return; + } + + if sync_cmp.sync_eq() { + // Skip syncing if the account or asset hasn't changed + return; + } + + #[cfg(test)] + SYNC_CALLED.with(|sync_called| { + *sync_called.borrow_mut() += 1; + }); + crate::core::ic_cdk::spawn(async { if let Err(error) = DISASTER_RECOVERY_SERVICE.sync_accounts_and_assets().await { crate::core::ic_cdk::api::print(format!( @@ -218,3 +267,135 @@ pub fn disaster_recovery_sync_accounts_and_assets_on_change(observer: &mut Obser }); })); } + +#[cfg(test)] +mod tests { + + use orbit_essentials::{model::ModelKey, repository::Repository}; + + use crate::{ + core::test_utils::init_canister_system, + models::{ + account_test_utils::mock_account, asset_test_utils::mock_asset, AccountAsset, + AccountBalance, + }, + repositories::{InsertEntryObserverArgs, ACCOUNT_REPOSITORY, ASSET_REPOSITORY}, + services::SyncEq, + }; + + use super::SYNC_CALLED; + + #[test] + fn test_account_eq() { + let prev_account = mock_account(); + let mut current_account = prev_account.clone(); + + assert!(!InsertEntryObserverArgs { + current: current_account.clone(), + prev: None, + } + .sync_eq()); + + assert!(InsertEntryObserverArgs { + current: current_account.clone(), + prev: Some(prev_account.clone()), + } + .sync_eq()); + + current_account.assets[0].balance = Some(AccountBalance { + balance: 1000u64.into(), + last_modification_timestamp: 1, + }); + + // Account has not changed as far as the sync is concerned + assert!(InsertEntryObserverArgs { + current: current_account.clone(), + prev: Some(prev_account.clone()), + } + .sync_eq()); + + current_account.assets.push(AccountAsset { + asset_id: [1; 16], + balance: None, + }); + + // Account has changed + assert!(!InsertEntryObserverArgs { + current: current_account.clone(), + prev: Some(prev_account.clone()), + } + .sync_eq()); + } + + #[test] + fn test_asset_eq() { + let prev_asset = mock_asset(); + let mut current_asset = prev_asset.clone(); + + assert!(!InsertEntryObserverArgs { + current: current_asset.clone(), + prev: None, + } + .sync_eq()); + + assert!(InsertEntryObserverArgs { + current: current_asset.clone(), + prev: Some(prev_asset.clone()), + } + .sync_eq()); + + current_asset + .metadata + .change(crate::models::ChangeMetadata::RemoveKeys(vec![ + "index_canister_id".to_string(), + ])); + + // Asset has changed + assert!(!InsertEntryObserverArgs { + current: current_asset.clone(), + prev: Some(prev_asset.clone()), + } + .sync_eq()); + } + + #[test] + fn test_sync_call() { + init_canister_system(); + + let mut asset = mock_asset(); + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + assert_eq!(SYNC_CALLED.with(|sync_called| *sync_called.borrow()), 1); + + let mut account = mock_account(); + ACCOUNT_REPOSITORY.insert(account.to_key(), account.clone()); + assert_eq!(SYNC_CALLED.with(|sync_called| *sync_called.borrow()), 2); + + account.assets[0].balance = Some(AccountBalance { + balance: 1000u64.into(), + last_modification_timestamp: 1, + }); + ACCOUNT_REPOSITORY.insert(account.to_key(), account.clone()); + // Account has not changed as far as the sync is concerned + assert_eq!(SYNC_CALLED.with(|sync_called| *sync_called.borrow()), 2); + + account.assets.push(AccountAsset { + asset_id: [1; 16], + balance: None, + }); + ACCOUNT_REPOSITORY.insert(account.to_key(), account.clone()); + // Account has changed + assert_eq!(SYNC_CALLED.with(|sync_called| *sync_called.borrow()), 3); + + asset + .metadata + .change(crate::models::ChangeMetadata::RemoveKeys(vec![ + "index_canister_id".to_string(), + ])); + ASSET_REPOSITORY.insert(asset.key(), asset.clone()); + // Asset has changed + assert_eq!(SYNC_CALLED.with(|sync_called| *sync_called.borrow()), 4); + + ASSET_REPOSITORY.remove(&asset.key()); + assert_eq!(SYNC_CALLED.with(|sync_called| *sync_called.borrow()), 5); + } +} diff --git a/core/upgrader/api/spec.did b/core/upgrader/api/spec.did index 9ba6dc764..e8f087033 100644 --- a/core/upgrader/api/spec.did +++ b/core/upgrader/api/spec.did @@ -296,4 +296,5 @@ service : (InitArg) -> { "get_disaster_recovery_state" : () -> (GetDisasterRecoveryStateResult) query; "request_disaster_recovery" : (RequestDisasterRecoveryInput) -> (RequestDisasterRecoveryResult); "get_logs" : (GetLogsInput) -> (GetLogsResult) query; + "deprecated_get_logs" : (GetLogsInput) -> (GetLogsResult) query; }; diff --git a/core/upgrader/api/src/lib.rs b/core/upgrader/api/src/lib.rs index 9eabc2b75..ef42fecb3 100644 --- a/core/upgrader/api/src/lib.rs +++ b/core/upgrader/api/src/lib.rs @@ -65,7 +65,7 @@ pub struct Account { pub metadata: Vec, } -#[derive(Clone, Debug, CandidType, Deserialize)] +#[derive(Clone, Debug, CandidType, Deserialize, PartialEq, Eq)] pub struct Asset { /// The asset id, which is a UUID. pub id: UuidDTO, @@ -86,7 +86,7 @@ pub struct Asset { pub metadata: Vec, } -#[derive(Clone, Debug, CandidType, Deserialize)] +#[derive(Clone, Debug, CandidType, Deserialize, PartialEq, Eq)] pub struct MultiAssetAccount { /// The account id, which is a UUID. pub id: UuidDTO, diff --git a/core/upgrader/impl/src/controllers/logs.rs b/core/upgrader/impl/src/controllers/logs.rs index 6e55bc133..962f01c2a 100644 --- a/core/upgrader/impl/src/controllers/logs.rs +++ b/core/upgrader/impl/src/controllers/logs.rs @@ -28,6 +28,13 @@ fn get_logs(input: upgrader_api::GetLogsInput) -> ApiResult ApiResult { + CONTROLLER.deprecated_get_logs(input) +} + pub struct LogsController { disaster_recover_service: Arc, logger_service: Arc, @@ -59,4 +66,31 @@ impl LogsController { Err(UpgraderApiError::Unauthorized.into()) } } + + // Supports fetching the logs from the deprecated log storage. + pub fn deprecated_get_logs( + &self, + input: upgrader_api::GetLogsInput, + ) -> ApiResult { + let caller = caller(); + + if is_controller(&caller) || self.disaster_recover_service.is_committee_member(&caller) { + let GetLogsResult { + logs, + next_offset, + total, + } = self.logger_service.deprecated_get_logs( + input.pagination.as_ref().and_then(|p| p.offset), + input.pagination.as_ref().and_then(|p| p.limit), + ); + + Ok(upgrader_api::GetLogsResponse { + logs: logs.into_iter().map(|l| l.into()).collect(), + total, + next_offset, + }) + } else { + Err(UpgraderApiError::Unauthorized.into()) + } + } } diff --git a/core/upgrader/impl/src/lib.rs b/core/upgrader/impl/src/lib.rs index b6c7379d5..4f3ea2a15 100644 --- a/core/upgrader/impl/src/lib.rs +++ b/core/upgrader/impl/src/lib.rs @@ -33,8 +33,9 @@ type LocalRef = &'static LocalKey>; const MEMORY_ID_TARGET_CANISTER_ID: u8 = 0; const MEMORY_ID_DISASTER_RECOVERY: u8 = 1; -const MEMORY_ID_LOG_INDEX: u8 = 2; -const MEMORY_ID_LOG_DATA: u8 = 3; +const DEPRECATED_MEMORY_ID_LOG_INDEX: u8 = 2; +const DEPRECATED_MEMORY_ID_LOG_DATA: u8 = 3; +const MEMORY_ID_LOGS: u8 = 4; thread_local! { static MEMORY_MANAGER: RefCell> = diff --git a/core/upgrader/impl/src/model/logging.rs b/core/upgrader/impl/src/model/logging.rs index 780277fdb..6ce78bbb5 100644 --- a/core/upgrader/impl/src/model/logging.rs +++ b/core/upgrader/impl/src/model/logging.rs @@ -1,4 +1,4 @@ -use crate::upgrader_ic_cdk::api::time; +use crate::upgrader_ic_cdk::next_time; use orbit_essentials::{storable, types::Timestamp, utils::timestamp_to_rfc3339}; use serde::Serialize; @@ -171,7 +171,7 @@ impl LogEntryType { impl LogEntry { pub fn try_from_entry_type(entry_type: LogEntryType) -> Result { Ok(LogEntry { - time: time(), + time: next_time(), entry_type: entry_type.to_type_string(), message: entry_type.to_message(), data_json: entry_type.to_json_string()?, diff --git a/core/upgrader/impl/src/services/logger.rs b/core/upgrader/impl/src/services/logger.rs index ccfe7d517..0ec46e613 100644 --- a/core/upgrader/impl/src/services/logger.rs +++ b/core/upgrader/impl/src/services/logger.rs @@ -1,25 +1,32 @@ use std::{cell::RefCell, sync::Arc}; -use ic_stable_structures::{memory_manager::MemoryId, Log}; +use ic_stable_structures::{memory_manager::MemoryId, BTreeMap, Log}; use lazy_static::lazy_static; +use orbit_essentials::types::Timestamp; use crate::{ model::{LogEntry, LogEntryType}, - Memory, MEMORY_ID_LOG_DATA, MEMORY_ID_LOG_INDEX, MEMORY_MANAGER, + Memory, DEPRECATED_MEMORY_ID_LOG_DATA, DEPRECATED_MEMORY_ID_LOG_INDEX, MEMORY_ID_LOGS, + MEMORY_MANAGER, }; pub const MAX_GET_LOGS_LIMIT: u64 = 100; pub const DEFAULT_GET_LOGS_LIMIT: u64 = 10; +pub const MAX_LOG_ENTRIES: u64 = 25000; thread_local! { - - static STORAGE: RefCell> = RefCell::new( - Log::init( - MEMORY_MANAGER.with(|m| m.borrow().get(MemoryId::new(MEMORY_ID_LOG_INDEX))), - MEMORY_MANAGER.with(|m| m.borrow().get(MemoryId::new(MEMORY_ID_LOG_DATA))), - ).expect("Failed to initialize log storage") - ); - + static DEPRECATED_STORAGE: RefCell> = RefCell::new( + Log::init( + MEMORY_MANAGER.with(|m| m.borrow().get(MemoryId::new(DEPRECATED_MEMORY_ID_LOG_INDEX))), + MEMORY_MANAGER.with(|m| m.borrow().get(MemoryId::new(DEPRECATED_MEMORY_ID_LOG_DATA))), + ).expect("Failed to initialize deprecated log storage") + ); + + static STORAGE: RefCell> = RefCell::new( + BTreeMap::init( + MEMORY_MANAGER.with(|m| m.borrow().get(MemoryId::new(MEMORY_ID_LOGS))), + ) + ); } lazy_static! { @@ -40,12 +47,12 @@ impl LoggerService { /// Tries to log an entry to the storage. pub fn try_log(&self, entry_type: LogEntryType) -> Result<(), String> { let entry = LogEntry::try_from_entry_type(entry_type)?; - STORAGE.with(|storage| { - storage - .borrow_mut() - .append(&entry) - .map_err(|err| format!("Failed to log entry: {:?}", err)) - })?; + STORAGE.with_borrow_mut(|storage| { + if storage.len() >= MAX_LOG_ENTRIES { + let _ = storage.pop_first(); + } + storage.insert(entry.time, entry); + }); Ok(()) } @@ -71,6 +78,47 @@ impl LoggerService { }; } + let offset = offset.unwrap_or(0); + let limit = limit + .unwrap_or(DEFAULT_GET_LOGS_LIMIT) + .min(MAX_GET_LOGS_LIMIT); + + let logs = borrowed + .iter() + .rev() + .skip(offset as usize) + .take(limit as usize) + .map(|(_, v)| v) + .collect::>(); + + let next_offset = if total > offset + limit { + Some(offset + limit) + } else { + None + }; + GetLogsResult { + logs, + total, + next_offset, + } + }) + } + + /// Returns logs from the deprecated storage starting from the end of the log. + pub fn deprecated_get_logs(&self, offset: Option, limit: Option) -> GetLogsResult { + DEPRECATED_STORAGE.with(|storage| { + let borrowed = storage.borrow(); + + let total = borrowed.len(); + + if total == 0 { + return GetLogsResult { + logs: vec![], + total, + next_offset: None, + }; + } + let offset = offset.unwrap_or(0); let limit = limit .unwrap_or(DEFAULT_GET_LOGS_LIMIT) @@ -153,4 +201,43 @@ mod tests { assert_eq!(result.next_offset, None); assert_eq!(result.logs[0].entry_type, "set_committee".to_owned()); } + + #[test] + fn test_log_trimming() { + for _ in 0..MAX_LOG_ENTRIES { + LOGGER_SERVICE.log(LogEntryType::SetCommittee(SetCommitteeLog { + committee: mock_committee(), + })); + } + + let result = LOGGER_SERVICE.get_logs(None, None); + assert_eq!(result.total, MAX_LOG_ENTRIES); + + let latest_log_time = result.logs.last().unwrap().time; + + LOGGER_SERVICE.log(LogEntryType::SetCommittee(SetCommitteeLog { + committee: mock_committee(), + })); + + let result = LOGGER_SERVICE.get_logs(None, None); + + assert_eq!(result.total, MAX_LOG_ENTRIES); + assert_ne!(result.logs.last().unwrap().time, latest_log_time); + } + + #[test] + fn test_deprecated_storage() { + let logger_service = LoggerService::default(); + logger_service.log(LogEntryType::SetCommittee(SetCommitteeLog { + committee: mock_committee(), + })); + + // new logs should be in the new storage + let result = logger_service.get_logs(None, None); + assert_eq!(result.total, 1); + + // deprecated logs should not get new logs + let result = logger_service.deprecated_get_logs(None, None); + assert_eq!(result.total, 0); + } } diff --git a/scripts/benchmark-canister.sh b/scripts/benchmark-canister.sh index 841225d99..5781fa05c 100755 --- a/scripts/benchmark-canister.sh +++ b/scripts/benchmark-canister.sh @@ -25,7 +25,7 @@ print_message "Benchmarking canister at $CANISTER_PATH" # Install canbench if not already installed if ! cargo install --list | grep -q canbench; then print_message "Installing canbench..." - cargo install canbench --version 0.1.5 + cargo install canbench --version 0.1.8 fi # Changes to the canister path @@ -42,8 +42,8 @@ canbench --less-verbose >"$CANBENCH_TMP_OUTPUT" if grep -q "(regress\|(improved by \|(new)" "$CANBENCH_TMP_OUTPUT"; then # Check if running in GitHub Actions and print the CANBENCH_TMP_OUTPUT file if so if [ "${GITHUB_ACTIONS:-}" = "true" ]; then - print_message "Review the benchmark results below:" - cat "$CANBENCH_TMP_OUTPUT" + print_message "Review the benchmark results below:" + cat "$CANBENCH_TMP_OUTPUT" fi print_message "Benchmarking completed. From d00177b4cdf9912948fb1f42b4edbd357f6f681c Mon Sep 17 00:00:00 2001 From: olaszakos Date: Tue, 26 Nov 2024 16:27:24 +0100 Subject: [PATCH 16/18] perf(station): make concurrent balance queries more efficient (#440) At the moment concurrent calls to fetch the balances of the assets of an account result in all of them fetching the balances with inter canister calls. If an account asset balance is getting queried concurrent calls should not result in additional balance queries, but those should return the last balance value. --- apps/wallet/src/generated/station/station.did | 9 +- .../src/generated/station/station.did.d.ts | 4 +- .../src/generated/station/station.did.js | 4 +- apps/wallet/src/pages/AccountAssetPage.vue | 26 +- apps/wallet/src/services/station.service.ts | 6 +- apps/wallet/src/workers/accounts.worker.ts | 7 +- .../impl/src/controllers/station.rs | 2 +- core/station/api/spec.did | 9 +- core/station/api/src/account.rs | 4 +- core/station/impl/src/mappers/account.rs | 20 +- core/station/impl/src/models/account.rs | 30 +++ core/station/impl/src/services/account.rs | 231 +++++++++++++++--- libs/orbit-essentials/src/utils/lock.rs | 33 ++- tests/integration/src/account_tests.rs | 203 +++++++++++++++ tests/integration/src/lib.rs | 1 + tests/integration/src/transfer_tests.rs | 15 +- tests/integration/src/utils.rs | 16 +- 17 files changed, 540 insertions(+), 80 deletions(-) create mode 100644 tests/integration/src/account_tests.rs diff --git a/apps/wallet/src/generated/station/station.did b/apps/wallet/src/generated/station/station.did index 2b5cb4dbc..ad4c9c2d4 100644 --- a/apps/wallet/src/generated/station/station.did +++ b/apps/wallet/src/generated/station/station.did @@ -1661,12 +1661,19 @@ type GetAccountResult = variant { type AccountBalance = record { // The account id. account_id : UUID; + // The asset id. + asset_id : UUID; // The balance of the account. balance : nat; // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). decimals : nat32; // The time at which the balance was last updated. last_update_timestamp : TimestampRFC3339; + // The state of balance query: + // - `fresh`: The balance was recently updated and is considered fresh. + // - `stale`: The balance may be out of date. + // - `stale_refreshing`: The balance may be out of date but it is being refreshed in the background. + query_state : text; }; // Input type for getting a account balance. @@ -1680,7 +1687,7 @@ type FetchAccountBalancesResult = variant { // The result data for a successful execution. Ok : record { // The account balance that was retrieved. - balances : vec AccountBalance; + balances : vec opt AccountBalance; }; // The error that occurred (e.g. the user does not have the necessary permissions). Err : Error; diff --git a/apps/wallet/src/generated/station/station.did.d.ts b/apps/wallet/src/generated/station/station.did.d.ts index ada6d63fc..6d5d1b6f9 100644 --- a/apps/wallet/src/generated/station/station.did.d.ts +++ b/apps/wallet/src/generated/station/station.did.d.ts @@ -22,6 +22,8 @@ export interface AccountBalance { 'decimals' : number, 'balance' : bigint, 'last_update_timestamp' : TimestampRFC3339, + 'query_state' : string, + 'asset_id' : UUID, } export interface AccountBalanceInfo { 'decimals' : number, @@ -563,7 +565,7 @@ export type ExternalCanisterState = { 'Active' : null } | { 'Archived' : null }; export interface FetchAccountBalancesInput { 'account_ids' : Array } export type FetchAccountBalancesResult = { - 'Ok' : { 'balances' : Array } + 'Ok' : { 'balances' : Array<[] | [AccountBalance]> } } | { 'Err' : Error }; export type FundExternalCanisterOperation = FundExternalCanisterOperationInput; diff --git a/apps/wallet/src/generated/station/station.did.js b/apps/wallet/src/generated/station/station.did.js index 5d3823c09..be19c7b1f 100644 --- a/apps/wallet/src/generated/station/station.did.js +++ b/apps/wallet/src/generated/station/station.did.js @@ -550,6 +550,8 @@ export const idlFactory = ({ IDL }) => { 'decimals' : IDL.Nat32, 'balance' : IDL.Nat, 'last_update_timestamp' : TimestampRFC3339, + 'query_state' : IDL.Text, + 'asset_id' : UUID, }); const AccountAsset = IDL.Record({ 'balance' : IDL.Opt(AccountBalance), @@ -907,7 +909,7 @@ export const idlFactory = ({ IDL }) => { 'account_ids' : IDL.Vec(UUID), }); const FetchAccountBalancesResult = IDL.Variant({ - 'Ok' : IDL.Record({ 'balances' : IDL.Vec(AccountBalance) }), + 'Ok' : IDL.Record({ 'balances' : IDL.Vec(IDL.Opt(AccountBalance)) }), 'Err' : Error, }); const GetAccountInput = IDL.Record({ 'account_id' : UUID }); diff --git a/apps/wallet/src/pages/AccountAssetPage.vue b/apps/wallet/src/pages/AccountAssetPage.vue index 507352be0..b03cc78c2 100644 --- a/apps/wallet/src/pages/AccountAssetPage.vue +++ b/apps/wallet/src/pages/AccountAssetPage.vue @@ -492,18 +492,20 @@ const loadAccount = async (): Promise<{ account_ids: [accountId], }); - if (balances.length) { - accountAsset.value = { - ...accountAsset.value, - balance: [ - { - account_id: accountId, - balance: balances[0].balance, - decimals: balances[0].decimals, - last_update_timestamp: balances[0].last_update_timestamp, - }, - ], - }; + for (const balance of balances) { + if (!balance[0]) { + continue; + } + + const accountBalance = balance[0]; + + if (accountBalance.account_id === accountId && accountBalance.asset_id == assetId) { + accountAsset.value = { + ...accountAsset.value, + balance: [accountBalance], + }; + break; + } } } diff --git a/apps/wallet/src/services/station.service.ts b/apps/wallet/src/services/station.service.ts index b72df70c1..d497586d7 100644 --- a/apps/wallet/src/services/station.service.ts +++ b/apps/wallet/src/services/station.service.ts @@ -3,7 +3,6 @@ import { Principal } from '@dfinity/principal'; import { idlFactory } from '~/generated/station'; import { Account, - AccountBalance, AccountCallerPrivileges, AddAccountOperationInput, AddAddressBookEntryOperationInput, @@ -29,6 +28,7 @@ import { EditUserGroupOperationInput, EditUserOperationInput, FetchAccountBalancesInput, + FetchAccountBalancesResult, FundExternalCanisterOperationInput, GetAccountInput, GetAccountResult, @@ -956,7 +956,9 @@ export class StationService { return variantIs(result, 'Healthy'); } - async fetchAccountBalances(input: FetchAccountBalancesInput): Promise { + async fetchAccountBalances( + input: FetchAccountBalancesInput, + ): Promise['balances']> { const result = await this.actor.fetch_account_balances(input); if (variantIs(result, 'Err')) { diff --git a/apps/wallet/src/workers/accounts.worker.ts b/apps/wallet/src/workers/accounts.worker.ts index 111216e24..4025e6321 100644 --- a/apps/wallet/src/workers/accounts.worker.ts +++ b/apps/wallet/src/workers/accounts.worker.ts @@ -1,8 +1,9 @@ import { Principal } from '@dfinity/principal'; import { icAgent } from '~/core/ic-agent.core'; import { logger } from '~/core/logger.core'; -import { AccountBalance, UUID } from '~/generated/station/station.did'; +import { AccountBalance, FetchAccountBalancesResult, UUID } from '~/generated/station/station.did'; import { StationService } from '~/services/station.service'; +import { ExtractOk } from '~/types/helper.types'; import { arrayBatchMaker, timer, unreachable } from '~/utils/helper.utils'; const DEFAULT_INTERVAL_MS = 10000; @@ -42,7 +43,7 @@ export interface AccountsWorkerErrorResponse { } export interface AccountBalancesWorkerResponse { - balances: AccountBalance[]; + balances: Array<[] | [AccountBalance]>; } export type AccountsWorkerResponseMessage = @@ -130,7 +131,7 @@ class AccountsWorkerImpl { this.stationService.fetchAccountBalances({ account_ids: accountIds }).catch(err => { logger.error('Failed to update the balance for the given account ids', { err }); - return [] as AccountBalance[]; + return [] as ExtractOk['balances']; }), ); diff --git a/core/control-panel/impl/src/controllers/station.rs b/core/control-panel/impl/src/controllers/station.rs index 1029e3003..a8918b0b2 100644 --- a/core/control-panel/impl/src/controllers/station.rs +++ b/core/control-panel/impl/src/controllers/station.rs @@ -130,7 +130,7 @@ impl StationController { async fn deploy_station(&self, input: DeployStationInput) -> ApiResult { let ctx = CallContext::get(); let _lock = STATE - .with(|state| CallerGuard::new(state.clone(), ctx.caller())) + .with(|state| CallerGuard::new(state.clone(), ctx.caller(), None)) .ok_or(UserError::ConcurrentStationDeployment)?; let deployed_station_id = self.deploy_service.deploy_station(input, &ctx).await?; diff --git a/core/station/api/spec.did b/core/station/api/spec.did index 2b5cb4dbc..ad4c9c2d4 100644 --- a/core/station/api/spec.did +++ b/core/station/api/spec.did @@ -1661,12 +1661,19 @@ type GetAccountResult = variant { type AccountBalance = record { // The account id. account_id : UUID; + // The asset id. + asset_id : UUID; // The balance of the account. balance : nat; // The number of decimals used by the asset (e.g. `8` for `BTC`, `18` for `ETH`, etc.). decimals : nat32; // The time at which the balance was last updated. last_update_timestamp : TimestampRFC3339; + // The state of balance query: + // - `fresh`: The balance was recently updated and is considered fresh. + // - `stale`: The balance may be out of date. + // - `stale_refreshing`: The balance may be out of date but it is being refreshed in the background. + query_state : text; }; // Input type for getting a account balance. @@ -1680,7 +1687,7 @@ type FetchAccountBalancesResult = variant { // The result data for a successful execution. Ok : record { // The account balance that was retrieved. - balances : vec AccountBalance; + balances : vec opt AccountBalance; }; // The error that occurred (e.g. the user does not have the necessary permissions). Err : Error; diff --git a/core/station/api/src/account.rs b/core/station/api/src/account.rs index a491ec3dc..d55c318ce 100644 --- a/core/station/api/src/account.rs +++ b/core/station/api/src/account.rs @@ -101,9 +101,11 @@ pub struct FetchAccountBalancesInput { #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] pub struct AccountBalanceDTO { pub account_id: String, + pub asset_id: String, pub balance: candid::Nat, pub decimals: u32, pub last_update_timestamp: String, + pub query_state: String, } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] @@ -115,7 +117,7 @@ pub struct AccountBalanceInfoDTO { #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] pub struct FetchAccountBalancesResponse { - pub balances: Vec, + pub balances: Vec>, } #[derive(CandidType, serde::Serialize, Deserialize, Debug, Clone)] diff --git a/core/station/impl/src/mappers/account.rs b/core/station/impl/src/mappers/account.rs index 42d1ab359..ca87b2e61 100644 --- a/core/station/impl/src/mappers/account.rs +++ b/core/station/impl/src/mappers/account.rs @@ -5,7 +5,8 @@ use crate::{ errors::MapperError, models::{ Account, AccountAddress, AccountAsset, AccountBalance, AccountCallerPrivileges, AccountId, - AccountSeed, AddAccountOperationInput, AddressFormat, ChangeAssets, + AccountSeed, AddAccountOperationInput, AddressFormat, AssetId, BalanceQueryState, + ChangeAssets, }, repositories::{request_policy::REQUEST_POLICY_REPOSITORY, ASSET_REPOSITORY}, }; @@ -105,12 +106,16 @@ impl AccountMapper { balance: AccountBalance, decimals: u32, account_id: AccountId, + asset_id: AssetId, + query_state: BalanceQueryState, ) -> AccountBalanceDTO { AccountBalanceDTO { account_id: Uuid::from_bytes(account_id).hyphenated().to_string(), + asset_id: Uuid::from_bytes(asset_id).hyphenated().to_string(), balance: balance.balance, decimals, last_update_timestamp: timestamp_to_rfc3339(&balance.last_modification_timestamp), + query_state: query_state.to_string(), } } @@ -123,9 +128,16 @@ impl AccountMapper { asset_id: Uuid::from_bytes(account_asset.asset_id) .hyphenated() .to_string(), - balance: account_asset - .balance - .map(|balance| Self::to_balance_dto(balance, decimals, account_id)), + balance: account_asset.balance.map(|balance| { + let query_state = BalanceQueryState::from(&balance); + Self::to_balance_dto( + balance, + decimals, + account_id, + account_asset.asset_id, + query_state, + ) + }), } } } diff --git a/core/station/impl/src/models/account.rs b/core/station/impl/src/models/account.rs index 4ee3540ff..57a4f8bab 100644 --- a/core/station/impl/src/models/account.rs +++ b/core/station/impl/src/models/account.rs @@ -1,5 +1,6 @@ use super::{AccountBalance, AssetId}; use crate::core::validation::{EnsureAsset, EnsureIdExists}; +use crate::core::ACCOUNT_BALANCE_FRESHNESS_IN_MS; use crate::errors::{AccountError, RecordValidationError}; use crate::models::Metadata; use crate::repositories::request_policy::REQUEST_POLICY_REPOSITORY; @@ -249,6 +250,35 @@ impl Account { } } +pub enum BalanceQueryState { + StaleRefreshing, + Stale, + Fresh, +} + +impl fmt::Display for BalanceQueryState { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + match self { + BalanceQueryState::StaleRefreshing => write!(f, "stale_refreshing"), + BalanceQueryState::Stale => write!(f, "stale"), + BalanceQueryState::Fresh => write!(f, "fresh"), + } + } +} + +impl From<&AccountBalance> for BalanceQueryState { + fn from(balance: &AccountBalance) -> Self { + let balance_age_ms = crate::core::ic_cdk::api::time() + .saturating_sub(balance.last_modification_timestamp) + / 1_000_000; + if balance_age_ms <= ACCOUNT_BALANCE_FRESHNESS_IN_MS { + BalanceQueryState::Fresh + } else { + BalanceQueryState::Stale + } + } +} + #[cfg(test)] mod tests { use super::account_test_utils::mock_account; diff --git a/core/station/impl/src/services/account.rs b/core/station/impl/src/services/account.rs index 491885b42..c84c86822 100644 --- a/core/station/impl/src/services/account.rs +++ b/core/station/impl/src/services/account.rs @@ -2,7 +2,7 @@ use crate::{ core::{ authorization::Authorization, generate_uuid_v4, - ic_cdk::next_time, + ic_cdk::{api::time, next_time}, read_system_info, utils::{paginated_items, retain_accessible_resources, PaginatedData, PaginatedItemsArgs}, write_system_info, CallContext, ACCOUNT_BALANCE_FRESHNESS_IN_MS, @@ -14,10 +14,10 @@ use crate::{ request_policy_rule::RequestPolicyRuleInput, request_specifier::RequestSpecifier, resource::{AccountResourceAction, Resource, ResourceId, ResourceIds}, - Account, AccountAddress, AccountBalance, AccountCallerPrivileges, AccountId, - AddAccountOperationInput, AddRequestPolicyOperationInput, AddressFormat, Blockchain, - CycleObtainStrategy, EditAccountOperationInput, EditPermissionOperationInput, MetadataItem, - TokenStandard, + Account, AccountAddress, AccountBalance, AccountCallerPrivileges, AccountId, AccountKey, + AddAccountOperationInput, AddRequestPolicyOperationInput, AddressFormat, AssetId, + BalanceQueryState, Blockchain, CycleObtainStrategy, EditAccountOperationInput, + EditPermissionOperationInput, MetadataItem, TokenStandard, }, repositories::{ AccountRepository, AccountWhereClause, AssetRepository, ACCOUNT_REPOSITORY, @@ -31,10 +31,20 @@ use crate::{ use ic_ledger_types::MAINNET_LEDGER_CANISTER_ID; use lazy_static::lazy_static; use orbit_essentials::{ - api::ServiceResult, model::ModelValidator, repository::Repository, types::UUID, + api::ServiceResult, + model::ModelValidator, + repository::Repository, + types::UUID, + utils::{CallerGuard, State}, }; use station_api::{AccountBalanceDTO, FetchAccountBalancesInput, ListAccountsInput}; -use std::{collections::HashSet, sync::Arc}; +use std::{ + cell::RefCell, + collections::{BTreeMap, HashSet}, + rc::Rc, + sync::Arc, + time::Duration, +}; use uuid::Uuid; use super::SYSTEM_SERVICE; @@ -48,6 +58,19 @@ lazy_static! { )); } +thread_local! { + + pub static BALANCE_FETCH_GUARD_STATE: + Rc>> + = Rc::new(RefCell::new(State::default())); +} + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct BalanceFetchGuardKey { + account_id: AccountId, + asset_id: AssetId, +} + #[derive(Default, Debug)] pub struct AccountService { request_policy_service: Arc, @@ -479,7 +502,7 @@ impl AccountService { pub async fn fetch_account_balances( &self, input: FetchAccountBalancesInput, - ) -> ServiceResult> { + ) -> ServiceResult>> { if input.account_ids.is_empty() || input.account_ids.len() > 5 { Err(AccountError::AccountBalancesBatchRange { min: 1, max: 5 })? } @@ -494,48 +517,176 @@ impl AccountService { .account_repository .find_by_ids(account_ids.iter().map(|id| *id.as_bytes()).collect()); - let mut balances = Vec::new(); - for mut account in accounts { - let account_key = account.to_key(); - for account_asset in account.assets.iter_mut() { - let balance_considered_fresh = match &account_asset.balance { - Some(balance) => { - let balance_age_ns = next_time() - balance.last_modification_timestamp; - (balance_age_ns / 1_000_000) < ACCOUNT_BALANCE_FRESHNESS_IN_MS - } - None => false, - }; + struct BalanceQueryResult { + balance: Option, + update: Option<(AccountId, AssetId, AccountBalance)>, + } - let Some(asset) = self.asset_repository.get(&account_asset.asset_id) else { - continue; - }; + let queries = accounts + .iter() + .flat_map(|account| { + account.assets.iter().map(|account_asset| async { + let balance_considered_fresh = match &account_asset.balance { + Some(balance) => { + let balance_age_ns = next_time() - balance.last_modification_timestamp; + (balance_age_ns / 1_000_000) < ACCOUNT_BALANCE_FRESHNESS_IN_MS + } + None => false, + }; + + let Some(asset) = self.asset_repository.get(&account_asset.asset_id) else { + return BalanceQueryResult { + balance: None, + update: None, + }; + }; - let balance: AccountBalance = match (&account_asset.balance, balance_considered_fresh) { (None, _) | (_, false) => { - let blockchain_api = BlockchainApiFactory::build(&asset.blockchain)?; - let fetched_balance = - blockchain_api.balance(&asset, &account.addresses).await?; - let new_balance = AccountBalance { - balance: candid::Nat(fetched_balance), - last_modification_timestamp: next_time(), + let balance_update_guard_key = BalanceFetchGuardKey { + account_id: account.id, + asset_id: asset.id, }; - account_asset.balance = Some(new_balance.clone()); - - new_balance + let _lock = BALANCE_FETCH_GUARD_STATE.with(|state| { + CallerGuard::new( + state.clone(), + balance_update_guard_key, + Some(time() + Duration::from_secs(5 * 60).as_nanos() as u64), + ) + }); + + if _lock.is_none() { + if let Some(stale_balance) = &account_asset.balance { + BalanceQueryResult { + balance: Some(AccountMapper::to_balance_dto( + stale_balance.to_owned(), + asset.decimals, + account.id, + asset.id, + BalanceQueryState::StaleRefreshing, + )), + update: None, + } + } else { + BalanceQueryResult { + balance: None, + update: None, + } + } + } else { + let blockchain_api = + match BlockchainApiFactory::build(&asset.blockchain) { + Ok(api) => api, + Err(err) => { + ic_cdk::println!( + "Could not build blockchain api for asset with id {}. Error: {}", + Uuid::from_bytes(asset.id).hyphenated(), + err + ); + return BalanceQueryResult { + balance: None, + update: None, + }; + } + }; + + let fetched_balance = match blockchain_api + .balance(&asset, &account.addresses) + .await + { + Ok(balance) => balance, + Err(err) => { + ic_cdk::println!( + "Could not fetch balance for account with id {} and asset with id {}. Error: {}", + Uuid::from_bytes(account.id).hyphenated(), + Uuid::from_bytes(asset.id).hyphenated(), + err + ); + return BalanceQueryResult { + balance: None, + update: None, + }; + } + }; + + let new_balance = AccountBalance { + balance: candid::Nat(fetched_balance), + last_modification_timestamp: next_time(), + }; + + BalanceQueryResult { + update: Some((account.id, asset.id, new_balance.clone())), + balance: Some(AccountMapper::to_balance_dto( + new_balance, + asset.decimals, + account.id, + asset.id, + BalanceQueryState::Fresh, + )), + } + } } - (Some(balance), _) => balance.to_owned(), - }; + (Some(balance), true) => BalanceQueryResult { + balance: Some(AccountMapper::to_balance_dto( + balance.to_owned(), + asset.decimals, + account.id, + asset.id, + BalanceQueryState::Fresh, + )), + update: None, + }, + } + }) + }) + .collect::>(); - balances.push(AccountMapper::to_balance_dto( - balance, - asset.decimals, - account.id, - )); + let balance_query_results = futures::future::join_all(queries).await; + + let mut account_balance_updates: BTreeMap> = + Default::default(); + let mut balances = Vec::new(); + + for result in balance_query_results { + // group updates by account id to avoid multiple updates to the same account + if let Some((account_id, asset_id, balance)) = result.update { + account_balance_updates + .entry(account_id) + .or_default() + .push((asset_id, balance)); } - self.account_repository.insert(account_key.clone(), account); + balances.push(result.balance); + } + + for (account_id, asset_balances) in account_balance_updates.into_iter() { + if let Some(mut account) = self.account_repository.get(&AccountKey { id: account_id }) { + for (asset_id, account_balance) in asset_balances.into_iter() { + if let Some(account_asset) = account + .assets + .iter_mut() + .find(|asset| asset.asset_id == asset_id) + { + account_asset.balance = Some(account_balance); + } else { + // Account no longer has the asset after the balance was fetched + ic_cdk::println!( + "Could not store new balance. Account with id {} no longer has asset with id {}", + Uuid::from_bytes(account_id).hyphenated(), + Uuid::from_bytes(asset_id).hyphenated() + ); + } + } + + self.account_repository.insert(account.to_key(), account); + } else { + // Account no longer exists after the balance was fetched + ic_cdk::println!( + "Could not store new balance. Account with id {} no longer exists", + Uuid::from_bytes(account_id).hyphenated() + ); + } } Ok(balances) diff --git a/libs/orbit-essentials/src/utils/lock.rs b/libs/orbit-essentials/src/utils/lock.rs index fe7c8ec3e..48b916775 100644 --- a/libs/orbit-essentials/src/utils/lock.rs +++ b/libs/orbit-essentials/src/utils/lock.rs @@ -1,19 +1,22 @@ use std::cell::RefCell; use std::cmp::Ord; -use std::collections::BTreeSet; +use std::collections::BTreeMap; use std::rc::Rc; -// The following code implementing canister locks is adapted from +use crate::cdk::api::time; +use std::fmt::Debug; + +// The following code implementing canister locks with optional expiration is adapted from // https://internetcomputer.org/docs/current/developer-docs/security/rust-canister-development-security-best-practices#recommendation-10 pub struct State { - pending_requests: BTreeSet, + pending_requests: BTreeMap>, } impl Default for State { fn default() -> Self { Self { - pending_requests: BTreeSet::new(), + pending_requests: BTreeMap::new(), } } } @@ -23,15 +26,27 @@ pub struct CallerGuard { lock: T, } -impl CallerGuard { - pub fn new(state: Rc>>, lock: T) -> Option { +impl CallerGuard { + pub fn new(state: Rc>>, lock: T, expires_at_ns: Option) -> Option { { let pending_requests = &mut state.borrow_mut().pending_requests; - if pending_requests.contains(&lock) { - return None; + if let Some(existing_request) = pending_requests.get(&lock) { + if let Some(expires_at_ns) = existing_request { + if expires_at_ns > &time() { + // Lock is already held by another caller and has not expired. + return None; + } else { + // Lock has expired, fall through to update the lock. + crate::cdk::api::print(format!("Lock has expired for {:?}", lock)); + } + } else { + // Lock is held indefinitely. + return None; + } } - pending_requests.insert(lock.clone()); + pending_requests.insert(lock.clone(), expires_at_ns); } + Some(Self { state, lock }) } } diff --git a/tests/integration/src/account_tests.rs b/tests/integration/src/account_tests.rs new file mode 100644 index 000000000..56c8b592e --- /dev/null +++ b/tests/integration/src/account_tests.rs @@ -0,0 +1,203 @@ +use std::time::Duration; + +use crate::interfaces::mint_icp; +use crate::setup::{setup_new_env, WALLET_ADMIN_USER}; +use crate::utils::{create_account, expect_await_call_result, get_icp_asset}; +use crate::TestEnv; +use candid::Encode; +use ic_ledger_types::AccountIdentifier; +use orbit_essentials::api::ApiResult; +use pocket_ic::update_candid_as; +use station_api::{ + AddAccountOperationInput, AllowDTO, FetchAccountBalancesInput, FetchAccountBalancesResponse, + MeResponse, RequestPolicyRuleDTO, +}; + +#[test] +fn test_fetch_balances() { + let TestEnv { + env, + canister_ids, + // controller, + minter, + .. + } = setup_new_env(); + + // register user + let res: (ApiResult,) = + update_candid_as(&env, canister_ids.station, WALLET_ADMIN_USER, "me", ()).unwrap(); + let user_dto = res.0.unwrap().me; + + let icp_asset = get_icp_asset(&env, canister_ids.station, WALLET_ADMIN_USER); + + let permission = AllowDTO { + auth_scope: station_api::AuthScopeDTO::Restricted, + user_groups: vec![], + users: vec![user_dto.id.clone()], + }; + + let account = create_account( + &env, + canister_ids.station, + user_dto.identities[0], + AddAccountOperationInput { + name: "test account".to_owned(), + assets: vec![icp_asset.id.clone()], + metadata: vec![], + read_permission: permission.clone(), + configs_permission: permission.clone(), + transfer_permission: permission.clone(), + configs_request_policy: Some(RequestPolicyRuleDTO::AutoApproved), + transfer_request_policy: Some(RequestPolicyRuleDTO::AutoApproved), + }, + ); + + let icp_account_identifier = AccountIdentifier::from_hex( + &account + .addresses + .iter() + .find(|a| a.format == "icp_account_identifier") + .expect("cannot get ICP account identifier") + .address, + ) + .expect("cannot parse ICP account identifier"); + + mint_icp(&env, minter, &icp_account_identifier, 10 * 100_000_000) + .expect("failed to mint ICP to account"); + + let messages_ids = [ + env.submit_call( + canister_ids.station, + user_dto.identities[0], + "fetch_account_balances", + Encode!(&FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }) + .unwrap(), + ) + .expect("failed to submit call"), + env.submit_call( + canister_ids.station, + user_dto.identities[0], + "fetch_account_balances", + Encode!(&FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }) + .unwrap(), + ) + .expect("failed to submit call"), + ]; + + let results = messages_ids + .into_iter() + .map(|message_id| { + expect_await_call_result::<(ApiResult,)>( + env.await_call(message_id).expect("failed to await call"), + ) + .0 + .expect("failed to get result") + }) + .collect::>(); + + results.iter().any(|result| { + result.balances[0] + .as_ref() + .map_or(false, |account_balance| { + account_balance.query_state == "fresh" + }) + }); + results.iter().any(|result| result.balances[0].is_none()); + + let messages_ids = [ + env.submit_call( + canister_ids.station, + user_dto.identities[0], + "fetch_account_balances", + Encode!(&FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }) + .unwrap(), + ) + .expect("failed to submit call"), + env.submit_call( + canister_ids.station, + user_dto.identities[0], + "fetch_account_balances", + Encode!(&FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }) + .unwrap(), + ) + .expect("failed to submit call"), + ]; + + let results = messages_ids + .into_iter() + .map(|message_id| { + expect_await_call_result::<(ApiResult,)>( + env.await_call(message_id).expect("failed to await call"), + ) + .0 + .expect("failed to get result") + }) + .collect::>(); + + results.iter().all(|result| { + result.balances[0] + .as_ref() + .map_or(false, |account_balance| { + account_balance.query_state == "fresh" + }) + }); + + env.advance_time(Duration::from_secs(10)); + + let messages_ids = [ + env.submit_call( + canister_ids.station, + user_dto.identities[0], + "fetch_account_balances", + Encode!(&FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }) + .unwrap(), + ) + .expect("failed to submit call"), + env.submit_call( + canister_ids.station, + user_dto.identities[0], + "fetch_account_balances", + Encode!(&FetchAccountBalancesInput { + account_ids: vec![account.id.clone()], + }) + .unwrap(), + ) + .expect("failed to submit call"), + ]; + + let results = messages_ids + .into_iter() + .map(|message_id| { + expect_await_call_result::<(ApiResult,)>( + env.await_call(message_id).expect("failed to await call"), + ) + .0 + .expect("failed to get result") + }) + .collect::>(); + + results.iter().any(|result| { + result.balances[0] + .as_ref() + .map_or(false, |account_balance| { + account_balance.query_state == "fresh" + }) + }); + results.iter().any(|result| { + result.balances[0] + .as_ref() + .map_or(false, |account_balance| { + account_balance.query_state == "stale_refreshing" + }) + }); +} diff --git a/tests/integration/src/lib.rs b/tests/integration/src/lib.rs index f577de4cb..3f25d735a 100644 --- a/tests/integration/src/lib.rs +++ b/tests/integration/src/lib.rs @@ -3,6 +3,7 @@ use candid::Principal; use pocket_ic::PocketIc; +mod account_tests; mod address_book_tests; mod asset_tests; mod control_panel_tests; diff --git a/tests/integration/src/transfer_tests.rs b/tests/integration/src/transfer_tests.rs index 18c071b1f..cf8e349fb 100644 --- a/tests/integration/src/transfer_tests.rs +++ b/tests/integration/src/transfer_tests.rs @@ -447,7 +447,10 @@ fn make_icrc1_transfer() { ); assert_eq!( - account_balances.balances[0].balance, + account_balances.balances[0] + .as_ref() + .expect("should have balance") + .balance, candid::Nat::from(999_850u128) ); @@ -555,7 +558,10 @@ fn make_icrc1_icp_transfer() { ); assert_eq!(account_balances.balances.len(), 1); assert_eq!( - account_balances.balances[0].balance, + account_balances.balances[0] + .as_ref() + .expect("should have balance") + .balance, candid::Nat::from(30 * 100_000_000u64) ); @@ -589,7 +595,10 @@ fn make_icrc1_icp_transfer() { ); assert_eq!(account_balances.balances.len(), 1); assert_eq!( - account_balances.balances[0].balance, + account_balances.balances[0] + .as_ref() + .expect("should have balance") + .balance, candid::Nat::from(5 * 100_000_000u64 - 10_000) ); } diff --git a/tests/integration/src/utils.rs b/tests/integration/src/utils.rs index 97d337345..6029a06e0 100644 --- a/tests/integration/src/utils.rs +++ b/tests/integration/src/utils.rs @@ -1,7 +1,8 @@ use crate::setup::{create_canister, get_canister_wasm, WALLET_ADMIN_USER}; use crate::test_data::asset::list_assets; +use candid::utils::ArgumentDecoder; use candid::Principal; -use candid::{CandidType, Encode}; +use candid::{decode_args, CandidType, Encode}; use control_panel_api::UploadCanisterModulesInput; use flate2::{write::GzEncoder, Compression}; use ic_certified_assets::types::{ @@ -1094,3 +1095,16 @@ pub(crate) fn add_external_canister_call_any_method_permission_and_approval( ) .expect("Failed to add approval policy to call external canister"); } + +pub fn expect_await_call_result(result: WasmResult) -> T +where + T: for<'a> ArgumentDecoder<'a>, +{ + match result { + WasmResult::Reply(vec) => { + let result: T = decode_args(&vec).expect("Failed to decode result"); + result + } + WasmResult::Reject(error) => panic!("Unexpected reject: {error}"), + } +} From d118b3d3e332279d70c20b1e1558c1b1d82514e9 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Tue, 26 Nov 2024 16:42:00 +0100 Subject: [PATCH 17/18] docs(station): update glossary (#435) Co-authored-by: Kepler Vital --- docs/GLOSSARY.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/GLOSSARY.md b/docs/GLOSSARY.md index 2a252ed74..f66245d13 100644 --- a/docs/GLOSSARY.md +++ b/docs/GLOSSARY.md @@ -131,21 +131,29 @@ Request Policy Approval is the process of approving a request. Users can add the Permissions are rules that define the functionality that a user can access in a station canister. Permissions are defined by the authorized station users and can be customized to fit the needs of different use cases. Permissions can be granted to individual users, groups of users or any (un)authenticated user and can be revoked at any time. +### Asset + +An Orbit Asset holds metadata about an asset on the blockchain. Besides typical properties like Name and Symbol, it also stores which blockchain the asset is on, what token standards it supports, the contract address(es), etc. Assets can be added/changed/removed through requests. The native ICP asset is added by default to new Orbit stations. + ### Account -An account is a record in the station canister that represents a user's ownership of a specific asset. Accounts can hold different types of assets, such as tokens, NFTs, or other fungible or non-fungible assets. Accounts can be created, updated, and archived by the station users through requests. +An account is a record in the station canister that represents a user's ownership of specific assets. Accounts can hold multiple types of assets, such as tokens, NFTs, or other fungible or non-fungible assets. Accounts can be created, updated, and archived by the station users through requests. #### Account Name An account name is a human-readable name that represents the account in the station canister. Account names can be customized by privileged users and are unique within the station canister. +#### Account Asset + +An account can hold multiple types of assets, on any supported blockchains, and any supported standards. Assets can be added and removed from accounts. Removing an asset does not result in losing funds, readding the asset restores access. + #### Account Address -An account address is a unique identifier that represents the account address in relation to the asset it holds. +An account address is a unique identifier that represents the account address in relation to the asset it holds. An account can have many addresses derived from the account seed, as assets support different token standards and address formats. #### Account Balance -An account balance is the amount of a specific asset that an account holds. Account balances are updated when assets are deposited or withdrawn from the account. +An account asset's balance is the amount of a specific asset that an account holds. Account balances are updated when assets are deposited or withdrawn from the account. ### Address Book From c6bde2fb7a3e7edf97383f739ab525c904fc1c01 Mon Sep 17 00:00:00 2001 From: olaszakos Date: Tue, 26 Nov 2024 16:47:14 +0100 Subject: [PATCH 18/18] fix account comment --- core/station/impl/src/models/account.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/station/impl/src/models/account.rs b/core/station/impl/src/models/account.rs index 57a4f8bab..b614a7086 100644 --- a/core/station/impl/src/models/account.rs +++ b/core/station/impl/src/models/account.rs @@ -23,8 +23,8 @@ pub type AccountSeed = UUID; /// Represents a account in the system. /// -/// A account can be associated with one or more users and can only hold one type of asset, -/// which is defined by the blockchain, standard and symbol. +/// A account can be associated with one or more users and can hold multiple types of assets. An account +/// can have multiple addresses, one of each address format that the assets support. #[storable(skip_deserialize = true)] #[derive(Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct Account {