From 4ddc733fc26105b9ef9b9657f18f209e9b9f862e Mon Sep 17 00:00:00 2001 From: OWK50GA Date: Mon, 24 Mar 2025 06:16:12 +0100 Subject: [PATCH 1/2] feat: implement content metadata struct and storage --- .tool-versions | 1 + src/chainlib/ChainLib.cairo | 46 +++++++++++++++++++++++++++++++++++++ src/lib.cairo | 28 +++------------------- 3 files changed, 50 insertions(+), 25 deletions(-) create mode 100644 .tool-versions diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..ff54753 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +scarb 2.8.4 diff --git a/src/chainlib/ChainLib.cairo b/src/chainlib/ChainLib.cairo index e69de29..56fbbce 100644 --- a/src/chainlib/ChainLib.cairo +++ b/src/chainlib/ChainLib.cairo @@ -0,0 +1,46 @@ +#[starknet::contract] +pub mod ChainLib { + + + use starknet::{ContractAddress}; + use starknet::storage::{ + Map, StoragePathEntry, StoragePointerReadAccess, StoragePointerWriteAccess + }; + + #[derive(Copy, Drop, Serde, starknet::Store, PartialEq, Debug)] + pub enum ContentType { + #[default] + Text, + Video, + Image, + // Any other content type + } + + #[derive(Copy, Drop, Serde, starknet::Store, PartialEq, Debug)] + pub enum Category { + Software, + #[default] + Education, + Literature, + Art + } + + #[derive(Copy, Drop, Serde, starknet::Store, Debug)] + pub struct ContentMetadata { + pub content_id: felt252, + pub title: felt252, + pub description: felt252, + pub content_type: ContentType, + pub creator: ContractAddress, + pub category: Category + } + + #[storage] + struct Storage { + owner: ContractAddress, + creators_content: Map::, + content: Map::, + content_tags: Map::> + } + +} \ No newline at end of file diff --git a/src/lib.cairo b/src/lib.cairo index 8cd1124..c9f91cd 100644 --- a/src/lib.cairo +++ b/src/lib.cairo @@ -1,25 +1,3 @@ -#[starknet::interface] -pub trait IHelloStarknet { - fn increase_balance(ref self: TContractState, amount: felt252); - fn get_balance(self: @TContractState) -> felt252; -} - -#[starknet::contract] -mod HelloStarknet { - #[storage] - struct Storage { - balance: felt252, - } - - #[abi(embed_v0)] - impl HelloStarknetImpl of super::IHelloStarknet { - fn increase_balance(ref self: ContractState, amount: felt252) { - assert(amount != 0, 'Amount cannot be 0'); - self.balance.write(self.balance.read() + amount); - } - - fn get_balance(self: @ContractState) -> felt252 { - self.balance.read() - } - } -} +pub mod chainlib{ + pub mod ChainLib; +} \ No newline at end of file From 36da0a25d2c705194bdd2e6c11b139a0c21386e0 Mon Sep 17 00:00:00 2001 From: OWK50GA Date: Wed, 26 Mar 2025 12:04:02 +0100 Subject: [PATCH 2/2] scarb fmt --- src/chainlib/ChainLib.cairo | 11 ++++------- src/lib.cairo | 4 ++-- tests/test_contract.cairo | 1 + 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/chainlib/ChainLib.cairo b/src/chainlib/ChainLib.cairo index 56fbbce..fe87a2b 100644 --- a/src/chainlib/ChainLib.cairo +++ b/src/chainlib/ChainLib.cairo @@ -1,12 +1,10 @@ #[starknet::contract] pub mod ChainLib { - - use starknet::{ContractAddress}; use starknet::storage::{ Map, StoragePathEntry, StoragePointerReadAccess, StoragePointerWriteAccess }; - + #[derive(Copy, Drop, Serde, starknet::Store, PartialEq, Debug)] pub enum ContentType { #[default] @@ -15,7 +13,7 @@ pub mod ChainLib { Image, // Any other content type } - + #[derive(Copy, Drop, Serde, starknet::Store, PartialEq, Debug)] pub enum Category { Software, @@ -24,7 +22,7 @@ pub mod ChainLib { Literature, Art } - + #[derive(Copy, Drop, Serde, starknet::Store, Debug)] pub struct ContentMetadata { pub content_id: felt252, @@ -42,5 +40,4 @@ pub mod ChainLib { content: Map::, content_tags: Map::> } - -} \ No newline at end of file +} diff --git a/src/lib.cairo b/src/lib.cairo index c9f91cd..b490071 100644 --- a/src/lib.cairo +++ b/src/lib.cairo @@ -1,3 +1,3 @@ -pub mod chainlib{ +pub mod chainlib { pub mod ChainLib; -} \ No newline at end of file +} diff --git a/tests/test_contract.cairo b/tests/test_contract.cairo index e69de29..8b13789 100644 --- a/tests/test_contract.cairo +++ b/tests/test_contract.cairo @@ -0,0 +1 @@ +