Skip to content

v0.3.0 - Rewards 2.1 testnet

Latest
Compare
Choose a tag to compare
@supernovahs supernovahs released this 11 Feb 21:02
· 6 commits to dev since this release
4cf1969

What's Changed

Added🎉

  • Added new method set_slashable_stake_lookahead in avsregistry/writer in #278.

      let quorum_number = 0_u8;
      let lookahead = 10_u32;
      let tx_hash = avs_writer
          .set_slashable_stake_lookahead(quorum_number, lookahead)
          .await
          .unwrap();
  • Added new method set_rewards_initiator in avsregistry/writer in #273.

      let tx_hash = avs_writer
        .set_rewards_initiator(new_rewards_init_address)
        .await
        .unwrap();
  • Added new method clear_deallocation_queue in elcontracts/writer in #270

    let tx_hash_clear = el_chain_writer
        .clear_deallocation_queue(
            operator_address,
            vec![strategy_addr],
            vec![num_to_clear],
        )
        .await
        .unwrap();
  • Added update_socket function for avs registry writer in #268
    An example of use is the following:

    // Given an avs writer and a new socket address:
    
    let tx_hash = avs_writer
      .update_socket(new_socket_addr.into())
      .await
      .unwrap();
    
    let tx_status = wait_transaction(&http_endpoint, tx_hash)
      .await
      .unwrap()
      .status(); 
    // tx_status should be true
  • Added Rewards2.1 support in #323.

    • Set an operator's split on an operator set.
        let operator_set = OperatorSet {
              avs: avs_address,
              id: 0,
          };
    
          let new_split = 5;
          let tx_hash = el_chain_writer
              .set_operator_set_split(OPERATOR_ADDRESS, operator_set.clone(), new_split)
              .await
              .unwrap();
    • Get an operator's split on an operator set.
       let operator_set = OperatorSet {
              avs: avs_address,
              id: 0,
          };
         let split = el_chain_writer
              .el_chain_reader
              .get_operator_set_split(OPERATOR_ADDRESS, operator_set)
              .await
              .unwrap(); 
  • Added new method set_operator_set_param in avsregistry/writer in #327.

     let operator_set_params = OperatorSetParam {
          maxOperatorCount: 10,
          kickBIPsOfOperatorStake: 50,
          kickBIPsOfTotalStake: 50,
      };
    
      let tx_hash = avs_writer
          .set_operator_set_param(0, operator_set_params.clone())
          .await
          .unwrap();
  • Added new method eject_operator in avsregistry/writer in #328.

      let register_operator_address = address!("f39Fd6e51aad88F6F4ce6aB8827279cffFb92266");
      let quorum_nums = Bytes::from([0]);
    
      let tx_hash = avs_writer
          .eject_operator(register_operator_address, quorum_nums)
          .await
          .unwrap();
  • Added new method is_operator_set_quorum in avsregistry/writer in #296.

      let operator_set_quourm = avs_reader.is_operator_set_quorum(0).await.unwrap();
  • Added version explicitly in crates in #322.

  • Added new method set_account_identifier in avsregistry/writer in #329.

      let tx_hash = avs_writer
          .set_account_identifier(new_identifier_address)
          .await
          .unwrap();

Changed

Breaking changes🛠

  • refactor: update interface on bls aggregation in #254
    • Introduces a new struct TaskMetadata with a constructor TaskMetadata::new to initialize a new task and a method with_window_duration to set the window duration.

    • Refactors initialize_new_task and single_task_aggregator to accept a TaskMetadata struct instead of multiple parameters.

      // BEFORE
      bls_agg_service
            .initialize_new_task(
                task_index,
                block_number as u32,
                quorum_numbers,
                quorum_threshold_percentages,
                time_to_expiry,
            )
            .await
            .unwrap();
      
      // AFTER
      let metadata = TaskMetadata::new(
              task_index,
              block_number,
              quorum_numbers,
              quorum_threshold_percentages,
              time_to_expiry,
        )
      bls_agg_service.initialize_new_task(metadata).await.unwrap();
    • Removes initialize_new_task_with_window since window_duration can now be set in TaskMetadata.

      // BEFORE
      bls_agg_service
            .initialize_new_task_with_window(
                task_index,
                block_number as u32,
                quorum_numbers,
                quorum_threshold_percentages,
                time_to_expiry,
                window_duration,
            )
            .await
            .unwrap();
      
      // AFTER
      let metadata = TaskMetadata::new(
              task_index,
              block_number,
              quorum_numbers,
              quorum_threshold_percentages,
              time_to_expiry,
          ).with_window_duration(window_duration);
      bls_agg_service.initialize_new_task(metadata).await.unwrap();
  • refactor: encapsulate parameters into TaskSignature in #260
    • Introduced TaskSignature struct to encapsulate parameters related to task signatures:
    • Updated process_new_signature to accept a TaskSignature struct instead of multiple parameters.
      // BEFORE
      bls_agg_service.process_new_signature(task_index, task_response_digest, bls_signature, operator_id).await.unwrap();
      
      // AFTER
      let task_signature = TaskSignature::new(
            task_index,
            task_response_digest,
            bls_signature,
            operator_id,
      );
      bls_agg_service.process_new_signature(task_signature).await.unwrap();
  • Slashing UAM changes in #248.

Removed

Other Changes

New Contributors

Full Changelog: v0.1.3...v0.3.0