From 52c0db31df36d1b9dc451327bb4757062f0b4cdf Mon Sep 17 00:00:00 2001 From: Omowumi Balogun Date: Sat, 16 May 2026 08:12:39 +0100 Subject: [PATCH 1/2] feat: add contracts/guardian/src/types.rs stub --- contracts/guardian/src/types.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 contracts/guardian/src/types.rs diff --git a/contracts/guardian/src/types.rs b/contracts/guardian/src/types.rs new file mode 100644 index 0000000..6ec8ae4 --- /dev/null +++ b/contracts/guardian/src/types.rs @@ -0,0 +1,25 @@ +use soroban_sdk::{contracttype, Address}; + +/// Opaque identifier for a child wallet account managed by a guardian. +pub type ChildId = Address; + +/// Maximum amount (in stroops) a child may spend in a single transaction. +pub type SpendLimit = u64; + +/// Period over which the spend limit resets. +#[contracttype] +#[derive(Clone, Debug, Eq, PartialEq)] +pub enum LimitPeriod { + Daily, + Weekly, + Monthly, +} + +/// Full spending policy attached to a child account. +#[contracttype] +#[derive(Clone, Debug, Eq, PartialEq)] +pub struct SpendPolicy { + pub child: ChildId, + pub limit: SpendLimit, + pub period: LimitPeriod, +} From bc5f4dcf966d7343d4a08d87cb44f876ae68dc81 Mon Sep 17 00:00:00 2001 From: Omowumi Balogun Date: Sat, 16 May 2026 08:12:40 +0100 Subject: [PATCH 2/2] feat: add contracts/guardian/src/types.rs stub --- contracts/guardian/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/guardian/src/lib.rs b/contracts/guardian/src/lib.rs index 0efa0cc..e7969d1 100644 --- a/contracts/guardian/src/lib.rs +++ b/contracts/guardian/src/lib.rs @@ -1,5 +1,6 @@ #![no_std] pub mod error; +pub mod types; use soroban_sdk::{contract, contractimpl, Env}; /// Enforces guardian-controlled spending policies for child wallet accounts on the Stellar network.