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
4 changes: 4 additions & 0 deletions packages/pas/sources/account.move
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ module pas::account;

use pas::{
clawback_funds::{Self, ClawbackFunds},
events,
keys,
namespace::{Self, Namespace},
request::Request,
Expand Down Expand Up @@ -76,6 +77,7 @@ public fun unlock_balance<C>(
): Request<UnlockFunds<Balance<C>>> {
auth.assert_is_valid_for_account!(account);
account.versioning.assert_is_valid_version();
events::emit_funds_unlocked<Balance<C>>(account.owner, amount);
unlock_funds::new(account.owner, account.id.to_inner(), account.withdraw_balance<C>(amount))
}

Expand All @@ -102,6 +104,7 @@ public fun clawback_balance<C>(
_ctx: &mut TxContext,
): Request<ClawbackFunds<Balance<C>>> {
from.versioning.assert_is_valid_version();
events::emit_funds_clawback<Balance<C>>(from.owner, amount);
clawback_funds::new(from.owner, from.id.to_inner(), from.withdraw_balance<C>(amount))
}

Expand Down Expand Up @@ -174,6 +177,7 @@ fun internal_send_balance<C>(
): Request<SendFunds<Balance<C>>> {
let funds = from.withdraw_balance<C>(amount);
let recipient_account_id = namespace::account_address_from_id(from.namespace_id, to);
events::emit_funds_sent<Balance<C>>(from.owner, to, amount);

send_funds::new(
from.owner,
Expand Down
31 changes: 31 additions & 0 deletions packages/pas/sources/events.move
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module pas::events;

use sui::event;

public struct FundsSent<phantom T> has copy, drop {
sender: address,
recipient: address,
amount: u64,
}

public struct FundsClawback<phantom T> has copy, drop {
owner: address,
amount: u64,
}

public struct FundsUnlocked<phantom T> has copy, drop {
owner: address,
amount: u64,
}

public(package) fun emit_funds_sent<T>(sender: address, recipient: address, amount: u64) {
event::emit(FundsSent<T> { sender, recipient, amount });
}

public(package) fun emit_funds_clawback<T>(owner: address, amount: u64) {
event::emit(FundsClawback<T> { owner, amount });
}

public(package) fun emit_funds_unlocked<T>(owner: address, amount: u64) {
event::emit(FundsUnlocked<T> { owner, amount });
}