Skip to content

Commit

Permalink
fix(protocol): fix vault test failures due to change of Bridge GAS_RE…
Browse files Browse the repository at this point in the history
…SERVE (#16844)
  • Loading branch information
dantaik authored Apr 25, 2024
1 parent 840692e commit bc8708e
Show file tree
Hide file tree
Showing 2 changed files with 161 additions and 67 deletions.
141 changes: 113 additions & 28 deletions packages/protocol/test/tokenvault/ERC1155Vault.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ contract UpdatedBridgedERC1155 is BridgedERC1155 {
}

contract ERC1155VaultTest is TaikoTest {
uint32 private constant GAS_LIMIT = 2_000_000;
AddressManager addressManager;
BadReceiver badReceiver;
Bridge bridge;
Expand Down Expand Up @@ -232,10 +233,17 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 2;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(Alice, 1), 8);
assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2);
Expand All @@ -255,11 +263,11 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 2;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(0), 800_000, tokenIds, amounts
destChainId, address(0), Alice, GAS_LIMIT, address(0), GAS_LIMIT, tokenIds, amounts
);
vm.prank(Alice, Alice);
vm.expectRevert(BaseNFTVault.VAULT_INVALID_TOKEN.selector);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);
}

function test_1155Vault_sendToken_with_0_tokens_1155() public {
Expand All @@ -276,11 +284,18 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 0;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
vm.expectRevert(BaseNFTVault.VAULT_INVALID_AMOUNT.selector);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);
}

function test_1155Vault_receiveTokens_from_newly_deployed_bridged_contract_on_destination_chain_1155(
Expand All @@ -300,10 +315,17 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 2;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(Alice, 1), 8);
assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2);
Expand Down Expand Up @@ -355,10 +377,17 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 2;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(Alice, 1), 8);
assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2);
Expand Down Expand Up @@ -399,10 +428,17 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 1;

sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(Alice, 1), 7);
assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 3);
Expand Down Expand Up @@ -444,7 +480,14 @@ contract ERC1155VaultTest is TaikoTest {
uint256 etherValue = 0.1 ether;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), David, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
David,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: etherValue }(sendOpts);
Expand Down Expand Up @@ -498,11 +541,18 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 2;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);

vm.prank(Alice, Alice);
IBridge.Message memory message = erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
IBridge.Message memory message = erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(Alice, 1), 8);
assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2);
Expand Down Expand Up @@ -533,10 +583,17 @@ contract ERC1155VaultTest is TaikoTest {
amounts[1] = 5;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(Alice, 1), 8);
assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2);
Expand Down Expand Up @@ -589,10 +646,17 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 1;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 1);

Expand Down Expand Up @@ -639,11 +703,18 @@ contract ERC1155VaultTest is TaikoTest {
ERC1155(deployedContract).setApprovalForAll(address(destChainErc1155Vault), true);

sendOpts = BaseNFTVault.BridgeTransferOp(
chainId, address(0), Bob, 800_000, address(deployedContract), 800_000, tokenIds, amounts
chainId,
address(0),
Bob,
GAS_LIMIT,
address(deployedContract),
GAS_LIMIT,
tokenIds,
amounts
);

vm.prank(Bob, Bob);
destChainErc1155Vault.sendToken{ value: 800_000 }(sendOpts);
destChainErc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

vm.chainId(chainId);

Expand Down Expand Up @@ -685,10 +756,17 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 1;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 1);

Expand Down Expand Up @@ -738,16 +816,16 @@ contract ERC1155VaultTest is TaikoTest {
chainId,
address(0),
Alice,
800_000,
GAS_LIMIT,
address(deployedContract),
800_000,
GAS_LIMIT,
tokenIds,
amounts
);

vm.prank(Alice, Alice);
vm.expectRevert("ERC1155: burn amount exceeds balance");
destChainErc1155Vault.sendToken{ value: 800_000 }(sendOpts);
destChainErc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);
}

function test_1155Vault_upgrade_bridged_tokens_1155() public {
Expand All @@ -764,10 +842,17 @@ contract ERC1155VaultTest is TaikoTest {
amounts[0] = 2;

BaseNFTVault.BridgeTransferOp memory sendOpts = BaseNFTVault.BridgeTransferOp(
destChainId, address(0), Alice, 800_000, address(ctoken1155), 800_000, tokenIds, amounts
destChainId,
address(0),
Alice,
GAS_LIMIT,
address(ctoken1155),
GAS_LIMIT,
tokenIds,
amounts
);
vm.prank(Alice, Alice);
erc1155Vault.sendToken{ value: 800_000 }(sendOpts);
erc1155Vault.sendToken{ value: GAS_LIMIT }(sendOpts);

assertEq(ctoken1155.balanceOf(Alice, 1), 8);
assertEq(ctoken1155.balanceOf(address(erc1155Vault), 1), 2);
Expand Down
Loading

0 comments on commit bc8708e

Please sign in to comment.