Skip to content

Commit

Permalink
bump contracts, full interop test suite is running
Browse files Browse the repository at this point in the history
  • Loading branch information
kelemeno committed Oct 23, 2024
1 parent 3f731d7 commit 9c6b391
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 15 deletions.
2 changes: 1 addition & 1 deletion contracts
Submodule contracts updated 35 files
+20 −19 .github/workflows/codespell.yaml
+32 −31 .github/workflows/l1-contracts-ci.yaml
+5 −8 l1-contracts/contracts/bridge/BridgedStandardERC20.sol
+15 −6 l1-contracts/contracts/bridge/L1ERC20Bridge.sol
+9 −2 l1-contracts/contracts/bridge/asset-router/L1AssetRouter.sol
+1 −0 l1-contracts/contracts/bridge/asset-router/L2AssetRouter.sol
+35 −16 l1-contracts/contracts/bridge/ntv/L2NativeTokenVault.sol
+33 −27 l1-contracts/contracts/bridge/ntv/NativeTokenVault.sol
+3 −7 l1-contracts/contracts/bridgehub/Bridgehub.sol
+4 −6 l1-contracts/contracts/common/L1ContractErrors.sol
+15 −1 l1-contracts/contracts/common/libraries/DataEncoding.sol
+35 −0 l1-contracts/contracts/dev-contracts/DummyRestriction.sol
+11 −5 l1-contracts/contracts/governance/AccessControlRestriction.sol
+10 −6 l1-contracts/contracts/governance/ChainAdmin.sol
+21 −1 l1-contracts/contracts/governance/L2AdminFactory.sol
+87 −47 l1-contracts/contracts/governance/PermanentRestriction.sol
+9 −2 l1-contracts/contracts/governance/restriction/IRestriction.sol
+22 −0 l1-contracts/contracts/governance/restriction/Restriction.sol
+22 −0 l1-contracts/contracts/governance/restriction/RestrictionValidator.sol
+1 −1 l1-contracts/contracts/state-transition/chain-deps/facets/Admin.sol
+4 −2 l1-contracts/contracts/state-transition/libraries/PriorityTree.sol
+1 −0 l1-contracts/deploy-scripts/DeployL1.s.sol
+8 −0 l1-contracts/deploy-scripts/DeployL2Contracts.sol
+30 −0 l1-contracts/deploy-scripts/EIP712Utils.sol
+133 −0 l1-contracts/deploy-scripts/Utils.sol
+23 −0 l1-contracts/deploy-scripts/interfaces/IEmergencyUpgrageBoard.sol
+9 −0 l1-contracts/deploy-scripts/interfaces/IMultisig.sol
+33 −0 l1-contracts/deploy-scripts/interfaces/IProtocolUpgradeHandler.sol
+9 −0 l1-contracts/deploy-scripts/interfaces/ISafe.sol
+1 −1 l1-contracts/test/foundry/l1/integration/AssetRouterTest.t.sol
+19 −1 l1-contracts/test/foundry/l1/unit/concrete/Governance/AccessControlRestriction.t.sol
+40 −13 l1-contracts/test/foundry/l1/unit/concrete/Governance/ChainAdmin.t.sol
+49 −33 l1-contracts/test/foundry/l1/unit/concrete/Governance/PermanentRestriction.t.sol
+37 −2 l1-contracts/test/foundry/l2/unit/L2AdminFactory/L2AdminFactory.t.sol
+2 −2 system-contracts/bootloader/bootloader.yul
53 changes: 42 additions & 11 deletions core/tests/ts-integration/tests/interop.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ describe('Interop checks', () => {
interop2_wallet
);

console.log(`Test wallet address: ${interop1_wallet.address}`);
console.log(`Test wallet 1 address: ${interop1_wallet.address}`);
console.log(`Test wallet 2 address: ${interop1_wallet.address}`)
console.log(
`[rich wallet] l1_wallet address: ${l1_wallet.address} with ${ethers.formatEther(
await l1_provider.getBalance(l1_wallet.address)
Expand Down Expand Up @@ -250,8 +251,8 @@ describe('Interop checks', () => {
18
]);
tokenB_details.addresses.interop2 = await interop2_tokenB_contract_deployment.getAddress();
await (await interop2_tokenB_contract_deployment.mint(await interop2_wallet.getAddress(), 1000)).wait();
await (await interop2_tokenB_contract_deployment.approve(L2_NATIVE_TOKEN_VAULT_ADDRESS, 1000)).wait();
await (await interop2_tokenB_contract_deployment.mint(await interop1_wallet.getAddress(), ethers.parseEther('100'))).wait();
await (await interop2_tokenB_contract_deployment.approve(L2_NATIVE_TOKEN_VAULT_ADDRESS, ethers.parseEther('100'))).wait();
console.log('Registering token B on Interop2');
await (await interop2_nativeTokenVault_contract.registerToken(tokenB_details.addresses.interop2)).wait();
console.log('Token B registered on Interop2');
Expand Down Expand Up @@ -467,14 +468,25 @@ describe('Interop checks', () => {
console.log('\n\n[TEST STARTED] - Can transfer token B from Interop2 to Interop1.');

console.log('Transferring token B from Interop2 to Interop1...');
const interop1_tokenB_balance_before = await getTokenBalance({
provider: interop1_provider,
tokenAddress: tokenB_details.addresses.interop1,
address: interop1_wallet.address
});
console.log(
`Test wallet token B Interop1 balance after transfer: ${ethers.formatEther(
interop1_tokenB_balance_before
)} BB`
);
await delay(1000)
await from_interop2_transfer_tokenB();

// Update token B address on Interop1
tokenB_details.addresses.interop1 = await interop1_nativeTokenVault_contract.tokenAddress(
tokenB_details.assetId
);
if (tokenB_details.addresses.interop1 === ethers.ZeroHash)
throw new Error('Token B resolves to zero address on Interop1');
// tokenB_details.addresses.interop1 = await interop1_nativeTokenVault_contract.tokenAddress(
// tokenB_details.assetId
// );
// if (tokenB_details.addresses.interop1 === ethers.ZeroHash)
// throw new Error('Token B resolves to zero address on Interop1');

const interop1_tokenB_balance_after = await getTokenBalance({
provider: interop1_provider,
Expand Down Expand Up @@ -579,8 +591,27 @@ describe('Interop checks', () => {
)
]);

console.log('from_interop2_transfer_tokenB NOT IMPLEMENTED!!!');
// @TODO: Implement
const input = {
chainId: (await interop1_provider.getNetwork()).chainId,
mintValue,
l2Value: 0,
l2GasLimit: 30000000,
l2GasPerPubdataByteLimit: REQUIRED_L2_GAS_PRICE_PER_PUBDATA,
refundRecipient: interop1_wallet.address,
secondBridgeAddress: L2_ASSET_ROUTER_ADDRESS,
secondBridgeValue: 0,
secondBridgeCalldata: bridgeCalldata
};
const l2Calldata = interop1_bridgehub_contract.interface.encodeFunctionData('requestL2TransactionTwoBridges', [input]);

// Create interop transaction from Interop1 to Interop2
const tx = await from_interop1_requestL2TransactionDirect(
mintValue * 2n,
L2_BRIDGEHUB_ADDRESS,
mintValue,
l2Calldata
);
await readAndBroadcastInteropTx(tx.hash, interop1_provider, interop2_provider);
}

/**
Expand Down Expand Up @@ -635,7 +666,7 @@ describe('Interop checks', () => {
l2Contract,
l2Value,
l2Calldata,
l2GasLimit: 30000000,
l2GasLimit: 600000000,
l2GasPerPubdataByteLimit: REQUIRED_L2_GAS_PRICE_PER_PUBDATA,
factoryDeps: [],
refundRecipient: interop1_wallet.address
Expand Down
6 changes: 3 additions & 3 deletions etc/env/file_based/genesis.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
genesis_root: 0xbf4591e8579a5d9b8e6cba4a0bff2e2a06a5982524cde17059a942e2e8c7748b
genesis_batch_commitment: 0xfa33625163a6f0835f4ba28c29626960737ec46f5b49e286048a593ee1b62250
genesis_root: 0x4451d0b2d8ff95bb17cc803c0e6b72e2daa0c29dd05bcadce7c5d5df774373e4
genesis_batch_commitment: 0x10dcefe1094c10bb40eaea8a933b1ffce70a42be7705f87228fdfa5b880e56ab
genesis_rollup_leaf_index: 66
genesis_protocol_version: 25
bootloader_hash: 0x0100098722bf8ae664051ba6b950dd692ab3a1cdceb48b0d91bd94478a52a25a
bootloader_hash: 0x010009819bf40a7ddbf8a1e86ad510b74f1966a3c4e51145595e71d293212c79
default_aa_hash: 0x0100055dbd629567931421dcebb4b38da3dab317ac5e0abacb7dedc14e3d033c
l1_chain_id: 9
l2_chain_id: 270
Expand Down

0 comments on commit 9c6b391

Please sign in to comment.