Skip to main content

vialabs_stellar_common/
events.rs

1/// # Events Module
2///
3/// This module provides event types for contract operations.
4use soroban_sdk::{contractevent, Address, Bytes, Vec};
5
6/* send events */
7#[contractevent]
8#[derive(Clone, Debug, PartialEq)]
9pub struct SendRequested {
10  pub tx_id: u128,
11  // Commented out, cannot guarantee sending contracts address on chain,
12  // this is now derived off-chain in the StellarV4.ts driver
13  // pub sender: Bytes,
14  pub recipient: Bytes,
15  pub destination_chain: u64,
16  pub chain_data: Bytes,
17  pub confirmations: u32,
18}
19
20/* system setup & config events */
21#[contractevent]
22#[derive(Clone, Debug, PartialEq)]
23pub struct SetSystemEnabled {
24  #[topic]
25  pub system_enabled: bool,
26}
27
28#[contractevent]
29#[derive(Clone, Debug, PartialEq)]
30pub struct SetViaSigners {
31  pub via_signers: Vec<Address>,
32  pub required: u32,
33}
34
35#[contractevent]
36#[derive(Clone, Debug, PartialEq)]
37pub struct SetChainSigners {
38  pub chain_signers: Vec<Address>,
39  pub required: u32,
40}
41
42#[contractevent]
43#[derive(Clone, Debug, PartialEq)]
44pub struct SetRelayers {
45  pub relayers: Vec<Address>,
46  pub required: bool,
47}
48
49#[contractevent]
50#[derive(Clone, Debug, PartialEq)]
51pub struct SetContractRelayers {
52  pub contract: Address,
53  pub relayers: Vec<Address>,
54}
55
56#[contractevent]
57#[derive(Clone, Debug, PartialEq)]
58pub struct SetProjectSigners {
59  pub contract: Address,
60  pub signers: Vec<Address>,
61  pub required: u32,
62}
63
64/* process events */
65#[contractevent]
66#[derive(Clone, Debug, PartialEq)]
67pub struct SendProcessed {}
68
69/* gas events */
70#[contractevent]
71#[derive(Clone, Debug, PartialEq)]
72pub struct SetMaxGasAmount {
73  pub max_gas_amount: u64,
74  pub client_contract: Address,
75}
76
77#[contractevent]
78#[derive(Clone, Debug, PartialEq)]
79pub struct SetGasHandler {
80  pub gas_handler: Address,
81}
82
83#[contractevent]
84#[derive(Clone, Debug, PartialEq)]
85pub struct SetFeeHandler {
86  pub fee_handler: Address,
87}
88
89/* fees events */
90#[contractevent]
91#[derive(Clone, Debug, PartialEq)]
92pub struct SetFeesOffline {
93  pub status: bool,
94}
95
96#[contractevent]
97#[derive(Clone, Debug, PartialEq)]
98pub struct SetCustomSourceFee {
99  pub client_contract: Address,
100  pub amount: u64,
101}
102
103#[contractevent]
104#[derive(Clone, Debug, PartialEq)]
105pub struct SetMaxFeeAmount {
106  pub client_contract: Address,
107  pub amount: u64,
108}
109
110#[contractevent]
111#[derive(Clone, Debug, PartialEq)]
112pub struct SetFeeTokenContract {
113  pub client_contract: Address,
114  pub contract: Address,
115}
116
117#[contractevent]
118#[derive(Clone, Debug, PartialEq)]
119pub struct SetTokenContract {
120  pub client_contract: Address,
121  pub token_contract: Address,
122}
123
124/* pos events */
125#[contractevent]
126#[derive(Clone, Debug, PartialEq)]
127pub struct SetPosHandler {
128  pub pos_handler: Address,
129}