pub struct bindNodeIdCall {
pub nodeId: FixedBytes<32>,
pub bindingSignature: Bytes,
pub ed25519Signature: Bytes,
}Expand description
Rebind the caller’s operator address to nodeId — the iroh
node-key rotation path (appendix-operator-key-rotation.md
§ iroh node-key rotation only), wrapped by decdn node rotate-key --key iroh.
Atomically deletes the old nodeId → address mapping (bumping
its registrationNonce) and writes the new one, so the operator
is never un-slashable mid-rotation. The bond, declaredMbps,
firstBondedAt, and every open lane paying this operator
survive untouched — all of them key on the Ethereum address,
which does not change.
bindingSignature covers BindNodeId(nodeId, bindingNonce[msg.sender]) — the terms-free typehash, NOT
RegisterNode: rebinding does not re-accept operator terms
(ADR 019 § enforcement at registration only). ed25519Signature
is the new node key’s proof over
node_register::ownership_message_digest. Reverts
NodeIdAlreadyBound if a different operator holds nodeId,
ZeroNodeId on an all-zero id, and InvalidBindingSignature /
InvalidEd25519Signature on a mis-built digest.
Function with signature bindNodeId(bytes32,bytes,bytes) and selector 0x64699a7d.
function bindNodeId(bytes32 nodeId, bytes bindingSignature, bytes ed25519Signature) external;Fields§
§nodeId: FixedBytes<32>§bindingSignature: Bytes§ed25519Signature: BytesTrait Implementations§
Source§impl Clone for bindNodeIdCall
impl Clone for bindNodeIdCall
Source§impl SolCall for bindNodeIdCall
impl SolCall for bindNodeIdCall
Source§const SIGNATURE: &'static str = "bindNodeId(bytes32,bytes,bytes)"
const SIGNATURE: &'static str = "bindNodeId(bytes32,bytes,bytes)"
Source§type Parameters<'a> = (FixedBytes<32>, Bytes, Bytes)
type Parameters<'a> = (FixedBytes<32>, Bytes, Bytes)
Source§type Token<'a> = <<bindNodeIdCall as SolCall>::Parameters<'a> as SolType>::Token<'a>
type Token<'a> = <<bindNodeIdCall as SolCall>::Parameters<'a> as SolType>::Token<'a>
Source§type Return = bindNodeIdReturn
type Return = bindNodeIdReturn
Source§type ReturnTuple<'a> = ()
type ReturnTuple<'a> = ()
Source§type ReturnToken<'a> = <<bindNodeIdCall as SolCall>::ReturnTuple<'a> as SolType>::Token<'a>
type ReturnToken<'a> = <<bindNodeIdCall as SolCall>::ReturnTuple<'a> as SolType>::Token<'a>
Source§fn new<'a>(tuple: <Self::Parameters<'a> as SolType>::RustType) -> Self
fn new<'a>(tuple: <Self::Parameters<'a> as SolType>::RustType) -> Self
Source§fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_>
fn tokenize_returns(ret: &Self::Return) -> Self::ReturnToken<'_>
Source§fn abi_decode_returns(data: &[u8]) -> Result<Self::Return>
fn abi_decode_returns(data: &[u8]) -> Result<Self::Return>
Source§fn abi_decode_returns_with_config(
data: &[u8],
config: AbiDecoderConfig,
) -> Result<Self::Return>
fn abi_decode_returns_with_config( data: &[u8], config: AbiDecoderConfig, ) -> Result<Self::Return>
Source§fn abi_decode_returns_validate(data: &[u8]) -> Result<Self::Return>
fn abi_decode_returns_validate(data: &[u8]) -> Result<Self::Return>
Source§fn abi_encoded_size(&self) -> usize
fn abi_encoded_size(&self) -> usize
Source§fn abi_decode_raw(data: &[u8]) -> Result<Self, Error>
fn abi_decode_raw(data: &[u8]) -> Result<Self, Error>
Source§fn abi_decode_raw_with_config(
data: &[u8],
config: AbiDecoderConfig,
) -> Result<Self, Error>
fn abi_decode_raw_with_config( data: &[u8], config: AbiDecoderConfig, ) -> Result<Self, Error>
Source§fn abi_decode_raw_validate(data: &[u8]) -> Result<Self, Error>
fn abi_decode_raw_validate(data: &[u8]) -> Result<Self, Error>
Source§fn abi_decode(data: &[u8]) -> Result<Self, Error>
fn abi_decode(data: &[u8]) -> Result<Self, Error>
Source§fn abi_decode_with_config(
data: &[u8],
config: AbiDecoderConfig,
) -> Result<Self, Error>
fn abi_decode_with_config( data: &[u8], config: AbiDecoderConfig, ) -> Result<Self, Error>
Source§fn abi_decode_validate(data: &[u8]) -> Result<Self, Error>
fn abi_decode_validate(data: &[u8]) -> Result<Self, Error>
Source§fn abi_encode_raw(&self, out: &mut Vec<u8>)
fn abi_encode_raw(&self, out: &mut Vec<u8>)
Source§fn abi_encode_returns_tuple<'a, E>(e: &'a E) -> Vec<u8> ⓘwhere
E: SolTypeValue<Self::ReturnTuple<'a>>,
fn abi_encode_returns_tuple<'a, E>(e: &'a E) -> Vec<u8> ⓘwhere
E: SolTypeValue<Self::ReturnTuple<'a>>,
Auto Trait Implementations§
impl !Freeze for bindNodeIdCall
impl RefUnwindSafe for bindNodeIdCall
impl Send for bindNodeIdCall
impl Sync for bindNodeIdCall
impl Unpin for bindNodeIdCall
impl UnsafeUnpin for bindNodeIdCall
impl UnwindSafe for bindNodeIdCall
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more