docs(sequencer): clarify queued semantics of adminConfigureChannel

This commit is contained in:
erhant 2026-07-14 16:21:23 +03:00
parent 969ba979eb
commit dd0c0daaa7
3 changed files with 11 additions and 0 deletions

View File

@ -109,6 +109,9 @@ pub trait BlockPublisherTrait: Clone {
/// admin (`keys[0]`); the L1 rejects non-admin signers, so this is not
/// re-validated here.
///
/// `Ok(())` only means the signed op was queued locally, not that the
/// L1 accepted it — acceptance is asynchronous.
///
/// Desugared (not `async fn`) so the returned future is provably `Send` —
/// generic callers awaiting it inside jsonrpsee handlers require that.
fn configure_channel(

View File

@ -1561,6 +1561,9 @@ async fn configure_channel_delegates_to_publisher() {
let calls = sequencer.block_publisher().configure_channel_calls();
assert_eq!(calls.len(), 1);
assert_eq!(calls[0].keys.len(), 2);
assert_eq!(calls[0].keys[0], admin);
assert_eq!(calls[0].posting_timeframe, 20);
assert_eq!(calls[0].posting_timeout, 30);
assert_eq!(calls[0].configuration_threshold, 1);
assert_eq!(calls[0].withdraw_threshold, 1);
}

View File

@ -95,6 +95,11 @@ pub trait Rpc {
/// Admin-only in effect: the L1 rejects the config op unless this
/// sequencer's key is the channel admin (`keys[0]` of the current roster).
///
/// `Ok(())` only means the signed config op was queued locally (like
/// block publishing), not that L1 accepted it: acceptance is asynchronous,
/// and a rejection (e.g. non-admin signer) is not reported here — it only
/// shows up in node logs and on-chain behavior.
#[method(name = "adminConfigureChannel")]
async fn admin_configure_channel(
&self,