Skip to content

v0.5.0-testnet-holesky

Pre-release
Pre-release
Compare
Choose a tag to compare
@supernovahs supernovahs released this 18 Mar 22:06
· 23 commits to dev since this release
339617c

What's Changed

Added ๐ŸŽ‰

  • Added all features of the eigensdk crate to its "full" feature #370

    • This includes: "types", "utils", "metrics-collectors-economic", and "metrics-collectors-rpc-calls" features.
  • Bump alloy to 0.12 in #381.

  • Added register_for_operator_sets_with_churn method to elcontracts/writer in #382.

      let el_chain_writer_2 =
          new_test_writer(http_endpoint.clone(), SECOND_PRIVATE_KEY.to_string()).await;
    
      let bls_key_pair = BlsKeyPair::new(OPERATOR_BLS_KEY_2.to_string()).unwrap();
      let churn_private_key = FIRST_PRIVATE_KEY.to_string();
      let churn_sig_salt = FixedBytes::from([0x05; 32]);
      let churn_sig_expiry = U256::MAX;
      
      let tx_hash = el_chain_writer_2
          .register_for_operator_sets_with_churn(
              SECOND_ADDRESS,         // Operator address to register
              bls_key_pair,           // Operator's BLS key pair
              avs_address,            // AVS address
              vec![operator_set_id],  // Operator set ID
              "socket".to_string(),   // Socket address
              Bytes::from([0]),       // Quorum numbers
              vec![FIRST_ADDRESS],    // Operators to kick if quorum is full
              churn_private_key,      // Churn approver's private key
              churn_sig_salt,         // Churn signature salt
              churn_sig_expiry,       // Churn signature expiry
          )
          .await
          .unwrap();

Breaking Changes ๐Ÿ› 

  • Renamed set_account_identifier to set_avs #365

  • Changed the signature of build_avs_registry_chain_writer in #384.

    • The operator_state_retriever_addr parameter was replaced by service_manager_addr.
    • This change was made because later middleware versions do not include ServiceManager.
    // Before
    pub async fn build_avs_registry_chain_writer(
        logger: SharedLogger,
        provider: String,
        signer: String,
        registry_coordinator_addr: Address,
        _operator_state_retriever_addr: Address,
    ) -> Result<Self, AvsRegistryError> {}
    
    // After
    pub async fn build_avs_registry_chain_writer(
        logger: SharedLogger,
        provider: String,
        signer: String,
        registry_coordinator_addr: Address,
        service_manager_addr: Address,
    ) -> Result<Self, AvsRegistryError> {}
  • Bump middleware to v1.4.0-testnet-holesky in [#396] , [#365], [#395] and [#388].

    • Added method is_operator_slashable.
  let chain_reader = build_el_chain_reader(http_endpoint.clone()).await;

  let operator_set = OperatorSet {
      id: 1,
      avs: Address::ZERO,
  };

  let is_slashable = chain_reader
      .is_operator_slashable(OPERATOR_ADDRESS, operator_set)
      .await
      .unwrap();
  assert!(!is_slashable);
  • Added method get_allocated_stake.
  let chain_reader = build_el_chain_reader(http_endpoint.clone()).await;

  let operator_set = OperatorSet {
      id: 1,
      avs: Address::ZERO,
  };
  let operators = vec![OPERATOR_ADDRESS];
  let strategies = vec![get_erc20_mock_strategy(http_endpoint.to_string()).await];
  let slashable_stake = chain_reader
      .get_allocated_stake(operator_set, operators, strategies)
      .await
      .unwrap();
  • Added method get_encumbered_magnitude.
  let chain_reader = build_el_chain_reader(http_endpoint.clone()).await;

  let magnitude = chain_reader
      .get_encumbered_magnitude(
          OPERATOR_ADDRESS,
          get_erc20_mock_strategy(http_endpoint.to_string()).await,
      )
      .await
      .unwrap();
  • Updated error types in BlsAggregationServiceError for channel failures in the BLS Aggregator Service (#392).
    • Before: A generic ChannelError was used for both sender and receiver channel failures.
    • After: Distinct errors are now provided:
      • SenderError is returned when the sender channel fails to send a message to the service.
      • ReceiverError is returned when the receiver channel fails to receive a message from the service.

Removed ๐Ÿ—‘

  • Removed unused empty structs from the library in #371
    • eigen_client_eth::client::Client
    • eigen_services_operatorsinfo::OperatorPubKeysService
  • Removed the AvsRegistryChainReader::is_operator_set_quorum method #365

Documentation ๐Ÿ“š

  • Reflect 2 bindings(rewardsv2 and slashing) in readme in #383.

Other Changes

New Contributors

Full Changelog: v0.4.0-rc.1...v0.5.0