eigensdk.chainio
ELReader
The ELReader class provides read-only access to EigenLayer contracts, offering comprehensive functionality for querying operator information, allocation management, delegation status, rewards, and permissions.
- class eigensdk.chainio.clients.elcontracts.reader.ELReader(allocation_manager, avs_directory, delegation_manager, permission_controller, reward_coordinator, strategy_manager, logger, eth_http_client, strategy_abi, erc20_abi)
- Bases: - object- Parameters:
- allocation_manager (Contract) 
- avs_directory (Contract) 
- delegation_manager (Contract) 
- permission_controller (Contract) 
- reward_coordinator (Contract) 
- strategy_manager (Contract) 
- logger (Logger) 
- eth_http_client (Web3) 
- strategy_abi (list[dict[str, Any]]) 
- erc20_abi (list[dict[str, Any]]) 
 
 - calculate_delegation_approval_digest_hash(staker, operator, delegation_approver, approver_salt, expiry)
- Returns the digest hash to be signed by the operator’s delegation approver to be used when delegating to an operator. - Return type:
- bytes
- Parameters:
- staker (Address | str | None) 
- operator (Address | str | None) 
- delegation_approver (Address | str | None) 
- approver_salt (bytes) 
- expiry (int) 
 
 
 - calculate_operator_avs_registration_digest_hash(operator, avs, salt, expiry)
- Returns the digest hash to be signed by an operator to register with an AVS. - Return type:
- bytes
- Parameters:
- operator (Address | str | None) 
- avs (Address | str | None) 
- salt (bytes) 
- expiry (int) 
 
 
 - can_call(account_address, appointee_address, target, selector)
- Returns true if appointeeAddress has permission to call the function with the given selector on the target contract, on behalf of accountAddress, and false otherwise. - Return type:
- bool
- Parameters:
- account_address (Address | str | None) 
- appointee_address (Address | str | None) 
- target (Address | str | None) 
- selector (bytes) 
 
 
 - check_claim(claim)
- Returns true if the claim would currently pass the check in ChainWriter.ProcessClaims or return an error if invalid. - Return type:
- bool
- Parameters:
- claim (dict[str, Any]) 
 
 - curr_rewards_calculation_end_timestamp()
- Returns the timestamp until which rewards submissions have been calculated. - Return type:
- int
 
 - get_activation_delay()
- Get delay in timestamp (seconds) before a posted root can be claimed against. - Return type:
- int
 
 - get_allocatable_magnitude(operator_addr, strategy_addr)
- Returns the amount of magnitude on a strategy not currently allocated to any operator set, by an operator. - Return type:
- int
- Parameters:
- operator_addr (Address | ChecksumAddress | str | None) 
- strategy_addr (Address | ChecksumAddress | str | None) 
 
 
 - get_allocated_stake(operator_set, operator_addresses, strategy_addresses)
- Returns the current allocated stake, despite the operator’s slashable status for the operatorSet. - Note: this method does not take into account M2 quorums. - Return type:
- list[- list[- int]]
- Parameters:
- operator_set (dict[str, Any]) 
- operator_addresses (list[Address | ChecksumAddress]) 
- strategy_addresses (list[Address | ChecksumAddress]) 
 
 
 - get_allocation_configuration_delay()
- Returns the delay before allocation delay modifications take effect. - Return type:
- int
 
 - get_allocation_delay(operator_addr)
- Returns the time in blocks between an operator allocating slashable magnitude and the magnitude becoming slashable. - Return type:
- int
- Parameters:
- operator_addr (Address | str | None) 
 
 - get_allocation_info(operator_addr, strategy_addr)
- Returns the allocation info of a given operator and strategy. - Return type:
- list[- dict[- str,- Any]]
- Parameters:
- operator_addr (Address | ChecksumAddress | str | None) 
- strategy_addr (Address | ChecksumAddress | str | None) 
 
 
 - get_avs_registrar(avs_address)
- Returns the AVSRegistrar of the avs received as parameter. - Return type:
- NewType(- Address,- bytes)
- Parameters:
- avs_address (Address | str | None) 
 
 - get_calculation_interval_seconds()
- Gets the interval in seconds at which the calculation for rewards distribution is done. - Return type:
- int
 
 - get_claimer_for(earner)
- Returns the claimer for the given earner. - Return type:
- NewType(- Address,- bytes)
- Parameters:
- earner (Address | str | None) 
 
 - get_cumulative_claimed(earner, token)
- Returns the number of token tokens the earner has claimed. - Return type:
- int
- Parameters:
- earner (Address | str | None) 
- token (Address | str | None) 
 
 
 - get_cumulative_withdrawals_queued(staker)
- Returns the total number of withdrawals that have been queued for a given staker. - Return type:
- int
- Parameters:
- staker (Address | str | None) 
 
 - get_curr_rewards_calculation_end_timestamp()
- Get timestamp for last submitted DistributionRoot. - Return type:
- int
 
 - get_current_claimable_distribution_root()
- Returns the latest root that can be claimed against. - Return type:
- dict[- str,- Any]
 
 - get_deallocation_delay()
- Returns the delay within which deallocations are slashable. - Return type:
- int
 
 - get_default_operator_split_bips()
- Get the default split for all operators across all avss in bips. - Return type:
- int
 
 - get_delegated_operator(staker_address, block_number=None)
- Returns the operator that a staker has delegated to. - Return type:
- NewType(- Address,- bytes)
- Parameters:
- staker_address (Address | str | None) 
- block_number (int | None) 
 
 
 - get_delegation_approver_salt_is_spent(delegation_approver, approver_salt)
- Returns whether delegationApprover has already used the given salt. - Return type:
- bool
- Parameters:
- delegation_approver (Address | str | None) 
- approver_salt (bytes) 
 
 
 - get_distribution_roots_length()
- Returns the number of distribution roots published. - Return type:
- int
 
 - get_encumbered_magnitude(operator_address, strategy_address)
- Returns the amount of magnitude an operator has allocated to operator sets for a given strategy. - Return type:
- int
- Parameters:
- operator_address (Address | str | None) 
- strategy_address (Address | str | None) 
 
 
 - get_genesis_rewards_timestamp()
- Get absolute min timestamp (seconds) that a rewards submission can start at. - Return type:
- int
 
 - get_is_avs_rewards_submission_hash(avs, hash)
- Returns whether a hash is a valid rewards submission hash for a given avs. - Return type:
- bool
- Parameters:
- avs (Address | str | None) 
- hash (bytes) 
 
 
 - get_is_operator_directed_avs_rewards_submission_hash(avs, hash)
- Returns whether a hash is a valid operator set performance rewards submission hash for a given avs. - Return type:
- bool
- Parameters:
- avs (Address | str | None) 
- hash (bytes) 
 
 
 - get_is_operator_directed_operator_set_rewards_submission_hash(avs, hash)
- Returns whether a hash is a valid operator set performance rewards submission hash for a given avs. - Return type:
- bool
- Parameters:
- avs (Address | str | None) 
- hash (bytes) 
 
 
 - get_is_rewards_for_all_submitter(submitter)
- Returns whether a submitter is a valid rewards for all submitter. - Return type:
- bool
- Parameters:
- submitter (Address | str | None) 
 
 - get_is_rewards_submission_for_all_earners_hash(avs, hash)
- Returns whether a hash is a valid rewards submission for all earners hash for a given avs. - Return type:
- bool
- Parameters:
- avs (Address | str | None) 
- hash (bytes) 
 
 
 - get_is_rewards_submission_for_all_hash(avs, hash)
- Returns whether a hash is a valid rewards submission for all hash for a given avs. - Return type:
- bool
- Parameters:
- avs (Address | str | None) 
- hash (bytes) 
 
 
 - get_max_future_length()
- Get the max amount of time (seconds) that a rewards submission can start in the future. - Return type:
- int
 
 - get_max_magnitudes(operator_addr, strategy_addrs)
- Returns the maximum magnitude an operator can allocate for the given strategies. - Return type:
- list[- int]
- Parameters:
- operator_addr (Address | ChecksumAddress | str | None) 
- strategy_addrs (list[Address] | list[ChecksumAddress] | list[str]) 
 
 
 - get_max_retroactive_length()
- Get the max amount of time (seconds) that a rewards submission can start in the past. - Return type:
- int
 
 - get_max_rewards_duration()
- Gets the maximum amount of time (seconds) that a rewards submission can span over. - Return type:
- int
 
 - get_num_operator_sets_for_operator(operator_address)
- Returns the number of operator sets that an operator is part of. - This doesn’t include M2 quorums. - Return type:
- int
- Parameters:
- operator_address (Address | str | None) 
 
 - get_num_operators_for_operator_set(operator_set)
- Returns the number of operators in a specific operator set. - Not supported for M2 AVSs. - Return type:
- int
- Parameters:
- operator_set (dict) 
 
 - get_operator_avs_split(operator, avs)
- Returns the split configured by the operator for the avs. - Return type:
- int
- Parameters:
- operator (Address | str | None) 
- avs (Address | str | None) 
 
 
 - get_operator_details(operator)
- Returns detailed information on an operator. - Return type:
- dict[- str,- Any]
- Parameters:
- operator (dict[str, Any]) 
 
 - get_operator_pi_split(operator)
- Returns the split configured by the operator for Programmatic Incentives. - Return type:
- int
- Parameters:
- operator (Address | str | None) 
 
 - get_operator_set_split(operator, operator_set)
- Returns the split for an operator in an operator set. - Return type:
- int
- Parameters:
- operator (Address | str | None) 
- operator_set (dict) 
 
 
 - get_operator_sets_for_operator(operator_addr)
- Returns the list of operator sets the operator has current or pending allocations/deallocations in. - This doesn’t include M2 quorums. - Return type:
- list[- dict[- str,- Any]]
- Parameters:
- operator_addr (Address | str | None) 
 
 - Returns the shares an operator has delegated to them on a strategy. - Return type:
- list[- int]
- Parameters:
- operator_address (Address | ChecksumAddress | str | None) 
- strategy_addresses (list[Address] | list[ChecksumAddress]) 
 
 
 - Returns the shares an operator has in a given strategy. - Return type:
- int
- Parameters:
- operator_addr (Address | str | None) 
- strategy_addr (Address | str | None) 
 
 
 - get_operators_for_operator_set(operator_set)
- Returns the list of operators in a specific operator set. - Not supported for M2 AVSs. - Return type:
- list
- Parameters:
- operator_set (dict) 
 
 - Returns the shares that a set of operators have delegated to them in a set of strategies. - Return type:
- list[- list[- int]]
- Parameters:
- operator_addresses (list[Address | ChecksumAddress]) 
- strategy_addresses (list[Address | ChecksumAddress]) 
 
 
 - get_pending_withdrawal_status(withdrawal_root)
- Returns whether a withdrawal is pending for a given withdrawalRoot. - Return type:
- bool
- Parameters:
- withdrawal_root (bytes) 
 
 - get_registered_sets(operator_addr)
- Returns a list of all operator sets the operator is registered for. - Return type:
- list[- dict[- str,- Any]]
- Parameters:
- operator_addr (Address | str | None) 
 
 - get_rewards_updater()
- Get the address of the entity that can update the contract with new merkle roots. - Return type:
- Union[- NewType(- Address,- bytes),- str,- None]
 
 - get_root_index_from_hash(root_hash)
- Returns the index of the latest root that can be claimed against. - Return type:
- int
- Parameters:
- root_hash (bytes) 
 
 - Returns a list of the number of shares slashable by the operator set for each of the given strategies. - Return type:
- dict[- str,- int] |- None
- Parameters:
- operator_address (Address | ChecksumAddress | str | None) 
- operator_set (dict[str, Any]) 
- strategies (list[Address | ChecksumAddress]) 
 
 
 - Returns the strategies the operatorSets take into account, their operators, and the minimum amount of shares that are slashable by the operatorSets. - Not supported for M2 AVSs. - Return type:
- list[- dict[- str,- Any]] |- None
- Parameters:
- operator_sets (list[dict[str, Any]]) 
 
 - Returns the strategies the operatorSets take into account, their operators, and the minimum amount of shares slashable by the operatorSets before a given timestamp. - Timestamp must be in the future. Used to estimate future slashable stake. Not supported for M2 AVSs. - Return type:
- list[- dict[- str,- Any]] |- None
- Parameters:
- operator_sets (list[dict[str, Any]]) 
- future_block (int) 
 
 
 - Returns the amount of shares that a staker has in all of the strategies they have shares in. - Return type:
- tuple[- list[- NewType(- Address,- bytes)],- list[- int]]
- Parameters:
- staker_address (Address | str | None) 
 
 - get_strategies_for_operator_set(operator_set)
- Returns the list of strategies that an operator set takes into account. - Not supported for M2 AVSs. - Return type:
- list[- NewType(- Address,- bytes)]
- Parameters:
- operator_set (dict) 
 
 - get_strategy_and_underlying_erc20_token(strategy_addr)
- Returns the bindings of a given strategy and the bindings and address of its underlying token. - Return type:
- tuple[- Contract,- Contract,- str|- None]
- Parameters:
- strategy_addr (Address | ChecksumAddress) 
 
 - get_strategy_and_underlying_token(strategy_addr)
- Returns the bindings of a given strategy and the address of its underlying token. - Return type:
- tuple[- Contract,- str|- None]
- Parameters:
- strategy_addr (Address | ChecksumAddress) 
 
 - get_submission_nonce(avs)
- Returns the submission nonce for an avs. - Return type:
- int
- Parameters:
- avs (Address | str | None) 
 
 - is_admin(account_address, admin_address)
- Returns true if adminAddress is an admin of accountAddress. - Return type:
- bool
- Parameters:
- account_address (Address | str | None) 
- admin_address (Address | str | None) 
 
 
 - is_operator_registered(operator_address)
- Returns true if the operator is registered to the EigenLayer protocol, false otherwise. - Return type:
- bool
- Parameters:
- operator_address (Address | str | None) 
 
 - is_operator_registered_with_avs(operator_address, avs_address)
- Returns true if an operator is registered with a specific M2 quorum, querying AVSDirectory. - Note: this method does not take into account operator sets. - Return type:
- bool
- Parameters:
- operator_address (Address | str | None) 
- avs_address (Address | str | None) 
 
 
 - is_operator_registered_with_operator_set(operator_addr, operator_set)
- Returns true if an operator is registered with a specific operator set. - Note: this method does not take into account M2 quorums. - Return type:
- bool
- Parameters:
- operator_addr (Address | str | None) 
- operator_set (dict) 
 
 
 - is_operator_slashable(operator_address, operator_set)
- Returns true if the received operator is slashable by the received operator set. - Note: this method does not take into account M2 quorums. - Return type:
- bool
- Parameters:
- operator_address (Address | str | None) 
- operator_set (dict[str, Any]) 
 
 
 - is_pending_admin(account_address, pending_admin_address)
- Returns true if pendingAdminAddress is a pending admin for accountAddress, false otherwise. - Return type:
- bool
- Parameters:
- account_address (Address | str | None) 
- pending_admin_address (Address | str | None) 
 
 
 - list_admins(account_address)
- Returns the admins of an account. - Return type:
- list[- NewType(- Address,- bytes)]
- Parameters:
- account_address (Address | str | None) 
 
 - list_appointee_permissions(account_address, appointee_address)
- Returns the list of permissions of an appointee for a given account. - Return type:
- tuple[- list[- NewType(- Address,- bytes)],- list[- bytes]]
- Parameters:
- account_address (Address | str | None) 
- appointee_address (Address | str | None) 
 
 
 - list_appointees(account_address, target, selector)
- Returns the list of appointees for a given account, target and function selector. - Note that this doesn’t include any of the appointed admins. - Return type:
- list[- NewType(- Address,- bytes)]
- Parameters:
- account_address (Address | str | None) 
- target (Address | str | None) 
- selector (bytes) 
 
 
 - list_pending_admins(account_address)
- Returns the pending admins of an account. - Return type:
- list[- NewType(- Address,- bytes)]
- Parameters:
- account_address (Address | str | None) 
 
 
ELWriter
The ELWriter class provides write operations for EigenLayer contracts, enabling operator registration, strategy management, rewards processing, allocation modifications, and permission management.
- class eigensdk.chainio.clients.elcontracts.writer.ELWriter(allocation_manager, avs_directory, delegation_manager, permission_controller, reward_coordinator, registry_coordinator, strategy_manager, el_chain_reader, eth_http_client, logger, pk_wallet, strategy_abi, erc20_abi)
- Bases: - object- Parameters:
- allocation_manager (Contract) 
- avs_directory (Contract) 
- delegation_manager (Contract) 
- permission_controller (Contract) 
- reward_coordinator (Contract) 
- registry_coordinator (Contract) 
- strategy_manager (Contract) 
- el_chain_reader (Any) 
- eth_http_client (Web3) 
- logger (Logger) 
- pk_wallet (LocalAccount) 
- strategy_abi (List[Dict[str, Any]]) 
- erc20_abi (List[Dict[str, Any]]) 
 
 - accept_admin(request)
- Accepts pending admin role for the account. - Caller must be the pending admin. - Return type:
- TxReceipt
- Parameters:
- request (dict) 
 
 - add_pending_admin(request)
- Sets a pending admin. - Admins can add others. If none exist, account can self-assign. - Return type:
- TxReceipt
- Parameters:
- request (dict) 
 
 - clear_deallocation_queue(operator_address, strategies, nums_to_clear)
- Clears an operator’s deallocation queue for specific strategies. - Ensures queues are in sync with effect timestamps. - Return type:
- TxReceipt
- Parameters:
- operator_address (str) 
- strategies (list) 
- nums_to_clear (list) 
 
 
 - deposit_erc20_into_strategy(strategy_addr, amount)
- Deposits amount of the strategyAddr underlying token into the strategy given by strategyAddr. - Return type:
- TxReceipt
- Parameters:
- strategy_addr (str) 
- amount (int) 
 
 
 - deregister_from_operator_sets(operator, request)
- Deregisters an operator from AVS operator sets. - Remaining slashable stake remains until delay elapses. - Return type:
- TxReceipt
- Parameters:
- operator (str) 
- request (dict) 
 
 
 - get_operator_id(operator_address)
- Returns the operator ID for the given operator address. - Return type:
- bytes
- Parameters:
- operator_address (ChecksumAddress) 
 
 - modify_allocations(operator_address, avs_service_manager, operator_set_id, strategies, new_magnitudes)
- Modifies proportions of slashable stake allocated to an operator set from a list of strategies. - Return type:
- TxReceipt
- Parameters:
- operator_address (str) 
- avs_service_manager (str) 
- operator_set_id (int) 
- strategies (list) 
- new_magnitudes (list) 
 
 
 - process_claim(claim, recipient_address)
- Processes the given claim for rewards. - Transfers rewards to recipientAddress. - Return type:
- TxReceipt
- Parameters:
- claim (dict) 
- recipient_address (str) 
 
 
 - register_as_operator(operator)
- Registers the caller as an operator in EigenLayer through the DelegationManager contract. - Return type:
- TxReceipt
- Parameters:
- operator (Operator) 
 
 - register_for_operator_sets(registry_coordinator_addr, request)
- Registers an operator for operator sets. - If churnApprovalEcdsaPrivateKey is provided, it replaces in full quorums. - Return type:
- TxReceipt
- Parameters:
- registry_coordinator_addr (str) 
- request (dict) 
 
 
 - remove_admin(request)
- Removes the admin from an account. - Caller must be an existing admin. - Return type:
- TxReceipt
- Parameters:
- request (dict) 
 
 - remove_pending_admin(request)
- Removes a pending admin from an account. - Only current admin can perform this. - Return type:
- TxReceipt
- Parameters:
- request (dict) 
 
 - remove_permission(request)
- Removes permission of an appointee for a specific function on a contract, for an account. - Return type:
- TxReceipt
- Parameters:
- request (dict) 
 
 - send_transaction(func)
- Send a transaction using the configured transactor. - Parameters:
- func (ContractFunction) 
 
 - set_allocation_delay(operator_address, delay)
- Sets the allocation delay for an operator. - Defines blocks before allocated stake becomes slashable. - Return type:
- TxReceipt
- Parameters:
- operator_address (str) 
- delay (int) 
 
 
 - set_avs_registrar(avs_address, registrar_address)
- Sets the avsRegistrar for the received AVS, typically a RegistryCoordinator. - Return type:
- TxReceipt
- Parameters:
- avs_address (str) 
- registrar_address (str) 
 
 
 - set_claimer_for(claimer)
- Sets claimer as the claimer for the earner (caller). - Enables claimer to call processClaim. - Return type:
- TxReceipt
- Parameters:
- claimer (str) 
 
 - set_operator_avs_split(operator, avs, split)
- Sets the split for a specific operator for a specific AVS. - Must be between 0 and 10000 bips. Activated after delay. - Return type:
- TxReceipt
- Parameters:
- operator (str) 
- avs (str) 
- split (int) 
 
 
 - set_operator_pi_split(operator, split)
- Sets the split for a specific operator for Programmatic Incentives. - Must be between 0 and 10000 bips. Activated after delay. - Return type:
- TxReceipt
- Parameters:
- operator (str) 
- split (int) 
 
 
 - set_permission(request)
- Sets an appointee for an account. - Only admins can assign appointees to functions. - Return type:
- TxReceipt
- Parameters:
- request (dict) 
 
 - update_metadata_uri(operator_address, uri)
- Updates the metadata URI for the given operator. - Return type:
- TxReceipt
- Parameters:
- operator_address (str) 
- uri (str) 
 
 
 
AvsRegistryReader
The AvsRegistryReader class provides comprehensive read-only access to AVS (Autonomous Validation Service) registry contracts, offering functionality for quorum management, operator information retrieval, stake tracking, and public key management.
- class eigensdk.chainio.clients.avsregistry.reader.AvsRegistryReader(registry_coordinator, registry_coordinator_addr, bls_apk_registry, bls_apk_registry_addr, operator_state_retriever, service_manager, stake_registry, logger, eth_http_client)
- Bases: - object- Parameters:
- registry_coordinator (Contract) 
- registry_coordinator_addr (Address) 
- bls_apk_registry (Contract) 
- bls_apk_registry_addr (Address) 
- operator_state_retriever (Contract) 
- service_manager (Contract) 
- stake_registry (Contract) 
- logger (Logger) 
- eth_http_client (Web3) 
 
 - can_satisfy_only_coordinator_owner_modifier(address)
- Return type:
- bool
- Parameters:
- address (str) 
 
 - get_apk_update(quorum_number, index)
- Stores and retrieves the history of aggregate public key updates for a quorum at a given index. - Return type:
- Parameters:
- quorum_number (int) 
- index (int) 
 
 
 - get_check_signatures_indices(reference_block_number, quorum_numbers, non_signer_operator_ids)
- Returns a struct containing the indices of the quorum members that signed, and those that didn’t. - Return type:
- Parameters:
- reference_block_number (int) 
- quorum_numbers (list[int]) 
- non_signer_operator_ids (list[bytes]) 
 
 
 - get_current_apk(quorum_number)
- Gets the current aggregate BLS public key for a given quorum. - Return type:
- Parameters:
- quorum_number (int) 
 
 - get_current_total_stake(quorum_number)
- Returns the stake weight from the latest entry in the quorum’s stake history. - Return type:
- int
- Parameters:
- quorum_number (int) 
 
 - get_latest_stake_update(operator_id, quorum_number)
- Returns the most recent stake weight for the operatorId in a given quorum. - Return type:
- Parameters:
- operator_id (bytes) 
- quorum_number (int) 
 
 
 - get_minimum_stake_for_quorum(quorum_number)
- Return type:
- int
- Parameters:
- quorum_number (int) 
 
 - get_operator_address_from_operator_id(operator_pubkey_hash)
- Returns the operator address given their operator ID (pubkeyhash). - Return type:
- str
- Parameters:
- operator_pubkey_hash (bytes) 
 
 - get_operator_addrs_in_quorums_at_current_block(quorum_numbers)
- Returns, for each quorum in quorumNumbers, a list of the addresses of the operators registered for that quorum at the current block. - Return type:
- list[- list[- str]]
- Parameters:
- quorum_numbers (list[int]) 
 
 - get_operator_from_id(operator_id)
- Given an operator ID, returns its address. - Return type:
- str
- Parameters:
- operator_id (bytes) 
 
 - get_operator_id(operator_address)
- Given an operator address, returns its ID. - Return type:
- bytes
- Parameters:
- operator_address (Address) 
 
 - get_operator_id_from_operator_address(operator_address)
- Returns the operator’s ID (pubkeyhash) given their address. - Return type:
- bytes
- Parameters:
- operator_address (str) 
 
 - get_operator_restaked_strategies(operator)
- Return type:
- list[- str]
- Parameters:
- operator (str) 
 
 - get_operator_stake_in_quorums_of_operator_at_current_block(operator_id)
- Avoids race conditions by ensuring consistent blockNumber usage. - Queries operator’s stake data in relevant quorums using provided or default blockNumber in opts. - Return type:
- dict[- int,- int]
- Parameters:
- operator_id (bytes) 
 
 - get_operators_stake_in_quorums_at_block(quorum_numbers, block_number)
- Returns, for each quorum in quorumNumbers, a vector of the operators registered for that quorum at a specific block number. - The contract stores historical state, so block_number should be the block number of the state to query. - Return type:
- list[- list[- OperatorStateRetrieverOperator]]
- Parameters:
- quorum_numbers (list[int]) 
- block_number (int) 
 
 
 - get_operators_stake_in_quorums_at_current_block(quorum_numbers)
- Returns, for each quorum in quorumNumbers, a vector of the operators registered for that quorum at the current block, containing each operator’s operatorId and stake. - Return type:
- list[- list[- OperatorStateRetrieverOperator]]
- Parameters:
- quorum_numbers (list[int]) 
 
 - get_operators_stake_in_quorums_of_operator_at_block(operator_id, block_number)
- Returns a tuple: - An array with the quorum IDs in which the given operator is registered at the given block - An array that contains, for each quorum, an array with the address, id, and stake of each operator - Return type:
- tuple[- list[- int],- list[- list[- OperatorStateRetrieverOperator]]]
- Parameters:
- operator_id (bytes) 
- block_number (int) 
 
 
 - get_operators_stake_in_quorums_of_operator_at_current_block(operator_id)
- Returns quorum registration and stake data of a given operator at the current block. - opts will be updated to include the latest blockNumber. - Return type:
- tuple[- list[- int],- list[- list[- OperatorStateRetrieverOperator]]]
- Parameters:
- operator_id (bytes) 
 
 - get_pubkey_from_operator_address(operator_address)
- Returns the operator’s BLS public key in G1 given their address. - Return type:
- Parameters:
- operator_address (str) 
 
 - get_quorum_count()
- Returns the total quorum count read from the RegistryCoordinator. - Return type:
- int
 
 - get_registry_coordinator_owner()
- Return type:
- str
 
 - get_restakeable_strategies()
- Return type:
- list[- str]
 
 - get_slashable_stake_look_ahead_per_quorum(quorum_number)
- Return type:
- int
- Parameters:
- quorum_number (int) 
 
 - get_stake_at_block_number(operator_id, quorum_number, block_number)
- Returns the stake of the operator for the provided quorumNumber at the given blockNumber. - Return type:
- int
- Parameters:
- operator_id (bytes) 
- quorum_number (int) 
- block_number (int) 
 
 
 - get_stake_history(operator_id, quorum_number)
- Returns the entire operatorStakeHistory[operatorId][quorumNumber] array, which contains the operator’s stake update history. - Return type:
- Parameters:
- operator_id (bytes) 
- quorum_number (int) 
 
 
 - get_stake_history_length(operator_id, quorum_number)
- Returns the length of an operator’s stake history for the given quorum. - Return type:
- int
- Parameters:
- operator_id (bytes) 
- quorum_number (int) 
 
 
 - get_stake_type_per_quorum(quorum_number)
- Return type:
- int
- Parameters:
- quorum_number (int) 
 
 - get_stake_update_at_index(operator_id, quorum_number, index)
- Returns the index-th entry in the operatorStakeHistory for the specified operator and quorum. - Return type:
- Parameters:
- operator_id (bytes) 
- quorum_number (int) 
- index (int) 
 
 
 - get_stake_update_index_at_block_number(operator_id, quorum_number, block_number)
- Returns the indices of the operator stakes for the provided quorumNumber at the given blockNumber. - Return type:
- int
- Parameters:
- operator_id (bytes) 
- quorum_number (int) 
- block_number (int) 
 
 
 - get_strategy_params_at_index(quorum_number, index)
- Return type:
- Parameters:
- quorum_number (int) 
- index (int) 
 
 
 - get_strategy_per_quorum_at_index(quorum_number, index)
- Return type:
- str
- Parameters:
- quorum_number (int) 
- index (int) 
 
 
 - get_total_stake_at_block_number_from_index(quorum_number, block_number, index)
- Returns the total stake weight for the specified quorum at the index-th entry in the stake history array if it was the stake at the specified blockNumber. - Return type:
- int
- Parameters:
- quorum_number (int) 
- block_number (int) 
- index (int) 
 
 
 - get_total_stake_history_length(quorum_number)
- Returns the length of the total stake history for the given quorum. - Return type:
- int
- Parameters:
- quorum_number (int) 
 
 - get_total_stake_indices_at_block_number(quorum_numbers, block_number)
- Return type:
- list[- int]
- Parameters:
- quorum_numbers (list[int]) 
- block_number (int) 
 
 
 - get_total_stake_update_at_index(quorum_number, index)
- Return type:
- Parameters:
- quorum_number (int) 
- index (int) 
 
 
 - is_operator_registered(operator_address)
- Returns true if the operator is registered for the quorum, false otherwise. - Return type:
- bool
- Parameters:
- operator_address (str) 
 
 - is_operator_set_quorum(quorum_number)
- Return type:
- bool
- Parameters:
- quorum_number (int) 
 
 - is_registry_coordinator_owner(address)
- Return type:
- bool
- Parameters:
- address (str) 
 
 - query_existing_registered_operator_pubkeys(start_block=0, stop_block=None, block_range=10000)
- Queries operators’ addresses and corresponding public keys for a block range. - Return type:
- tuple[- list[- NewType(- Address,- bytes)],- list[- OperatorPubkeys]]
- Parameters:
- start_block (int) 
- stop_block (int | None) 
- block_range (int) 
 
 
 - query_existing_registered_operator_sockets(start_block=0, stop_block=None, block_range=10000)
- Queries operator sockets for a block range. - Returns a mapping from operator IDs to sockets. - Return type:
- tuple[- dict[- bytes,- str],- int]
- Parameters:
- start_block (int) 
- stop_block (int | None) 
- block_range (int) 
 
 
 - query_registration_detail(operator_address)
- Returns an array of booleans representing whether an operator is registered for each quorum. - Return type:
- list[- bool]
- Parameters:
- operator_address (Address) 
 
 - strategy_params_by_index(quorum_number, index)
- Returns the strategy and weight multiplier for the index-th strategy in the specified quorum. - Return type:
- Parameters:
- quorum_number (int) 
- index (int) 
 
 
 - strategy_params_length(quorum_number)
- Returns the length of the dynamic array stored in strategyParams[quorumNumber] in the StakeRegistry contract. - Return type:
- int
- Parameters:
- quorum_number (int) 
 
 - weight_of_operator_for_quorum(quorum_number, operator_addr)
- Computes the total weight of an operator in the given quorum. - Return type:
- int
- Parameters:
- quorum_number (int) 
- operator_addr (str) 
 
 
 
AVS Registry Writer
The AvsRegistryWriter class provides write operations for AVS registry contracts, enabling comprehensive management of operators, quorums, strategies, and rewards within the AVS ecosystem.
- class eigensdk.chainio.clients.avsregistry.writer.AvsRegistryWriter(registry_coordinator, operator_state_retriever, service_manager, service_manager_addr, stake_registry, bls_apk_registry, el_reader, logger, eth_http_client, pk_wallet)
- Bases: - object- Parameters:
- registry_coordinator (Contract) 
- operator_state_retriever (Contract) 
- service_manager (Contract) 
- service_manager_addr (Address) 
- stake_registry (Contract) 
- bls_apk_registry (Contract) 
- el_reader (ELReader) 
- logger (Logger) 
- eth_http_client (Web3) 
- pk_wallet (LocalAccount) 
 
 - add_strategies(quorum_number, strategy_params)
- Adds new strategies and multipliers to the specified quorum. - Return type:
- TxReceipt
- Parameters:
- quorum_number (int) 
- strategy_params (list[dict]) 
 
 
 - create_avs_rewards_submission(rewards_submission)
- Creates a new AVS rewards submission for registered operators’ stakers. - Includes various validations and possible failure conditions. - Return type:
- TxReceipt
- Parameters:
- rewards_submission (list[dict]) 
 
 - create_operator_directed_avs_rewards_submission(operator_directed_rewards_submissions)
- Creates operator-directed AVS rewards submission. - Multiple validations apply (e.g., address order, signature permissions). - Return type:
- TxReceipt
- Parameters:
- operator_directed_rewards_submissions (list[dict]) 
 
 - create_slashable_stake_quorum(operator_set_params, minimum_stake_required, strategy_params, look_ahead_period)
- Creates a quorum tracking slashable stake. - Includes minimum stake and look ahead period. Only works on M2 AVSs. - Return type:
- TxReceipt
- Parameters:
- operator_set_params (tuple[int, int, int]) 
- minimum_stake_required (int) 
- strategy_params (list[tuple[str, int]]) 
- look_ahead_period (int) 
 
 
 - create_total_delegated_stake_quorum(operator_set_params, minimum_stake_required, strategy_params)
- Creates a new quorum tracking total delegated stake. - Requires quorum params and minimum stake. - Return type:
- TxReceipt
- Parameters:
- operator_set_params (tuple[int, int, int]) 
- minimum_stake_required (int) 
- strategy_params (list[tuple[str, int]]) 
 
 
 - eject_operator(operator_address, quorum_numbers)
- Ejects an operator from the specified quorums. - Does nothing if the operator is not registered. - Return type:
- TxReceipt
- Parameters:
- operator_address (str) 
- quorum_numbers (list[int]) 
 
 
 - modify_strategy_params(quorum_number, strategy_indices, multipliers)
- Modifies multipliers for existing strategies in a specific quorum. - Return type:
- TxReceipt
- Parameters:
- quorum_number (int) 
- strategy_indices (list[int]) 
- multipliers (list[int]) 
 
 
 - remove_strategies(quorum_number, indices_to_remove)
- Removes strategies and their weights from the specified quorum. - Return type:
- TxReceipt
- Parameters:
- quorum_number (int) 
- indices_to_remove (list[int]) 
 
 
 - send_transaction(func)
- Send a transaction using the configured transactor. - Parameters:
- func (ContractFunction) 
 
 - set_avs(avs_address)
- Sets the AVS address (identifier). - Should only be set once. - Return type:
- TxReceipt
- Parameters:
- avs_address (str) 
 
 - set_churn_approver(churn_approver_address)
- Sets the churnApprover address, whose signature is required in churn registration. - Return type:
- TxReceipt
- Parameters:
- churn_approver_address (str) 
 
 - set_ejection_cooldown(ejection_cooldown)
- Sets the ejection cooldown: the waiting time before an ejected operator can rejoin. - Return type:
- TxReceipt
- Parameters:
- ejection_cooldown (int) 
 
 - set_ejector(ejector_address)
- Sets the ejector address. - This is the only address allowed to eject operators. - Return type:
- TxReceipt
- Parameters:
- ejector_address (str) 
 
 - set_minimum_stake_for_quorum(quorum_number, minimum_stake)
- Sets the minimum stake required for a specific quorum. - Return type:
- TxReceipt
- Parameters:
- quorum_number (int) 
- minimum_stake (int) 
 
 
 - set_operator_set_params(quorum_number, operator_set_params)
- Sets max operator count and churn parameters for a specific quorum. - Return type:
- TxReceipt
- Parameters:
- quorum_number (int) 
- operator_set_params (dict) 
 
 
 - set_rewards_initiator(rewards_initiator_addr)
- Sets the rewards initiator address. - This is the only address allowed to initiate rewards. - Return type:
- TxReceipt
- Parameters:
- rewards_initiator_addr (str) 
 
 - set_slashable_stake_lookahead(quorum_number, look_ahead_period)
- Sets the look ahead time for checking operator shares for a specific quorum. - Return type:
- TxReceipt
- Parameters:
- quorum_number (int) 
- look_ahead_period (int) 
 
 
 - update_avs_metadata_uri(metadata_uri)
- Updates the metadata URI for the AVS. - Return type:
- TxReceipt
- Parameters:
- metadata_uri (str) 
 
 - update_socket(socket)
- Updates the socket of the sender (if it is a registered operator). - Return type:
- TxReceipt
- Parameters:
- socket (str) 
 
 - update_stakes_of_entire_operator_set_for_quorums(operators_per_quorum, quorum_numbers)
- Used by avs teams running https://github.com/Layr-Labs/avs-sync to update the stake of their entire operator set. Due to high gas costs, typically needs to be called per quorum. - Return type:
- TxReceipt
- Parameters:
- operators_per_quorum (list[list[str]]) 
- quorum_numbers (list[int]) 
 
 
 - update_stakes_of_operator_subset_for_all_quorums(operators)
- Updates the stakes of the given operators for all the quorums. - Return type:
- TxReceipt
- Parameters:
- operators (list[str])