Feature | Validator Subnetwork | Gateway Subnetwork |
---|---|---|
Duties | Basic block proposal | Preconfirmation tasks |
Rewards | Shared with Gateway Subnetwork | Shared with Validator Subnetwork |
Slashing Conditions | Accepting blocks from non-opt in relays | Reneging on preconfirmation commitments |
SymbioticNetworkMiddleware
implements several key Symbiotic Primitive through Symbiotic Middleware SDK:
KeyManagerBLS
- Manages storage and validation of operator keys using BLS signaturesEpochCapture
- A middleware extension that captures timestamps based on epochsEqualStakePower
- Implementation of a 1:1 stake to voting power conversionOzAccessManaged
- A middleware extension that integrates OpenZeppelin’s AccessManaged for access controlBaseOperators
- Base contract for managing operator registration, keys, and vault relationshipsSubnetworks
- Contract for managing subnetworks that can be registered and controlledinitialize
Name | Type | Description |
---|---|---|
network | address | The address of the network |
slashingWindow | uint48 | The duration of the slashing window |
vaultRegistry | address | The address of the vault registry |
operatorRegistry | address | The address of the operator registry |
operatorNetOptIn | address | The address of the operator network opt-in service |
reader | address | The address of the reader contract used for delegatecall |
owner | address | The address of the contract owner |
_proposerRegistry | address | The address of the proposer registry contract |
registerOperator
Name | Type | Description |
---|---|---|
key | bytes | The BLS public key of the operator |
vault | address | The vault address associated with the operator |
signature | bytes | The signature proving ownership of the BLS key |
subnetwork | uint96 | The subnetwork identifier (VALIDATOR_SUBNETWORK or GATEWAY_SUBNETWORK) |
unregisterOperator
unpauseOperator
registerOperatorVault
Name | Type | Description |
---|---|---|
vault | address | The address of the vault to register |
unregisterOperatorVault
Name | Type | Description |
---|---|---|
vault | address | The address of the vault to unregister |
pauseOperatorVault
Name | Type | Description |
---|---|---|
vault | address | The address of the vault to pause |
unpauseOperatorVault
Name | Type | Description |
---|---|---|
vault | address | The address of the vault to unpause |
slash
Name | Type | Description |
---|---|---|
params | SlashParams | The parameters for the slash operation including key, timestamp, subnetwork, amount and hints |
activeOperatorsAt
Name | Type | Description |
---|---|---|
timestamp | uint48 | The timestamp to query active operators |
isOperatorRegistered
Name | Type | Description |
---|---|---|
operator | address | The address of the operator to check |
activeOperatorVaults
Name | Type | Description |
---|---|---|
operator | address | The address of the operator to check |
activeOperatorVaultsAt
Name | Type | Description |
---|---|---|
timestamp | uint48 | The timestamp to query active vaults |
operator | address | The address of the operator to check |
activeVaults
activeVaultsAt
Name | Type | Description |
---|---|---|
timestamp | uint48 | The timestamp to query active vaults |
getOperatorPower
Name | Type | Description |
---|---|---|
operator | address | The address of the operator |
vault | address | The address of the vault |
subnetwork | uint96 | The subnetwork identifier |
Name | Type | Description |
---|---|---|
timestamp | uint48 | The timestamp to query operator power |
operator | address | The address of the operator |
vault | address | The address of the vault |
subnetwork | uint96 | The subnetwork identifier |
getOperatorCollaterals
Name | Type | Description |
---|---|---|
operator | address | Address of the operator whose collateral stakes will be queried |