Skip to content

Commit 5793809

Browse files
committed
fix(chain-1971): skip twin logic for simple transfers
1 parent 7b8603f commit 5793809

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

base/src/Bridge.sol

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,15 @@ contract Bridge is ReentrancyGuardTransient, Initializable, OwnableRoles {
216216
return;
217217
}
218218

219-
// Get (and deploy if needed) the Twin contract.
219+
// For simple transfers, skip the twin logic.
220+
// This avoids the need to deploy a Twin contract for users that only want to transfer tokens.
221+
if (message.ty == MessageType.Transfer) {
222+
Transfer memory transfer = abi.decode(message.data, (Transfer));
223+
TokenLib.finalizeTransfer({transfer: transfer, crossChainErc20Factory: CROSS_CHAIN_ERC20_FACTORY});
224+
return;
225+
}
226+
227+
// For calls, get (and deploy if needed) the Twin contract.
220228
address twinAddress = twins[message.sender];
221229
if (twinAddress == address(0)) {
222230
twinAddress = LibClone.deployDeterministicERC1967BeaconProxy({
@@ -228,14 +236,11 @@ contract Bridge is ReentrancyGuardTransient, Initializable, OwnableRoles {
228236

229237
if (message.ty == MessageType.Call) {
230238
Call memory call = abi.decode(message.data, (Call));
231-
Twin(payable(twins[message.sender])).execute(call);
232-
} else if (message.ty == MessageType.Transfer) {
233-
Transfer memory transfer = abi.decode(message.data, (Transfer));
234-
TokenLib.finalizeTransfer({transfer: transfer, crossChainErc20Factory: CROSS_CHAIN_ERC20_FACTORY});
239+
Twin(payable(twinAddress)).execute(call);
235240
} else if (message.ty == MessageType.TransferAndCall) {
236241
(Transfer memory transfer, Call memory call) = abi.decode(message.data, (Transfer, Call));
237242
TokenLib.finalizeTransfer({transfer: transfer, crossChainErc20Factory: CROSS_CHAIN_ERC20_FACTORY});
238-
Twin(payable(twins[message.sender])).execute(call);
243+
Twin(payable(twinAddress)).execute(call);
239244
}
240245
}
241246

0 commit comments

Comments
 (0)