From 9d018c38b8aae8c9d9fa2e9db5b6c6f16072a04f Mon Sep 17 00:00:00 2001 From: protolambda Date: Thu, 24 Apr 2025 22:55:29 +0200 Subject: [PATCH 1/2] interop: supervisor_dependencySet API --- specs/interop/supervisor.md | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/specs/interop/supervisor.md b/specs/interop/supervisor.md index 1a69ada7c..a05ef52a7 100644 --- a/specs/interop/supervisor.md +++ b/specs/interop/supervisor.md @@ -23,6 +23,7 @@ - [`SupervisorChainSyncStatus`](#supervisorchainsyncstatus) - [`SuperRootResponse`](#superrootresponse) - [`SafetyLevel`](#safetylevel) + - [`DependencySetConfig`](#dependencysetconfig) - [Methods](#methods) - [`supervisor_crossDerivedToSource`](#supervisor_crossderivedtosource) - [`supervisor_localUnsafe`](#supervisor_localunsafe) @@ -31,6 +32,7 @@ - [`supervisor_finalizedL1`](#supervisor_finalizedl1) - [`supervisor_superRootAtTimestamp`](#supervisor_superrootattimestamp) - [`supervisor_syncStatus`](#supervisor_syncstatus) + - [`supervisor_dependencySet`](#supervisor_dependencyset) - [`supervisor_allSafeDerivedAt`](#supervisor_allsafederivedat) - [`supervisor_checkAccessList`](#supervisor_checkaccesslist) - [Access-list contents](#access-list-contents) @@ -121,7 +123,8 @@ Regular JSON number, always integer. Assumed to always fit in 51 bits. #### `ChainID` `STRING`: -Hex-encoded big-endian number, variable length up to 256 bits, prefixed with `0x`. +Decimal-encoded string, variable length up to 256 bits. +This supports decoding of hex-encoded values when prefixed with `0x`. #### `Hash` @@ -204,6 +207,17 @@ Corresponds to a verifier [SafetyLevel](./verifier.md#safety). - `safe`: matching cross-safe, named `safe` to match the RPC label. - `finalized` +#### `DependencySetConfig` + +Defines an interop dependency set. +Includes information to determine the active set of chains at any particular block time. + +`OBJECT`: +- `dependencies`: `MAP`: + - key: `ChainID` + - value: `ConfigDependency`: `OBJECT`: empty object. This may be extended in the future. +- `overrideMessageExpiryWindow`: `uint64`: changes the default protocol expiry window time. + ### Methods #### `supervisor_crossDerivedToSource` @@ -257,6 +271,16 @@ Parameters: (none) Returns: `SupervisorSyncStatus` +#### `supervisor_dependencySet` + +Retrieves the full dependency set configuration, +to determine which chains are available at any particular block. +The returned configuration may change with new chain upgrades. + +Parameters: (none) + +Returns: `DependencySetConfig` + #### `supervisor_allSafeDerivedAt` Returns the last derived block for each chain, from the given L1 block. From 4243a0aeac54400099805fd768abff1a13662743 Mon Sep 17 00:00:00 2001 From: protolambda Date: Tue, 10 Jun 2025 18:07:17 +0200 Subject: [PATCH 2/2] interop: dependency set config rpc versioning --- specs/interop/managed-mode.md | 2 +- specs/interop/supervisor.md | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/specs/interop/managed-mode.md b/specs/interop/managed-mode.md index c48db923b..86fee200e 100644 --- a/specs/interop/managed-mode.md +++ b/specs/interop/managed-mode.md @@ -57,7 +57,7 @@ jwt should be generated and stored in hex encoded format. ## Node `->` Supervisor Events that a supervisor should subscribe to, originating from the node, handled by the supervisor. For the used types, -refer [this](#Types) section. +refer [this](#types) section. Every event sent from the node is of type `ManagedEvent` whose fields are populated with the events that occurred. All non-null events are sent at once. The other fields are omitted. diff --git a/specs/interop/supervisor.md b/specs/interop/supervisor.md index a05ef52a7..476cfc5ec 100644 --- a/specs/interop/supervisor.md +++ b/specs/interop/supervisor.md @@ -23,7 +23,7 @@ - [`SupervisorChainSyncStatus`](#supervisorchainsyncstatus) - [`SuperRootResponse`](#superrootresponse) - [`SafetyLevel`](#safetylevel) - - [`DependencySetConfig`](#dependencysetconfig) + - [`DependencySetConfigV1`](#dependencysetconfigv1) - [Methods](#methods) - [`supervisor_crossDerivedToSource`](#supervisor_crossderivedtosource) - [`supervisor_localUnsafe`](#supervisor_localunsafe) @@ -32,7 +32,7 @@ - [`supervisor_finalizedL1`](#supervisor_finalizedl1) - [`supervisor_superRootAtTimestamp`](#supervisor_superrootattimestamp) - [`supervisor_syncStatus`](#supervisor_syncstatus) - - [`supervisor_dependencySet`](#supervisor_dependencyset) + - [`supervisor_dependencySetV1`](#supervisor_dependencysetv1) - [`supervisor_allSafeDerivedAt`](#supervisor_allsafederivedat) - [`supervisor_checkAccessList`](#supervisor_checkaccesslist) - [Access-list contents](#access-list-contents) @@ -207,11 +207,13 @@ Corresponds to a verifier [SafetyLevel](./verifier.md#safety). - `safe`: matching cross-safe, named `safe` to match the RPC label. - `finalized` -#### `DependencySetConfig` +#### `DependencySetConfigV1` Defines an interop dependency set. Includes information to determine the active set of chains at any particular block time. +This type is versioned: the format of this configuration may change over time. + `OBJECT`: - `dependencies`: `MAP`: - key: `ChainID` @@ -271,15 +273,15 @@ Parameters: (none) Returns: `SupervisorSyncStatus` -#### `supervisor_dependencySet` +#### `supervisor_dependencySetV1` Retrieves the full dependency set configuration, to determine which chains are available at any particular block. -The returned configuration may change with new chain upgrades. +The returned configuration may change with new chain upgrades. Parameters: (none) -Returns: `DependencySetConfig` +Returns: `DependencySetConfigV1` #### `supervisor_allSafeDerivedAt`