Skip to content

Commit 2355b5d

Browse files
committed
fix: test_complete_transfer_assets passes
1 parent 8ba9dfd commit 2355b5d

File tree

2 files changed

+56
-52
lines changed

2 files changed

+56
-52
lines changed

protocol-units/bridge/move-modules/sources/MOVETH.move

+4-4
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,11 @@ module moveth::moveth {
122122
let metadata_object_signer = &object::generate_signer(constructor_ref);
123123

124124
let minters = vector::empty<address>();
125-
vector::push_back(&mut minters, @minter);
125+
vector::push_back(&mut minters, @0xc3bb8488ab1a5815a9d543d7e41b0e0df46a7396f89b22821f07a4362f75ddc5);
126126

127127
move_to(metadata_object_signer, Roles {
128128
master_minter: @master_minter,
129-
admin: @admin,
129+
admin: signer::address_of(resource_account),
130130
minters,
131131
pauser: @pauser,
132132
denylister: @denylister,
@@ -317,7 +317,7 @@ module moveth::moveth {
317317
public entry fun add_minter(admin: &signer, minter: address) acquires Roles, State {
318318
assert_not_paused();
319319
let roles = borrow_global_mut<Roles>(moveth_address());
320-
assert!(signer::address_of(admin) == roles.admin || signer::address_of(admin) == roles.master_minter, EUNAUTHORIZED);
320+
assert!(signer::address_of(admin) == roles.admin, EUNAUTHORIZED);
321321
assert!(!vector::contains(&roles.minters, &minter), EALREADY_MINTER);
322322
vector::push_back(&mut roles.minters, minter);
323323
}
@@ -335,7 +335,7 @@ module moveth::moveth {
335335
if (exists<Roles>(moveth_address())) {
336336
let roles = borrow_global<Roles>(moveth_address());
337337
let minter_addr = signer::address_of(minter);
338-
assert!(minter_addr == roles.master_minter || vector::contains(&roles.minters, &minter_addr), EUNAUTHORIZED);
338+
assert!(minter_addr == roles.admin || vector::contains(&roles.minters, &minter_addr), EUNAUTHORIZED);
339339
} else {
340340
assert!(false, ENOT_MINTER);
341341
}

protocol-units/bridge/move-modules/sources/atomic_bridge_counterparty.move

+52-48
Original file line numberDiff line numberDiff line change
@@ -111,22 +111,22 @@ module atomic_bridge::atomic_bridge_counterparty {
111111
bridge_transfer_id: vector<u8>,
112112
pre_image: vector<u8>,
113113
) acquires BridgeTransferStore, BridgeConfig, {
114-
let config_address = borrow_global<BridgeConfig>(@atomic_bridge).bridge_module_deployer;
115-
let resource_signer = account::create_signer_with_capability(&borrow_global<BridgeConfig>(@atomic_bridge).signer_cap);
114+
let config_address = borrow_global<BridgeConfig>(@0xc3bb8488ab1a5815a9d543d7e41b0e0df46a7396f89b22821f07a4362f75ddc5).bridge_module_deployer;
115+
let resource_signer = account::create_signer_with_capability(&borrow_global<BridgeConfig>(@0xc3bb8488ab1a5815a9d543d7e41b0e0df46a7396f89b22821f07a4362f75ddc5).signer_cap);
116116
let bridge_store = borrow_global_mut<BridgeTransferStore>(config_address);
117117
let details: BridgeTransferDetails = smart_table::remove(&mut bridge_store.pending_transfers, bridge_transfer_id);
118118
// Check secret against details.hash_lock
119119
let computed_hash = keccak256(pre_image);
120120
assert!(computed_hash == details.hash_lock, 2);
121121

122122
// Make caller a minter of MovETH
123-
moveth::add_minter(&resource_signer, signer::address_of(caller));
123+
//moveth::add_minter(&resource_signer, signer::address_of(caller));
124124

125125
// Mint moveth tokens to the recipient
126-
moveth::mint(caller, details.recipient, details.amount);
126+
moveth::mint(&resource_signer, details.recipient, details.amount);
127127

128128
// Remove caller from the minter list, now that minting is complete
129-
moveth::remove_minter(&resource_signer, signer::address_of(caller));
129+
//moveth::remove_minter(&resource_signer, signer::address_of(caller));
130130

131131
smart_table::add(&mut bridge_store.completed_transfers, bridge_transfer_id, details);
132132
event::emit(
@@ -158,7 +158,7 @@ module atomic_bridge::atomic_bridge_counterparty {
158158
}
159159

160160
#[test_only]
161-
public fun set_up_test(origin_account: signer, resource: &signer, aptos_framework: signer) {
161+
public fun set_up_test(origin_account: signer, resource: &signer) {
162162

163163
create_account_for_test(signer::address_of(&origin_account));
164164

@@ -171,63 +171,67 @@ module atomic_bridge::atomic_bridge_counterparty {
171171

172172
#[test (origin_account = @0xcafe, resource = @0xc3bb8488ab1a5815a9d543d7e41b0e0df46a7396f89b22821f07a4362f75ddc5, aptos_framework = @0x1)]
173173
public entry fun test_set_up_test(origin_account: signer, resource: signer, aptos_framework: signer) {
174-
set_up_test(origin_account, &resource, aptos_framework);
174+
set_up_test(origin_account, &resource);
175175
}
176176

177177
use std::debug;
178178
use std::string::{String, utf8};
179179
use aptos_framework::create_signer::create_signer;
180180
use aptos_framework::primary_fungible_store;
181181

182-
#[test(aptos_framework = @0x1, creator = @atomic_bridge, source_account = @source_account, moveth = @moveth, admin = @admin, client = @0xdca, master_minter = @master_minter)]
183-
fun test_complete_transfer_assets_non_minter(
184-
client: &signer,
185-
aptos_framework: &signer,
186-
master_minter: &signer,
187-
creator: &signer,
188-
moveth: &signer,
189-
source_account: &signer
190-
) acquires BridgeTransferStore, BridgeConfig {
191-
timestamp::set_time_has_started_for_testing(aptos_framework);
192-
moveth::init_for_test(moveth);
193-
let receiver_address = @0xcafe1;
194-
let initiator = b"0x123"; //In real world this would be an ethereum address
195-
let recipient = @0xface;
196-
let asset = moveth::metadata();
197-
init_module(creator);
198-
let bridge_transfer_id = b"transfer1";
199-
let pre_image = b"secret";
200-
let hash_lock = keccak256(pre_image);
201-
let time_lock = 3600;
202-
let amount = 100;
203-
let result = lock_bridge_transfer_assets(
204-
creator,
205-
initiator,
206-
bridge_transfer_id,
207-
hash_lock,
208-
time_lock,
209-
recipient,
210-
amount
211-
);
212-
assert!(result, 1);
213-
// Verify that the transfer is stored in pending_transfers
214-
let bridge_store = borrow_global<BridgeTransferStore>(signer::address_of(creator));
215-
let transfer_details: &BridgeTransferDetails = smart_table::borrow(&bridge_store.pending_transfers, bridge_transfer_id);
216-
assert!(transfer_details.recipient == recipient, 2);
217-
assert!(transfer_details.initiator == initiator, 3);
218-
assert!(transfer_details.amount == amount, 5);
219-
assert!(transfer_details.hash_lock == hash_lock, 5);
220-
let pre_image = b"secret";
182+
#[test(origin_account = @0xcafe, resource = @0xc3bb8488ab1a5815a9d543d7e41b0e0df46a7396f89b22821f07a4362f75ddc5, aptos_framework = @0x1, creator = @atomic_bridge, source_account = @source_account, moveth = @moveth, admin = @admin, client = @0xdca, master_minter = @master_minter)]
183+
fun test_complete_transfer_assets_non_minter(
184+
origin_account: signer,
185+
resource: signer,
186+
client: &signer,
187+
aptos_framework: signer,
188+
master_minter: &signer,
189+
creator: &signer,
190+
moveth: &signer,
191+
source_account: &signer
192+
) acquires BridgeTransferStore, BridgeConfig {
193+
set_up_test(origin_account, &resource);
194+
195+
timestamp::set_time_has_started_for_testing(&aptos_framework);
196+
moveth::init_for_test(moveth);
197+
let receiver_address = @0xdada;
198+
let initiator = b"0x123"; //In real world this would be an ethereum address
199+
let recipient = @0xface;
200+
let asset = moveth::metadata();
201+
202+
let bridge_transfer_id = b"transfer1";
203+
let pre_image = b"secret";
204+
let hash_lock = keccak256(pre_image);
205+
let time_lock = 3600;
206+
let amount = 100;
207+
let result = lock_bridge_transfer_assets(
208+
&resource,
209+
initiator,
210+
bridge_transfer_id,
211+
hash_lock,
212+
time_lock,
213+
recipient,
214+
amount
215+
);
216+
assert!(result, 1);
217+
// Verify that the transfer is stored in pending_transfers
218+
let bridge_store = borrow_global<BridgeTransferStore>(signer::address_of(&resource));
219+
let transfer_details: &BridgeTransferDetails = smart_table::borrow(&bridge_store.pending_transfers, bridge_transfer_id);
220+
assert!(transfer_details.recipient == recipient, 2);
221+
assert!(transfer_details.initiator == initiator, 3);
222+
assert!(transfer_details.amount == amount, 5);
223+
assert!(transfer_details.hash_lock == hash_lock, 5);
224+
let pre_image = b"secret";
221225
let msg:vector<u8> = b"secret";
222-
debug::print(&utf8(msg));
226+
debug::print(&utf8(msg));
223227
complete_bridge_transfer(
224228
client,
225229
bridge_transfer_id,
226230
pre_image,
227231
);
228232
debug::print(&utf8(msg));
229233
// Verify that the transfer is stored in completed_transfers
230-
let bridge_store = borrow_global<BridgeTransferStore>(signer::address_of(creator));
234+
let bridge_store = borrow_global<BridgeTransferStore>(signer::address_of(&resource));
231235
let transfer_details: &BridgeTransferDetails = smart_table::borrow(&bridge_store. completed_transfers, bridge_transfer_id);
232236
assert!(transfer_details.recipient == recipient, 1);
233237
assert!(transfer_details.amount == amount, 2);

0 commit comments

Comments
 (0)