submit_parachain_heads_ex: TxDescriptor<{
    at_relay_block: [number, FixedSizeBinary<32>];
    is_free_execution_expected: boolean;
    parachain_heads_proof: Binary[];
    parachains: [number, FixedSizeBinary<32>][];
}>

Submit proof of one or several parachain heads.

The proof is supposed to be proof of some Heads entries from the polkadot-runtime-parachains::paras pallet instance, deployed at the bridged chain. The proof is supposed to be crafted at the relay_header_hash that must already be imported by corresponding GRANDPA pallet at this chain.

The call fails if:

  • the pallet is halted;

  • the relay chain block at_relay_block is not imported by the associated bridge GRANDPA pallet.

The call may succeed, but some heads may not be updated e.g. because pallet knows better head or it isn't tracked by the pallet.

The is_free_execution_expected parameter is not really used inside the call. It is used by the transaction extension, which should be registered at the runtime level. If this parameter is true, the transaction will be treated as invalid, if the call won't be executed for free. If transaction extension is not used by the runtime, this parameter is not used at all.