diff --git a/packages/pas/sources/account.move b/packages/pas/sources/account.move index 7e41057..8f3fd34 100644 --- a/packages/pas/sources/account.move +++ b/packages/pas/sources/account.move @@ -3,6 +3,7 @@ module pas::account; use pas::{ clawback_funds::{Self, ClawbackFunds}, + events, keys, namespace::{Self, Namespace}, request::Request, @@ -76,6 +77,7 @@ public fun unlock_balance( ): Request>> { auth.assert_is_valid_for_account!(account); account.versioning.assert_is_valid_version(); + events::emit_funds_unlocked>(account.owner, amount); unlock_funds::new(account.owner, account.id.to_inner(), account.withdraw_balance(amount)) } @@ -102,6 +104,7 @@ public fun clawback_balance( _ctx: &mut TxContext, ): Request>> { from.versioning.assert_is_valid_version(); + events::emit_funds_clawback>(from.owner, amount); clawback_funds::new(from.owner, from.id.to_inner(), from.withdraw_balance(amount)) } @@ -174,6 +177,7 @@ fun internal_send_balance( ): Request>> { let funds = from.withdraw_balance(amount); let recipient_account_id = namespace::account_address_from_id(from.namespace_id, to); + events::emit_funds_sent>(from.owner, to, amount); send_funds::new( from.owner, diff --git a/packages/pas/sources/events.move b/packages/pas/sources/events.move new file mode 100644 index 0000000..d933f48 --- /dev/null +++ b/packages/pas/sources/events.move @@ -0,0 +1,31 @@ +module pas::events; + +use sui::event; + +public struct FundsSent has copy, drop { + sender: address, + recipient: address, + amount: u64, +} + +public struct FundsClawback has copy, drop { + owner: address, + amount: u64, +} + +public struct FundsUnlocked has copy, drop { + owner: address, + amount: u64, +} + +public(package) fun emit_funds_sent(sender: address, recipient: address, amount: u64) { + event::emit(FundsSent { sender, recipient, amount }); +} + +public(package) fun emit_funds_clawback(owner: address, amount: u64) { + event::emit(FundsClawback { owner, amount }); +} + +public(package) fun emit_funds_unlocked(owner: address, amount: u64) { + event::emit(FundsUnlocked { owner, amount }); +}