Skip to content

Commit

Permalink
processMessage returns status
Browse files Browse the repository at this point in the history
  • Loading branch information
dantaik committed May 8, 2024
1 parent a8ba685 commit bf16c88
Show file tree
Hide file tree
Showing 13 changed files with 33 additions and 19 deletions.
2 changes: 1 addition & 1 deletion packages/protocol/contracts/L1/TaikoData.sol
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ library TaikoData {
mapping(
uint64 blockId_mod_blockRingBufferSize
=> mapping(uint32 transitionId => TransitionState ts)
) transitions;
) transitions;
// Ring buffer for Ether deposits
bytes32 __reserve1;
SlotA slotA; // slot 5
Expand Down
12 changes: 10 additions & 2 deletions packages/protocol/contracts/bridge/Bridge.sol
Original file line number Diff line number Diff line change
Expand Up @@ -216,13 +216,20 @@ contract Bridge is EssentialContract, IBridge {
bytes calldata _proof
)
external
sameChain(_message.destChainId)
diffChain(_message.srcChainId)
whenNotPaused
nonReentrant
returns (IBridge.Status)
{
uint256 gasStart = gasleft();

// same as `sameChain(_message.destChainId)` but without stack-too-deep
if (_message.destChainId != block.chainid) revert B_INVALID_CHAINID();

// same as `diffChain(_message.srcChainId)` but without stack-too-deep
if (_message.srcChainId == 0 || _message.srcChainId == block.chainid) {
revert B_INVALID_CHAINID();
}

// If the gas limit is set to zero, only the owner can process the message.
if (_message.gasLimit == 0 && msg.sender != _message.destOwner) {
revert B_PERMISSION_DENIED();
Expand Down Expand Up @@ -281,6 +288,7 @@ contract Bridge is EssentialContract, IBridge {

_updateMessageStatus(msgHash, stats.status);
emit MessageProcessed(msgHash, _message, stats);
return stats.status;
}

/// @inheritdoc IBridge
Expand Down
8 changes: 7 additions & 1 deletion packages/protocol/contracts/bridge/IBridge.sol
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,13 @@ interface IBridge {
/// needed.
/// @param _message The message to be processed.
/// @param _proof The merkle inclusion proof.
function processMessage(Message calldata _message, bytes calldata _proof) external;
/// @return The messsage's status after processing.

Check warning on line 93 in packages/protocol/contracts/bridge/IBridge.sol

View workflow job for this annotation

GitHub Actions / check-for-typos

"messsage" should be "message".
function processMessage(
Message calldata _message,
bytes calldata _proof
)
external
returns (Status);

/// @notice Retries to invoke the messageCall after releasing associated
/// Ether and tokens.
Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/script/DeployERC20Airdrop.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ contract DeployERC20Airdrop is DeployCapability {
impl: address(new ERC20Airdrop()),
data: abi.encodeCall(
ERC20Airdrop.init, (address(0), 0, 0, bytes32(0), bridgedTko, vaultAddress)
)
)
})
);

Expand Down
6 changes: 3 additions & 3 deletions packages/protocol/script/DeployOnL1.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ contract DeployOnL1 is DeployCapability {
impl: address(new TaikoToken()),
data: abi.encodeCall(
TaikoToken.init, (owner, vm.envAddress("TAIKO_TOKEN_PREMINT_RECIPIENT"))
),
),
registerTo: sharedAddressManager
});
}
Expand Down Expand Up @@ -263,7 +263,7 @@ contract DeployOnL1 is DeployCapability {
vm.envBytes32("L2_GENESIS_HASH"),
vm.envBool("PAUSE_TAIKO_L1")
)
),
),
registerTo: rollupAddressManager
});

Expand Down Expand Up @@ -330,7 +330,7 @@ contract DeployOnL1 is DeployCapability {
impl: automateDcapV3AttestationImpl,
data: abi.encodeCall(
AutomataDcapV3Attestation.init, (owner, address(sigVerifyLib), address(pemCertChainLib))
),
),
registerTo: rollupAddressManager
});

Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/test/L2/TaikoL2.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ contract TestTaikoL2 is TaikoTest {
impl: address(new TaikoL2EIP1559Configurable()),
data: abi.encodeCall(
TaikoL2.init, (address(0), addressManager, l1ChainId, gasExcess)
),
),
registerTo: addressManager
})
)
Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/test/L2/TaikoL2NoFeeCheck.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ contract TestTaikoL2NoFeeCheck is TaikoTest {
impl: address(new SkipBasefeeCheckL2()),
data: abi.encodeCall(
TaikoL2.init, (address(0), addressManager, l1ChainId, gasExcess)
),
),
registerTo: addressManager
})
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ contract AttestationBase is Test, DcapTestUtils, V3QuoteParseUtils {
data: abi.encodeCall(
AutomataDcapV3Attestation.init,
(admin, address(sigVerifyLib), address(pemCertChainLib))
)
)
})
);

Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/test/bridge/Bridge.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ contract BridgeTest is TaikoTest {
impl: address(new DelegateOwner()),
data: abi.encodeCall(
DelegateOwner.init, (mockDAO, address(addressManager), l1ChainId)
)
)
})
)
);
Expand Down
4 changes: 2 additions & 2 deletions packages/protocol/test/team/airdrop/ERC20Airdrop.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ contract TestERC20Airdrop is TaikoTest {
data: abi.encodeCall(
BridgedERC20.init,
(address(0), address(addressManager), randAddress(), 100, 18, "TKO", "Taiko Token")
)
)
})
);

Expand All @@ -129,7 +129,7 @@ contract TestERC20Airdrop is TaikoTest {
data: abi.encodeCall(
ERC20Airdrop.init,
(address(0), claimStart, claimEnd, merkleRoot, address(token), address(vault))
)
)
})
);

Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/test/tokenvault/BridgedERC20.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ contract TestBridgedERC20 is TaikoTest {
data: abi.encodeCall(
BridgedERC20.init,
(owner, address(manager), srcToken, srcChainId, srcDecimals, name, name)
),
),
registerTo: manager
})
);
Expand Down
6 changes: 3 additions & 3 deletions packages/protocol/test/tokenvault/ERC20Vault.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ contract TestERC20Vault is TaikoTest {
data: abi.encodeCall(
BridgedERC20.init,
(address(0), address(addressManager), randAddress(), 100, 18, "USDC", "USDC coin")
)
)
})
);

Expand All @@ -188,7 +188,7 @@ contract TestERC20Vault is TaikoTest {
data: abi.encodeCall(
BridgedERC20.init,
(address(0), address(addressManager), randAddress(), 100, 18, "USDT", "USDT coin")
)
)
})
);

Expand All @@ -207,7 +207,7 @@ contract TestERC20Vault is TaikoTest {
"stETH",
"Lido Staked ETH"
)
)
)
})
);
vm.stopPrank();
Expand Down
2 changes: 1 addition & 1 deletion packages/protocol/test/verifiers/RiscZeroVerifier.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ contract TestRiscZeroVerifier is TaikoL1TestBase {
data: abi.encodeCall(
RiscZeroVerifier.init,
(address(0), address(addressManager), address(riscZeroRemoteVerifier))
)
)
})
);

Expand Down

0 comments on commit bf16c88

Please sign in to comment.