Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Release Checklist for Runtime v10000 #2862

Closed
6 of 15 tasks
EgorPopelyaev opened this issue Jul 13, 2023 · 13 comments
Closed
6 of 15 tasks

Release Checklist for Runtime v10000 #2862

EgorPopelyaev opened this issue Jul 13, 2023 · 13 comments
Labels
B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders.

Comments

@EgorPopelyaev
Copy link
Contributor

EgorPopelyaev commented Jul 13, 2023

Release Checklist - Runtimes

All following checks must be completed before publishing a new release.
The release process is owned and led by @paritytech/release-engineering team.
The checks marked with 🦀 are meant to be checked by a runtime engineer.

Runtimes Release

Codebase

These checks should be performed on the codebase.

  • the spec_version has been incremented since the
    last release for any native runtimes from any existing use on public (non-private/test) networks
  • 🦀 previously completed migrations are removed for any public (non-private/test) networks
  • pallet and extrinsic ordering as well as SignedExtensions have stayed
    the same. Bump transaction_version otherwise
  • the benchmarks ran
  • the weights have been updated for any modified runtime logic
  • 🦀 the new weights are sane, there are no significant (>50%) drops or rises with no reason
  • 🦀 XCM config is compatible with the configurations and versions of relevant interlocutors, like the Relay Chain.

On the release branch

The following checks can be performed after we have forked off to the release-candidate branch or started an additional release candidate branch (rc-2, rc-3, etc)

  • Verify new migrations complete successfully, and the
    runtime state is correctly updated for any public (non-private/test)
    networks
  • Run integration tests, and make sure they pass.
  • Push runtime upgrade to Asset Hub Westend and verify network stability
  • Push runtime upgrade to Collectives and verify network stability
  • Push runtime upgrade to Bridge-Hub-Kusama and verify network stability

Github

Post release

  • 🦀 all commits (runtime version bumps, fixes) on this release branch have been merged back to master.

Read more about the release documentation.

@EgorPopelyaev EgorPopelyaev added B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders. labels Jul 13, 2023
@EgorPopelyaev
Copy link
Contributor Author

Extrinsic ordering ⬇️

@EgorPopelyaev
Copy link
Contributor Author

EgorPopelyaev commented Jul 13, 2023

bridge-hub-polkadot v9430 vs bridge-hub-polkadot v10000

Comparison of the following runtimes:
specifications : bridge-hub-polkadot v9430
implementation : bridge-hub-polkadot v0
transaction    : v2
authoring      : v1
specifications : bridge-hub-polkadot v10000
implementation : bridge-hub-polkadot v0
transaction    : v2
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 1 change(s)
  - constants changes:
    [≠] Version: [ 76, 98, 114, 105, 100, 103, 101, 45, 104, 117, 98, 45, 112, 111, 108, 107, 97, 100, 111, 116, 76, 98, 114, 105, 100, 103, 101, 45, 104, 117, 98, 45, ... ]
        [Value([Changed(44, U8Change(214, 16)), Changed(45, U8Change(36, 39)), Changed(52, U8Change(40, 44)), Changed(161, U8Change(234, 243)), Changed(162, U8Change(147, 255)), Changed(163, U8Change(227, 20)), Changed(164, U8Change(241, 213)), Changed(165, U8Change(111, 171)), Changed(166, U8Change(61, 82)), Changed(167, U8Change(105, 112)), Changed(168, U8Change(98, 89)), Changed(169, U8Change(2, 3)), Changed(173, U8Change(2, 234)), Changed(174, U8Change(0, 147)), Changed(175, U8Change(0, 227)), Changed(176, U8Change(0, 241)), Changed(177, U8Change(1, 111)), Added(178, 61), Added(179, 105), Added(180, 98), Added(181, 2), Added(182, 0), Added(183, 0), Added(184, 0), Added(185, 2), Added(186, 0), Added(187, 0), Added(188, 0), Added(189, 1)])]

[≠] pallet 21: CollatorSelection -> 18 change(s)
  - calls changes:
    [+] CallDesc { index: 5, name: "add_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }
    [+] CallDesc { index: 6, name: "remove_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }

  - events changes:
    [≠]  1: NewDesiredCandidates ( desired_candidates: u32, )  )
        [Name(StringChange("NewDesiredCandidates", "InvulnerableAdded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("desired_candidates", "account_id")), Ty(StringChange("u32", "T::AccountId"))])] })]
    [≠]  2: NewCandidacyBond ( bond_amount: BalanceOf<T>, )  )
        [Name(StringChange("NewCandidacyBond", "InvulnerableRemoved")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("bond_amount", "account_id")), Ty(StringChange("BalanceOf<T>", "T::AccountId"))])] })]
    [≠]  3: CandidateAdded ( account_id: T::AccountId, deposit: BalanceOf<T>, )  )
        [Name(StringChange("CandidateAdded", "NewDesiredCandidates")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "desired_candidates")), Ty(StringChange("T::AccountId", "u32"))]), Removed(1, ArgDesc { name: "deposit", ty: "BalanceOf<T>" })] })]
    [≠]  4: CandidateRemoved ( account_id: T::AccountId, )  )
        [Name(StringChange("CandidateRemoved", "NewCandidacyBond")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "bond_amount")), Ty(StringChange("T::AccountId", "BalanceOf<T>"))])] })]
    [+] EventDesc { index: 5, name: "CandidateAdded", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }, ArgDesc { name: "deposit", ty: "BalanceOf<T>" }] } }
    [+] EventDesc { index: 6, name: "CandidateRemoved", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }
    [+] EventDesc { index: 7, name: "InvalidInvulnerableSkipped", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }

  - errors changes:
    [≠]  1: TooFewCandidates
        [Name(StringChange("TooFewCandidates", "TooFewEligibleCollators"))]
    [≠]  2: Unknown
        [Name(StringChange("Unknown", "AlreadyCandidate"))]
    [≠]  3: Permission
        [Name(StringChange("Permission", "NotCandidate"))]
    [≠]  4: AlreadyCandidate
        [Name(StringChange("AlreadyCandidate", "TooManyInvulnerables"))]
    [≠]  5: NotCandidate
        [Name(StringChange("NotCandidate", "AlreadyInvulnerable"))]
    [≠]  6: TooManyInvulnerables
        [Name(StringChange("TooManyInvulnerables", "NotInvulnerable"))]
    [≠]  7: AlreadyInvulnerable
        [Name(StringChange("AlreadyInvulnerable", "NoAssociatedValidatorId"))]
    [≠]  8: NoAssociatedValidatorId
        [Name(StringChange("NoAssociatedValidatorId", "ValidatorNotRegistered"))]
    [-] "ValidatorNotRegistered"

[≠] pallet 30: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 31: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 33: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

bridge-hub-kusama v9430 vs bridge-hub-kusama v10000

Comparison of the following runtimes:
specifications : bridge-hub-kusama v9430
implementation : bridge-hub-kusama v0
transaction    : v3
authoring      : v1
specifications : bridge-hub-kusama v10000
implementation : bridge-hub-kusama v0
transaction    : v3
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 1 change(s)
  - constants changes:
    [≠] Version: [ 68, 98, 114, 105, 100, 103, 101, 45, 104, 117, 98, 45, 107, 117, 115, 97, 109, 97, 68, 98, 114, 105, 100, 103, 101, 45, 104, 117, 98, 45, 107, 117, ... ]
        [Value([Changed(40, U8Change(214, 16)), Changed(41, U8Change(36, 39)), Changed(48, U8Change(40, 44)), Changed(157, U8Change(234, 243)), Changed(158, U8Change(147, 255)), Changed(159, U8Change(227, 20)), Changed(160, U8Change(241, 213)), Changed(161, U8Change(111, 171)), Changed(162, U8Change(61, 82)), Changed(163, U8Change(105, 112)), Changed(164, U8Change(98, 89)), Changed(165, U8Change(2, 3)), Changed(169, U8Change(3, 234)), Changed(170, U8Change(0, 147)), Changed(171, U8Change(0, 227)), Changed(172, U8Change(0, 241)), Changed(173, U8Change(1, 111)), Added(174, 61), Added(175, 105), Added(176, 98), Added(177, 2), Added(178, 0), Added(179, 0), Added(180, 0), Added(181, 3), Added(182, 0), Added(183, 0), Added(184, 0), Added(185, 1)])]

[≠] pallet 21: CollatorSelection -> 18 change(s)
  - calls changes:
    [+] CallDesc { index: 5, name: "add_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }
    [+] CallDesc { index: 6, name: "remove_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }

  - events changes:
    [≠]  1: NewDesiredCandidates ( desired_candidates: u32, )  )
        [Name(StringChange("NewDesiredCandidates", "InvulnerableAdded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("desired_candidates", "account_id")), Ty(StringChange("u32", "T::AccountId"))])] })]
    [≠]  2: NewCandidacyBond ( bond_amount: BalanceOf<T>, )  )
        [Name(StringChange("NewCandidacyBond", "InvulnerableRemoved")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("bond_amount", "account_id")), Ty(StringChange("BalanceOf<T>", "T::AccountId"))])] })]
    [≠]  3: CandidateAdded ( account_id: T::AccountId, deposit: BalanceOf<T>, )  )
        [Name(StringChange("CandidateAdded", "NewDesiredCandidates")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "desired_candidates")), Ty(StringChange("T::AccountId", "u32"))]), Removed(1, ArgDesc { name: "deposit", ty: "BalanceOf<T>" })] })]
    [≠]  4: CandidateRemoved ( account_id: T::AccountId, )  )
        [Name(StringChange("CandidateRemoved", "NewCandidacyBond")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "bond_amount")), Ty(StringChange("T::AccountId", "BalanceOf<T>"))])] })]
    [+] EventDesc { index: 5, name: "CandidateAdded", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }, ArgDesc { name: "deposit", ty: "BalanceOf<T>" }] } }
    [+] EventDesc { index: 6, name: "CandidateRemoved", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }
    [+] EventDesc { index: 7, name: "InvalidInvulnerableSkipped", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }

  - errors changes:
    [≠]  1: TooFewCandidates
        [Name(StringChange("TooFewCandidates", "TooFewEligibleCollators"))]
    [≠]  2: Unknown
        [Name(StringChange("Unknown", "AlreadyCandidate"))]
    [≠]  3: Permission
        [Name(StringChange("Permission", "NotCandidate"))]
    [≠]  4: AlreadyCandidate
        [Name(StringChange("AlreadyCandidate", "TooManyInvulnerables"))]
    [≠]  5: NotCandidate
        [Name(StringChange("NotCandidate", "AlreadyInvulnerable"))]
    [≠]  6: TooManyInvulnerables
        [Name(StringChange("TooManyInvulnerables", "NotInvulnerable"))]
    [≠]  7: AlreadyInvulnerable
        [Name(StringChange("AlreadyInvulnerable", "NoAssociatedValidatorId"))]
    [≠]  8: NoAssociatedValidatorId
        [Name(StringChange("NoAssociatedValidatorId", "ValidatorNotRegistered"))]
    [-] "ValidatorNotRegistered"

[≠] pallet 30: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 31: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 33: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

bridge-hub-rococo v9430 vs bridge-hub-rococo v10000

Comparison of the following runtimes:
specifications : bridge-hub-rococo v9430
implementation : bridge-hub-rococo v0
transaction    : v3
authoring      : v1
specifications : bridge-hub-rococo v10000
implementation : bridge-hub-rococo v0
transaction    : v3
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 1 change(s)
  - constants changes:
    [≠] Version: [ 68, 98, 114, 105, 100, 103, 101, 45, 104, 117, 98, 45, 114, 111, 99, 111, 99, 111, 68, 98, 114, 105, 100, 103, 101, 45, 104, 117, 98, 45, 114, 111, ... ]
        [Value([Changed(40, U8Change(214, 16)), Changed(41, U8Change(36, 39)), Changed(48, U8Change(72, 76)), Changed(157, U8Change(234, 243)), Changed(158, U8Change(147, 255)), Changed(159, U8Change(227, 20)), Changed(160, U8Change(241, 213)), Changed(161, U8Change(111, 171)), Changed(162, U8Change(61, 82)), Changed(163, U8Change(105, 112)), Changed(164, U8Change(98, 89)), Changed(165, U8Change(2, 3)), Changed(169, U8Change(209, 234)), Changed(170, U8Change(250, 147)), Changed(171, U8Change(76, 227)), Changed(172, U8Change(185, 241)), Changed(173, U8Change(116, 111)), Changed(174, U8Change(16, 61)), Changed(175, U8Change(9, 105)), Changed(176, U8Change(23, 98)), Changed(177, U8Change(1, 2)), Changed(181, U8Change(229, 209)), Changed(182, U8Change(189, 250)), Changed(183, U8Change(199, 76)), Changed(184, U8Change(82, 185)), Changed(185, U8Change(184, 116)), Changed(186, U8Change(236, 16)), Changed(187, U8Change(43, 9)), Changed(188, U8Change(161, 23)), Changed(193, U8Change(35, 229)), Changed(194, U8Change(248, 189)), Changed(195, U8Change(208, 199)), Changed(196, U8Change(212, 82)), Changed(197, U8Change(107, 184)), Changed(198, U8Change(145, 236)), Changed(199, U8Change(152, 43)), Changed(200, U8Change(227, 161)), Changed(205, U8Change(110, 35)), Changed(206, U8Change(139, 248)), Changed(207, U8Change(95, 208)), Changed(208, U8Change(142, 212)), Changed(209, U8Change(250, 107)), Changed(210, U8Change(25, 145)), Changed(211, U8Change(202, 152)), Changed(212, U8Change(40, 227)), Changed(217, U8Change(234, 110)), Changed(218, U8Change(2, 139)), Changed(219, U8Change(38, 95)), Changed(220, U8Change(1, 142)), Changed(221, U8Change(236, 250)), Changed(222, U8Change(191, 25)), Changed(223, U8Change(164, 202)), Changed(224, U8Change(16, 40)), Changed(229, U8Change(94, 234)), Changed(230, U8Change(240, 2)), Changed(231, U8Change(113, 38)), Changed(232, U8Change(84, 1)), Changed(233, U8Change(199, 236)), Changed(234, U8Change(164, 191)), Changed(235, U8Change(6, 164)), Changed(236, U8Change(70, 16)), Changed(241, U8Change(195, 94)), Changed(242, U8Change(25, 240)), Changed(243, U8Change(3, 113)), Changed(244, U8Change(143, 84)), Changed(245, U8Change(102, 199)), Changed(246, U8Change(96, 164)), Changed(247, U8Change(151, 6)), Changed(248, U8Change(78, 70)), Changed(253, U8Change(202, 195)), Changed(254, U8Change(198, 25)), Changed(255, U8Change(159, 3)), Changed(256, U8Change(236, 143)), Changed(257, U8Change(248, 102)), Changed(258, U8Change(156, 96)), Changed(259, U8Change(177, 151)), Changed(260, U8Change(125, 78)), Changed(265, U8Change(3, 202)), Changed(266, U8Change(0, 198)), Changed(267, U8Change(0, 159)), Changed(268, U8Change(0, 236)), Changed(269, U8Change(1, 248)), Added(270, 156), Added(271, 177), Added(272, 125), Added(273, 1), Added(274, 0), Added(275, 0), Added(276, 0), Added(277, 3), Added(278, 0), Added(279, 0), Added(280, 0), Added(281, 1)])]

[≠] pallet 21: CollatorSelection -> 18 change(s)
  - calls changes:
    [+] CallDesc { index: 5, name: "add_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }
    [+] CallDesc { index: 6, name: "remove_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }

  - events changes:
    [≠]  1: NewDesiredCandidates ( desired_candidates: u32, )  )
        [Name(StringChange("NewDesiredCandidates", "InvulnerableAdded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("desired_candidates", "account_id")), Ty(StringChange("u32", "T::AccountId"))])] })]
    [≠]  2: NewCandidacyBond ( bond_amount: BalanceOf<T>, )  )
        [Name(StringChange("NewCandidacyBond", "InvulnerableRemoved")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("bond_amount", "account_id")), Ty(StringChange("BalanceOf<T>", "T::AccountId"))])] })]
    [≠]  3: CandidateAdded ( account_id: T::AccountId, deposit: BalanceOf<T>, )  )
        [Name(StringChange("CandidateAdded", "NewDesiredCandidates")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "desired_candidates")), Ty(StringChange("T::AccountId", "u32"))]), Removed(1, ArgDesc { name: "deposit", ty: "BalanceOf<T>" })] })]
    [≠]  4: CandidateRemoved ( account_id: T::AccountId, )  )
        [Name(StringChange("CandidateRemoved", "NewCandidacyBond")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "bond_amount")), Ty(StringChange("T::AccountId", "BalanceOf<T>"))])] })]
    [+] EventDesc { index: 5, name: "CandidateAdded", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }, ArgDesc { name: "deposit", ty: "BalanceOf<T>" }] } }
    [+] EventDesc { index: 6, name: "CandidateRemoved", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }
    [+] EventDesc { index: 7, name: "InvalidInvulnerableSkipped", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }

  - errors changes:
    [≠]  1: TooFewCandidates
        [Name(StringChange("TooFewCandidates", "TooFewEligibleCollators"))]
    [≠]  2: Unknown
        [Name(StringChange("Unknown", "AlreadyCandidate"))]
    [≠]  3: Permission
        [Name(StringChange("Permission", "NotCandidate"))]
    [≠]  4: AlreadyCandidate
        [Name(StringChange("AlreadyCandidate", "TooManyInvulnerables"))]
    [≠]  5: NotCandidate
        [Name(StringChange("NotCandidate", "AlreadyInvulnerable"))]
    [≠]  6: TooManyInvulnerables
        [Name(StringChange("TooManyInvulnerables", "NotInvulnerable"))]
    [≠]  7: AlreadyInvulnerable
        [Name(StringChange("AlreadyInvulnerable", "NoAssociatedValidatorId"))]
    [≠]  8: NoAssociatedValidatorId
        [Name(StringChange("NoAssociatedValidatorId", "ValidatorNotRegistered"))]
    [-] "ValidatorNotRegistered"

[≠] pallet 30: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 31: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 33: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

asset-hub-kusama v9430 vs asset-hub-kusama v10000

Comparison of the following runtimes:
specifications : statemine v9430
implementation : statemine v0
transaction    : v13
authoring      : v1
specifications : statemine v10000
implementation : statemine v0
transaction    : v13
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 1 change(s)
  - constants changes:
    [≠] Version: [ 36, 115, 116, 97, 116, 101, 109, 105, 110, 101, 36, 115, 116, 97, 116, 101, 109, 105, 110, 101, 1, 0, 0, 0, 214, 36, 0, 0, 0, 0, 0, 0, ... ]
        [Value([Changed(24, U8Change(214, 16)), Changed(25, U8Change(36, 39))])]

[≠] pallet 10: Balances -> 1 change(s)
  - constants changes:
    [≠] MaxHolds: [0; 4]
        [Value([Changed(0, U8Change(0, 1))])]

[≠] pallet 21: CollatorSelection -> 18 change(s)
  - calls changes:
    [+] CallDesc { index: 5, name: "add_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }
    [+] CallDesc { index: 6, name: "remove_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }

  - events changes:
    [≠]  1: NewDesiredCandidates ( desired_candidates: u32, )  )
        [Name(StringChange("NewDesiredCandidates", "InvulnerableAdded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("desired_candidates", "account_id")), Ty(StringChange("u32", "T::AccountId"))])] })]
    [≠]  2: NewCandidacyBond ( bond_amount: BalanceOf<T>, )  )
        [Name(StringChange("NewCandidacyBond", "InvulnerableRemoved")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("bond_amount", "account_id")), Ty(StringChange("BalanceOf<T>", "T::AccountId"))])] })]
    [≠]  3: CandidateAdded ( account_id: T::AccountId, deposit: BalanceOf<T>, )  )
        [Name(StringChange("CandidateAdded", "NewDesiredCandidates")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "desired_candidates")), Ty(StringChange("T::AccountId", "u32"))]), Removed(1, ArgDesc { name: "deposit", ty: "BalanceOf<T>" })] })]
    [≠]  4: CandidateRemoved ( account_id: T::AccountId, )  )
        [Name(StringChange("CandidateRemoved", "NewCandidacyBond")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "bond_amount")), Ty(StringChange("T::AccountId", "BalanceOf<T>"))])] })]
    [+] EventDesc { index: 5, name: "CandidateAdded", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }, ArgDesc { name: "deposit", ty: "BalanceOf<T>" }] } }
    [+] EventDesc { index: 6, name: "CandidateRemoved", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }
    [+] EventDesc { index: 7, name: "InvalidInvulnerableSkipped", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }

  - errors changes:
    [≠]  1: TooFewCandidates
        [Name(StringChange("TooFewCandidates", "TooFewEligibleCollators"))]
    [≠]  2: Unknown
        [Name(StringChange("Unknown", "AlreadyCandidate"))]
    [≠]  3: Permission
        [Name(StringChange("Permission", "NotCandidate"))]
    [≠]  4: AlreadyCandidate
        [Name(StringChange("AlreadyCandidate", "TooManyInvulnerables"))]
    [≠]  5: NotCandidate
        [Name(StringChange("NotCandidate", "AlreadyInvulnerable"))]
    [≠]  6: TooManyInvulnerables
        [Name(StringChange("TooManyInvulnerables", "NotInvulnerable"))]
    [≠]  7: AlreadyInvulnerable
        [Name(StringChange("AlreadyInvulnerable", "NoAssociatedValidatorId"))]
    [≠]  8: NoAssociatedValidatorId
        [Name(StringChange("NoAssociatedValidatorId", "ValidatorNotRegistered"))]
    [-] "ValidatorNotRegistered"

[≠] pallet 30: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 31: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 33: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

[≠] pallet 52: Nfts -> 3 change(s)
  - calls changes:
    [≠]  3: mint ( collection: T::CollectionId, item: T::ItemId, mint_to: AccountIdLookupOf<T>, witness_data: Option<MintWitness<T::ItemId>>, )  )
        [Signature(SignatureChange { args: [Changed(3, [Ty(StringChange("Option<MintWitness<T::ItemId>>", "Option<MintWitness<T::ItemId, DepositBalanceOf<T, I>>>"))])] })]
    [≠] 37: mint_pre_signed ( mint_data: PreSignedMintOf<T, I>, signature: T::OffchainSignature, signer: T::AccountId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("PreSignedMintOf<T, I>", "Box<PreSignedMintOf<T, I>>"))])] })]

  - errors changes:
    [+] ErrorDesc { index: 44, name: "WitnessRequired" }

[+] id: 54 - new pallet: NftFractionalization
SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

asset-hub-polkadot v9430 vs asset-hub-polkadot v10000

Comparison of the following runtimes:
specifications : statemint v9430
implementation : statemint v0
transaction    : v13
authoring      : v1
specifications : statemint v10000
implementation : statemint v0
transaction    : v13
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 1 change(s)
  - constants changes:
    [≠] Version: [ 36, 115, 116, 97, 116, 101, 109, 105, 110, 116, 36, 115, 116, 97, 116, 101, 109, 105, 110, 116, 1, 0, 0, 0, 214, 36, 0, 0, 0, 0, 0, 0, ... ]
        [Value([Changed(24, U8Change(214, 16)), Changed(25, U8Change(36, 39))])]

[≠] pallet 21: CollatorSelection -> 18 change(s)
  - calls changes:
    [+] CallDesc { index: 5, name: "add_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }
    [+] CallDesc { index: 6, name: "remove_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }

  - events changes:
    [≠]  1: NewDesiredCandidates ( desired_candidates: u32, )  )
        [Name(StringChange("NewDesiredCandidates", "InvulnerableAdded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("desired_candidates", "account_id")), Ty(StringChange("u32", "T::AccountId"))])] })]
    [≠]  2: NewCandidacyBond ( bond_amount: BalanceOf<T>, )  )
        [Name(StringChange("NewCandidacyBond", "InvulnerableRemoved")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("bond_amount", "account_id")), Ty(StringChange("BalanceOf<T>", "T::AccountId"))])] })]
    [≠]  3: CandidateAdded ( account_id: T::AccountId, deposit: BalanceOf<T>, )  )
        [Name(StringChange("CandidateAdded", "NewDesiredCandidates")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "desired_candidates")), Ty(StringChange("T::AccountId", "u32"))]), Removed(1, ArgDesc { name: "deposit", ty: "BalanceOf<T>" })] })]
    [≠]  4: CandidateRemoved ( account_id: T::AccountId, )  )
        [Name(StringChange("CandidateRemoved", "NewCandidacyBond")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "bond_amount")), Ty(StringChange("T::AccountId", "BalanceOf<T>"))])] })]
    [+] EventDesc { index: 5, name: "CandidateAdded", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }, ArgDesc { name: "deposit", ty: "BalanceOf<T>" }] } }
    [+] EventDesc { index: 6, name: "CandidateRemoved", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }
    [+] EventDesc { index: 7, name: "InvalidInvulnerableSkipped", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }

  - errors changes:
    [≠]  1: TooFewCandidates
        [Name(StringChange("TooFewCandidates", "TooFewEligibleCollators"))]
    [≠]  2: Unknown
        [Name(StringChange("Unknown", "AlreadyCandidate"))]
    [≠]  3: Permission
        [Name(StringChange("Permission", "NotCandidate"))]
    [≠]  4: AlreadyCandidate
        [Name(StringChange("AlreadyCandidate", "TooManyInvulnerables"))]
    [≠]  5: NotCandidate
        [Name(StringChange("NotCandidate", "AlreadyInvulnerable"))]
    [≠]  6: TooManyInvulnerables
        [Name(StringChange("TooManyInvulnerables", "NotInvulnerable"))]
    [≠]  7: AlreadyInvulnerable
        [Name(StringChange("AlreadyInvulnerable", "NoAssociatedValidatorId"))]
    [≠]  8: NoAssociatedValidatorId
        [Name(StringChange("NoAssociatedValidatorId", "ValidatorNotRegistered"))]
    [-] "ValidatorNotRegistered"

[≠] pallet 30: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 31: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 33: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

[≠] pallet 52: Nfts -> 3 change(s)
  - calls changes:
    [≠]  3: mint ( collection: T::CollectionId, item: T::ItemId, mint_to: AccountIdLookupOf<T>, witness_data: Option<MintWitness<T::ItemId>>, )  )
        [Signature(SignatureChange { args: [Changed(3, [Ty(StringChange("Option<MintWitness<T::ItemId>>", "Option<MintWitness<T::ItemId, DepositBalanceOf<T, I>>>"))])] })]
    [≠] 37: mint_pre_signed ( mint_data: PreSignedMintOf<T, I>, signature: T::OffchainSignature, signer: T::AccountId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("PreSignedMintOf<T, I>", "Box<PreSignedMintOf<T, I>>"))])] })]

  - errors changes:
    [+] ErrorDesc { index: 44, name: "WitnessRequired" }

SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

asset-hub-westend v9430 vs asset-hub-westend v10000

Comparison of the following runtimes:
specifications : westmint v9430
implementation : westmint v0
transaction    : v13
authoring      : v1
specifications : westmint v10000
implementation : westmint v0
transaction    : v13
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 1 change(s)
  - constants changes:
    [≠] Version: [ 32, 119, 101, 115, 116, 109, 105, 110, 116, 32, 119, 101, 115, 116, 109, 105, 110, 116, 1, 0, 0, 0, 214, 36, 0, 0, 0, 0, 0, 0, 52, 221, ... ]
        [Value([Changed(22, U8Change(214, 16)), Changed(23, U8Change(36, 39)), Changed(30, U8Change(52, 56)), Changed(139, U8Change(55, 138)), Changed(140, U8Change(200, 128)), Changed(141, U8Change(187, 71)), Changed(142, U8Change(19, 165)), Changed(143, U8Change(80, 58)), Changed(144, U8Change(169, 130)), Changed(145, U8Change(162, 119)), Changed(146, U8Change(168, 236)), Changed(147, U8Change(4, 1)), Changed(151, U8Change(243, 55)), Changed(152, U8Change(255, 200)), Changed(153, U8Change(20, 187)), Changed(154, U8Change(213, 19)), Changed(155, U8Change(171, 80)), Changed(156, U8Change(82, 169)), Changed(157, U8Change(112, 162)), Changed(158, U8Change(89, 168)), Changed(159, U8Change(3, 4)), Changed(163, U8Change(222, 243)), Changed(164, U8Change(146, 255)), Changed(165, U8Change(184, 20)), Changed(166, U8Change(160, 213)), Changed(167, U8Change(66, 171)), Changed(168, U8Change(107, 82)), Changed(169, U8Change(155, 112)), Changed(170, U8Change(246, 89)), Changed(171, U8Change(2, 3)), Changed(175, U8Change(234, 222)), Changed(176, U8Change(147, 146)), Changed(177, U8Change(227, 184)), Changed(178, U8Change(241, 160)), Changed(179, U8Change(111, 66)), Changed(180, U8Change(61, 107)), Changed(181, U8Change(105, 155)), Changed(182, U8Change(98, 246)), Changed(187, U8Change(13, 234)), Changed(188, U8Change(0, 147)), Changed(189, U8Change(0, 227)), Changed(190, U8Change(0, 241)), Changed(191, U8Change(0, 111)), Added(192, 61), Added(193, 105), Added(194, 98), Added(195, 2), Added(196, 0), Added(197, 0), Added(198, 0), Added(199, 13), Added(200, 0), Added(201, 0), Added(202, 0), Added(203, 0)])]

[+] id: 13 - new pallet: AssetTxPayment
[≠] pallet 21: CollatorSelection -> 18 change(s)
  - calls changes:
    [+] CallDesc { index: 5, name: "add_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }
    [+] CallDesc { index: 6, name: "remove_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }

  - events changes:
    [≠]  1: NewDesiredCandidates ( desired_candidates: u32, )  )
        [Name(StringChange("NewDesiredCandidates", "InvulnerableAdded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("desired_candidates", "account_id")), Ty(StringChange("u32", "T::AccountId"))])] })]
    [≠]  2: NewCandidacyBond ( bond_amount: BalanceOf<T>, )  )
        [Name(StringChange("NewCandidacyBond", "InvulnerableRemoved")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("bond_amount", "account_id")), Ty(StringChange("BalanceOf<T>", "T::AccountId"))])] })]
    [≠]  3: CandidateAdded ( account_id: T::AccountId, deposit: BalanceOf<T>, )  )
        [Name(StringChange("CandidateAdded", "NewDesiredCandidates")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "desired_candidates")), Ty(StringChange("T::AccountId", "u32"))]), Removed(1, ArgDesc { name: "deposit", ty: "BalanceOf<T>" })] })]
    [≠]  4: CandidateRemoved ( account_id: T::AccountId, )  )
        [Name(StringChange("CandidateRemoved", "NewCandidacyBond")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "bond_amount")), Ty(StringChange("T::AccountId", "BalanceOf<T>"))])] })]
    [+] EventDesc { index: 5, name: "CandidateAdded", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }, ArgDesc { name: "deposit", ty: "BalanceOf<T>" }] } }
    [+] EventDesc { index: 6, name: "CandidateRemoved", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }
    [+] EventDesc { index: 7, name: "InvalidInvulnerableSkipped", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }

  - errors changes:
    [≠]  1: TooFewCandidates
        [Name(StringChange("TooFewCandidates", "TooFewEligibleCollators"))]
    [≠]  2: Unknown
        [Name(StringChange("Unknown", "AlreadyCandidate"))]
    [≠]  3: Permission
        [Name(StringChange("Permission", "NotCandidate"))]
    [≠]  4: AlreadyCandidate
        [Name(StringChange("AlreadyCandidate", "TooManyInvulnerables"))]
    [≠]  5: NotCandidate
        [Name(StringChange("NotCandidate", "AlreadyInvulnerable"))]
    [≠]  6: TooManyInvulnerables
        [Name(StringChange("TooManyInvulnerables", "NotInvulnerable"))]
    [≠]  7: AlreadyInvulnerable
        [Name(StringChange("AlreadyInvulnerable", "NoAssociatedValidatorId"))]
    [≠]  8: NoAssociatedValidatorId
        [Name(StringChange("NoAssociatedValidatorId", "ValidatorNotRegistered"))]
    [-] "ValidatorNotRegistered"

[≠] pallet 30: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 31: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 33: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

[≠] pallet 52: Nfts -> 3 change(s)
  - calls changes:
    [≠]  3: mint ( collection: T::CollectionId, item: T::ItemId, mint_to: AccountIdLookupOf<T>, witness_data: Option<MintWitness<T::ItemId>>, )  )
        [Signature(SignatureChange { args: [Changed(3, [Ty(StringChange("Option<MintWitness<T::ItemId>>", "Option<MintWitness<T::ItemId, DepositBalanceOf<T, I>>>"))])] })]
    [≠] 37: mint_pre_signed ( mint_data: PreSignedMintOf<T, I>, signature: T::OffchainSignature, signer: T::AccountId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("PreSignedMintOf<T, I>", "Box<PreSignedMintOf<T, I>>"))])] })]

  - errors changes:
    [+] ErrorDesc { index: 44, name: "WitnessRequired" }

[≠] pallet 54: NftFractionalization -> 1 change(s)
  - constants changes:
    [-] "HoldReason"

[+] id: 55 - new pallet: PoolAssets
[+] id: 56 - new pallet: AssetConversion
[-] pallet 12: AssetTxPayment
SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

collectives v9430 vs collectives v10000

Comparison of the following runtimes:
specifications : collectives v9430
implementation : collectives v0
transaction    : v5
authoring      : v1
specifications : collectives v10000
implementation : collectives v0
transaction    : v5
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 1 change(s)
  - constants changes:
    [≠] Version: [ 44, 99, 111, 108, 108, 101, 99, 116, 105, 118, 101, 115, 44, 99, 111, 108, 108, 101, 99, 116, 105, 118, 101, 115, 1, 0, 0, 0, 214, 36, 0, 0, ... ]
        [Value([Changed(28, U8Change(214, 16)), Changed(29, U8Change(36, 39))])]

[≠] pallet 21: CollatorSelection -> 18 change(s)
  - calls changes:
    [+] CallDesc { index: 5, name: "add_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }
    [+] CallDesc { index: 6, name: "remove_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }

  - events changes:
    [≠]  1: NewDesiredCandidates ( desired_candidates: u32, )  )
        [Name(StringChange("NewDesiredCandidates", "InvulnerableAdded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("desired_candidates", "account_id")), Ty(StringChange("u32", "T::AccountId"))])] })]
    [≠]  2: NewCandidacyBond ( bond_amount: BalanceOf<T>, )  )
        [Name(StringChange("NewCandidacyBond", "InvulnerableRemoved")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("bond_amount", "account_id")), Ty(StringChange("BalanceOf<T>", "T::AccountId"))])] })]
    [≠]  3: CandidateAdded ( account_id: T::AccountId, deposit: BalanceOf<T>, )  )
        [Name(StringChange("CandidateAdded", "NewDesiredCandidates")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "desired_candidates")), Ty(StringChange("T::AccountId", "u32"))]), Removed(1, ArgDesc { name: "deposit", ty: "BalanceOf<T>" })] })]
    [≠]  4: CandidateRemoved ( account_id: T::AccountId, )  )
        [Name(StringChange("CandidateRemoved", "NewCandidacyBond")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "bond_amount")), Ty(StringChange("T::AccountId", "BalanceOf<T>"))])] })]
    [+] EventDesc { index: 5, name: "CandidateAdded", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }, ArgDesc { name: "deposit", ty: "BalanceOf<T>" }] } }
    [+] EventDesc { index: 6, name: "CandidateRemoved", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }
    [+] EventDesc { index: 7, name: "InvalidInvulnerableSkipped", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }

  - errors changes:
    [≠]  1: TooFewCandidates
        [Name(StringChange("TooFewCandidates", "TooFewEligibleCollators"))]
    [≠]  2: Unknown
        [Name(StringChange("Unknown", "AlreadyCandidate"))]
    [≠]  3: Permission
        [Name(StringChange("Permission", "NotCandidate"))]
    [≠]  4: AlreadyCandidate
        [Name(StringChange("AlreadyCandidate", "TooManyInvulnerables"))]
    [≠]  5: NotCandidate
        [Name(StringChange("NotCandidate", "AlreadyInvulnerable"))]
    [≠]  6: TooManyInvulnerables
        [Name(StringChange("TooManyInvulnerables", "NotInvulnerable"))]
    [≠]  7: AlreadyInvulnerable
        [Name(StringChange("AlreadyInvulnerable", "NoAssociatedValidatorId"))]
    [≠]  8: NoAssociatedValidatorId
        [Name(StringChange("NoAssociatedValidatorId", "ValidatorNotRegistered"))]
    [-] "ValidatorNotRegistered"

[≠] pallet 30: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 31: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 33: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

[≠] pallet 61: FellowshipReferenda -> 1 change(s)
  - constants changes:
    [≠] Tracks: [ 40, 0, 0, 40, 99, 97, 110, 100, 105, 100, 97, 116, 101, 115, 10, 0, 0, 0, 0, 16, 165, 212, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... ]
        [Value([Changed(0, U8Change(40, 84)), Changed(1, U8Change(0, 1)), Changed(3, U8Change(40, 28)), Changed(4, U8Change(99, 109)), Changed(5, U8Change(97, 101)), Changed(6, U8Change(110, 109)), Changed(7, U8Change(100, 98)), Changed(8, U8Change(105, 101)), Changed(9, U8Change(100, 114)), Changed(10, U8Change(97, 115)), Changed(11, U8Change(116, 10)), Changed(12, U8Change(101, 0)), Changed(13, U8Change(115, 0)), Changed(14, U8Change(10, 0)), Changed(16, U8Change(0, 116)), Changed(17, U8Change(0, 59)), Changed(18, U8Change(0, 164)), Changed(19, U8Change(16, 11)), Changed(20, U8Change(165, 0)), Changed(21, U8Change(212, 0)), Changed(22, U8Change(232, 0)), Changed(31, U8Change(0, 150)), Changed(34, U8Change(150, 0)), Changed(35, U8Change(0, 224)), Changed(36, U8Change(0, 196)), Changed(38, U8Change(224, 0)), Changed(39, U8Change(196, 150)), Changed(42, U8Change(150, 0)), Changed(43, U8Change(0, 25)), Changed(46, U8Change(5, 0)), Changed(49, U8Change(0, 202)), Changed(50, U8Change(0, 154)), Changed(51, U8Change(0, 59)), Changed(52, U8Change(202, 0)), Changed(53, U8Change(154, 101)), Changed(54, U8Change(59, 205)), Changed(55, U8Change(0, 29)), Changed(56, U8Change(101, 0)), Changed(57, U8Change(205, 202)), Changed(58, U8Change(29, 154)), Changed(59, U8Change(0, 59)), Changed(60, U8Change(202, 0)), Changed(61, U8Change(154, 0)), Changed(62, U8Change(59, 202)), Changed(63, U8Change(0, 154)), Changed(64, U8Change(0, 59)), Changed(65, U8Change(202, 0)), Changed(66, U8Change(154, 0)), Changed(67, U8Change(59, 0)), Changed(70, U8Change(0, 202)), Changed(71, U8Change(0, 154)), Changed(72, U8Change(0, 59)), Changed(73, U8Change(101, 2)), Changed(74, U8Change(205, 0)), Changed(75, U8Change(29, 72)), Changed(76, U8Change(1, 112)), Changed(77, U8Change(0, 114)), Changed(78, U8Change(28, 111)), Changed(79, U8Change(109, 102)), Changed(80, U8Change(101, 105)), Changed(81, U8Change(109, 99)), Changed(82, U8Change(98, 105)), Changed(84, U8Change(114, 110)), Changed(85, U8Change(115, 116)), Changed(86, U8Change(10, 32)), Changed(87, U8Change(0, 109)), Changed(88, U8Change(0, 101)), Changed(89, U8Change(0, 109)), Changed(90, U8Change(0, 98)), Changed(91, U8Change(232, 101)), Changed(92, U8Change(118, 114)), Changed(93, U8Change(72, 115)), Changed(94, U8Change(23, 10)), Changed(99, U8Change(0, 116)), Changed(100, U8Change(0, 59)), Changed(101, U8Change(0, 164)), Changed(102, U8Change(0, 11)), Changed(106, U8Change(150, 0)), Changed(110, U8Change(224, 0)), Changed(111, U8Change(196, 0)), Changed(118, U8Change(5, 224)), Changed(119, U8Change(0, 196)), Changed(122, U8Change(0, 150)), Changed(124, U8Change(202, 0)), Changed(125, U8Change(154, 0)), Changed(126, U8Change(59, 25)), Changed(128, U8Change(101, 0)), Changed(129, U8Change(205, 0)), Changed(130, U8Change(29, 0)), Changed(136, U8Change(0, 101)), Changed(137, U8Change(202, 205)), Changed(138, U8Change(154, 29)), Changed(139, U8Change(59, 0)), Changed(140, U8Change(0, 202)), Changed(141, U8Change(0, 154)), Changed(142, U8Change(0, 59)), Changed(145, U8Change(101, 202)), Changed(146, U8Change(205, 154)), Changed(147, U8Change(29, 59)), Changed(148, U8Change(2, 0)), Changed(150, U8Change(44, 0)), Changed(151, U8Change(112, 0)), Changed(152, U8Change(114, 0)), Changed(153, U8Change(111, 202)), Changed(154, U8Change(102, 154)), Changed(155, U8Change(105, 59)), Changed(156, U8Change(99, 3)), Changed(157, U8Change(105, 0)), Changed(158, U8Change(101, 28)), Changed(159, U8Change(110, 102)), Changed(160, U8Change(116, 101)), Changed(161, U8Change(115, 108)), Changed(162, U8Change(10, 108)), Changed(163, U8Change(0, 111)), Changed(164, U8Change(0, 119)), Changed(165, U8Change(0, 115)), Changed(166, U8Change(0, 10)), Changed(167, U8Change(232, 0)), Changed(168, U8Change(118, 0)), Changed(169, U8Change(72, 0)), Changed(170, U8Change(23, 0)), Changed(171, U8Change(0, 116)), Changed(172, U8Change(0, 59)), Changed(173, U8Change(0, 164)), Changed(174, U8Change(0, 11)), Changed(182, U8Change(150, 0)), Changed(186, U8Change(224, 150)), Changed(187, U8Change(196, 0)), Changed(190, U8Change(150, 224)), Changed(191, U8Change(0, 196)), Changed(194, U8Change(5, 150)), Changed(198, U8Change(0, 25)), Changed(200, U8Change(202, 0)), Changed(201, U8Change(154, 0)), Changed(202, U8Change(59, 0)), Changed(204, U8Change(101, 202)), Changed(205, U8Change(205, 154)), Changed(206, U8Change(29, 59)), Changed(208, U8Change(202, 101)), Changed(209, U8Change(154, 205)), Changed(210, U8Change(59, 29)), Changed(212, U8Change(0, 202)), Changed(213, U8Change(202, 154)), Changed(214, U8Change(154, 59)), Changed(215, U8Change(59, 0)), Changed(217, U8Change(0, 202)), Changed(218, U8Change(0, 154)), Changed(219, U8Change(0, 59)), Changed(221, U8Change(101, 0)), Changed(222, U8Change(205, 0)), Changed(223, U8Change(29, 0)), Changed(224, U8Change(3, 0)), Changed(225, U8Change(0, 202)), Changed(226, U8Change(28, 154)), Changed(227, U8Change(102, 59)), Changed(228, U8Change(101, 4)), Changed(229, U8Change(108, 0)), Changed(230, U8Change(108, 40)), Changed(231, U8Change(111, 97)), Changed(232, U8Change(119, 114)), Changed(233, U8Change(115, 99)), Changed(234, U8Change(10, 104)), Changed(235, U8Change(0, 105)), Changed(236, U8Change(0, 116)), Changed(237, U8Change(0, 101)), Changed(238, U8Change(0, 99)), Changed(239, U8Change(232, 116)), Changed(240, U8Change(118, 115)), Changed(241, U8Change(72, 10)), Changed(242, U8Change(23, 0)), Changed(246, U8Change(0, 116)), Changed(247, U8Change(0, 59)), Changed(248, U8Change(0, 164)), Changed(249, U8Change(0, 11)), Changed(254, U8Change(150, 0)), Changed(258, U8Change(224, 0)), Changed(259, U8Change(196, 0)), Changed(261, U8Change(0, 150)), Changed(262, U8Change(150, 0)), Changed(265, U8Change(0, 224)), Changed(266, U8Change(5, 196)), Changed(269, U8Change(0, 150)), Changed(272, U8Change(202, 0)), Changed(273, U8Change(154, 25)), Changed(274, U8Change(59, 0)), Changed(276, U8Change(101, 0)), Changed(277, U8Change(205, 0)), Changed(278, U8Change(29, 0)), Changed(279, U8Change(0, 202)), Changed(280, U8Change(202, 154)), Changed(281, U8Change(154, 59)), Changed(282, U8Change(59, 0)), Changed(283, U8Change(0, 101)), Changed(284, U8Change(0, 205)), Changed(285, U8Change(202, 29)), Changed(286, U8Change(154, 0)), Changed(287, U8Change(59, 202)), Changed(288, U8Change(0, 154)), Changed(289, U8Change(0, 59)), Changed(292, U8Change(0, 202)), Changed(293, U8Change(101, 154)), Changed(294, U8Change(205, 59)), Changed(295, U8Change(29, 0)), Changed(296, U8Change(4, 0)), Changed(298, U8Change(56, 0)), Changed(299, U8Change(115, 0)), Changed(300, U8Change(101, 202)), Changed(301, U8Change(110, 154)), Changed(302, U8Change(105, 59)), Changed(303, U8Change(111, 5)), Changed(304, U8Change(114, 0)), Changed(305, U8Change(32, 64)), Changed(306, U8Change(102, 97)), Changed(307, U8Change(101, 114)), Changed(308, U8Change(108, 99)), Changed(309, U8Change(108, 104)), Changed(310, U8Change(111, 105)), Changed(311, U8Change(119, 116)), Changed(312, U8Change(115, 101)), Changed(313, U8Change(10, 99)), Changed(314, U8Change(0, 116)), Changed(315, U8Change(0, 115)), Changed(316, U8Change(0, 32)), Changed(317, U8Change(0, 97)), Changed(318, U8Change(232, 100)), Changed(319, U8Change(118, 101)), Changed(320, U8Change(72, 112)), Changed(321, U8Change(23, 116)), Changed(322, U8Change(0, 10)), Changed(327, U8Change(0, 116)), Changed(328, U8Change(0, 59)), Changed(329, U8Change(0, 164)), Changed(330, U8Change(0, 11)), Changed(333, U8Change(150, 0)), Changed(337, U8Change(224, 0)), Changed(338, U8Change(196, 0)), Changed(341, U8Change(150, 0)), Changed(342, U8Change(0, 150)), Changed(345, U8Change(5, 0)), Changed(346, U8Change(0, 224)), Changed(347, U8Change(0, 196)), Changed(350, U8Change(0, 150)), Changed(351, U8Change(202, 0)), Changed(352, U8Change(154, 0)), Changed(353, U8Change(59, 0)), Changed(354, U8Change(0, 25)), Changed(355, U8Change(101, 0)), Changed(356, U8Change(205, 0)), Changed(357, U8Change(29, 0)), Changed(359, U8Change(202, 0)), Changed(360, U8Change(154, 202)), Changed(361, U8Change(59, 154)), Changed(362, U8Change(0, 59)), Changed(364, U8Change(202, 101)), Changed(365, U8Change(154, 205)), Changed(366, U8Change(59, 29)), Changed(368, U8Change(0, 202)), Changed(369, U8Change(0, 154)), Changed(370, U8Change(0, 59)), Changed(372, U8Change(101, 0)), Changed(373, U8Change(205, 202)), Changed(374, U8Change(29, 154)), Changed(375, U8Change(5, 59)), Changed(377, U8Change(28, 0)), Changed(378, U8Change(101, 0)), Changed(379, U8Change(120, 0)), Changed(380, U8Change(112, 0)), Changed(381, U8Change(101, 202)), Changed(382, U8Change(114, 154)), Changed(383, U8Change(116, 59)), Changed(384, U8Change(115, 6)), Changed(385, U8Change(10, 0)), Changed(386, U8Change(0, 64)), Changed(387, U8Change(0, 103)), Changed(388, U8Change(0, 114)), Changed(389, U8Change(0, 97)), Changed(390, U8Change(228, 110)), Changed(391, U8Change(11, 100)), Changed(392, U8Change(84, 32)), Changed(393, U8Change(2, 97)), Changed(394, U8Change(0, 114)), Changed(395, U8Change(0, 99)), Changed(396, U8Change(0, 104)), Changed(397, U8Change(0, 105)), Changed(398, U8Change(0, 116)), Changed(399, U8Change(0, 101)), Changed(400, U8Change(0, 99)), Changed(401, U8Change(0, 116)), Changed(402, U8Change(0, 115)), Changed(403, U8Change(0, 10)), Changed(405, U8Change(150, 0)), Changed(408, U8Change(0, 116)), Changed(409, U8Change(224, 59)), Changed(410, U8Change(196, 164)), Changed(411, U8Change(0, 11)), Changed(413, U8Change(150, 0)), Changed(417, U8Change(5, 0)), Changed(423, U8Change(202, 150)), Changed(424, U8Change(154, 0)), Changed(425, U8Change(59, 0)), Changed(427, U8Change(101, 224)), Changed(428, U8Change(205, 196)), Changed(429, U8Change(29, 0)), Changed(431, U8Change(202, 150)), Changed(432, U8Change(154, 0)), Changed(433, U8Change(59, 0)), Changed(435, U8Change(0, 25)), Changed(436, U8Change(202, 0)), Changed(437, U8Change(154, 0)), Changed(438, U8Change(59, 0)), Changed(441, U8Change(0, 202)), Changed(442, U8Change(0, 154)), Changed(443, U8Change(0, 59)), Changed(444, U8Change(101, 0)), Changed(445, U8Change(205, 101)), Changed(446, U8Change(29, 205)), Changed(447, U8Change(6, 29)), Changed(449, U8Change(56, 202)), Changed(450, U8Change(115, 154)), Changed(451, U8Change(101, 59)), Changed(452, U8Change(110, 0)), Changed(453, U8Change(105, 0)), Changed(454, U8Change(111, 202)), Changed(455, U8Change(114, 154)), Changed(456, U8Change(32, 59)), Changed(457, U8Change(101, 0)), Changed(458, U8Change(120, 0)), Changed(459, U8Change(112, 0)), Changed(460, U8Change(101, 0)), Changed(461, U8Change(114, 0)), Changed(462, U8Change(116, 202)), Changed(463, U8Change(115, 154)), Changed(464, U8Change(10, 59)), Changed(465, U8Change(0, 7)), Changed(467, U8Change(0, 28)), Changed(468, U8Change(0, 109)), Changed(469, U8Change(228, 97)), Changed(470, U8Change(11, 115)), Changed(471, U8Change(84, 116)), Changed(472, U8Change(2, 101)), Changed(473, U8Change(0, 114)), Changed(474, U8Change(0, 115)), Changed(475, U8Change(0, 10)), Changed(480, U8Change(0, 116)), Changed(481, U8Change(0, 59)), Changed(482, U8Change(0, 164)), Changed(483, U8Change(0, 11)), Changed(484, U8Change(150, 0)), Changed(488, U8Change(224, 0)), Changed(489, U8Change(196, 0)), Changed(492, U8Change(150, 0)), Changed(495, U8Change(0, 150)), Changed(496, U8Change(5, 0)), Changed(499, U8Change(0, 224)), Changed(500, U8Change(0, 196)), Changed(502, U8Change(202, 0)), Changed(503, U8Change(154, 150)), Changed(504, U8Change(59, 0)), Changed(506, U8Change(101, 0)), Changed(507, U8Change(205, 25)), Changed(508, U8Change(29, 0)), Changed(510, U8Change(202, 0)), Changed(511, U8Change(154, 0)), Changed(512, U8Change(59, 0)), Changed(513, U8Change(0, 202)), Changed(514, U8Change(0, 154)), Changed(515, U8Change(202, 59)), Changed(516, U8Change(154, 0)), Changed(517, U8Change(59, 101)), Changed(518, U8Change(0, 205)), Changed(519, U8Change(0, 29)), Changed(521, U8Change(0, 202)), Changed(522, U8Change(0, 154)), Changed(523, U8Change(101, 59)), Changed(524, U8Change(205, 0)), Changed(525, U8Change(29, 0)), Changed(526, U8Change(7, 202)), Changed(527, U8Change(0, 154)), Changed(528, U8Change(28, 59)), Changed(529, U8Change(109, 0)), Changed(530, U8Change(97, 0)), Changed(531, U8Change(115, 0)), Changed(532, U8Change(116, 0)), Changed(533, U8Change(101, 0)), Changed(534, U8Change(114, 202)), Changed(535, U8Change(115, 154)), Changed(536, U8Change(10, 59)), Changed(537, U8Change(0, 8)), Changed(539, U8Change(0, 64)), Changed(540, U8Change(0, 109)), Changed(541, U8Change(228, 97)), Changed(542, U8Change(11, 115)), Changed(543, U8Change(84, 116)), Changed(544, U8Change(2, 101)), Changed(545, U8Change(0, 114)), Changed(546, U8Change(0, 115)), Changed(547, U8Change(0, 32)), Changed(548, U8Change(0, 99)), Changed(549, U8Change(0, 111)), Changed(550, U8Change(0, 110)), Changed(551, U8Change(0, 115)), Changed(552, U8Change(0, 116)), Changed(553, U8Change(0, 97)), Changed(554, U8Change(0, 110)), Changed(555, U8Change(0, 116)), Changed(556, U8Change(150, 10)), Changed(560, U8Change(224, 0)), Changed(561, U8Change(196, 116)), Changed(562, U8Change(0, 59)), Changed(563, U8Change(0, 164)), Changed(564, U8Change(150, 11)), Changed(568, U8Change(5, 0)), Changed(574, U8Change(202, 0)), Changed(575, U8Change(154, 0)), Changed(576, U8Change(59, 150)), Changed(578, U8Change(101, 0)), Changed(579, U8Change(205, 0)), Changed(580, U8Change(29, 224)), Changed(581, U8Change(0, 196)), Changed(582, U8Change(202, 0)), Changed(583, U8Change(154, 0)), Changed(584, U8Change(59, 150)), Changed(587, U8Change(202, 0)), Changed(588, U8Change(154, 25)), Changed(589, U8Change(59, 0)), Changed(594, U8Change(0, 202)), Changed(595, U8Change(101, 154)), Changed(596, U8Change(205, 59)), Changed(597, U8Change(29, 0)), Changed(598, U8Change(8, 101)), Changed(599, U8Change(0, 205)), Changed(600, U8Change(56, 29)), Changed(601, U8Change(115, 0)), Changed(602, U8Change(101, 202)), Changed(603, U8Change(110, 154)), Changed(604, U8Change(105, 59)), Changed(605, U8Change(111, 0)), Changed(606, U8Change(114, 0)), Changed(607, U8Change(32, 202)), Changed(608, U8Change(109, 154)), Changed(609, U8Change(97, 59)), Changed(610, U8Change(115, 0)), Changed(611, U8Change(116, 0)), Changed(612, U8Change(101, 0)), Changed(613, U8Change(114, 0)), Changed(614, U8Change(115, 0)), Changed(615, U8Change(10, 202)), Changed(616, U8Change(0, 154)), Changed(617, U8Change(0, 59)), Changed(618, U8Change(0, 9)), Changed(620, U8Change(228, 52)), Changed(621, U8Change(11, 103)), Changed(622, U8Change(84, 114)), Changed(623, U8Change(2, 97)), Changed(624, U8Change(0, 110)), Changed(625, U8Change(0, 100)), Changed(626, U8Change(0, 32)), Changed(627, U8Change(0, 109)), Changed(628, U8Change(0, 97)), Changed(629, U8Change(0, 115)), Changed(630, U8Change(0, 116)), Changed(631, U8Change(0, 101)), Changed(632, U8Change(0, 114)), Changed(633, U8Change(0, 115)), Changed(634, U8Change(0, 10)), Changed(635, U8Change(150, 0)), Changed(639, U8Change(224, 116)), Changed(640, U8Change(196, 59)), Changed(641, U8Change(0, 164)), Changed(642, U8Change(0, 11)), Changed(643, U8Change(150, 0)), Changed(647, U8Change(5, 0)), Changed(653, U8Change(202, 0)), Changed(654, U8Change(154, 150)), Changed(655, U8Change(59, 0)), Changed(657, U8Change(101, 0)), Changed(658, U8Change(205, 224)), Changed(659, U8Change(29, 196)), Changed(661, U8Change(202, 0)), Changed(662, U8Change(154, 150)), Changed(663, U8Change(59, 0)), Changed(666, U8Change(202, 25)), Changed(667, U8Change(154, 0)), Changed(668, U8Change(59, 0)), Changed(672, U8Change(0, 202)), Changed(673, U8Change(0, 154)), Changed(674, U8Change(101, 59)), Changed(675, U8Change(205, 0)), Changed(676, U8Change(29, 101)), Changed(677, U8Change(9, 205)), Changed(678, U8Change(0, 29)), Changed(679, U8Change(52, 0)), Changed(680, U8Change(103, 202)), Changed(681, U8Change(114, 154)), Changed(682, U8Change(97, 59)), Changed(683, U8Change(110, 0)), Changed(684, U8Change(100, 0)), Changed(685, U8Change(32, 202)), Changed(686, U8Change(109, 154)), Changed(687, U8Change(97, 59)), Changed(688, U8Change(115, 0)), Changed(689, U8Change(116, 0)), Changed(690, U8Change(101, 0)), Changed(691, U8Change(114, 0)), Changed(692, U8Change(115, 0)), Changed(693, U8Change(10, 202)), Changed(694, U8Change(0, 154)), Changed(695, U8Change(0, 59)), Changed(696, U8Change(0, 11)), Changed(698, U8Change(228, 60)), Changed(699, U8Change(11, 114)), Changed(700, U8Change(84, 101)), Changed(701, U8Change(2, 116)), Changed(702, U8Change(0, 97)), Changed(703, U8Change(0, 105)), Changed(704, U8Change(0, 110)), Changed(705, U8Change(0, 32)), Changed(706, U8Change(0, 97)), Changed(707, U8Change(0, 116)), Changed(708, U8Change(0, 32)), Changed(709, U8Change(0, 73)), Changed(710, U8Change(0, 32)), Changed(711, U8Change(0, 68)), Changed(712, U8Change(0, 97)), Changed(713, U8Change(150, 110)), Changed(714, U8Change(0, 25)), Changed(717, U8Change(224, 0)), Changed(718, U8Change(196, 0)), Changed(719, U8Change(0, 116)), Changed(720, U8Change(0, 59)), Changed(721, U8Change(150, 164)), Changed(722, U8Change(0, 11)), Changed(725, U8Change(5, 0)), Changed(731, U8Change(202, 0)), Changed(732, U8Change(154, 0)), Changed(733, U8Change(59, 0)), Changed(735, U8Change(101, 0)), Changed(736, U8Change(205, 0)), Changed(737, U8Change(29, 0)), Changed(738, U8Change(0, 192)), Changed(739, U8Change(202, 137)), Changed(740, U8Change(154, 1)), Changed(741, U8Change(59, 0)), Changed(742, U8Change(0, 44)), Changed(743, U8Change(0, 1)), Changed(744, U8Change(202, 0)), Changed(745, U8Change(154, 0)), Changed(746, U8Change(59, 0)), Changed(752, U8Change(101, 202)), Changed(753, U8Change(205, 154)), Changed(754, U8Change(29, 59)), Added(755, 0), Added(756, 70), Added(757, 195), Added(758, 35), Added(759, 0), Added(760, 202), Added(761, 154), Added(762, 59), Added(763, 0), Added(764, 0), Added(765, 202), Added(766, 154), Added(767, 59), Added(768, 0), Added(769, 225), Added(770, 245), Added(771, 5), Added(772, 0), Added(773, 202), Added(774, 154), Added(775, 59), Added(776, 12), Added(777, 0), Added(778, 64), Added(779, 114), Added(780, 101), Added(781, 116), Added(782, 97), Added(783, 105), Added(784, 110), Added(785, 32), Added(786, 97), Added(787, 116), Added(788, 32), Added(789, 73), Added(790, 73), Added(791, 32), Added(792, 68), Added(793, 97), Added(794, 110), Added(795, 25), Added(796, 0), Added(797, 0), Added(798, 0), Added(799, 0), Added(800, 116), Added(801, 59), Added(802, 164), Added(803, 11), Added(804, 0), Added(805, 0), Added(806, 0), Added(807, 0), Added(808, 0), Added(809, 0), Added(810, 0), Added(811, 0), Added(812, 0), Added(813, 0), Added(814, 0), Added(815, 0), Added(816, 0), Added(817, 0), Added(818, 0), Added(819, 192), Added(820, 137), Added(821, 1), Added(822, 0), Added(823, 44), Added(824, 1), Added(825, 0), Added(826, 0), Added(827, 0), Added(828, 0), Added(829, 0), Added(830, 0), Added(831, 0), Added(832, 0), Added(833, 202), Added(834, 154), Added(835, 59), Added(836, 0), Added(837, 70), Added(838, 195), Added(839, 35), Added(840, 0), Added(841, 202), Added(842, 154), Added(843, 59), Added(844, 0), Added(845, 0), Added(846, 202), Added(847, 154), Added(848, 59), Added(849, 0), Added(850, 225), Added(851, 245), Added(852, 5), Added(853, 0), Added(854, 202), Added(855, 154), Added(856, 59), Added(857, 13), Added(858, 0), Added(859, 68), Added(860, 114), Added(861, 101), Added(862, 116), Added(863, 97), Added(864, 105), Added(865, 110), Added(866, 32), Added(867, 97), Added(868, 116), Added(869, 32), Added(870, 73), Added(871, 73), Added(872, 73), Added(873, 32), Added(874, 68), Added(875, 97), Added(876, 110), Added(877, 25), Added(878, 0), Added(879, 0), Added(880, 0), Added(881, 0), Added(882, 116), Added(883, 59), Added(884, 164), Added(885, 11), Added(886, 0), Added(887, 0), Added(888, 0), Added(889, 0), Added(890, 0), Added(891, 0), Added(892, 0), Added(893, 0), Added(894, 0), Added(895, 0), Added(896, 0), Added(897, 0), Added(898, 0), Added(899, 0), Added(900, 0), Added(901, 192), Added(902, 137), Added(903, 1), Added(904, 0), Added(905, 44), Added(906, 1), Added(907, 0), Added(908, 0), Added(909, 0), Added(910, 0), Added(911, 0), Added(912, 0), Added(913, 0), Added(914, 0), Added(915, 202), Added(916, 154), Added(917, 59), Added(918, 0), Added(919, 70), Added(920, 195), Added(921, 35), Added(922, 0), Added(923, 202), Added(924, 154), Added(925, 59), Added(926, 0), Added(927, 0), Added(928, 202), Added(929, 154), Added(930, 59), Added(931, 0), Added(932, 225), Added(933, 245), Added(934, 5), Added(935, 0), Added(936, 202), Added(937, 154), Added(938, 59), Added(939, 14), Added(940, 0), Added(941, 64), Added(942, 114), Added(943, 101), Added(944, 116), Added(945, 97), Added(946, 105), Added(947, 110), Added(948, 32), Added(949, 97), Added(950, 116), Added(951, 32), Added(952, 73), Added(953, 86), Added(954, 32), Added(955, 68), Added(956, 97), Added(957, 110), Added(958, 25), Added(959, 0), Added(960, 0), Added(961, 0), Added(962, 0), Added(963, 116), Added(964, 59), Added(965, 164), Added(966, 11), Added(967, 0), Added(968, 0), Added(969, 0), Added(970, 0), Added(971, 0), Added(972, 0), Added(973, 0), Added(974, 0), Added(975, 0), Added(976, 0), Added(977, 0), Added(978, 0), Added(979, 0), Added(980, 0), Added(981, 0), Added(982, 192), Added(983, 137), Added(984, 1), Added(985, 0), Added(986, 44), Added(987, 1), Added(988, 0), Added(989, 0), Added(990, 0), Added(991, 0), Added(992, 0), Added(993, 0), Added(994, 0), Added(995, 0), Added(996, 202), Added(997, 154), Added(998, 59), Added(999, 0), Added(1000, 70), Added(1001, 195), Added(1002, 35), Added(1003, 0), Added(1004, 202), Added(1005, 154), Added(1006, 59), Added(1007, 0), Added(1008, 0), Added(1009, 202), Added(1010, 154), Added(1011, 59), Added(1012, 0), Added(1013, 225), Added(1014, 245), Added(1015, 5), Added(1016, 0), Added(1017, 202), Added(1018, 154), Added(1019, 59), Added(1020, 15), Added(1021, 0), Added(1022, 60), Added(1023, 114), Added(1024, 101), Added(1025, 116), Added(1026, 97), Added(1027, 105), Added(1028, 110), Added(1029, 32), Added(1030, 97), Added(1031, 116), Added(1032, 32), Added(1033, 86), Added(1034, 32), Added(1035, 68), Added(1036, 97), Added(1037, 110), Added(1038, 25), Added(1039, 0), Added(1040, 0), Added(1041, 0), Added(1042, 0), Added(1043, 116), Added(1044, 59), Added(1045, 164), Added(1046, 11), Added(1047, 0), Added(1048, 0), Added(1049, 0), Added(1050, 0), Added(1051, 0), Added(1052, 0), Added(1053, 0), Added(1054, 0), Added(1055, 0), Added(1056, 0), Added(1057, 0), Added(1058, 0), Added(1059, 0), Added(1060, 0), Added(1061, 0), Added(1062, 192), Added(1063, 137), Added(1064, 1), Added(1065, 0), Added(1066, 44), Added(1067, 1), Added(1068, 0), Added(1069, 0), Added(1070, 0), Added(1071, 0), Added(1072, 0), Added(1073, 0), Added(1074, 0), Added(1075, 0), Added(1076, 202), Added(1077, 154), Added(1078, 59), Added(1079, 0), Added(1080, 70), Added(1081, 195), Added(1082, 35), Added(1083, 0), Added(1084, 202), Added(1085, 154), Added(1086, 59), Added(1087, 0), Added(1088, 0), Added(1089, 202), Added(1090, 154), Added(1091, 59), Added(1092, 0), Added(1093, 225), Added(1094, 245), Added(1095, 5), Added(1096, 0), Added(1097, 202), Added(1098, 154), Added(1099, 59), Added(1100, 16), Added(1101, 0), Added(1102, 64), Added(1103, 114), Added(1104, 101), Added(1105, 116), Added(1106, 97), Added(1107, 105), Added(1108, 110), Added(1109, 32), Added(1110, 97), Added(1111, 116), Added(1112, 32), Added(1113, 86), Added(1114, 73), Added(1115, 32), Added(1116, 68), Added(1117, 97), Added(1118, 110), Added(1119, 25), Added(1120, 0), Added(1121, 0), Added(1122, 0), Added(1123, 0), Added(1124, 116), Added(1125, 59), Added(1126, 164), Added(1127, 11), Added(1128, 0), Added(1129, 0), Added(1130, 0), Added(1131, 0), Added(1132, 0), Added(1133, 0), Added(1134, 0), Added(1135, 0), Added(1136, 0), Added(1137, 0), Added(1138, 0), Added(1139, 0), Added(1140, 0), Added(1141, 0), Added(1142, 0), Added(1143, 192), Added(1144, 137), Added(1145, 1), Added(1146, 0), Added(1147, 44), Added(1148, 1), Added(1149, 0), Added(1150, 0), Added(1151, 0), Added(1152, 0), Added(1153, 0), Added(1154, 0), Added(1155, 0), Added(1156, 0), Added(1157, 202), Added(1158, 154), Added(1159, 59), Added(1160, 0), Added(1161, 70), Added(1162, 195), Added(1163, 35), Added(1164, 0), Added(1165, 202), Added(1166, 154), Added(1167, 59), Added(1168, 0), Added(1169, 0), Added(1170, 202), Added(1171, 154), Added(1172, 59), Added(1173, 0), Added(1174, 225), Added(1175, 245), Added(1176, 5), Added(1177, 0), Added(1178, 202), Added(1179, 154), Added(1180, 59), Added(1181, 21), Added(1182, 0), Added(1183, 64), Added(1184, 112), Added(1185, 114), Added(1186, 111), Added(1187, 109), Added(1188, 111), Added(1189, 116), Added(1190, 101), Added(1191, 32), Added(1192, 116), Added(1193, 111), Added(1194, 32), Added(1195, 73), Added(1196, 32), Added(1197, 68), Added(1198, 97), Added(1199, 110), Added(1200, 10), Added(1201, 0), Added(1202, 0), Added(1203, 0), Added(1204, 0), Added(1205, 116), Added(1206, 59), Added(1207, 164), Added(1208, 11), Added(1209, 0), Added(1210, 0), Added(1211, 0), Added(1212, 0), Added(1213, 0), Added(1214, 0), Added(1215, 0), Added(1216, 0), Added(1217, 0), Added(1218, 0), Added(1219, 0), Added(1220, 0), Added(1221, 0), Added(1222, 0), Added(1223, 0), Added(1224, 192), Added(1225, 75), Added(1226, 3), Added(1227, 0), Added(1228, 44), Added(1229, 1), Added(1230, 0), Added(1231, 0), Added(1232, 0), Added(1233, 0), Added(1234, 0), Added(1235, 0), Added(1236, 0), Added(1237, 0), Added(1238, 202), Added(1239, 154), Added(1240, 59), Added(1241, 0), Added(1242, 70), Added(1243, 195), Added(1244, 35), Added(1245, 0), Added(1246, 202), Added(1247, 154), Added(1248, 59), Added(1249, 0), Added(1250, 0), Added(1251, 202), Added(1252, 154), Added(1253, 59), Added(1254, 0), Added(1255, 225), Added(1256, 245), Added(1257, 5), Added(1258, 0), Added(1259, 202), Added(1260, 154), Added(1261, 59), Added(1262, 22), Added(1263, 0), Added(1264, 68), Added(1265, 112), Added(1266, 114), Added(1267, 111), Added(1268, 109), Added(1269, 111), Added(1270, 116), Added(1271, 101), Added(1272, 32), Added(1273, 116), Added(1274, 111), Added(1275, 32), Added(1276, 73), Added(1277, 73), Added(1278, 32), Added(1279, 68), Added(1280, 97), Added(1281, 110), Added(1282, 10), Added(1283, 0), Added(1284, 0), Added(1285, 0), Added(1286, 0), Added(1287, 116), Added(1288, 59), Added(1289, 164), Added(1290, 11), Added(1291, 0), Added(1292, 0), Added(1293, 0), Added(1294, 0), Added(1295, 0), Added(1296, 0), Added(1297, 0), Added(1298, 0), Added(1299, 0), Added(1300, 0), Added(1301, 0), Added(1302, 0), Added(1303, 0), Added(1304, 0), Added(1305, 0), Added(1306, 192), Added(1307, 75), Added(1308, 3), Added(1309, 0), Added(1310, 44), Added(1311, 1), Added(1312, 0), Added(1313, 0), Added(1314, 0), Added(1315, 0), Added(1316, 0), Added(1317, 0), Added(1318, 0), Added(1319, 0), Added(1320, 202), Added(1321, 154), Added(1322, 59), Added(1323, 0), Added(1324, 70), Added(1325, 195), Added(1326, 35), Added(1327, 0), Added(1328, 202), Added(1329, 154), Added(1330, 59), Added(1331, 0), Added(1332, 0), Added(1333, 202), Added(1334, 154), Added(1335, 59), Added(1336, 0), Added(1337, 225), Added(1338, 245), Added(1339, 5), Added(1340, 0), Added(1341, 202), Added(1342, 154), Added(1343, 59), Added(1344, 23), Added(1345, 0), Added(1346, 72), Added(1347, 112), Added(1348, 114), Added(1349, 111), Added(1350, 109), Added(1351, 111), Added(1352, 116), Added(1353, 101), Added(1354, 32), Added(1355, 116), Added(1356, 111), Added(1357, 32), Added(1358, 73), Added(1359, 73), Added(1360, 73), Added(1361, 32), Added(1362, 68), Added(1363, 97), Added(1364, 110), Added(1365, 10), Added(1366, 0), Added(1367, 0), Added(1368, 0), Added(1369, 0), Added(1370, 116), Added(1371, 59), Added(1372, 164), Added(1373, 11), Added(1374, 0), Added(1375, 0), Added(1376, 0), Added(1377, 0), Added(1378, 0), Added(1379, 0), Added(1380, 0), Added(1381, 0), Added(1382, 0), Added(1383, 0), Added(1384, 0), Added(1385, 0), Added(1386, 0), Added(1387, 0), Added(1388, 0), Added(1389, 192), Added(1390, 75), Added(1391, 3), Added(1392, 0), Added(1393, 44), Added(1394, 1), Added(1395, 0), Added(1396, 0), Added(1397, 0), Added(1398, 0), Added(1399, 0), Added(1400, 0), Added(1401, 0), Added(1402, 0), Added(1403, 202), Added(1404, 154), Added(1405, 59), Added(1406, 0), Added(1407, 70), Added(1408, 195), Added(1409, 35), Added(1410, 0), Added(1411, 202), Added(1412, 154), Added(1413, 59), Added(1414, 0), Added(1415, 0), Added(1416, 202), Added(1417, 154), Added(1418, 59), Added(1419, 0), Added(1420, 225), Added(1421, 245), Added(1422, 5), Added(1423, 0), Added(1424, 202), Added(1425, 154), Added(1426, 59), Added(1427, 24), Added(1428, 0), Added(1429, 68), Added(1430, 112), Added(1431, 114), Added(1432, 111), Added(1433, 109), Added(1434, 111), Added(1435, 116), Added(1436, 101), Added(1437, 32), Added(1438, 116), Added(1439, 111), Added(1440, 32), Added(1441, 73), Added(1442, 86), Added(1443, 32), Added(1444, 68), Added(1445, 97), Added(1446, 110), Added(1447, 10), Added(1448, 0), Added(1449, 0), Added(1450, 0), Added(1451, 0), Added(1452, 116), Added(1453, 59), Added(1454, 164), Added(1455, 11), Added(1456, 0), Added(1457, 0), Added(1458, 0), Added(1459, 0), Added(1460, 0), Added(1461, 0), Added(1462, 0), Added(1463, 0), Added(1464, 0), Added(1465, 0), Added(1466, 0), Added(1467, 0), Added(1468, 0), Added(1469, 0), Added(1470, 0), Added(1471, 192), Added(1472, 75), Added(1473, 3), Added(1474, 0), Added(1475, 44), Added(1476, 1), Added(1477, 0), Added(1478, 0), Added(1479, 0), Added(1480, 0), Added(1481, 0), Added(1482, 0), Added(1483, 0), Added(1484, 0), Added(1485, 202), Added(1486, 154), Added(1487, 59), Added(1488, 0), Added(1489, 70), Added(1490, 195), Added(1491, 35), Added(1492, 0), Added(1493, 202), Added(1494, 154), Added(1495, 59), Added(1496, 0), Added(1497, 0), Added(1498, 202), Added(1499, 154), Added(1500, 59), Added(1501, 0), Added(1502, 225), Added(1503, 245), Added(1504, 5), Added(1505, 0), Added(1506, 202), Added(1507, 154), Added(1508, 59), Added(1509, 25), Added(1510, 0), Added(1511, 64), Added(1512, 112), Added(1513, 114), Added(1514, 111), Added(1515, 109), Added(1516, 111), Added(1517, 116), Added(1518, 101), Added(1519, 32), Added(1520, 116), Added(1521, 111), Added(1522, 32), Added(1523, 86), Added(1524, 32), Added(1525, 68), Added(1526, 97), Added(1527, 110), Added(1528, 10), Added(1529, 0), Added(1530, 0), Added(1531, 0), Added(1532, 0), Added(1533, 116), Added(1534, 59), Added(1535, 164), Added(1536, 11), Added(1537, 0), Added(1538, 0), Added(1539, 0), Added(1540, 0), Added(1541, 0), Added(1542, 0), Added(1543, 0), Added(1544, 0), Added(1545, 0), Added(1546, 0), Added(1547, 0), Added(1548, 0), Added(1549, 0), Added(1550, 0), Added(1551, 0), Added(1552, 192), Added(1553, 75), Added(1554, 3), Added(1555, 0), Added(1556, 44), Added(1557, 1), Added(1558, 0), Added(1559, 0), Added(1560, 0), Added(1561, 0), Added(1562, 0), Added(1563, 0), Added(1564, 0), Added(1565, 0), Added(1566, 202), Added(1567, 154), Added(1568, 59), Added(1569, 0), Added(1570, 70), Added(1571, 195), Added(1572, 35), Added(1573, 0), Added(1574, 202), Added(1575, 154), Added(1576, 59), Added(1577, 0), Added(1578, 0), Added(1579, 202), Added(1580, 154), Added(1581, 59), Added(1582, 0), Added(1583, 225), Added(1584, 245), Added(1585, 5), Added(1586, 0), Added(1587, 202), Added(1588, 154), Added(1589, 59), Added(1590, 26), Added(1591, 0), Added(1592, 68), Added(1593, 112), Added(1594, 114), Added(1595, 111), Added(1596, 109), Added(1597, 111), Added(1598, 116), Added(1599, 101), Added(1600, 32), Added(1601, 116), Added(1602, 111), Added(1603, 32), Added(1604, 86), Added(1605, 73), Added(1606, 32), Added(1607, 68), Added(1608, 97), Added(1609, 110), Added(1610, 10), Added(1611, 0), Added(1612, 0), Added(1613, 0), Added(1614, 0), Added(1615, 116), Added(1616, 59), Added(1617, 164), Added(1618, 11), Added(1619, 0), Added(1620, 0), Added(1621, 0), Added(1622, 0), Added(1623, 0), Added(1624, 0), Added(1625, 0), Added(1626, 0), Added(1627, 0), Added(1628, 0), Added(1629, 0), Added(1630, 0), Added(1631, 0), Added(1632, 0), Added(1633, 0), Added(1634, 192), Added(1635, 75), Added(1636, 3), Added(1637, 0), Added(1638, 44), Added(1639, 1), Added(1640, 0), Added(1641, 0), Added(1642, 0), Added(1643, 0), Added(1644, 0), Added(1645, 0), Added(1646, 0), Added(1647, 0), Added(1648, 202), Added(1649, 154), Added(1650, 59), Added(1651, 0), Added(1652, 70), Added(1653, 195), Added(1654, 35), Added(1655, 0), Added(1656, 202), Added(1657, 154), Added(1658, 59), Added(1659, 0), Added(1660, 0), Added(1661, 202), Added(1662, 154), Added(1663, 59), Added(1664, 0), Added(1665, 225), Added(1666, 245), Added(1667, 5), Added(1668, 0), Added(1669, 202), Added(1670, 154), Added(1671, 59)])]

[+] id: 63 - new pallet: FellowshipCore
[+] id: 64 - new pallet: FellowshipSalary
SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

contracts-rococo v9430 vs contracts-rococo v10000

Comparison of the following runtimes:
specifications : contracts-rococo v9430
implementation : contracts-rococo v0
transaction    : v6
authoring      : v1
specifications : contracts-rococo v10000
implementation : contracts-rococo v0
transaction    : v6
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 1 change(s)
  - constants changes:
    [≠] Version: [ 64, 99, 111, 110, 116, 114, 97, 99, 116, 115, 45, 114, 111, 99, 111, 99, 111, 64, 99, 111, 110, 116, 114, 97, 99, 116, 115, 45, 114, 111, 99, 111, ... ]
        [Value([Changed(38, U8Change(214, 16)), Changed(39, U8Change(36, 39))])]

[≠] pallet 21: CollatorSelection -> 18 change(s)
  - calls changes:
    [+] CallDesc { index: 5, name: "add_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }
    [+] CallDesc { index: 6, name: "remove_invulnerable", signature: SignatureDesc { args: [ArgDesc { name: "who", ty: "T::AccountId" }] } }

  - events changes:
    [≠]  1: NewDesiredCandidates ( desired_candidates: u32, )  )
        [Name(StringChange("NewDesiredCandidates", "InvulnerableAdded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("desired_candidates", "account_id")), Ty(StringChange("u32", "T::AccountId"))])] })]
    [≠]  2: NewCandidacyBond ( bond_amount: BalanceOf<T>, )  )
        [Name(StringChange("NewCandidacyBond", "InvulnerableRemoved")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("bond_amount", "account_id")), Ty(StringChange("BalanceOf<T>", "T::AccountId"))])] })]
    [≠]  3: CandidateAdded ( account_id: T::AccountId, deposit: BalanceOf<T>, )  )
        [Name(StringChange("CandidateAdded", "NewDesiredCandidates")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "desired_candidates")), Ty(StringChange("T::AccountId", "u32"))]), Removed(1, ArgDesc { name: "deposit", ty: "BalanceOf<T>" })] })]
    [≠]  4: CandidateRemoved ( account_id: T::AccountId, )  )
        [Name(StringChange("CandidateRemoved", "NewCandidacyBond")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("account_id", "bond_amount")), Ty(StringChange("T::AccountId", "BalanceOf<T>"))])] })]
    [+] EventDesc { index: 5, name: "CandidateAdded", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }, ArgDesc { name: "deposit", ty: "BalanceOf<T>" }] } }
    [+] EventDesc { index: 6, name: "CandidateRemoved", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }
    [+] EventDesc { index: 7, name: "InvalidInvulnerableSkipped", signature: SignatureDesc { args: [ArgDesc { name: "account_id", ty: "T::AccountId" }] } }

  - errors changes:
    [≠]  1: TooFewCandidates
        [Name(StringChange("TooFewCandidates", "TooFewEligibleCollators"))]
    [≠]  2: Unknown
        [Name(StringChange("Unknown", "AlreadyCandidate"))]
    [≠]  3: Permission
        [Name(StringChange("Permission", "NotCandidate"))]
    [≠]  4: AlreadyCandidate
        [Name(StringChange("AlreadyCandidate", "TooManyInvulnerables"))]
    [≠]  5: NotCandidate
        [Name(StringChange("NotCandidate", "AlreadyInvulnerable"))]
    [≠]  6: TooManyInvulnerables
        [Name(StringChange("TooManyInvulnerables", "NotInvulnerable"))]
    [≠]  7: AlreadyInvulnerable
        [Name(StringChange("AlreadyInvulnerable", "NoAssociatedValidatorId"))]
    [≠]  8: NoAssociatedValidatorId
        [Name(StringChange("NoAssociatedValidatorId", "ValidatorNotRegistered"))]
    [-] "ValidatorNotRegistered"

[≠] pallet 30: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 31: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 33: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

[≠] pallet 40: Contracts -> 28 change(s)
  - calls changes:
    [+] CallDesc { index: 9, name: "migrate", signature: SignatureDesc { args: [ArgDesc { name: "weight_limit", ty: "Weight" }] } }

  - errors changes:
    [≠]  0: InvalidScheduleVersion
        [Name(StringChange("InvalidScheduleVersion", "InvalidSchedule"))]
    [≠]  9: OutOfBounds
        [Name(StringChange("OutOfBounds", "CodeInfoNotFound"))]
    [≠] 10: DecodingFailed
        [Name(StringChange("DecodingFailed", "OutOfBounds"))]
    [≠] 11: ContractTrapped
        [Name(StringChange("ContractTrapped", "DecodingFailed"))]
    [≠] 12: ValueTooLarge
        [Name(StringChange("ValueTooLarge", "ContractTrapped"))]
    [≠] 13: TerminatedWhileReentrant
        [Name(StringChange("TerminatedWhileReentrant", "ValueTooLarge"))]
    [≠] 14: InputForwarded
        [Name(StringChange("InputForwarded", "TerminatedWhileReentrant"))]
    [≠] 15: RandomSubjectTooLong
        [Name(StringChange("RandomSubjectTooLong", "InputForwarded"))]
    [≠] 16: TooManyTopics
        [Name(StringChange("TooManyTopics", "RandomSubjectTooLong"))]
    [≠] 17: NoChainExtension
        [Name(StringChange("NoChainExtension", "TooManyTopics"))]
    [≠] 18: DuplicateContract
        [Name(StringChange("DuplicateContract", "NoChainExtension"))]
    [≠] 19: TerminatedInConstructor
        [Name(StringChange("TerminatedInConstructor", "DuplicateContract"))]
    [≠] 20: ReentranceDenied
        [Name(StringChange("ReentranceDenied", "TerminatedInConstructor"))]
    [≠] 21: StorageDepositNotEnoughFunds
        [Name(StringChange("StorageDepositNotEnoughFunds", "ReentranceDenied"))]
    [≠] 22: StorageDepositLimitExhausted
        [Name(StringChange("StorageDepositLimitExhausted", "StorageDepositNotEnoughFunds"))]
    [≠] 23: CodeInUse
        [Name(StringChange("CodeInUse", "StorageDepositLimitExhausted"))]
    [≠] 24: ContractReverted
        [Name(StringChange("ContractReverted", "CodeInUse"))]
    [≠] 25: CodeRejected
        [Name(StringChange("CodeRejected", "ContractReverted"))]
    [≠] 26: Indeterministic
        [Name(StringChange("Indeterministic", "CodeRejected"))]
    [+] ErrorDesc { index: 27, name: "Indeterministic" }
    [+] ErrorDesc { index: 28, name: "MigrationInProgress" }
    [+] ErrorDesc { index: 29, name: "NoMigrationPerformed" }

  - constants changes:
    [≠] Schedule: [ 4, 0, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 128, 0, 0, 0, 16, 0, 0, 0, 0, 16, 0, 0, 0, 1, 0, 0, 32, 0, 0, 0, ... ]
        [Value([Changed(40, U8Change(4, 243)), Changed(41, U8Change(0, 19)), Changed(44, U8Change(0, 106)), Changed(45, U8Change(0, 109)), Changed(46, U8Change(0, 21)), Changed(48, U8Change(195, 24)), Changed(49, U8Change(5, 146)), Changed(50, U8Change(0, 3)), Changed(51, U8Change(0, 229)), Changed(52, U8Change(52, 6)), Changed(53, U8Change(14, 109)), Changed(54, U8Change(0, 42)), Changed(55, U8Change(0, 62)), Changed(56, U8Change(0, 66)), Changed(57, U8Change(12, 16)), Changed(58, U8Change(0, 7)), Changed(59, U8Change(0, 125)), Changed(60, U8Change(243, 42)), Changed(61, U8Change(7, 102)), Changed(62, U8Change(0, 153)), Changed(63, U8Change(0, 25)), Changed(64, U8Change(3, 0)), Changed(66, U8Change(0, 154)), Changed(67, U8Change(0, 93)), Changed(68, U8Change(126, 11)), Changed(69, U8Change(6, 0)), Changed(70, U8Change(0, 12)), Changed(71, U8Change(0, 26)), Changed(72, U8Change(255, 15)), Changed(73, U8Change(13, 10)), Changed(75, U8Change(0, 12)), Changed(76, U8Change(161, 186)), Changed(77, U8Change(20, 182)), Changed(78, U8Change(0, 20)), Changed(80, U8Change(4, 24)), Changed(81, U8Change(0, 182)), Changed(82, U8Change(0, 66)), Changed(83, U8Change(0, 33)), Changed(84, U8Change(241, 0)), Changed(85, U8Change(64, 24)), Changed(86, U8Change(0, 162)), Changed(87, U8Change(0, 110)), Changed(88, U8Change(199, 100)), Changed(89, U8Change(77, 0)), Changed(90, U8Change(0, 24)), Changed(91, U8Change(0, 190)), Changed(92, U8Change(17, 99)), Changed(93, U8Change(4, 20)), Changed(95, U8Change(0, 24)), Changed(96, U8Change(96, 122)), Changed(97, U8Change(3, 173)), Changed(98, U8Change(0, 20)), Changed(100, U8Change(144, 24)), Changed(101, U8Change(8, 182)), Changed(102, U8Change(0, 191)), Changed(103, U8Change(0, 19)), Changed(104, U8Change(149, 0)), Changed(105, U8Change(3, 24)), Changed(106, U8Change(0, 242)), Changed(107, U8Change(0, 24)), Changed(108, U8Change(90, 20)), Changed(109, U8Change(28, 0)), Changed(110, U8Change(0, 24)), Changed(111, U8Change(0, 242)), Changed(112, U8Change(196, 154)), Changed(113, U8Change(28, 90)), Changed(115, U8Change(0, 56)), Changed(116, U8Change(233, 126)), Changed(117, U8Change(8, 187)), Changed(118, U8Change(0, 17)), Changed(120, U8Change(97, 24)), Changed(121, U8Change(30, 105)), Changed(122, U8Change(203, 16)), Changed(124, U8Change(110, 54)), Changed(125, U8Change(3, 131)), Changed(126, U8Change(0, 163)), Changed(128, U8Change(44, 180)), Changed(129, U8Change(3, 13)), Changed(130, U8Change(0, 6)), Changed(132, U8Change(36, 170)), Changed(133, U8Change(3, 185)), Changed(134, U8Change(0, 3)), Changed(135, U8Change(0, 251)), Changed(136, U8Change(219, 181)), Changed(137, U8Change(2, 120)), Changed(138, U8Change(0, 62)), Changed(139, U8Change(0, 136)), Changed(140, U8Change(162, 127)), Changed(141, U8Change(3, 0)), Changed(142, U8Change(0, 40)), Changed(143, U8Change(0, 114)), Changed(144, U8Change(178, 241)), Changed(145, U8Change(3, 237)), Changed(147, U8Change(0, 40)), Changed(148, U8Change(7, 214)), Changed(149, U8Change(3, 138)), Changed(150, U8Change(0, 100)), Changed(151, U8Change(0, 30)), Changed(152, U8Change(84, 49)), Changed(153, U8Change(6, 39)), Changed(154, U8Change(0, 249)), Changed(155, U8Change(0, 10)), Changed(156, U8Change(82, 0)), Changed(157, U8Change(7, 54)), Changed(158, U8Change(0, 12)), Changed(159, U8Change(0, 15)), Changed(160, U8Change(58, 0)), Changed(161, U8Change(6, 28)), Changed(162, U8Change(0, 73)), Changed(163, U8Change(0, 17)), Changed(164, U8Change(59, 0)), Changed(165, U8Change(6, 154)), Changed(166, U8Change(0, 219)), Changed(167, U8Change(0, 125)), Changed(168, U8Change(111, 31)), Changed(169, U8Change(5, 149)), Changed(170, U8Change(0, 4)), Changed(171, U8Change(0, 17)), Changed(172, U8Change(153, 11)), Changed(173, U8Change(6, 0)), Changed(174, U8Change(0, 173)), Changed(175, U8Change(0, 4)), Changed(176, U8Change(29, 4)), Changed(177, U8Change(6, 86)), Changed(178, U8Change(0, 220)), Changed(179, U8Change(0, 180)), Changed(180, U8Change(111, 71)), Changed(181, U8Change(5, 61)), Changed(182, U8Change(0, 48)), Changed(183, U8Change(0, 246)), Changed(184, U8Change(3, 26)), Changed(185, U8Change(6, 114)), Changed(186, U8Change(0, 31)), Changed(187, U8Change(0, 133)), Changed(188, U8Change(60, 4)), Changed(189, U8Change(6, 0)), Changed(190, U8Change(0, 4)), Changed(191, U8Change(0, 170)), Changed(192, U8Change(193, 220)), Changed(193, U8Change(5, 68)), Changed(194, U8Change(0, 7)), Changed(195, U8Change(0, 133)), Changed(196, U8Change(193, 4)), Changed(197, U8Change(6, 133)), Changed(198, U8Change(0, 2)), Changed(199, U8Change(0, 4)), Changed(200, U8Change(92, 114)), Changed(201, U8Change(5, 96)), Changed(202, U8Change(0, 79)), Changed(203, U8Change(0, 7)), Changed(204, U8Change(73, 165)), Changed(205, U8Change(28, 4)), Changed(206, U8Change(0, 145)), Changed(207, U8Change(0, 13)), Changed(208, U8Change(227, 4)), Changed(209, U8Change(23, 106)), Changed(210, U8Change(0, 52)), Changed(211, U8Change(0, 125)), Changed(212, U8Change(51, 31)), Changed(213, U8Change(29, 165)), Changed(214, U8Change(0, 4)), Changed(215, U8Change(0, 17)), Changed(216, U8Change(153, 10)), Changed(217, U8Change(24, 4)), Changed(218, U8Change(0, 50)), Changed(219, U8Change(0, 142)), Changed(220, U8Change(234, 106)), Changed(221, U8Change(4, 39)), Changed(222, U8Change(0, 97)), Changed(223, U8Change(0, 39)), Changed(224, U8Change(51, 102)), Changed(225, U8Change(5, 106)), Changed(226, U8Change(0, 11)), Changed(227, U8Change(0, 118)), Changed(228, U8Change(226, 1)), Changed(229, U8Change(5, 43)), Changed(230, U8Change(0, 250)), Changed(231, U8Change(0, 39)), Changed(232, U8Change(162, 214)), Changed(233, U8Change(5, 99)), Changed(234, U8Change(0, 37)), Changed(235, U8Change(0, 41)), Changed(236, U8Change(176, 142)), Changed(237, U8Change(6, 91)), Changed(238, U8Change(0, 62)), Changed(239, U8Change(0, 145)), Changed(240, U8Change(158, 49)), Changed(241, U8Change(5, 82)), Changed(242, U8Change(0, 9)), Changed(243, U8Change(0, 17)), Changed(244, U8Change(217, 0)), Changed(245, U8Change(5, 146)), Changed(246, U8Change(0, 35)), Changed(247, U8Change(0, 172)), Changed(248, U8Change(150, 249)), Changed(249, U8Change(5, 73)), Changed(250, U8Change(0, 81)), Changed(251, U8Change(0, 2)), Changed(252, U8Change(202, 101)), Changed(253, U8Change(195, 205)), Changed(254, U8Change(19, 29)), Changed(255, U8Change(0, 73)), Changed(256, U8Change(24, 40)), Changed(257, U8Change(194, 77)), Changed(258, U8Change(29, 18)), Changed(259, U8Change(193, 0)), Changed(260, U8Change(6, 189)), Changed(261, U8Change(109, 19)), Changed(262, U8Change(42, 0)), Changed(263, U8Change(166, 30)), Changed(264, U8Change(27, 10)), Changed(265, U8Change(242, 24)), Changed(266, U8Change(6, 0)), Changed(267, U8Change(125, 32)), Changed(268, U8Change(42, 145)), Changed(269, U8Change(246, 17)), Changed(270, U8Change(79, 0)), Changed(271, U8Change(25, 42)), Changed(272, U8Change(0, 89)), Changed(273, U8Change(24, 49)), Changed(274, U8Change(30, 0)), Changed(275, U8Change(56, 32)), Changed(276, U8Change(10, 9)), Changed(277, U8Change(0, 53)), Changed(278, U8Change(12, 0)), Changed(279, U8Change(222, 50)), Changed(280, U8Change(219, 204)), Changed(281, U8Change(8, 27)), Changed(283, U8Change(12, 32)), Changed(284, U8Change(166, 133)), Changed(285, U8Change(29, 19)), Changed(286, U8Change(20, 0)), Changed(287, U8Change(0, 22)), Changed(288, U8Change(24, 12)), Changed(289, U8Change(178, 28)), Changed(290, U8Change(163, 0)), Changed(291, U8Change(31, 32)), Changed(292, U8Change(0, 105)), Changed(293, U8Change(24, 19)), Changed(294, U8Change(38, 0)), Changed(295, U8Change(192, 14)), Changed(296, U8Change(88, 166)), Changed(297, U8Change(0, 2)), Changed(298, U8Change(24, 11)), Changed(299, U8Change(118, 53)), Changed(300, U8Change(242, 1)), Changed(301, U8Change(19, 226)), Changed(302, U8Change(0, 70)), Changed(303, U8Change(24, 228)), Changed(304, U8Change(158, 2)), Changed(305, U8Change(206, 168)), Changed(306, U8Change(19, 26)), Changed(307, U8Change(0, 167)), Changed(308, U8Change(24, 115)), Changed(309, U8Change(186, 13)), Changed(310, U8Change(104, 193)), Changed(311, U8Change(19, 1)), Changed(312, U8Change(0, 21)), Changed(313, U8Change(24, 95)), Changed(314, U8Change(186, 4)), Changed(315, U8Change(85, 6)), Changed(316, U8Change(19, 247)), Changed(317, U8Change(0, 10)), Changed(318, U8Change(24, 0)), Changed(319, U8Change(10, 12)), Changed(320, U8Change(171, 158)), Changed(321, U8Change(84, 98)), Changed(322, U8Change(0, 19)), Changed(323, U8Change(56, 0)), Changed(324, U8Change(238, 160)), Changed(325, U8Change(206, 170)), Changed(326, U8Change(7, 159)), Changed(327, U8Change(0, 9)), Changed(329, U8Change(138, 12)), Removed(330, 32), Removed(331, 17), Removed(332, 0), Removed(333, 24), Removed(334, 77), Removed(335, 9), Removed(336, 0), Removed(337, 62), Removed(338, 143), Removed(339, 56), Removed(340, 0), Removed(341, 180), Removed(342, 213), Removed(343, 2), Removed(344, 0), Removed(345, 22), Removed(346, 194), Removed(347, 254), Removed(348, 253), Removed(349, 149), Removed(350, 121), Removed(351, 182), Removed(352, 174), Removed(353, 107), Removed(354, 0), Removed(355, 40), Removed(356, 218), Removed(357, 191), Removed(358, 210), Removed(359, 0), Removed(360, 40), Removed(361, 158), Removed(362, 245), Removed(363, 100), Removed(364, 30), Removed(365, 49), Removed(366, 39), Removed(367, 209), Removed(368, 11), Removed(369, 0), Removed(370, 122), Removed(371, 18), Removed(372, 14), Removed(373, 0), Removed(374, 28), Removed(375, 133), Removed(376, 11), Removed(377, 0), Removed(378, 54), Removed(379, 228), Removed(380, 63), Removed(381, 31), Removed(382, 149), Removed(383, 4), Removed(384, 217), Removed(385, 6), Removed(386, 0), Removed(387, 165), Removed(388, 1), Removed(389, 4), Removed(390, 162), Removed(391, 5), Removed(392, 214), Removed(393, 70), Removed(394, 73), Removed(395, 48), Removed(396, 202), Removed(397, 29), Removed(398, 54), Removed(399, 31), Removed(400, 133), Removed(401, 4), Removed(402, 245), Removed(403, 1), Removed(404, 4), Removed(405, 206), Removed(406, 39), Removed(407, 27), Removed(408, 7), Removed(409, 133), Removed(410, 4), Removed(411, 0), Removed(412, 4), Removed(413, 2), Removed(414, 65), Removed(415, 35), Removed(416, 7), Removed(417, 165), Removed(418, 4), Removed(419, 9), Removed(420, 11), Removed(421, 4), Removed(422, 10), Removed(423, 113), Removed(424, 68), Removed(425, 31), Removed(426, 165), Removed(427, 4), Removed(428, 161), Removed(429, 11), Removed(430, 4), Removed(431, 190), Removed(432, 156), Removed(433, 60), Removed(434, 38), Removed(435, 97), Removed(436, 39), Removed(437, 78), Removed(438, 168), Removed(439, 81), Removed(440, 111), Removed(441, 1), Removed(442, 43), Removed(443, 142), Removed(444, 163), Removed(445, 145), Removed(446, 86), Removed(447, 49), Removed(448, 40), Removed(449, 250), Removed(450, 6), Removed(451, 222), Removed(452, 66), Removed(453, 137), Removed(454, 80), Removed(455, 101), Removed(456, 9), Removed(457, 0), Removed(458, 94), Removed(459, 45), Removed(460, 93), Removed(461, 238), Removed(462, 85), Removed(463, 81), Removed(464, 250), Removed(465, 201), Removed(466, 176), Removed(467, 59), Removed(468, 41), Removed(469, 41), Removed(470, 125), Removed(471, 18), Removed(472, 0), Removed(473, 33), Removed(474, 21), Removed(475, 0), Removed(476, 206), Removed(477, 7), Removed(478, 35), Removed(479, 0), Removed(480, 32), Removed(481, 181), Removed(482, 61), Removed(483, 0), Removed(484, 26), Removed(485, 85), Removed(486, 45), Removed(487, 0), Removed(488, 32), Removed(489, 101), Removed(490, 49), Removed(491, 0), Removed(492, 234), Removed(493, 128), Removed(494, 25), Removed(495, 0), Removed(496, 32), Removed(497, 69), Removed(498, 14), Removed(499, 0), Removed(500, 150), Removed(501, 113), Removed(502, 25), Removed(503, 0), Removed(504, 32), Removed(505, 93), Removed(506, 14), Removed(507, 0), Removed(508, 6), Removed(509, 28), Removed(510, 247), Removed(511, 8), Removed(512, 53), Removed(513, 1), Removed(514, 178), Removed(515, 93), Removed(516, 58), Removed(517, 2), Removed(518, 168), Removed(519, 6), Removed(520, 66), Removed(521, 119), Removed(522, 11), Removed(523, 193), Removed(524, 1), Removed(525, 17), Removed(526, 73), Removed(527, 4), Removed(528, 102), Removed(529, 189), Removed(530, 9), Removed(531, 0), Removed(532, 12), Removed(533, 54), Removed(534, 175), Removed(535, 15), Removed(536, 0), Removed(537, 160), Removed(538, 194), Removed(539, 192), Removed(540, 8), Removed(541, 0), Removed(542, 12)])]

  - storages changes:
    [+] StorageDesc { name: "CodeInfoOf", modifier: "Optional", default_value: [0] }
    [+] StorageDesc { name: "MigrationInProgress", modifier: "Optional", default_value: [0] }
    [-] "CodeStorage"
    [-] "OwnerInfoOf"

SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

test-parachain v9430 vs test-parachain v10000

Comparison of the following runtimes:
specifications : test-parachain v9430
implementation : test-parachain v0
transaction    : v6
authoring      : v1
specifications : test-parachain v10000
implementation : test-parachain v0
transaction    : v6
authoring      : v1

Require transaction_version bump: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 2 change(s)
  - constants changes:
    [≠] BlockWeights: [ 2, 3, 129, 93, 0, 7, 0, 136, 82, 106, 116, 2, 0, 64, 1, 194, 233, 23, 27, 0, 1, 7, 144, 119, 188, 164, 75, 2, 0, 208, 0, 1, ... ]
        [Value([Changed(1, U8Change(3, 91)), Changed(2, U8Change(129, 31)), Changed(16, U8Change(233, 160)), Changed(17, U8Change(23, 169)), Changed(18, U8Change(27, 29)), Changed(22, U8Change(144, 208)), Changed(23, U8Change(119, 9)), Changed(24, U8Change(188, 24)), Changed(46, U8Change(233, 160)), Changed(47, U8Change(23, 169)), Changed(48, U8Change(27, 29)), Changed(52, U8Change(144, 208)), Changed(53, U8Change(25, 171)), Changed(54, U8Change(81, 172)), Changed(55, U8Change(191, 190)), Changed(84, U8Change(233, 160)), Changed(85, U8Change(23, 169)), Changed(86, U8Change(27, 29))])]
    [≠] Version: [ 56, 116, 101, 115, 116, 45, 112, 97, 114, 97, 99, 104, 97, 105, 110, 56, 116, 101, 115, 116, 45, 112, 97, 114, 97, 99, 104, 97, 105, 110, 1, 0, ... ]
        [Value([Changed(34, U8Change(214, 16)), Changed(35, U8Change(36, 39))])]

[≠] pallet 50: XcmpQueue -> 5 change(s)
  - events changes:
    [≠]  0: Success ( message_hash: Option<XcmHash>, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Added(2, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  1: Fail ( message_hash: Option<XcmHash>, error: XcmError, weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))]), Changed(1, [Name(StringChange("error", "message_id")), Ty(StringChange("XcmError", "XcmHash"))]), Changed(2, [Name(StringChange("weight", "error")), Ty(StringChange("Weight", "XcmError"))]), Added(3, ArgDesc { name: "weight", ty: "Weight" })] })]
    [≠]  2: BadVersion ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  3: BadFormat ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]
    [≠]  4: XcmpMessageSent ( message_hash: Option<XcmHash>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Option<XcmHash>", "XcmHash"))])] })]

[≠] pallet 51: PolkadotXcm -> 24 change(s)
  - calls changes:
    [≠]  4: force_xcm_version ( location: Box<MultiLocation>, xcm_version: XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(1, [Name(StringChange("xcm_version", "version"))])] })]

  - events changes:
    [≠]  0: Attempted ( : xcm::latest::Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "outcome"))])] })]
    [≠]  1: Sent ( : MultiLocation, : MultiLocation, : Xcm<()>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "destination"))]), Changed(2, [Name(StringChange("", "message"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠]  2: UnexpectedResponse ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠]  3: ResponseReady ( : QueryId, : Response, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "response"))])] })]
    [≠]  4: Notified ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  5: NotifyOverweight ( : QueryId, : u8, : u8, : Weight, : Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))]), Changed(3, [Name(StringChange("", "actual_weight"))]), Changed(4, [Name(StringChange("", "max_budgeted_weight"))])] })]
    [≠]  6: NotifyDispatchError ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  7: NotifyDecodeFailed ( : QueryId, : u8, : u8, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))]), Changed(1, [Name(StringChange("", "pallet_index"))]), Changed(2, [Name(StringChange("", "call_index"))])] })]
    [≠]  8: InvalidResponder ( : MultiLocation, : QueryId, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_location"))])] })]
    [≠]  9: InvalidResponderVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 10: ResponseTaken ( : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "query_id"))])] })]
    [≠] 11: AssetsTrapped ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]
    [≠] 12: VersionChangeNotified ( : MultiLocation, : XcmVersion, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "result"))]), Changed(2, [Name(StringChange("", "cost"))]), Added(3, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 13: SupportedVersionChanged ( : MultiLocation, : XcmVersion, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "version"))])] })]
    [≠] 14: NotifyTargetSendFail ( : MultiLocation, : QueryId, : XcmError, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "error"))])] })]
    [≠] 15: NotifyTargetMigrationFail ( : VersionedMultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "location"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 16: InvalidQuerierVersion ( : MultiLocation, : QueryId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))])] })]
    [≠] 17: InvalidQuerier ( : MultiLocation, : QueryId, : MultiLocation, : Option<MultiLocation>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "origin"))]), Changed(1, [Name(StringChange("", "query_id"))]), Changed(2, [Name(StringChange("", "expected_querier"))]), Changed(3, [Name(StringChange("", "maybe_actual_querier"))])] })]
    [≠] 18: VersionNotifyStarted ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 19: VersionNotifyRequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 20: VersionNotifyUnrequested ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "destination"))]), Changed(1, [Name(StringChange("", "cost"))]), Added(2, ArgDesc { name: "message_id", ty: "XcmHash" })] })]
    [≠] 21: FeesPaid ( : MultiLocation, : MultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "paying"))]), Changed(1, [Name(StringChange("", "fees"))])] })]
    [≠] 22: AssetsClaimed ( : H256, : MultiLocation, : VersionedMultiAssets, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("", "hash"))]), Changed(1, [Name(StringChange("", "origin"))]), Changed(2, [Name(StringChange("", "assets"))])] })]

[≠] pallet 53: DmpQueue -> 6 change(s)
  - events changes:
    [≠]  0: InvalidFormat ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  1: UnsupportedVersion ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]
    [≠]  2: ExecutedDownward ( message_id: MessageId, outcome: Outcome, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("outcome", "message_id")), Ty(StringChange("Outcome", "XcmHash"))]), Added(2, ArgDesc { name: "outcome", ty: "Outcome" })] })]
    [≠]  3: WeightExhausted ( message_id: MessageId, remaining_weight: Weight, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("remaining_weight", "message_id")), Ty(StringChange("Weight", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "remaining_weight"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  4: OverweightEnqueued ( message_id: MessageId, overweight_index: OverweightIndex, required_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))]), Changed(1, [Name(StringChange("overweight_index", "message_id")), Ty(StringChange("OverweightIndex", "XcmHash"))]), Changed(2, [Name(StringChange("required_weight", "overweight_index")), Ty(StringChange("Weight", "OverweightIndex"))]), Added(3, ArgDesc { name: "required_weight", ty: "Weight" })] })]
    [≠]  6: MaxMessagesExhausted ( message_id: MessageId, )  )
        [Signature(SignatureChange { args: [Changed(0, [Name(StringChange("message_id", "message_hash")), Ty(StringChange("MessageId", "XcmHash"))])] })]

SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: false

!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!

@EgorPopelyaev
Copy link
Contributor Author

No transaction_version bumps are required

@gilescope
Copy link
Contributor

run both the asset-hub integration tests and they pass.

@gilescope
Copy link
Contributor

Closing this - we should do a fresh one later.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
B0-silent Changes should not be mentioned in any release notes C1-low PR touches the given topic and has a low impact on builders.
Projects
None yet
Development

No branches or pull requests

2 participants