diff --git a/src/metadata/slots/karathuru/data.cairo b/src/metadata/slots/karathuru/data.cairo index 8a0b74e..d2affd7 100644 --- a/src/metadata/slots/karathuru/data.cairo +++ b/src/metadata/slots/karathuru/data.cairo @@ -65,8 +65,8 @@ fn add_description_(ref data: Array) { data.append('trees (2,500 per ha), and the '); data.append('restoration of a carbon sink t'); data.append('hat will result in a forecasted'); - data.append('amount of 374,285 certified '); - data.append(' carbon units amongst which '); + data.append(' amount of 374,285 certified '); + data.append('carbon units amongst which '); data.append('187,142 Carbon Units will be '); data.append('reserved for investors and the '); data.append('other half to local communities'); diff --git a/src/metadata/slots/template/data.cairo b/src/metadata/slots/template/data.cairo index 9741cd2..7ce84ab 100644 --- a/src/metadata/slots/template/data.cairo +++ b/src/metadata/slots/template/data.cairo @@ -199,18 +199,26 @@ fn generate_sdgs_rows_(storage: StorageData, sdgs: Span) -> String { #[inline(always)] fn format_capacity_(capacity: u256) -> String { - if capacity < 1000 { + if capacity < 1_000 { let mut res = capacity.to_ascii(); res.append('g'); res.span() - } else if capacity < 1000000 { - let mut res = (capacity / 1000).to_ascii(); + } else if capacity < 1_000_000 { + let mut res = (capacity / 1_000).to_ascii(); res.append('kg'); res.span() - } else { + } else if capacity < 1_000_000_000 { let mut res = (capacity / 1_000_000).to_ascii(); res.append('t'); res.span() + } else if capacity < 1_000_000_000_000 { + let mut res = (capacity / 1_000_000_000).to_ascii(); + res.append('kt'); + res.span() + } else { + let mut res = (capacity / 1_000_000_000_000).to_ascii(); + res.append('Mt'); + res.span() } } diff --git a/src/metadata/slots/template/generate_slot.cairo b/src/metadata/slots/template/generate_slot.cairo index dd227a2..fecb07a 100644 --- a/src/metadata/slots/template/generate_slot.cairo +++ b/src/metadata/slots/template/generate_slot.cairo @@ -86,9 +86,7 @@ fn generate_data(static: ProjectStaticData, storage: StorageData) -> TemplateDat let status: ProjectStatus = template_data::get_status_(storage); let size: AssetSize = template_data::get_asset_size_(static, storage); let empty = array![''].span(); - let total_project_cu = storage.final_absorption / storage.ton_equivalent; - let project_remaining_cu = (storage.final_absorption - storage.current_absorption) - / storage.ton_equivalent; + let project_remaining_cu = storage.final_absorption - storage.current_absorption; TemplateData { project: static, @@ -99,8 +97,8 @@ fn generate_data(static: ProjectStaticData, storage: StorageData) -> TemplateDat status: status.to_string(), project_area: array![static.area.to_ascii()].span(), end_year: array![static.end_year.to_ascii()].span(), - project_carbon_units: array![project_remaining_cu.to_ascii()].span(), - asset_carbon_units: array![static.total_cu.to_ascii(), 't'].span(), + project_carbon_units: array![static.total_cu.to_ascii()].span(), + asset_carbon_units: template_data::format_capacity_(project_remaining_cu.into()), lifetime_asset_carbon_units: empty, asset_area_formatted: array![static.area.to_ascii(), 'ha'].span(), asset_area: empty, diff --git a/src/metadata/slots/template/generate_token.cairo b/src/metadata/slots/template/generate_token.cairo index 71aab22..38fe995 100644 --- a/src/metadata/slots/template/generate_token.cairo +++ b/src/metadata/slots/template/generate_token.cairo @@ -86,9 +86,7 @@ fn generate_data(static: ProjectStaticData, storage: StorageData) -> TemplateDat let status: ProjectStatus = template_data::get_status_(storage); let size: AssetSize = template_data::get_asset_size_(static, storage); let null = array![''].span(); - let total_project_cu = storage.final_absorption / storage.ton_equivalent; - let project_remaining_cu = (storage.final_absorption - storage.current_absorption) - / storage.ton_equivalent; + let project_remaining_cu = storage.final_absorption - storage.current_absorption; TemplateData { project: static, diff --git a/src/tests/mocks/project.cairo b/src/tests/mocks/project.cairo index 391965a..ad3145c 100644 --- a/src/tests/mocks/project.cairo +++ b/src/tests/mocks/project.cairo @@ -55,17 +55,20 @@ mod ProjectMock { fn get_absorptions(self: @ContractState, slot: u256) -> Span { Default::default().span() } + fn get_absorption(self: @ContractState, slot: u256, time: u64) -> u64 { - 100 * 1_000_000 + time * 1_000 } fn get_current_absorption(self: @ContractState, slot: u256) -> u64 { - 778 * 1_000_000 + // 157_300001 + 41040_000001 } fn get_final_absorption(self: @ContractState, slot: u256) -> u64 { - 4096 * 1_000_000 + 410400_000000 // Karathuru + // 1573_000000 // BanegasFarm } fn get_project_value(self: @ContractState, slot: u256) -> u256 { - 42_000 * 1_000_000 + 2_139_004_800000 } fn get_ton_equivalent(self: @ContractState, slot: u256) -> u64 { 1_000_000 @@ -116,7 +119,7 @@ mod ProjectMock { } fn value_of(self: @ContractState, token_id: u256) -> u256 { - 369 * 1_000_000 + 200 * 1_000000 } fn slot_of(self: @ContractState, token_id: u256) -> u256 { diff --git a/src/tests/test_slot_metadata.cairo b/src/tests/test_slot_metadata.cairo index 6769aa8..b02a4b1 100644 --- a/src/tests/test_slot_metadata.cairo +++ b/src/tests/test_slot_metadata.cairo @@ -133,6 +133,8 @@ fn test_construct_slot_uri() { }; set_contract_address(project_address); + set_block_timestamp(1750425366); + let uri: Span = metadata.construct_slot_uri(slot); let mut uri_span = uri;