Skip to content

Commit

Permalink
add completedBridgeTransfer mapping
Browse files Browse the repository at this point in the history
  • Loading branch information
0xmovses committed Jun 11, 2024
1 parent 25c4e2a commit 7a36aba
Showing 1 changed file with 40 additions and 2 deletions.
42 changes: 40 additions & 2 deletions protocol-units/bridge/movement-bridge/src/AtomicBridgeInitator.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ contract AtomicBridgeInitiator is IAtomicBridgeInitiator {
}

mapping(bytes32 => BridgeTransfer) public bridgeTransfers;
mapping(bytes32 => BridgeTransfer) public completedBridgeTransfers;

function initiateBridgeTransfer(
uint amount,
Expand Down Expand Up @@ -44,6 +45,10 @@ contract AtomicBridgeInitiator is IAtomicBridgeInitiator {
require(bridgeTransfer.exists, "Bridge transfer does not exist");
require(keccak256(abi.encodePacked(_secret)) == bridgeTransfer.hashLock, "Invalid secret");

// Move the bridge transfer to completed
completedBridgeTransfers[_bridgeTransferId] = bridgeTransfer;

// Delete from active bridgeTransfers
delete bridgeTransfers[_bridgeTransferId];

payable(bridgeTransfer.recipient).transfer(bridgeTransfer.amount);
Expand All @@ -63,9 +68,42 @@ contract AtomicBridgeInitiator is IAtomicBridgeInitiator {
emit BridgeTransferRefunded(_bridgeTransferId);
}

function getBridgeTransferDetail(bytes32 _bridgeTransferId) external view override returns (bool exists, uint amount, address originator, address recipient, bytes32 hashLock, uint timeLock) {
function getBridgeTransferDetail(bytes32 _bridgeTransferId) external view override returns (
bool exists,
uint amount,
address originator,
address recipient,
bytes32 hashLock,
uint timeLock
) {
BridgeTransfer storage bridgeTransfer = bridgeTransfers[_bridgeTransferId];
return (bridgeTransfer.exists, bridgeTransfer.amount, bridgeTransfer.originator, bridgeTransfer.recipient, bridgeTransfer.hashLock, bridgeTransfer.timeLock);
return (
bridgeTransfer.exists,
bridgeTransfer.amount,
bridgeTransfer.originator,
bridgeTransfer.recipient,
bridgeTransfer.hashLock,
bridgeTransfer.timeLock
);
}

function getCompletedBridgeTransferDetail(bytes32 _bridgeTransferId) external view returns (
bool exists,
uint amount,
address originator,
address recipient,
bytes32 hashLock,
uint timeLock
) {
BridgeTransfer storage bridgeTransfer = completedBridgeTransfers[_bridgeTransferId];
return (
bridgeTransfer.exists,
bridgeTransfer.amount,
bridgeTransfer.originator,
bridgeTransfer.recipient,
bridgeTransfer.hashLock,
bridgeTransfer.timeLock
);
}
}

0 comments on commit 7a36aba

Please sign in to comment.