First, this is because you're using a non-root account to send the XCM of HRMP request. You should use sudo or governance to do this.
If you use a non-root account to call polkadotXcm.send
, it will add the DescendOrigin
instruction as the first instruction into your messsage, and then blocked by rococo AllowTopLevelPaidExecutionFrom
barrier.
Make sure your sovereign account in the relaychain has sufficient balance to withdraw, otherwise it will FailedToTransactAsset
Then, there are several improvements you need to pay attention to, although they're not releated to barrier
:
- You can add a
RefundSurplus
instruction between Transact
and DepositAsset
, it can refund your surplus weight for transact.
- The
beneficiary
of DepositAsset
should be your sovereign account on rococo, your paraId is 2124, so it should be {0, X1(Parachain(2124))}
, rather than Parachain(1000)
. It will put unspent tokens into your sovereign account on rococo.