forked from Lilly-Protocol/lily-contracts
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcross_contract.rs
More file actions
66 lines (51 loc) · 2.45 KB
/
Copy pathcross_contract.rs
File metadata and controls
66 lines (51 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
use lily_test_support::{test_address, test_env};
use payments::{PaymentsContract, PaymentsContractClient};
use protocol::{ProtocolContract, ProtocolContractClient};
#[test]
fn cross_contract_config_parity_and_independent_control() {
let env = test_env();
let admin = test_address(&env);
let treasury = test_address(&env);
let wallet = test_address(&env);
let new_admin = test_address(&env);
let protocol_id = env.register(ProtocolContract, ());
let payments_id = env.register(PaymentsContract, ());
let protocol_client = ProtocolContractClient::new(&env, &protocol_id);
let payments_client = PaymentsContractClient::new(&env, &payments_id);
protocol_client.initialize(&admin, &treasury, &100_u32);
payments_client.initialize(&admin, &treasury, &100_u32, &wallet);
let protocol_config = protocol_client.get_config();
let payments_config = payments_client.get_config();
assert_eq!(protocol_config.admin, admin);
assert_eq!(payments_config.admin, admin);
assert_eq!(protocol_config.treasury, treasury);
assert_eq!(payments_config.treasury, treasury);
assert_eq!(protocol_config.fee_bps, 100);
assert_eq!(payments_config.fee_bps, 100);
assert_eq!(payments_config.wallet, wallet);
protocol_client.transfer_admin(&new_admin);
let protocol_config_after = protocol_client.get_config();
let payments_config_after = payments_client.get_config();
assert_eq!(protocol_config_after.admin, new_admin);
assert_eq!(payments_config_after.admin, admin);
assert_eq!(protocol_config_after.treasury, treasury);
assert_eq!(payments_config_after.treasury, treasury);
assert_eq!(protocol_config_after.fee_bps, 100);
assert_eq!(payments_config_after.fee_bps, 100);
}
#[test]
fn independent_fee_updates() {
let env = test_env();
let admin = test_address(&env);
let treasury = test_address(&env);
let wallet = test_address(&env);
let protocol_id = env.register(ProtocolContract, ());
let payments_id = env.register(PaymentsContract, ());
let protocol_client = ProtocolContractClient::new(&env, &protocol_id);
let payments_client = PaymentsContractClient::new(&env, &payments_id);
protocol_client.initialize(&admin, &treasury, &100_u32);
payments_client.initialize(&admin, &treasury, &100_u32, &wallet);
protocol_client.set_fee_bps(&200_u32);
assert_eq!(protocol_client.get_config().fee_bps, 200);
assert_eq!(payments_client.get_config().fee_bps, 100);
}