[runtime, tesseract]: incentivise request from hyperbridge#822
Merged
Conversation
Member
|
Not all requests from hyperbridge should be incentivized, we should make it take an allow list eg: pallet-host-executive, pallet-bandwidth etc |
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
…rbridge-request # Conflicts: # tesseract/messaging/messaging/src/outbound.rs
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 13, 2026
Wizdave97
reviewed
May 14, 2026
Wizdave97
reviewed
May 14, 2026
Wizdave97
reviewed
May 14, 2026
…rbridge-request Resolve conflicts against main's refactors while preserving the outbound request-delivery incentive work: - relayer pallet: adopt main's module split (accumulate/outbound_consensus) and add the request claim as a new outbound_request module; re-home our storage, errors, events, calls (index 5/6) and validate_unsigned arm into main's slim pallet module. Adapt process_outbound_request_delivery_claim to main's 3-arg verify_withdrawal_proof (validate_state_machine precursor). - events.rs / outbound.rs: drop PostResponse handling (removed in #840) and adapt to the request-only TxReceipt struct; keep retain_incentivized_requests and the on-chain allowlist filter; keep the router-id removal from this branch. - testsuite: convert SubstrateStateProof::OverlayProof to bare StateMachineProof (enum removed on main). - gargantua spec_version -> 7_200 (above main's 7_000). Verified: pallet-ismp-relayer, gargantua-runtime, messaging, subxt-utils all compile; 15 outbound_request_delivery pallet tests and 10 messaging outbound tests pass; cargo metadata --locked clean.
Update the design doc to match the merged shape: reward keyed by module_id, the claim living in the outbound_request module, the three argument verify_withdrawal_proof, request-only TxReceipt, the BTreeSet allowlist snapshot, and the refreshed error list and test counts.
…/incentivize-hyperbridge-request # Conflicts: # parachain/runtimes/gargantua/src/lib.rs
Wizdave97
reviewed
May 25, 2026
Wizdave97
reviewed
May 25, 2026
Wizdave97
reviewed
May 25, 2026
…/incentivize-hyperbridge-request # Conflicts: # parachain/runtimes/gargantua/src/lib.rs
Wizdave97
reviewed
May 25, 2026
Member
Wizdave97
left a comment
There was a problem hiding this comment.
Let's not have duplicate implementations of the same thing
…/incentivize-hyperbridge-request # Conflicts: # tesseract/messaging/substrate/src/calls.rs
The `destination == request.dest` check in process_outbound_request_delivery_claim was untested; the rest of the verification pipeline had explicit rejection tests but this one did not. Add a case that registers a valid, allowlisted, unclaimed commitment for an EVM destination and then submits a claim whose state proof is for a substrate destination instead. Asserts the pallet rejects with MismatchedStateMachine before reaching state-proof verification.
Wizdave97
approved these changes
May 28, 2026
Cuts a new release after the outbound request delivery reward claim pipeline (#822) lands. Minor bump reflects the new outbound-request claim task, the sibling DB-backed claim persistence, and the `incentivized_outbound_request_modules` allowlist fetch — additive features with no breaking changes to existing relayer behaviour.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a per destination BRIDGE reward for relayers that deliver hyperbridge originated requests. Closes #532.
The pallet gains a new claim variant
claim_outbound_request_delivery_rewardpaid from the existing treasury, idempotent on the request commitment, and valid or both EVM and substrate destinations. The shape mirrors the existingclaim_outbound_consensus_delivery_rewardso verification reuses the same state proof and signature primitives.The tesseract messaging task gains a sibling claim pipeline. After
dest.submit(), receipts whosequery.source_chainequals the hyperbridge coprocessor get persisted to the local DB and pushed onto a new claim channel. A new task consumes that channel, waits for hyperbridge's view of the destination to catch up, builds the state proof, signsoutbound_request_delivery_message(commitment, destination, payee), and submits the claim. Responses are filtered out at the trigger because the incentive is request only.