diff --git a/packages/contracts-bedrock/test/L1/L1ERC721Bridge.t.sol b/packages/contracts-bedrock/test/L1/L1ERC721Bridge.t.sol index 3949bf30f4eb..fd9d0d89b0f1 100644 --- a/packages/contracts-bedrock/test/L1/L1ERC721Bridge.t.sol +++ b/packages/contracts-bedrock/test/L1/L1ERC721Bridge.t.sol @@ -237,6 +237,14 @@ contract L1ERC721Bridge_Test is CommonTest { assertEq(localToken.ownerOf(tokenId), alice); } + /// @dev Tests that `bridgeERC721To` reverts if the to address is the zero address. + function test_bridgeERC721To_toZeroAddress_reverts() external { + // Bridge the token. + vm.prank(bob); + vm.expectRevert("ERC721Bridge: nft recipient cannot be address(0)"); + l1ERC721Bridge.bridgeERC721To(address(localToken), address(remoteToken), address(0), tokenId, 1234, hex"5678"); + } + /// @dev Tests that the ERC721 bridge successfully finalizes a withdrawal. function test_finalizeBridgeERC721_succeeds() external { // Bridge the token. diff --git a/packages/contracts-bedrock/test/L2/L2ERC721Bridge.t.sol b/packages/contracts-bedrock/test/L2/L2ERC721Bridge.t.sol index 5e7798824c8d..b614711d101a 100644 --- a/packages/contracts-bedrock/test/L2/L2ERC721Bridge.t.sol +++ b/packages/contracts-bedrock/test/L2/L2ERC721Bridge.t.sol @@ -227,6 +227,14 @@ contract L2ERC721Bridge_Test is CommonTest { assertEq(localToken.ownerOf(tokenId), alice); } + /// @dev Tests that `bridgeERC721To` reverts if the to address is the zero address. + function test_bridgeERC721To_toZeroAddress_reverts() external { + // Bridge the token. + vm.prank(bob); + vm.expectRevert("ERC721Bridge: nft recipient cannot be address(0)"); + l2ERC721Bridge.bridgeERC721To(address(localToken), address(remoteToken), address(0), tokenId, 1234, hex"5678"); + } + /// @dev Tests that `finalizeBridgeERC721` correctly finalizes a bridged token. function test_finalizeBridgeERC721_succeeds() external { // Bridge the token.