From b2597af7a5490b037bd14fd7a5868a85312e63b2 Mon Sep 17 00:00:00 2001 From: primata Date: Fri, 23 Aug 2024 18:44:50 -0300 Subject: [PATCH] feat: formatted code, passing tests --- .../sources/atomic_bridge_counterparty.move | 45 +++++++++++-------- .../sources/atomic_bridge_initiator.move | 12 ++++- 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/protocol-units/bridge/move-modules/sources/atomic_bridge_counterparty.move b/protocol-units/bridge/move-modules/sources/atomic_bridge_counterparty.move index 83ab70ff0..40f100700 100644 --- a/protocol-units/bridge/move-modules/sources/atomic_bridge_counterparty.move +++ b/protocol-units/bridge/move-modules/sources/atomic_bridge_counterparty.move @@ -1,8 +1,8 @@ module atomic_bridge::atomic_bridge_counterparty { use std::signer; - use std::event; use std::vector; use aptos_framework::account; + use aptos_framework::event::{Self, EventHandle}; #[test_only] use aptos_framework::account::create_account_for_test; use aptos_framework::resource_account; @@ -18,12 +18,12 @@ module atomic_bridge::atomic_bridge_counterparty { /// A mapping of bridge transfer IDs to their bridge_transfer struct BridgeTransferStore has key, store { transfers: SmartTable, BridgeTransfer>, - bridge_transfer_locked_events: EventHandle, + bridge_transfer_locked_events: EventHandle, bridge_transfer_completed_events: EventHandle, bridge_transfer_cancelled_events: EventHandle, } - struct BridgeTransfer has key, store, copy { + struct BridgeTransfer has key, store, drop, copy { originator: vector, // eth address, recipient: address, amount: u64, @@ -40,7 +40,7 @@ module atomic_bridge::atomic_bridge_counterparty { #[event] /// An event triggered upon locking assets for a bridge transfer - struct BridgeTransferAssetsLockedEvent has store, drop { + struct BridgeTransferLockedEvent has store, drop { bridge_transfer_id: vector, originator: vector, recipient: address, @@ -68,9 +68,9 @@ module atomic_bridge::atomic_bridge_counterparty { move_to(resource, BridgeTransferStore { transfers: aptos_std::smart_table::new, BridgeTransfer>(), - bridge_transfer_initiated_events: account::new_event_handle(resource), + bridge_transfer_locked_events: account::new_event_handle(resource), bridge_transfer_completed_events: account::new_event_handle(resource), - bridge_transfer_refunded_events: account::new_event_handle(resource), + bridge_transfer_cancelled_events: account::new_event_handle(resource), }); move_to(resource,BridgeConfig { moveth_minter: signer::address_of(resource), @@ -84,7 +84,14 @@ module atomic_bridge::atomic_bridge_counterparty { let config_address = borrow_global(@atomic_bridge).bridge_module_deployer; let store = borrow_global(config_address); if (!aptos_std::smart_table::contains(&store.transfers, bridge_transfer_id)){ - assert!(false, 1) + BridgeTransfer { + amount: 0, + originator: vector::empty(), + recipient: @atomic_bridge, + hash_lock: vector::empty(), + time_lock: 0, + state: 0, + } } else { let bridge_transfer = aptos_std::smart_table::borrow(&store.transfers, bridge_transfer_id); *bridge_transfer @@ -101,7 +108,7 @@ module atomic_bridge::atomic_bridge_counterparty { amount: u64 ): bool acquires BridgeTransferStore { assert!(signer::address_of(caller) == @origin_addr, 1); - let bridge_store = borrow_global_mut(@resource_addr); + let store = borrow_global_mut(@resource_addr); let bridge_transfer = BridgeTransfer { originator, recipient, @@ -111,9 +118,9 @@ module atomic_bridge::atomic_bridge_counterparty { state: LOCKED, }; - smart_table::add(&mut bridge_store.transfers, bridge_transfer_id, bridge_transfer); + smart_table::add(&mut store.transfers, bridge_transfer_id, bridge_transfer); - event::emit_event(&mut store.bridge_transfer_initiated_events, BridgeTransferInitiatedEvent { + event::emit_event(&mut store.bridge_transfer_locked_events, BridgeTransferLockedEvent { amount, bridge_transfer_id, originator, @@ -132,7 +139,7 @@ module atomic_bridge::atomic_bridge_counterparty { ) acquires BridgeTransferStore, BridgeConfig, { let config_address = borrow_global(@resource_addr).bridge_module_deployer; let resource_signer = account::create_signer_with_capability(&borrow_global(@resource_addr).signer_cap); - let bridge_store = borrow_global_mut(config_address); + let store = borrow_global_mut(config_address); let bridge_transfer = aptos_std::smart_table::borrow_mut(&mut store.transfers, bridge_transfer_id); let computed_hash = keccak256(pre_image); @@ -155,7 +162,7 @@ module atomic_bridge::atomic_bridge_counterparty { ) acquires BridgeTransferStore, BridgeConfig { // check that the signer is the bridge_module_deployer assert!(signer::address_of(caller) == borrow_global(signer::address_of(caller)).bridge_module_deployer, 1); - let bridge_store = borrow_global_mut(signer::address_of(caller)); + let store = borrow_global_mut(signer::address_of(caller)); let bridge_transfer = aptos_std::smart_table::borrow_mut(&mut store.transfers, bridge_transfer_id); // Ensure the timelock has expired @@ -216,7 +223,7 @@ module atomic_bridge::atomic_bridge_counterparty { let hash_lock = keccak256(pre_image); let time_lock = 3600; let amount = 100; - let result = lock_bridge_transfer_assets( + let result = lock_bridge_transfer( origin_account, initiator, bridge_transfer_id, @@ -227,8 +234,8 @@ module atomic_bridge::atomic_bridge_counterparty { ); assert!(result, 1); // Verify that the transfer is stored in pending_transfers - let bridge_store = borrow_global(signer::address_of(&resource_addr)); - let bridge_transfer: &BridgeTransfer = smart_table::borrow(&bridge_store.transfers, bridge_transfer_id); + let store = borrow_global(signer::address_of(&resource_addr)); + let bridge_transfer: &BridgeTransfer = smart_table::borrow(&store.transfers, bridge_transfer_id); assert!(bridge_transfer.recipient == recipient, 2); assert!(bridge_transfer.originator == initiator, 3); assert!(bridge_transfer.amount == amount, 5); @@ -243,8 +250,8 @@ module atomic_bridge::atomic_bridge_counterparty { ); debug::print(&utf8(msg)); // Verify that the transfer is stored in completed_transfers - let bridge_store = borrow_global(signer::address_of(&resource_addr)); - let bridge_transfer: &BridgeTransfer = smart_table::borrow(&bridge_store.transfers, bridge_transfer_id); + let store = borrow_global(signer::address_of(&resource_addr)); + let bridge_transfer: &BridgeTransfer = smart_table::borrow(&store.transfers, bridge_transfer_id); assert!(bridge_transfer.recipient == recipient, 1); assert!(bridge_transfer.amount == amount, 2); assert!(bridge_transfer.hash_lock == hash_lock, 3); @@ -276,7 +283,7 @@ module atomic_bridge::atomic_bridge_counterparty { let hash_lock = keccak256(pre_image); let time_lock = 3600; let amount = 100; - let result = lock_bridge_transfer_assets( + let result = lock_bridge_transfer( origin_account, initiator, bridge_transfer_id, @@ -287,7 +294,7 @@ module atomic_bridge::atomic_bridge_counterparty { ); assert!(result, 1); // Verify that the transfer is stored in pending_transfers - let bridge_store = borrow_global(signer::address_of(&resource_addr)); + let store = borrow_global(signer::address_of(&resource_addr)); let bridge_transfer = bridge_transfers(bridge_transfer_id); assert!(bridge_transfer.recipient == recipient, 2); assert!(bridge_transfer.originator == initiator, 3); diff --git a/protocol-units/bridge/move-modules/sources/atomic_bridge_initiator.move b/protocol-units/bridge/move-modules/sources/atomic_bridge_initiator.move index 03dedb5f7..3bed092ff 100644 --- a/protocol-units/bridge/move-modules/sources/atomic_bridge_initiator.move +++ b/protocol-units/bridge/move-modules/sources/atomic_bridge_initiator.move @@ -85,7 +85,14 @@ module atomic_bridge::atomic_bridge_initiator { let config_address = borrow_global(@atomic_bridge).bridge_module_deployer; let store = borrow_global(config_address); if (!aptos_std::smart_table::contains(&store.transfers, bridge_transfer_id)){ - assert!(false, 1); + BridgeTransfer { + amount: 0, + originator: @atomic_bridge, + recipient: vector::empty(), + hash_lock: vector::empty(), + time_lock: 0, + state: 0, + } } else { let bridge_transfer = aptos_std::smart_table::borrow(&store.transfers, bridge_transfer_id); *bridge_transfer @@ -350,7 +357,8 @@ module atomic_bridge::atomic_bridge_initiator { ); let bridge_addr = signer::address_of(atomic_bridge); let store = borrow_global(bridge_addr); - assert!(!aptos_std::smart_table::contains(&store.transfers, copy bridge_transfer_id), 300); + // complete bridge doesn't delete the transfer from the store + assert!(aptos_std::smart_table::contains(&store.transfers, copy bridge_transfer_id), 300); } #[test(creator = @moveth, aptos_framework = @0x1, sender = @0xdaff, atomic_bridge = @atomic_bridge)]