Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/mods.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ pub mod interfaces {
}

pub mod weaver_contract {
pub mod weaver_component;
pub mod weaver;
}

Expand Down
1 change: 0 additions & 1 deletion src/mods/errors.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ pub mod Errors {
pub const TASK_NOT_EXISTS: felt252 = 'TASK_NOT_EXISTS';
pub const PROTOCOL_ALREADY_REGISTERED: felt252 = 'PROTOCOL_ALREADY_REGISTERED';
pub const PROTOCOL_DOES_NOT_EXIST: felt252 = 'PROTOCOL_DOES_NOT_EXIT';
pub const INVALID_PROTOCOL_NAME: felt252 = 'INVALID_PROTOCOL_NAME';
pub const UNAUTHORIZED: felt252 = 'UNAUTHORIZED';
pub const INVALID_ADDRESS: felt252 = 'INVALID_ADDRESS';
pub const CLASS_HASH_CANNOT_BE_ZERO: felt252 = 'CLASS_HASH_CANNOT_BE_ZERO';
Expand Down
13 changes: 12 additions & 1 deletion src/mods/events.cairo
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
use starknet::{ClassHash, ContractAddress};


#[derive(Copy, Drop, Serde)]
pub enum UserEventType {
Register
}


#[derive(Copy, Drop, Debug, PartialEq, starknet::Event)]
pub struct Upgraded {
#[key]
pub implementation: ClassHash,
}

#[derive(Copy, Drop, Debug, PartialEq, starknet::Event)]
#[derive(Copy, Drop, starknet::Event)]
pub struct UserRegistered {
#[key]
pub user_id: u256,
#[key]
pub user: ContractAddress,
#[key]
pub event_type: UserEventType,
pub block_timestamp: u64,
}


Expand Down
16 changes: 5 additions & 11 deletions src/mods/interfaces/IWeaver.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,9 @@ use starknet::class_hash::ClassHash;
use crate::mods::types::{ProtocolInfo, TaskInfo, User};

#[starknet::interface]
pub trait IWeaver<TContractState> {
fn register_User(ref self: TContractState, Details: ByteArray);
fn set_erc721(ref self: TContractState, address: ContractAddress);
fn get_register_user(self: @TContractState, address: ContractAddress) -> User;
fn version(self: @TContractState) -> u16;
fn upgrade(ref self: TContractState, Imp_hash: ClassHash);
fn owner(self: @TContractState) -> ContractAddress;
fn erc_721(self: @TContractState) -> ContractAddress;
fn mint(ref self: TContractState, task_id: u256);
fn get_task_info(self: @TContractState, task_id: u256) -> TaskInfo;
fn get_registered_protocols(self: @TContractState, address: ContractAddress) -> ProtocolInfo;
pub trait IWeaver<TState> {
fn register_User(ref self: TState, Details: ByteArray);

fn get_register_user(self: @TState, address: ContractAddress) -> User;
fn get_owner(self: @TState) -> ContractAddress;
}
15 changes: 7 additions & 8 deletions src/mods/interfaces/Iprotocol.cairo
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
use starknet::ContractAddress;
use starknet::class_hash::ClassHash;
use crate::mods::types::CampaignMembers;
use crate::mods::types::ProtocolDetails;
use crate::mods::types::ProtocolCreateTask;
use crate::mods::types::ProtocolInfo;


#[starknet::interface]
pub trait IProtocol<TState> {
Expand All @@ -14,7 +16,6 @@ pub trait IProtocol<TState> {
) -> u256;
fn join_protocol_campaign(ref self: TState, campaign_user: ContractAddress, protocol_id: u256);
fn set_protocol_matadata_uri(ref self: TState, protocol_id: u256, matadata_uri: ByteArray);
fn create_task(ref self: TState, task_description: ByteArray) -> u256;
fn protocol_register(ref self: TState, protocol_Details: ByteArray);
fn verfify_protocol(ref self: TState, protocol_address: ContractAddress);

Expand All @@ -23,21 +24,19 @@ pub trait IProtocol<TState> {
// GETTER
// *************************************************************************

fn is_task_complete(ref self: TState, campaign_user: ContractAddress, task_id: u256) -> bool;
fn mark_task_complete(ref self: TState, campaign_user: ContractAddress, task_id: u256);
fn is_campaign_member(
self: @TState, campaign_user: ContractAddress, protocol_id: u256
) -> (bool, CampaignMembers);

fn get_protocol(self: @TState, protocol_id: u256) -> ProtocolDetails;

fn get_protocol_matadata_uri(self: @TState, protocol_id: u256) -> ByteArray;
fn get_protocol_campaign_users(self: @TState, protocol_id: u256) -> u256;

fn get_protocol_tasks_details(self: @TState, protocol_id: u256) -> ProtocolCreateTask;
fn get_campaign_members(self: @TState, protocol_id: u256) -> CampaignMembers;

fn get_protocol_task_descriptions(self: @TState, task_id: u256) -> ByteArray;
fn get_registered_protocol(self: @TState, protocol_owner: ContractAddress) -> ProtocolInfo;

fn get_protocol_campaign_users(self: @TState, protocol_id: u256) -> u256;

fn get_campaign_members(self: @TState, protocol_id: u256) -> CampaignMembers;
fn get_protocol_nft_class_hash(self: @TState) -> ClassHash;
}
Loading
Loading