TL;DR
We propose to open HRMP communication between Acala and Astar Network. This will require a few actions from the governance bodies of both chains.
Summary
We propose to open a bi-directional channel between Acala and Astar Network. The two primary use cases will be:
- To transfer Acala’s assets to Astar Network so they can be privatized and transferred confidentially and anonymously.
- Astar Network ASTR token can be transferred to Acala to open new DEX pairs and integrate with Acala’s suite of DeFi products.
Proposal
There is no on-chain proposal yet; #TBD.
Technical details:
The procedure for opening the channels is as follows:
- Acala: democracy proposal to open the Acala to Astar Network HRMP channel
- Astar Network: Astar root MultiSig batched proposal to
- Accept Acala to Astar Network HRMP channel
- Open Astar Network to Acala HRMP channel
- Register ACA & aUSD assets as XC20s
- Acala: democracy proposal to accept Astar Network to Acala HRMP channel
- Polkadot: wait for one session after each acceptance for each channel to be opened
- XCM based cross-chain transfer will be possible at this stage
The extrinsics that need to be executed on the relay chain , are:
- For step 1:
hrmp.hrmpInitOpenChannel(recipient: 2006, proposedMaxCapacity: 1000, proposedMaxMessageSize: 102400)
, which its hex-encoded call data is0x3c00d4070000e803000000900100
- For step 2 (open channel to Acala):
hrmp.hrmpInitOpenChannel(recipient: 2000, proposedMaxCapacity: 1000, proposedMaxMessageSize: 102400)
, which its hex-encoded call data is0x3c00d0070000e803000000900100
- For step 2 (accept channel from Acala):
hrmp.hrmpAcceptOpenChannel(sender: 2000)
, which hex-encoded call data is0x3c01d0070000
- For step 3:
hrmp.hrmpAcceptOpenChannel(sender: 2006)
, which its hex-encoded call data is0x3c01d4070000
The proposedMaxCapacity
and proposedMaxMessageSize
**are set to the values of Polkadot’s configuration.activeConfig.hrmpChannelMaxCapacity
and configuration.activeConfig.hrmpChannelMaxMessageSize
values, respectively.
These extrinsics need to be called from the parachain’s sovereign account as origin, via a democracy proposal. The proposal will use polkadot-xcm
pallet to send XCM message to the Relay Chain with the following items:
- Withdraw asset: take funds out of the Sovereign Account of the origin parachain (in the relay chain) to a holding state
- Buy execution: buys execution time from the relay chain, to execute the XCM message
- Transact: provides the call data to be executed
- Deposit asset (optional): refunds the leftover funds after the execution. If this is not provided, no refunds will be carried out
As a prerequisite, the parachain’s sovereign account must contain at least 20 DOT to be locked as collateral (10 for each channel direction), plus some DOT to pay for XCM execution fees.