Skip to content

Get target rate per minute from smart contract #610

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 14, 2025

Conversation

neekolas
Copy link
Contributor

@neekolas neekolas commented Mar 10, 2025

TL;DR

Added target rate per minute parameter to the rates manager contract and related components.

What changed?

  • Added TargetRatePerMinute field to the RatesManagerRates struct
  • Updated addRates() function signature to accept the new parameter
  • Modified the RatesAdded event to include target rate
  • Updated CLI options to accept --target-rate flag
  • Added target rate handling in fees package and tests
  • Updated contract tests to verify target rate functionality

How to test?

  1. Deploy updated contract
  2. Add new rates using CLI with target rate parameter:
./cli add-rates --message-fee 100 --storage-fee 200 --congestion-fee 300 --target-rate 6000
  1. Verify rates are stored correctly by querying the contract
  2. Check that target rate is included in emitted events

Why make this change?

To support rate limiting functionality by allowing configuration of target message processing rates per minute for each node. This enables better control over network congestion and resource utilization.

Summary by CodeRabbit

  • New Features

    • Introduced a new "target rate per minute" parameter to enhance rates management across the platform.
    • Updated user configuration options and on-chain events to support the new rate setting.
  • Tests

    • Expanded test coverage to ensure the new target rate functionality works as expected for all components.

Copy link
Contributor

coderabbitai bot commented Mar 10, 2025

Walkthrough

This pull request introduces a new field, TargetRatePerMinute, across various components of the project. This field is added to rate structures and is included as an additional parameter in functions such as AddRates in both the CLI and blockchain contract code. Corresponding updates have been made to event declarations, ABI definitions, tests, and configuration options to ensure consistent handling of the additional rate parameter.

Changes

Files Change Summary
cmd/cli/main.go
pkg/config/cliOptions.go
Added new field in CLI data structures: TargetRatePerMinute is initialized in the rates struct and introduced as TargetRate in CLI options with an associated CLI flag.
contracts/pkg/ratesmanager/RatesManager.go
contracts/src/RatesManager.sol
Updated the rates struct definitions to include TargetRatePerMinute. Modified the addRates function signatures in Go and Solidity contracts to accept this new parameter. Updated ABI, event declarations, filter/watch methods, and parsing functions to incorporate the additional field.
contracts/test/RatesManager.t.sol Introduced a new constant for targetRatePerMinute and adjusted tests (testAddRatesValid and testAddRatesUnauthorized) to use and verify the new parameter in the rates addition process.
pkg/blockchain/ratesAdmin.go
pkg/blockchain/ratesAdmin_test.go
Updated the AddRates method to forward the additional parameter (TargetRatePerMinute) from the rates struct and adjusted tests to include and validate this field when constructing the RatesManagerRates instance.
pkg/fees/contractRates.go
pkg/fees/contractRates_test.go
pkg/fees/interface.go
Modified the transformation functions and interfaces by adding the TargetRatePerMinute field to the corresponding rate structs. Updated the test assertions to verify the inclusion and proper value assignment of the new field.

Sequence Diagram(s)

sequenceDiagram
    participant CLI as CLI Application
    participant Admin as RatesAdmin
    participant RM as RatesManager Contract
    participant BC as Blockchain

    CLI->>Admin: Prepare rates including TargetRatePerMinute via CLI options
    Admin->>RM: Call AddRates(messageFee, storageFee, congestionFee, startTime, targetRatePerMinute)
    RM-->>BC: Execute transaction with all rate parameters
    BC-->>RM: Return transaction confirmation
    RM->>Admin: Confirm rates addition (emit RatesAdded with targetRatePerMinute)
    Admin->>CLI: Return success/failure status
Loading

Possibly related PRs

  • Add CLI tool for adding rates to the contract #586: The changes in the main PR are related to those in the retrieved PR as both involve modifications to the RatesManagerRates struct, specifically the addition of the TargetRatePerMinute field, and updates to the addRates function to accommodate this new parameter.
  • Add admin functions for rates contract #575: The changes in the main PR are related to the addition of the TargetRatePerMinute field in the RatesManagerRates struct, which is also reflected in the AddRates method of the RatesAdmin struct in the retrieved PR.
  • Ingest rates from smart contract #573: The changes in the main PR are related to the addition of the TargetRatePerMinute field in the RatesManagerRates struct and the addRates function, which is also reflected in the retrieved PR that implements the RatesFetcher interface and interacts with the smart contract to manage rates, including the same field.

Suggested reviewers

  • fbac

Warning

There were issues while running some tools. Please review the errors and either fix the tool’s configuration or disable the tool if it’s a critical failure.

🔧 golangci-lint (1.62.2)

Error: can't load config: the Go language version (go1.23) used to build golangci-lint is lower than the targeted Go version (1.24)
Failed executing command with error: can't load config: the Go language version (go1.23) used to build golangci-lint is lower than the targeted Go version (1.24)


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8cdd72b and 73db2ee.

📒 Files selected for processing (11)
  • cmd/cli/main.go (1 hunks)
  • contracts/pkg/ratesmanager/RatesManager.go (8 hunks)
  • contracts/src/RatesManager.sol (4 hunks)
  • contracts/test/RatesManager.t.sol (10 hunks)
  • contracts/test/utils/Harnesses.sol (1 hunks)
  • pkg/blockchain/ratesAdmin.go (1 hunks)
  • pkg/blockchain/ratesAdmin_test.go (1 hunks)
  • pkg/config/cliOptions.go (1 hunks)
  • pkg/fees/contractRates.go (1 hunks)
  • pkg/fees/contractRates_test.go (2 hunks)
  • pkg/fees/interface.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (9)
  • pkg/config/cliOptions.go
  • pkg/fees/interface.go
  • pkg/fees/contractRates.go
  • cmd/cli/main.go
  • pkg/blockchain/ratesAdmin_test.go
  • pkg/blockchain/ratesAdmin.go
  • pkg/fees/contractRates_test.go
  • contracts/src/RatesManager.sol
  • contracts/test/RatesManager.t.sol
⏰ Context from checks skipped due to timeout of 90000ms (4)
  • GitHub Check: Push Docker Images to GitHub Packages (xmtpd-cli)
  • GitHub Check: Push Docker Images to GitHub Packages (xmtpd)
  • GitHub Check: Test (Node)
  • GitHub Check: Build pre-baked anvil-xmtpd
🔇 Additional comments (12)
contracts/test/utils/Harnesses.sol (1)

143-146: Function signature and struct initialization correctly updated to include targetRatePerMinute

The __pushRates function signature and the Rates struct instantiation have been properly updated to include the new targetRatePerMinute parameter. This change aligns with the PR objective of introducing the target rate parameter to the rates manager contract and its associated components.

contracts/pkg/ratesmanager/RatesManager.go (11)

33-38: Addition of TargetRatePerMinute field to RatesManagerRates struct

The RatesManagerRates struct has been correctly updated to include the new TargetRatePerMinute field. This change is consistent with the PR objective and follows the same naming pattern and data type (uint64) as the other rate fields.


43-43: ABI updated to include targetRatePerMinute parameter

The contract ABI has been correctly updated to include the targetRatePerMinute parameter in the relevant function signatures. This ensures the contract bindings will properly interact with the smart contract.


340-341: GetRates function comments updated for new field

The Solidity function comments for getRates have been updated to reflect the new field in the return type, correctly showing that the function now returns a tuple with five uint64 values instead of four.

Also applies to: 365-366, 375-376


569-574: AddRates Transactor method signature updated

The AddRates function signature for the RatesManagerTransactor has been updated to include the new targetRatePerMinute parameter, ensuring the method can be called with the correct parameters.


576-581: AddRates Session method signature updated

The AddRates function signature for the RatesManagerSession has been updated to include the new targetRatePerMinute parameter, maintaining consistency across different ways to interact with the contract.


583-588: AddRates TransactorSession method signature updated

The AddRates function signature for the RatesManagerTransactorSession has been updated to include the new targetRatePerMinute parameter, ensuring all methods that can add rates support the new field.


1072-1080: RatesAdded event struct updated to include targetRatePerMinute

The RatesManagerRatesAdded event struct has been properly updated to include the new field, ensuring event data correctly captures all rate parameters including the target rate.


1082-1085: FilterRatesAdded function signature updated

The signature for the event filter function has been updated to reflect the new event signature including the target rate parameter.


1094-1097: WatchRatesAdded function signature updated

The signature for the event watch function has been updated to reference the event that now includes the target rate parameter.


1131-1134: ParseRatesAdded function signature updated

The signature for the event parsing function has been updated to reference the event that now includes the target rate parameter.


1-2041: Overall implementation of TargetRatePerMinute parameter is consistent throughout the codebase

The implementation of the new TargetRatePerMinute parameter is thorough and consistent throughout the entire file. All necessary structs, functions, events, and ABI definitions have been updated appropriately to support this new field. This ensures complete compatibility between the Go bindings and the smart contract.

The changes align well with the PR objectives of introducing a target rate per minute parameter to the rates manager contract to enhance rate limiting functionality, allowing for the configuration of target message processing rates per minute for each node.

✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor Author

neekolas commented Mar 10, 2025

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (5)
contracts/src/RatesManager.sol (5)

18-18: Inconsistent ordering of fields in event declaration

The order of parameters in the RatesAdded event (targetRatePerMinute before startTime) doesn't match the order in the Rates struct declaration (where startTime is before targetRatePerMinute). This inconsistency could lead to confusion during maintenance.

Consider keeping the order consistent between the event parameters and struct fields:

- event RatesAdded(uint64 messageFee, uint64 storageFee, uint64 congestionFee, uint64 targetRatePerMinute, uint64 startTime);
+ event RatesAdded(uint64 messageFee, uint64 storageFee, uint64 congestionFee, uint64 startTime, uint64 targetRatePerMinute);

35-35: Missing documentation for new field

The targetRatePerMinute field has been added without any documentation explaining its purpose or constraints.

Consider adding a comment to explain what this field represents and any constraints on its values.


77-78: Parameter order inconsistency

The parameter order in the function signature (startTime then targetRatePerMinute) doesn't match the order in the struct initialization in lines 91-92 (where startTime is assigned before targetRatePerMinute).

To maintain consistency, consider either:

- function addRates(uint64 messageFee, uint64 storageFee, uint64 congestionFee, uint64 startTime, uint64 targetRatePerMinute)
+ function addRates(uint64 messageFee, uint64 storageFee, uint64 congestionFee, uint64 targetRatePerMinute, uint64 startTime)

Or rearrange the field assignments in the struct initialization to match the parameter order.


86-94: Inconsistent field order in struct initialization

The order of fields in this struct initialization doesn't match the order of parameters in the function signature. In the function parameters, startTime comes before targetRatePerMinute, but in the initialization, startTime is assigned before targetRatePerMinute.

To maintain consistency, consider rearranging the field assignments to match the parameter order:

Rates({
    messageFee: messageFee,
    storageFee: storageFee,
    congestionFee: congestionFee,
-   startTime: startTime,
-   targetRatePerMinute: targetRatePerMinute
+   targetRatePerMinute: targetRatePerMinute,
+   startTime: startTime
})

This would match the parameter order in the function signature.


96-96: Event emission parameter order inconsistency

The order of parameters in the RatesAdded event emission (targetRatePerMinute before startTime) is inconsistent with the parameter order in the function signature (where startTime is before targetRatePerMinute).

Consider adjusting the event emission to maintain consistent parameter ordering:

- emit RatesAdded(messageFee, storageFee, congestionFee, targetRatePerMinute, startTime);
+ emit RatesAdded(messageFee, storageFee, congestionFee, startTime, targetRatePerMinute);

This would match the parameter order in the function signature.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2ecea2e and b4baa55.

📒 Files selected for processing (10)
  • cmd/cli/main.go (1 hunks)
  • contracts/pkg/ratesmanager/RatesManager.go (8 hunks)
  • contracts/src/RatesManager.sol (4 hunks)
  • contracts/test/RatesManager.t.sol (3 hunks)
  • pkg/blockchain/ratesAdmin.go (1 hunks)
  • pkg/blockchain/ratesAdmin_test.go (1 hunks)
  • pkg/config/cliOptions.go (1 hunks)
  • pkg/fees/contractRates.go (1 hunks)
  • pkg/fees/contractRates_test.go (2 hunks)
  • pkg/fees/interface.go (1 hunks)
🧰 Additional context used
🪛 GitHub Actions: Test
contracts/test/RatesManager.t.sol

[error] 1-1: Tests failed: 3 tests failed (testAddRatesChronologicalOrder, testAddRatesValid, testGetRatesPagination) with errors related to InvalidStartTime and log mismatch.

🪛 GitHub Actions: Solidity
contracts/test/RatesManager.t.sol

[error] 1-1: Test failed: InvalidStartTime() in testAddRatesChronologicalOrder()


[error] 1-1: Test failed: log != expected log in testAddRatesValid()


[error] 1-1: Test failed: InvalidStartTime() in testGetRatesPagination()

🔇 Additional comments (21)
pkg/config/cliOptions.go (1)

46-46: LGTM - Field added for target rate per minute

The addition of the TargetRate field to the AddRatesOptions struct is clean and follows the same pattern as other rate-related fields in the struct.

pkg/fees/interface.go (1)

12-15: LGTM - New field for target rate per minute added

The TargetRatePerMinute field has been properly added to the Rates struct with an appropriate type and descriptive comment. The formatting changes to align the field types and comments also improve readability.

pkg/blockchain/ratesAdmin_test.go (1)

39-45: LGTM - Test updated with target rate per minute

The test has been properly updated to include the new TargetRatePerMinute field with a reasonable test value of 100 * 60 (which appears to convert a per-second rate to per-minute).

pkg/fees/contractRates.go (1)

211-214: LGTM - Transform function updated with target rate per minute

The transformRates function has been properly updated to include the new TargetRatePerMinute field when creating a Rates struct from the contract data.

contracts/test/RatesManager.t.sol (3)

22-22: Good addition of targetRatePerMinute constant

The new constant is appropriately defined with a clear value calculation (100 * 60).


65-65: Function call parameters updated correctly

The direct call to ratesManager.addRates includes the new targetRatePerMinute parameter, which is consistent with other changes.


41-41:

✅ Verification successful

Verify event signature matches implementation

The expected event now includes targetRatePerMinute. Ensure this matches the actual event definition in the contract.


🏁 Script executed:

#!/bin/bash
# Verify the RatesAdded event signature in the RatesManager contract
grep -A 3 "event RatesAdded" contracts/src/RatesManager.sol

Length of output: 302


Verified: RatesAdded event signature is correctly updated

The event definition in contracts/src/RatesManager.sol matches the emitted parameters in the test file. The expected targetRatePerMinute is present and its type aligns with the implementation.

cmd/cli/main.go (1)

425-431:

✅ Verification successful

Properly updated struct initialization with new field

The RatesManagerRates struct initialization now includes the TargetRatePerMinute field, which is set from options.AddRates.TargetRate. This is consistent with the changes in other files.


🏁 Script executed:

#!/bin/bash
# Verify that the TargetRate option is defined in the AddRatesOptions struct
grep -A 10 "type AddRatesOptions struct" pkg/config/cliOptions.go

Length of output: 807


Updated Struct Initialization Verified

The updated initialization in cmd/cli/main.go correctly maps the TargetRate from options.AddRates to the new TargetRatePerMinute field in the RatesManagerRates struct. Verification confirms that the TargetRate field is properly defined in the AddRatesOptions struct in pkg/config/cliOptions.go.

No further changes are necessary.

pkg/fees/contractRates_test.go (2)

34-42: Good update to test helper function

The buildRates function has been properly updated to include the new TargetRatePerMinute field with a consistent value (100 * 60).


58-59: Good test coverage for new field

The test assertions for the new TargetRatePerMinute field ensure that the value is correctly set in the rates fetched from the contract.

pkg/blockchain/ratesAdmin.go (1)

54-69: Function implementation updated correctly

The AddRates method has been properly updated to include the new rates.TargetRatePerMinute parameter in the contract call, which is consistent with the changes in other files.

contracts/pkg/ratesmanager/RatesManager.go (10)

33-39: Struct update looks good

The RatesManagerRates struct has been correctly updated to include the new TargetRatePerMinute field in line with the Solidity contract changes.


43-43: ABI string updated correctly

The ABI string has been properly updated to reflect the changes in the contract interface including the new parameter.


538-543: Function signature update looks good

The AddRates function signature has been correctly updated to include the new targetRatePerMinute parameter, matching the changes in the Solidity contract.


547-550: Session method signature update looks good

The RatesManagerSession.AddRates method signature has been properly updated to match the contract changes.


554-557: TransactorSession method signature update looks good

The RatesManagerTransactorSession.AddRates method signature has been properly updated to match the contract changes.


1043-1049: Event struct update looks good

The RatesManagerRatesAdded event struct has been correctly updated to include the new TargetRatePerMinute field.


1051-1054: Event filter method update looks good

The FilterRatesAdded method comment has been updated correctly to reflect the new event signature.


1063-1066: Event watch method update looks good

The WatchRatesAdded method comment has been updated correctly to reflect the new event signature.


1100-1103: Event parse method update looks good

The ParseRatesAdded method comment has been updated correctly to reflect the new event signature.


1-2: Be cautious with auto-generated code

This file is auto-generated and manual changes could be overwritten. Ensure that the source code generation templates have been updated to include the new field, as indicated at the top of the file.

Verify that the code generation process has been updated to include the new field by checking if there are changes to the generation templates or configurations in the PR.

@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch from 3bb547d to 0355ea6 Compare March 11, 2025 04:59
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch from b4baa55 to 2f6df04 Compare March 11, 2025 04:59
@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch from 0355ea6 to ca7f929 Compare March 11, 2025 05:00
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch from 2f6df04 to 834af9a Compare March 11, 2025 05:00
@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch from ca7f929 to ba4f95a Compare March 11, 2025 05:04
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch from 834af9a to 0b0a1be Compare March 11, 2025 05:04
@neekolas neekolas marked this pull request as ready for review March 11, 2025 21:46
@neekolas neekolas requested a review from a team as a code owner March 11, 2025 21:46
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch from 0b0a1be to 8172dbd Compare March 11, 2025 21:56
@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch from ba4f95a to 5d90acd Compare March 11, 2025 21:56
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch from 8172dbd to abbddbf Compare March 11, 2025 22:06
@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch from 5d90acd to 06a43a9 Compare March 11, 2025 22:06
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch 2 times, most recently from fb029de to 750124e Compare March 11, 2025 22:17
@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch 2 times, most recently from 1349721 to 8ba74c4 Compare March 11, 2025 22:19
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch 2 times, most recently from 32f3403 to e1b10e8 Compare March 11, 2025 22:23
@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch from 8ba74c4 to a7b5cff Compare March 11, 2025 22:23
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch 2 times, most recently from 1b4d781 to 6d866c9 Compare March 12, 2025 00:12
Comment on lines +87 to +130
Rates({
messageFee: messageFee,
storageFee: storageFee,
congestionFee: congestionFee,
startTime: startTime,
targetRatePerMinute: targetRatePerMinute
})
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: I believe we're storing the target rate in Rates to help with the calculations when attesting to a report, is the assumption correct?
I'm ok with this, it just seems a bit off at first as the target rate could be a different entity that changes independently from the fees.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about giving the target rate its own smart contract. But having them all update in sync (at the same start time) makes the system a little cleaner and easier to model. One "fee epoch" instead of multiple.

@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch from 6d866c9 to 8cdd72b Compare March 12, 2025 19:37
@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch from a7b5cff to aec9180 Compare March 12, 2025 19:37
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch from 8cdd72b to dc91f64 Compare March 14, 2025 20:00
@neekolas neekolas force-pushed the 03-10-calculate_congestion_from_last_5_minutes_of_data branch from aec9180 to 13db382 Compare March 14, 2025 20:00
Copy link
Contributor Author

neekolas commented Mar 14, 2025

Merge activity

  • Mar 14, 1:04 PM PDT: A user started a stack merge that includes this pull request via Graphite.
  • Mar 14, 1:05 PM PDT: Graphite rebased this pull request as part of a merge.
  • Mar 14, 1:07 PM PDT: A user merged this pull request with Graphite.

@neekolas neekolas changed the base branch from 03-10-calculate_congestion_from_last_5_minutes_of_data to graphite-base/610 March 14, 2025 20:04
@neekolas neekolas changed the base branch from graphite-base/610 to main March 14, 2025 20:04
@neekolas neekolas force-pushed the 03-10-get_target_rate_per_minute_from_smart_contract branch from dc91f64 to 73db2ee Compare March 14, 2025 20:05
@neekolas neekolas merged commit 438e162 into main Mar 14, 2025
12 of 13 checks passed
@neekolas neekolas deleted the 03-10-get_target_rate_per_minute_from_smart_contract branch March 14, 2025 20:07
@coderabbitai coderabbitai bot mentioned this pull request Mar 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants