From 77eae1ccd22e8226ba0a707c530b797aba97be67 Mon Sep 17 00:00:00 2001 From: Laia Soler Date: Fri, 2 Jan 2026 10:57:54 +0100 Subject: [PATCH] update ongoing-v0.3.0 -> v11.0.0 --- .../v0.3.0/Changes-v0.3.1.md | 12 ++--- docs/aggregation-layer/v0.3.0/Diagrams.md | 34 +++++++------- docs/aggregation-layer/v0.3.0/Docker.md | 2 +- docs/aggregation-layer/v0.3.0/FAQs.md | 44 +++++++++---------- .../v0.3.0/SC-interactions/AggLayerGateway.md | 12 ++--- .../v0.3.0/SC-interactions/AggchainFEP.md | 12 ++--- .../SC-interactions/PolygonRollupManager.md | 8 ++-- docs/aggregation-layer/v0.3.0/SC-specs.md | 24 +++++----- docs/aggregation-layer/v0.3.0/Tooling.md | 18 ++++---- .../v0.3.0/UpgradeableTokens.md | 4 +- 10 files changed, 85 insertions(+), 85 deletions(-) diff --git a/docs/aggregation-layer/v0.3.0/Changes-v0.3.1.md b/docs/aggregation-layer/v0.3.0/Changes-v0.3.1.md index 1a19293..d691a99 100644 --- a/docs/aggregation-layer/v0.3.0/Changes-v0.3.1.md +++ b/docs/aggregation-layer/v0.3.0/Changes-v0.3.1.md @@ -27,9 +27,9 @@ The migration flow can be found explained in this section: [flow migration](./Di #### New Mapping and Events: -- `isRollupMigrating`: A new [mapping](https://github.com/agglayer/agglayer-contracts/blob/feature/zkEVMToPP/contracts/v2/PolygonRollupManager.sol#L322) has been added to keep track of rollups that are in the process of migrating. +- `isRollupMigrating`: A new [mapping](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L322) has been added to keep track of rollups that are in the process of migrating. -- `InitMigration` and `CompletedMigration`: Two events are emitted to signal the [start](https://github.com/agglayer/agglayer-contracts/blob/feature/zkEVMToPP/contracts/v2/PolygonRollupManager.sol#L454) and [completion](https://github.com/agglayer/agglayer-contracts/blob/feature/zkEVMToPP/contracts/v2/PolygonRollupManager.sol#L460) of the migration flow, respectively. +- `InitMigration` and `CompletedMigration`: Two events are emitted to signal the [start](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L454) and [completion](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L460) of the migration flow, respectively. ``` /** @@ -48,8 +48,8 @@ The migration flow can be found explained in this section: [flow migration](./Di #### New Error Conditions -- `NewRollupTypeMustBePessimisticOrALGateway`: [Thrown](https://github.com/agglayer/agglayer-contracts/blob/feature/zkEVMToPP/contracts/v2/PolygonRollupManager.sol#L974) when trying to migrate a rollup to a non pessimistic or ALGateway rollup type with `initMigration` function. -- `InvalidNewLocalExitRoot`: [Thrown](https://github.com/agglayer/agglayer-contracts/blob/feature/zkEVMToPP/contracts/v2/PolygonRollupManager.sol#L1324) when trying to finish a migration of a rollup to a pessimistic rollup type with `verifyPessimisticTrustedAggregator` function and the proposed new local exit root does not match the expected new local exit root. +- `NewRollupTypeMustBePessimisticOrALGateway`: [Thrown](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L974) when trying to migrate a rollup to a non pessimistic or ALGateway rollup type with `initMigration` function. +- `InvalidNewLocalExitRoot`: [Thrown](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L1324) when trying to finish a migration of a rollup to a pessimistic rollup type with `verifyPessimisticTrustedAggregator` function and the proposed new local exit root does not match the expected new local exit root. #### Remedations audit - [Comment localExitRoot](https://github.com/agglayer/agglayer-contracts/commit/b0e950539c14d565868d9de2c3f40df0b65a443a): add new comment @@ -108,5 +108,5 @@ Now, the event will occur before the call. This way, there won’t be an orderin ### Tools - e2e [instructions](https://github.com/0xPolygonHermez/protocol-team-kanban/issues/604) -- [upgrade script](https://github.com/agglayer/agglayer-contracts/tree/feature/zkEVMToPP/upgrade/upgrade-rollupManager-v0.3.1) -- [migate SC call ](https://github.com/agglayer/agglayer-contracts/tree/feature/zkEVMToPP/tools/initMigration) \ No newline at end of file +- [upgrade script](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/upgrade/upgrade-rollupManager-v0.3.1) +- [migate SC call ](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/initMigration) \ No newline at end of file diff --git a/docs/aggregation-layer/v0.3.0/Diagrams.md b/docs/aggregation-layer/v0.3.0/Diagrams.md index fb0f33b..3a19c92 100644 --- a/docs/aggregation-layer/v0.3.0/Diagrams.md +++ b/docs/aggregation-layer/v0.3.0/Diagrams.md @@ -7,42 +7,42 @@ Here's the flow that needs to be followed to add a new aggchain (in this case, a ![Flow add new AggchainFEP](/aggregation-layer/v0.3.0/img/flow_FEP.png) ### addNewRollupType -First step a new rollup type is added. This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/addRollupType) will be used to do it. +First step a new rollup type is added. This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/addRollupType) will be used to do it. -Following the next [README](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/tools/addRollupType/README.md), a new rollup type is added by calling the `addNewRollupType` function of `PolygonRollupManager` contract. Once called, the `rollupTypeID` parameter will be obtained and should be used in the following tool. +Following the next [README](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/addRollupType/README.md), a new rollup type is added by calling the `addNewRollupType` function of `PolygonRollupManager` contract. Once called, the `rollupTypeID` parameter will be obtained and should be used in the following tool. ### attachAggchainToAL -The second step is to create a new chain with the rollup type we created earlier. This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/createNewRollup) will be used to do it. +The second step is to create a new chain with the rollup type we created earlier. This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/createNewRollup) will be used to do it. -The following [README](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/tools/createNewRollup/README.md) can be followed to create the new `AggchainFEP` by calling the `attachAggchainToAL` function, using the `rollupTypeID` created with the previous tool. +The following [README](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/createNewRollup/README.md) can be followed to create the new `AggchainFEP` by calling the `attachAggchainToAL` function, using the `rollupTypeID` created with the previous tool. ### add vkeys to AggLayerGateway The third step is to initialize the vkeys in `AggLayerGateway` contract: -- This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addPessimisticVKeyRoute) is used to add the pessimistic vkey route (`addPessimisticVKeyRoute`). -- This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey) is used to add the aggchain vkey (`addDefaultAggchainVKey`). +- This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addPessimisticVKeyRoute) is used to add the pessimistic vkey route (`addPessimisticVKeyRoute`). +- This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey) is used to add the aggchain vkey (`addDefaultAggchainVKey`). ## Update v0.2.0-ECDSA to v0.3.0-FEP ![Flow update to AggchainFEP](/aggregation-layer/v0.3.0/img/update_FEP.png) ### addNewRollupType -First step a new rollup type is added. This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/addRollupType) will be used to do it. +First step a new rollup type is added. This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/addRollupType) will be used to do it. -Following the next [README](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/tools/addRollupType/README.md), a new rollup type is added by calling the `addNewRollupType` function of `PolygonRollupManager` contract. Once called, the `rollupTypeID` parameter will be obtained and should be used in the following tool. +Following the next [README](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/addRollupType/README.md), a new rollup type is added by calling the `addNewRollupType` function of `PolygonRollupManager` contract. Once called, the `rollupTypeID` parameter will be obtained and should be used in the following tool. ### updateRollup -The second step is to update the old rollup to the new rollup type that was created with the previous tool. This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/updateRollup) will be used to do it. +The second step is to update the old rollup to the new rollup type that was created with the previous tool. This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/updateRollup) will be used to do it. -The following [README](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/tools/updateRollup/README.md) can be followed to update the old rollup to the new rollup type created with the previous tool by calling the `updateRollup` function, using the `rollupTypeID` created with the previous tool. +The following [README](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/updateRollup/README.md) can be followed to update the old rollup to the new rollup type created with the previous tool by calling the `updateRollup` function, using the `rollupTypeID` created with the previous tool. ### add vkeys to AggLayerGateway The third step is to initialize the vkeys in `AggLayerGateway` contract: -- This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addPessimisticVKeyRoute) is used to add the pessimistic vkey route (`addPessimisticVKeyRoute`). -- This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey) is used to add the aggchain vkey (`addDefaultAggchainVKey`). +- This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addPessimisticVKeyRoute) is used to add the pessimistic vkey route (`addPessimisticVKeyRoute`). +- This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey) is used to add the aggchain vkey (`addDefaultAggchainVKey`). ## Verify FEP @@ -99,7 +99,7 @@ If the verification succeeds: ### Migration Initialization -A new [function](https://github.com/agglayer/agglayer-contracts/blob/feature/zkEVMToPP/contracts/v2/PolygonRollupManager.sol#L954), `initMigration`, enables the explicit start of a migration process. +A new [function](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L954), `initMigration`, enables the explicit start of a migration process. This function performs checks to ensure: @@ -110,7 +110,7 @@ This function performs checks to ensure: ### Proof Verification During Migration -The `verifyPessimisticTrustedAggregator` [function](https://github.com/agglayer/agglayer-contracts/blob/feature/zkEVMToPP/contracts/v2/PolygonRollupManager.sol#L1313) was adjusted to support special cases that occur during the migration process. +The `verifyPessimisticTrustedAggregator` [function](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L1313) was adjusted to support special cases that occur during the migration process. - It now allows the verification of bootstrap certificates, which are required to validate the first proof after switching to the new system. - It's a hard requirement that the `newLocalExitRoot` matches the current `lastLocalExitRoot` meaning that the certificates covers all the bridges @@ -121,11 +121,11 @@ The `verifyPessimisticTrustedAggregator` [function](https://github.com/agglayer/ ![Flow migration](/aggregation-layer/v0.3.0/img/migration_flow.png) #### addNewRollupType -First step a new rollup type is added. This [tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/addRollupType) will be used to do it. +First step a new rollup type is added. This [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/addRollupType) will be used to do it. -Following the next [README](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/tools/addRollupType/README.md), a new rollup type is added by calling the `addNewRollupType` function of `PolygonRollupManager` contract. Once called, the `rollupTypeID` parameter will be obtained and should be used in the following tool. +Following the next [README](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/addRollupType/README.md), a new rollup type is added by calling the `addNewRollupType` function of `PolygonRollupManager` contract. Once called, the `rollupTypeID` parameter will be obtained and should be used in the following tool. #### initMigration -To initiate the migration, this tool can be used: [initMigration tool](https://github.com/agglayer/agglayer-contracts/tree/feature/zkEVMToPP/tools/initMigration) +To initiate the migration, this tool can be used: [initMigration tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/initMigration) We will see that an event indicating the migration has been initialized is emitted (`InitMigration`). Finally, when the verification is done with `verifyPessimisticTrustedAggregator`, an event indicating that the migration has been completed will be emitted (`CompletedMigration`). \ No newline at end of file diff --git a/docs/aggregation-layer/v0.3.0/Docker.md b/docs/aggregation-layer/v0.3.0/Docker.md index 444366f..721061f 100644 --- a/docs/aggregation-layer/v0.3.0/Docker.md +++ b/docs/aggregation-layer/v0.3.0/Docker.md @@ -14,7 +14,7 @@ You can change the deployment `mnemonic` creating a `.env` file in the project r - docker-compose ## 2. Config files -In the case of the Docker deployment, we are going to take the default configuration files that we have in this [folder](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/docker/scripts/v2). +In the case of the Docker deployment, we are going to take the default configuration files that we have in this [folder](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/docker/scripts/v2). ### 2.1. deploy_parameters.json diff --git a/docs/aggregation-layer/v0.3.0/FAQs.md b/docs/aggregation-layer/v0.3.0/FAQs.md index e55e0d8..66437e8 100644 --- a/docs/aggregation-layer/v0.3.0/FAQs.md +++ b/docs/aggregation-layer/v0.3.0/FAQs.md @@ -16,21 +16,21 @@ To better understand compatibility, you can refer to this [table](https://didact ## 2. Smart Contracts ### Contracts errors, events and functions selectors -This [link](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/docs/selectors.txt) contains the full list of contract errors (and their signatures), as well as the functions and events. +This [link](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/docs/selectors.txt) contains the full list of contract errors (and their signatures), as well as the functions and events. ### Reverted with data '0x' Potential cases: -- [function selector (first 4 bytes on the calldata)](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/PolygonRollupManager.sol#L1210-L1217) +- [function selector (first 4 bytes on the calldata)](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L1210-L1217) - calldata parameters defined as `bytes` incorrectly parsed inside the SC: - - [bytes proof](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/PolygonRollupManager.sol#L1215) - - [must follow this enconding](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/AggLayerGateway.sol#L120-L122) - - [sanity check on the length here](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/AggLayerGateway.sol#L129) - - parsed in [here](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/AggLayerGateway.sol#L133) and [here](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/AggLayerGateway.sol#L145) - - note that if the verifier is mock...everything will be fine. If the verififer is real, SP1 also does some parsing [here](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/verifiers/v4.0.0-rc.3/SP1VerifierPlonk.sol#L47) and [here](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/verifiers/v4.0.0-rc.3/SP1VerifierPlonk.sol#L57) - - [aggchainData](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/PolygonRollupManager.sol#L1216) - - parsed [here](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/aggchains/AggchainFEP.sol#L434-L443) and [here](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/aggchains/AggchainFEP.sol#L560-L568) + - [bytes proof](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L1215) + - [must follow this enconding](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/AggLayerGateway.sol#L120-L122) + - [sanity check on the length here](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/AggLayerGateway.sol#L129) + - parsed in [here](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/AggLayerGateway.sol#L133) and [here](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/AggLayerGateway.sol#L145) + - note that if the verifier is mock...everything will be fine. If the verififer is real, SP1 also does some parsing [here](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/verifiers/v4.0.0-rc.3/SP1VerifierPlonk.sol#L47) and [here](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/verifiers/v4.0.0-rc.3/SP1VerifierPlonk.sol#L57) + - [aggchainData](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L1216) + - parsed [here](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/aggchains/AggchainFEP.sol#L434-L443) and [here](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/aggchains/AggchainFEP.sol#L560-L568) - calldata `cast` parsing: ``` cast decode-calldata "verifyPessimisticTrustedAggregator(uint32,uint32,bytes32,bytes32,bytes,bytes)" 0x6c76687700000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000059824c4849da053ff471f1ce2bc4f8fc2d257aa61fc7bee86c1f5ce0463f7d4a68756fe264848d34dd69293eac0fc7ad0c7d0eaf9398231b17b381b13b8af7035400000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000004000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000420000c52de932284856798760c67a6c602cdd0f47ae4af86321e44ed28637f634dbef0000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000 | \ @@ -48,27 +48,27 @@ awk ' | VKey | Alternative Names | Prover | Primary Use | Used When... | Change with | | ---------------------------- | ----------------- | -------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `programVkey` | `agglayerVkey` | agglayer | Only used for *pessimistic* | `addNewRollupType` -> [PolygonRollupManager](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/contracts/v2/PolygonRollupManager.sol#L497) | create new rollup type | -| `pessimisticVkey` / `ppVkey` | `agglayerVkey` | agglayer | Only used for *FEP, v0.3.0* | Whenever configuring the `aggLayerGateway` ([deploy_parameters.json](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/deployment/v2/deploy_parameters.json.example#L14)) | `addPessimisticVKeyRoute` -> [AgglayerGateway](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/contracts/v2/AggLayerGateway.sol#L189) | -| `aggchainVkey` | `aggkitVkey` | aggkit-prover | Only used for *FEP, v0.3.0* | During FEP setup: [aggchainParams](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/tools/initializeRollup/initialize_rollup.json.example#L32) `initOwnedAggchainVKey` & `addDefaultAggchainVKey` --> [AgglayerGateway](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/contracts/v2/AggLayerGateway.sol#L236) | `addDefaultAggchainVKey/updateDefaultAggchainVKey` -> [AgglayerGateway](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/contracts/v2/AggLayerGateway.sol#L261), `addOwnedAggchainVKey` -> [rollupContract](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/contracts/v2/lib/AggchainBase.sol#L316) | -| `aggregationVkey` | — | op-succinct-proposer | Only used for *FEP, v0.3.0* | [initParams](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/tools/initializeRollup/initialize_rollup.json.example#L28): aggregationVkey | — | +| `programVkey` | `agglayerVkey` | agglayer | Only used for *pessimistic* | `addNewRollupType` -> [PolygonRollupManager](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/PolygonRollupManager.sol#L497) | create new rollup type | +| `pessimisticVkey` / `ppVkey` | `agglayerVkey` | agglayer | Only used for *FEP, v0.3.0* | Whenever configuring the `aggLayerGateway` ([deploy_parameters.json](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/deployment/v2/deploy_parameters.json.example#L14)) | `addPessimisticVKeyRoute` -> [AgglayerGateway](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/AggLayerGateway.sol#L189) | +| `aggchainVkey` | `aggkitVkey` | aggkit-prover | Only used for *FEP, v0.3.0* | During FEP setup: [aggchainParams](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/initializeRollup/initialize_rollup.json.example#L32) `initOwnedAggchainVKey` & `addDefaultAggchainVKey` --> [AgglayerGateway](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/AggLayerGateway.sol#L236) | `addDefaultAggchainVKey/updateDefaultAggchainVKey` -> [AgglayerGateway](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/AggLayerGateway.sol#L261), `addOwnedAggchainVKey` -> [rollupContract](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/lib/AggchainBase.sol#L316) | +| `aggregationVkey` | — | op-succinct-proposer | Only used for *FEP, v0.3.0* | [initParams](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/initializeRollup/initialize_rollup.json.example#L28): aggregationVkey | — | During environment setup, four distinct verification keys (vkeys) are defined, each serving a specific purpose in the proof verification and deployment workflows. Below is a detailed description of each key and its corresponding usage: ### programVkey - This [key](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/tools/addRollupType/add_rollup_type.json.example#L16) is used to verify proofs (`agglayer-prover`) when operating under pessimistic consensus. + This [key](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/addRollupType/add_rollup_type.json.example#L16) is used to verify proofs (`agglayer-prover`) when operating under pessimistic consensus. In any scenario outside of pessimistic consensus, the value of programVkey must be set to zero (0). ### pessimisticVkey (`agglayerVkey` or `ppvkey`) Similar to programVkey, this key is used to verify proofs (`agglayer-prover`). - This is the vkey to be specified in the [deploy_parameters.json](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/deployment/v2/deploy_parameters.json.example#L14) file when launching a new environment. + This is the vkey to be specified in the [deploy_parameters.json](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/deployment/v2/deploy_parameters.json.example#L14) file when launching a new environment. - To add a new ppvkey after deployment, it must be registered in the AgglayerGateway contract using the addPessimisticVKeyRoute [function](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/contracts/v2/AggLayerGateway.sol#L189). + To add a new ppvkey after deployment, it must be registered in the AgglayerGateway contract using the addPessimisticVKeyRoute [function](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/AggLayerGateway.sol#L189). - A dedicated [tool](https://github.com/agglayer/agglayer-contracts/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addPessimisticVKeyRoute) is available to facilitate this operation. + A dedicated [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addPessimisticVKeyRoute) is available to facilitate this operation. Cast commands: @@ -94,13 +94,13 @@ During environment setup, four distinct verification keys (vkeys) are defined, e This key is used by the `aggkit-prover`. - During the initialize step of the FEP, it must be included in [aggchainParams](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/tools/initializeRollup/initialize_rollup.json.example#L32) under the `initOwnedAggchainVKey` field. + During the initialize step of the FEP, it must be included in [aggchainParams](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/initializeRollup/initialize_rollup.json.example#L32) under the `initOwnedAggchainVKey` field. - It must be added to the AgglayerGateway using the a `addDefaultAggchainVKey` [tool](https://github.com/agglayer/agglayer-contracts/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey). + It must be added to the AgglayerGateway using the a `addDefaultAggchainVKey` [tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey). - To update this vkey after deployment, use either `addDefaultAggchainVKey` ([tool](https://github.com/agglayer/agglayer-contracts/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey)) or `updateDefaultAggchainVKey` ([tool](https://github.com/agglayer/agglayer-contracts/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/updateDefaultAggchainVKey)). + To update this vkey after deployment, use either `addDefaultAggchainVKey` ([tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey)) or `updateDefaultAggchainVKey` ([tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/updateDefaultAggchainVKey)). - Additionally, the `ownedAggchainVkey` field must be updated on the `rollupContract` with this `addOwnedAggchainVKey` [function](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/contracts/v2/lib/AggchainBase.sol#L316) or `updateOwnedAggchainVKey` [function](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/contracts/v2/lib/AggchainBase.sol#L338C14-L338C37). + Additionally, the `ownedAggchainVkey` field must be updated on the `rollupContract` with this `addOwnedAggchainVKey` [function](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/lib/AggchainBase.sol#L316) or `updateOwnedAggchainVKey` [function](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/lib/AggchainBase.sol#L338C14-L338C37). Cast commands: @@ -159,7 +159,7 @@ During environment setup, four distinct verification keys (vkeys) are defined, e ### aggregationVkey - This [vkey](https://github.com/agglayer/agglayer-contracts/blob/feature/ongoing-v0.3.0/tools/initializeRollup/initialize_rollup.json.example#L28) is provided by the `op-succinct-proposer` component. + This [vkey](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/initializeRollup/initialize_rollup.json.example#L28) is provided by the `op-succinct-proposer` component. ## 4. Debug Invalid Proof diff --git a/docs/aggregation-layer/v0.3.0/SC-interactions/AggLayerGateway.md b/docs/aggregation-layer/v0.3.0/SC-interactions/AggLayerGateway.md index 26924bf..87ccd7e 100644 --- a/docs/aggregation-layer/v0.3.0/SC-interactions/AggLayerGateway.md +++ b/docs/aggregation-layer/v0.3.0/SC-interactions/AggLayerGateway.md @@ -221,24 +221,24 @@ error RouteIsFrozen(ppSelector) ### 2.1. deployment AggLayerGateway -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/deployAggLayerGateway) to deploy `AggLayerGateway` contract. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/deployAggLayerGateway) to deploy `AggLayerGateway` contract. ### 2.2. Add default aggchain vkey -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey) to add default aggchain vkey. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addDefaultAggchainVKey) to add default aggchain vkey. ### 2.3. Update default aggchain vkey -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/updateDefaultAggchainVKey) to update default aggchain vkey. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/updateDefaultAggchainVKey) to update default aggchain vkey. ### 2.4. Unset default aggchain vkey -[Tool](https://github.com/agglayer/agglayer-contracts/tree/feature/separate-functionalities-defaultVKey/tools/aggLayerGatewayTools/unsetDefaultAggchainVKey) to unset default aggchain vkey. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/unsetDefaultAggchainVKey) to unset default aggchain vkey. ### 2.5. Add pessimistic vkey route -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/addPessimisticVKeyRoute) to add pessimitic vkey route. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/addPessimisticVKeyRoute) to add pessimitic vkey route. ### 2.6. Freeze pessimistic vkey route -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/aggLayerGatewayTools/freezePessimisticVKeyRoute) to freeze pessimistic vkey route. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggLayerGatewayTools/freezePessimisticVKeyRoute) to freeze pessimistic vkey route. diff --git a/docs/aggregation-layer/v0.3.0/SC-interactions/AggchainFEP.md b/docs/aggregation-layer/v0.3.0/SC-interactions/AggchainFEP.md index 310328f..4cfff8d 100644 --- a/docs/aggregation-layer/v0.3.0/SC-interactions/AggchainFEP.md +++ b/docs/aggregation-layer/v0.3.0/SC-interactions/AggchainFEP.md @@ -316,27 +316,27 @@ error OnlyPendingOptimisticModeManager(); ### 2.1. Change optimistic mode -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/aFEP-tools/tools/aggchainFEPTools/changeOptimisticMode) to change optimistic mode (`true/false`). +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggchainFEPTools/changeOptimisticMode) to change optimistic mode (`true/false`). ### 2.2. Transfer aggchain manager -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/aFEP-tools/tools/aggchainFEPTools/transferAggchainManager) to transfer and accept aggchain manager role. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggchainFEPTools/transferAggchainManager) to transfer and accept aggchain manager role. ### 2.3. Transfer optimistic mode manager role -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/aFEP-tools/tools/aggchainFEPTools/transferOptimisticManager) to transfer and accept optimistic mode manager role. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggchainFEPTools/transferOptimisticManager) to transfer and accept optimistic mode manager role. ### 2.4. Update rollup config hash -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/aFEP-tools/tools/aggchainFEPTools/updateRollupConfigHash) to update rollup config hash. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggchainFEPTools/updateRollupConfigHash) to update rollup config hash. ### 2.5. Update submission interval -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/aFEP-tools/tools/aggchainFEPTools/updateSubmissionInterval) to update submission interval. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggchainFEPTools/updateSubmissionInterval) to update submission interval. ### 2.6. Tools to get aggchain data -[Tools](https://github.com/agglayer/agg-contracts-internal/tree/feature/aFEP-tools/tools/aggchainFEPTools/toolsData) to: +[Tools](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/aggchainFEPTools/toolsData) to: - Get aggchainData - Get initiliaze bytes aggchain v0 diff --git a/docs/aggregation-layer/v0.3.0/SC-interactions/PolygonRollupManager.md b/docs/aggregation-layer/v0.3.0/SC-interactions/PolygonRollupManager.md index 6add839..49c1af2 100644 --- a/docs/aggregation-layer/v0.3.0/SC-interactions/PolygonRollupManager.md +++ b/docs/aggregation-layer/v0.3.0/SC-interactions/PolygonRollupManager.md @@ -621,16 +621,16 @@ error BatchFeeOutOfRange(); ### 2.1. addRollupType -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/addRollupType) to add new rollup type. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/addRollupType) to add new rollup type. ### 2.2. createNewRollup -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/createNewRollup) to create new rollup. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/createNewRollup) to create new rollup. ### 2.3. getRollupData -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/getRollupData) to get rollup data. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/getRollupData) to get rollup data. ### 2.4. updateRollup -[Tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/updateRollup) to update rollup. +[Tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/updateRollup) to update rollup. diff --git a/docs/aggregation-layer/v0.3.0/SC-specs.md b/docs/aggregation-layer/v0.3.0/SC-specs.md index 4707653..f2d02e2 100644 --- a/docs/aggregation-layer/v0.3.0/SC-specs.md +++ b/docs/aggregation-layer/v0.3.0/SC-specs.md @@ -19,8 +19,8 @@ Long term goal is to fully open chain registration as lomng as the chain fulfill - [Specification aggchain ECDSA](https://github.com/agglayer/protocol-research/blob/main/docs/ADRs/v0.3.0.md#ecdsa) - [Specification aggchain FEP](https://github.com/agglayer/protocol-research/blob/main/docs/ADRs/v0.3.0.md#fep) - [Implementation decisions and iterations on the SC specifications](https://hackmd.io/L7iY0M5bR_C4YWRqlCjsVg) -- [SC implementations](https://github.com/0xPolygonHermez/zkevm-contracts/tree/feature/ongoing-v0.3.0) -- [Test-vectors](https://github.com/0xPolygonHermez/zkevm-contracts/tree/feature/ongoing-v0.3.0/test/test-vectors) +- [SC implementations](https://github.com/0xPolygonHermez/zkevm-contracts/tree/v11.0.0) +- [Test-vectors](https://github.com/0xPolygonHermez/zkevm-contracts/tree/v11.0.0/test/test-vectors) ### 1.3. Requirements - [PolygonRollupManager](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v9.0.0-rc.5-pp/contracts/v2/PolygonRollupManager.sol) to support generic chains @@ -37,8 +37,8 @@ https://github.com/agglayer/agglayer-contracts/compare/v9.0.0...v10.0.0-rc.8 ### 1.5. Breaking changes - Function to create new rollups has been renamed to [attachChainToAL](#64-create-new-chain) - - old chains (zkEVM/Validiums/pp-v0.2.0) will need to [encode its initialize data](https://github.com/agglayer/agg-contracts-internal/blob/v10.0.0-rc.3/contracts/v2/PolygonRollupManager.sol#L577-L578). Util function available [here](https://github.com/agglayer/agg-contracts-internal/blob/v10.0.0-rc.3/src/utils-common-aggchain.js#L80) -- Event [addExistingRollup](https://github.com/agglayer/agg-contracts-internal/blob/v10.0.0-rc.3/contracts/v2/PolygonRollupManager.sol#L350) signature has been changed since a new parameter `initPessimisticRoot` ha sbeen added + - old chains (zkEVM/Validiums/pp-v0.2.0) will need to [encode its initialize data](https://github.com/agglayer/agglayer-contracts/blob/v10.0.0-rc.3/contracts/v2/PolygonRollupManager.sol#L577-L578). Util function available [here](https://github.com/agglayer/agglayer-contracts/blob/v10.0.0-rc.3/src/utils-common-aggchain.js#L80) +- Event [addExistingRollup](https://github.com/agglayer/agglayer-contracts/blob/v10.0.0-rc.3/contracts/v2/PolygonRollupManager.sol#L350) signature has been changed since a new parameter `initPessimisticRoot` ha sbeen added - [New functions](#66-pretty-rollupdata) to properly see therscan rollup data has been added - Function [verifyPessimisticProof](#65-verify-pessimitic-proof) signature has been changed. Added `customChainData` for aggchains v0.3.0 @@ -339,10 +339,10 @@ This has been done to enforce chains to not being able to select which type of a - **Recommended Account Type**: EOA or internal multisig #### 5.1.2 Test-vectors -- [aggchain-data](https://github.com/0xPolygonHermez/zkevm-contracts/blob/feature/ongoing-v0.3.0/test/test-vectors/aggchainECDSA/aggchain-data.json) -- [aggchain-init-bytes-v0](https://github.com/0xPolygonHermez/zkevm-contracts/blob/feature/ongoing-v0.3.0/test/test-vectors/aggchainECDSA/aggchain-initBytesv0.json) -- [aggchain-init-bytes-v1](https://github.com/0xPolygonHermez/zkevm-contracts/blob/feature/ongoing-v0.3.0/test/test-vectors/aggchainECDSA/aggchain-initBytesv1.json) -- [hash-aggchain-params](https://github.com/0xPolygonHermez/zkevm-contracts/blob/feature/ongoing-v0.3.0/test/test-vectors/aggchainECDSA/hash-aggchain-params.json) +- [aggchain-data](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v11.0.0/test/test-vectors/aggchainECDSA/aggchain-data.json) +- [aggchain-init-bytes-v0](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v11.0.0/test/test-vectors/aggchainECDSA/aggchain-initBytesv0.json) +- [aggchain-init-bytes-v1](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v11.0.0/test/test-vectors/aggchainECDSA/aggchain-initBytesv1.json) +- [hash-aggchain-params](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v11.0.0/test/test-vectors/aggchainECDSA/hash-aggchain-params.json) ### 5.2. FEP There are two scenarios to be considered in the `FEP`: new one and one that comes from `v0.2.0`. @@ -479,10 +479,10 @@ _initializeAggchainBaseAndConsensusBase( - **Recommended Account Type**: Multisig security council. Act fast while and not fully controlled by internal people #### 5.2.2 Test-vectors -- [aggchain-data](https://github.com/0xPolygonHermez/zkevm-contracts/blob/feature/fix-small-inconsistencies/test/test-vectors/aggchainFEP/aggchain-data.json) -- [aggchain-init-bytes-v0](https://github.com/0xPolygonHermez/zkevm-contracts/blob/feature/fix-small-inconsistencies/test/test-vectors/aggchainFEP/aggchain-initBytesv0.json) -- [aggchain-init-bytes-v1](https://github.com/0xPolygonHermez/zkevm-contracts/blob/feature/fix-small-inconsistencies/test/test-vectors/aggchainFEP/aggchain-initBytesv1.json) -- [hash-aggchain-params](https://github.com/0xPolygonHermez/zkevm-contracts/blob/feature/fix-small-inconsistencies/test/test-vectors/aggchainFEP/hash-aggchain-params.json) +- [aggchain-data](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v11.0.0/test/test-vectors/aggchainFEP/aggchain-data.json) +- [aggchain-init-bytes-v0](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v11.0.0/test/test-vectors/aggchainFEP/aggchain-initBytesv0.json) +- [aggchain-init-bytes-v1](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v11.0.0/test/test-vectors/aggchainFEP/aggchain-initBytesv1.json) +- [hash-aggchain-params](https://github.com/0xPolygonHermez/zkevm-contracts/blob/v11.0.0/test/test-vectors/aggchainFEP/hash-aggchain-params.json) ## 6. Rollup Manager Specification ### 6.1. Versioning diff --git a/docs/aggregation-layer/v0.3.0/Tooling.md b/docs/aggregation-layer/v0.3.0/Tooling.md index 7012fa3..e419edd 100644 --- a/docs/aggregation-layer/v0.3.0/Tooling.md +++ b/docs/aggregation-layer/v0.3.0/Tooling.md @@ -7,9 +7,9 @@ Tool to call `addNewRollupType` function. This tool adds a new rollup type to `PolygonRollupManager` contract. -1. Go to repository: [agg-contracts-internal](https://github.com/agglayer/agg-contracts-internal). -2. You can use [this tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/addRollupType) to add new rollup type - - Follow the steps found in this [README](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/tools/addRollupType/README.md). +1. Go to repository: [agglayer-contracts](https://github.com/agglayer/agglayer-contracts). +2. You can use [this tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/addRollupType) to add new rollup type + - Follow the steps found in this [README](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/addRollupType/README.md). - Set parameters `add_rollup_type.json`. - Run tool `npx hardhat run ./tools/addRollupType/addRollupType.ts --network ` @@ -20,9 +20,9 @@ Tool to call `attachAggchainToAL` function. This tool adds a new aggchain to `PolygonRollupManager` contract. -1. Go to repository: [agg-contracts-internal](https://github.com/agglayer/agg-contracts-internal). -2. You can use [this tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/createNewRollup) to add new chain - - Follow the steps found in this [README](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/tools/createNewRollup/README.md). +1. Go to repository: [agglayer-contracts](https://github.com/agglayer/agglayer-contracts). +2. You can use [this tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/createNewRollup) to add new chain + - Follow the steps found in this [README](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/createNewRollup/README.md). - Set parameters `create_new_rollup.json`. - Copy `genesis.json` file - Run tool `npx hardhat run ./tools/createNewRollup/createNewRollup.ts --network ` @@ -34,8 +34,8 @@ Tool to call `updateRollup` function. This tool update rollup to new rollup type in `PolygonRollupManager` contract. -1. Go to repository: [agg-contracts-internal](https://github.com/agglayer/agg-contracts-internal). -2. You can use [this tool](https://github.com/agglayer/agg-contracts-internal/tree/feature/ongoing-v0.3.0/tools/updateRollup) to update rollup to new type - - Follow the steps found in this [README](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/tools/updateRollup/README.md). +1. Go to repository: [agglayer-contracts](https://github.com/agglayer/agglayer-contracts). +2. You can use [this tool](https://github.com/agglayer/agglayer-contracts/tree/v11.0.0/tools/updateRollup) to update rollup to new type + - Follow the steps found in this [README](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/tools/updateRollup/README.md). - Set parameters `updateRollup.json` - Run tool `npx hardhat run ./tools/updateRollup/updateRollup.ts --network ` \ No newline at end of file diff --git a/docs/aggregation-layer/v0.3.0/UpgradeableTokens.md b/docs/aggregation-layer/v0.3.0/UpgradeableTokens.md index 0d8c696..3b23be5 100644 --- a/docs/aggregation-layer/v0.3.0/UpgradeableTokens.md +++ b/docs/aggregation-layer/v0.3.0/UpgradeableTokens.md @@ -11,9 +11,9 @@ Note that current deployed chains use this approach to create wrappedTokens and This approach does not imply any security assumption beyond the address that is able to upgrade the bridge (normally a timelock). ### 2.2 Current issue -On SovereignChains, a new approach to allow more features on the wrapped Tokens has been implemented: [custom mappings](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/sovereignChains/BridgeL2SovereignChain.sol#L330). This feature currently works given the featured wanted: extend the wrappedToken features. +On SovereignChains, a new approach to allow more features on the wrapped Tokens has been implemented: [custom mappings](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/sovereignChains/BridgeL2SovereignChain.sol#L330). This feature currently works given the featured wanted: extend the wrappedToken features. -This feature is purely [managed by the `bridgeManager`](https://github.com/agglayer/agg-contracts-internal/blob/feature/ongoing-v0.3.0/contracts/v2/sovereignChains/BridgeL2SovereignChain.sol#L335) meaning that this feature is chain-centric (instead of asset-centric). Asset-centric means that the owner of the asset could deploy its own wrappedToken (or similarly, deploy an upgradeable wrappedToken and give the ownership to an address controlled by the asset). +This feature is purely [managed by the `bridgeManager`](https://github.com/agglayer/agglayer-contracts/blob/v11.0.0/contracts/v2/sovereignChains/BridgeL2SovereignChain.sol#L335) meaning that this feature is chain-centric (instead of asset-centric). Asset-centric means that the owner of the asset could deploy its own wrappedToken (or similarly, deploy an upgradeable wrappedToken and give the ownership to an address controlled by the asset). An asset-centric feature could not be applied on top of the `custom mappings` implementation. Therefore a new approach needs to be specified in order to allow future version to be asset-centric. Besides, this approach implies another risky concern about users being able to stop the PP of the chain if LBT reaches a negative balance (this assumption purely depends on the approach on how to use the customMappings. Example: Katana). The implementation of the LBT at SC level provides guarantees that the PP will not be blocked, but just the user claim. NOTE that this affects `customMappings` and `upgradeableWrappedTokens`.