Add HRMP notification handlers to the xcm-executor (#3696)

Currently the xcm-executor returns an `Unimplemented` error if it
receives any HRMP-related instruction.
What I propose here, which is what we are currently doing in our forked
executor at polimec, is to introduce a trait implemented by the executor
which will handle those instructions.

This way, if parachains want to keep the default behavior, they just use
`()` and it will return unimplemented, but they can also implement their
own logic to establish HRMP channels with other chains in an automated
fashion, without requiring to go through governance.

Our implementation is mentioned in the [polkadot HRMP
docs](https://arc.net/l/quote/hduiivbu), and it was suggested to us to
submit a PR to add these changes to polkadot-sdk.

---------

Co-authored-by: Branislav Kontur <bkontur@gmail.com>
Co-authored-by: command-bot <>
This commit is contained in:
Juan Ignacio Rios
2024-03-19 09:12:39 +01:00
committed by GitHub
parent e2ead88876
commit 8b3bf39ab8
36 changed files with 196 additions and 5 deletions
+17
View File
@@ -0,0 +1,17 @@
# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
title: Add HRMP notification handlers to the xcm-executor
doc:
- audience: Runtime Dev
description: |
Adds optional HRMP notification handlers to the xcm-executor. These handlers are 3 new config types on the xcm-executor `Config` trait:
- `HrmpNewChannelOpenRequestHandler`
- `HrmpChannelAcceptedHandler`
- `HrmpChannelClosingHandler`
The traits of these config types are implemented on tuples, and on `()` for the default case.
crates:
- name: staging-xcm-executor