Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing transaction_version bumps #77

Closed
chevdor opened this issue Oct 25, 2023 · 4 comments
Closed

Missing transaction_version bumps #77

chevdor opened this issue Oct 25, 2023 · 4 comments

Comments

@chevdor
Copy link
Contributor

chevdor commented Oct 25, 2023

transaction_version are missing for some runtimes such as Polkadot.

Running the following:

cd /tmp
mkdir test
cd test
subwasm get --chain polkadot -o 9431.wasm
wget https://github.com/polkadot-fellows/runtimes/releases/download/v1.0.0/polkadot_runtime-v1000000.compact.compressed.wasm -O 1000000.wasm
subwasm diff 9431.wasm 1000000.wasm

shows:

subwasm differ output
!!! THE SUBWASM REDUCED DIFFER IS EXPERIMENTAL, DOUBLE CHECK THE RESULTS !!!
[≠] pallet 0: System -> 2 change(s)
  - constants changes:
    [≠] BlockWeights: [ 7, 56, 255, 253, 104, 2, 0, 11, 0, 32, 74, 169, 209, 1, 19, 255, 255, 255, 255, 255, 255, 255, 255, 2, 80, 170, 25, 0, 1, 11, 0, 60, ... ]
        [Value([Changed(1, U8Change(56, 176)), Changed(2, U8Change(255, 189)), Changed(3, U8Change(253, 233)), Changed(4, U8Change(104, 54)), Changed(5, U8Change(2, 3)), Changed(23, U8Change(2, 34)), Changed(24, U8Change(80, 45)), Changed(25, U8Change(170, 13)), Changed(26, U8Change(25, 30)), Changed(30, U8Change(0, 184)), Changed(31, U8Change(60, 132)), Changed(32, U8Change(117, 92)), Changed(33, U8Change(144, 143)), Changed(65, U8Change(2, 34)), Changed(66, U8Change(80, 45)), Changed(67, U8Change(170, 13)), Changed(68, U8Change(25, 30)), Changed(72, U8Change(0, 184)), Changed(73, U8Change(196, 12)), Changed(74, U8Change(199, 175)), Changed(75, U8Change(250, 249)), Changed(120, U8Change(2, 34)), Changed(121, U8Change(80, 45)), Changed(122, U8Change(170, 13)), Changed(123, U8Change(25, 30))])]
    [≠] Version: [ 32, 112, 111, 108, 107, 97, 100, 111, 116, 60, 112, 97, 114, 105, 116, 121, 45, 112, 111, 108, 107, 97, 100, 111, 116, 0, 0, 0, 0, 215, 36, 0, ... ]
        [Value([Changed(29, U8Change(215, 64)), Changed(30, U8Change(36, 66)), Changed(31, U8Change(0, 15)), Changed(130, U8Change(4, 5)), Changed(142, U8Change(2, 3))])]

[≠] pallet 1: Scheduler -> 11 change(s)
  - calls changes:
    [≠]  0: schedule ( when: T::BlockNumber, maybe_periodic: Option<schedule::Period<T::BlockNumber>>, priority: schedule::Priority, call: Box<<T as Config>::RuntimeCall>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))]), Changed(1, [Ty(StringChange("Option<schedule::Period<T::BlockNumber>>", "Option<schedule::Period<BlockNumberFor<T>>>"))])] })]
    [≠]  1: cancel ( when: T::BlockNumber, index: u32, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  2: schedule_named ( id: TaskName, when: T::BlockNumber, maybe_periodic: Option<schedule::Period<T::BlockNumber>>, priority: schedule::Priority, call: Box<<T as Config>::RuntimeCall>, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))]), Changed(2, [Ty(StringChange("Option<schedule::Period<T::BlockNumber>>", "Option<schedule::Period<BlockNumberFor<T>>>"))])] })]
    [≠]  4: schedule_after ( after: T::BlockNumber, maybe_periodic: Option<schedule::Period<T::BlockNumber>>, priority: schedule::Priority, call: Box<<T as Config>::RuntimeCall>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))]), Changed(1, [Ty(StringChange("Option<schedule::Period<T::BlockNumber>>", "Option<schedule::Period<BlockNumberFor<T>>>"))])] })]
    [≠]  5: schedule_named_after ( id: TaskName, after: T::BlockNumber, maybe_periodic: Option<schedule::Period<T::BlockNumber>>, priority: schedule::Priority, call: Box<<T as Config>::RuntimeCall>, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))]), Changed(2, [Ty(StringChange("Option<schedule::Period<T::BlockNumber>>", "Option<schedule::Period<BlockNumberFor<T>>>"))])] })]

  - events changes:
    [≠]  0: Scheduled ( when: T::BlockNumber, index: u32, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  1: Canceled ( when: T::BlockNumber, index: u32, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  2: Dispatched ( task: TaskAddress<T::BlockNumber>, id: Option<TaskName>, result: DispatchResult, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("TaskAddress<T::BlockNumber>", "TaskAddress<BlockNumberFor<T>>"))])] })]
    [≠]  3: CallUnavailable ( task: TaskAddress<T::BlockNumber>, id: Option<TaskName>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("TaskAddress<T::BlockNumber>", "TaskAddress<BlockNumberFor<T>>"))])] })]
    [≠]  4: PeriodicFailed ( task: TaskAddress<T::BlockNumber>, id: Option<TaskName>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("TaskAddress<T::BlockNumber>", "TaskAddress<BlockNumberFor<T>>"))])] })]
    [≠]  5: PermanentlyOverweight ( task: TaskAddress<T::BlockNumber>, id: Option<TaskName>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("TaskAddress<T::BlockNumber>", "TaskAddress<BlockNumberFor<T>>"))])] })]

[≠] pallet 2: Babe -> 3 change(s)
  - calls changes:
    [≠]  0: report_equivocation ( equivocation_proof: Box<EquivocationProof<T::Header>>, key_owner_proof: T::KeyOwnerProof, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<EquivocationProof<T::Header>>", "Box<EquivocationProof<HeaderFor<T>>>"))])] })]
    [≠]  1: report_equivocation_unsigned ( equivocation_proof: Box<EquivocationProof<T::Header>>, key_owner_proof: T::KeyOwnerProof, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<EquivocationProof<T::Header>>", "Box<EquivocationProof<HeaderFor<T>>>"))])] })]

  - constants changes:
    [+] ConstantDesc { name: "MaxNominators", value: [0, 2, 0, 0] }

[≠] pallet 7: Staking -> 4 change(s)
  - events changes:
    [≠] 14: ForceEra ( mode: Forcing, )  )
        [Name(StringChange("ForceEra", "SnapshotVotersSizeExceeded")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("mode", "size")), Ty(StringChange("Forcing", "u32"))])] })]
    [+] EventDesc { index: 15, name: "SnapshotTargetsSizeExceeded", signature: SignatureDesc { args: [ArgDesc { name: "size", ty: "u32" }] } }
    [+] EventDesc { index: 16, name: "ForceEra", signature: SignatureDesc { args: [ArgDesc { name: "mode", ty: "Forcing" }] } }

  - constants changes:
    [-] "MaxNominations"

[≠] pallet 11: Grandpa -> 4 change(s)
  - calls changes:
    [≠]  0: report_equivocation ( equivocation_proof: Box<EquivocationProof<T::Hash, T::BlockNumber>>, key_owner_proof: T::KeyOwnerProof, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<EquivocationProof<T::Hash, T::BlockNumber>>", "Box<EquivocationProof<T::Hash, BlockNumberFor<T>>>"))])] })]
    [≠]  1: report_equivocation_unsigned ( equivocation_proof: Box<EquivocationProof<T::Hash, T::BlockNumber>>, key_owner_proof: T::KeyOwnerProof, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<EquivocationProof<T::Hash, T::BlockNumber>>", "Box<EquivocationProof<T::Hash, BlockNumberFor<T>>>"))])] })]
    [≠]  2: note_stalled ( delay: T::BlockNumber, best_finalized_block_number: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))]), Changed(1, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]

  - constants changes:
    [+] ConstantDesc { name: "MaxNominators", value: [0, 2, 0, 0] }

[≠] pallet 12: ImOnline -> 1 change(s)
  - calls changes:
    [≠]  0: heartbeat ( heartbeat: Heartbeat<T::BlockNumber>, signature: <T::AuthorityId as RuntimeAppPublic>::Signature, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Heartbeat<T::BlockNumber>", "Heartbeat<BlockNumberFor<T>>"))])] })]

[≠] pallet 20: ConvictionVoting -> 1 change(s)
  - constants changes:
    [≠] VoteLockingPeriod: [192, 137, 1, 0]
        [Value([Changed(0, U8Change(192, 0)), Changed(1, U8Change(137, 39)), Changed(2, U8Change(1, 6))])]

[≠] pallet 21: Referenda -> 1 change(s)
  - calls changes:
    [≠]  0: submit ( proposal_origin: Box<PalletsOriginOf<T>>, proposal: BoundedCallOf<T, I>, enactment_moment: DispatchTime<T::BlockNumber>, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("DispatchTime<T::BlockNumber>", "DispatchTime<BlockNumberFor<T>>"))])] })]

[≠] pallet 24: Claims -> 1 change(s)
  - calls changes:
    [≠]  1: mint_claim ( who: EthereumAddress, value: BalanceOf<T>, vesting_schedule: Option<(BalanceOf<T>, BalanceOf<T>, T::BlockNumber)>, statement: Option<StatementKind>, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("Option<(BalanceOf<T>, BalanceOf<T>, T::BlockNumber)>", "Option<(BalanceOf<T>, BalanceOf<T>, BlockNumberFor<T>)>"))])] })]

[≠] pallet 25: Vesting -> 2 change(s)
  - calls changes:
    [≠]  2: vested_transfer ( target: AccountIdLookupOf<T>, schedule: VestingInfo<BalanceOf<T>, T::BlockNumber>, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("VestingInfo<BalanceOf<T>, T::BlockNumber>", "VestingInfo<BalanceOf<T>, BlockNumberFor<T>>"))])] })]
    [≠]  3: force_vested_transfer ( source: AccountIdLookupOf<T>, target: AccountIdLookupOf<T>, schedule: VestingInfo<BalanceOf<T>, T::BlockNumber>, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("VestingInfo<BalanceOf<T>, T::BlockNumber>", "VestingInfo<BalanceOf<T>, BlockNumberFor<T>>"))])] })]

[≠] pallet 29: Proxy -> 6 change(s)
  - calls changes:
    [≠]  1: add_proxy ( delegate: AccountIdLookupOf<T>, proxy_type: T::ProxyType, delay: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  2: remove_proxy ( delegate: AccountIdLookupOf<T>, proxy_type: T::ProxyType, delay: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  4: create_pure ( proxy_type: T::ProxyType, delay: T::BlockNumber, index: u16, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  5: kill_pure ( spawner: AccountIdLookupOf<T>, proxy_type: T::ProxyType, index: u16, height: T::BlockNumber, ext_index: u32, )  )
        [Signature(SignatureChange { args: [Changed(3, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]

  - events changes:
    [≠]  3: ProxyAdded ( delegator: T::AccountId, delegatee: T::AccountId, proxy_type: T::ProxyType, delay: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(3, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  4: ProxyRemoved ( delegator: T::AccountId, delegatee: T::AccountId, proxy_type: T::ProxyType, delay: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(3, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]

[≠] pallet 30: Multisig -> 6 change(s)
  - calls changes:
    [≠]  1: as_multi ( threshold: u16, other_signatories: Vec<T::AccountId>, maybe_timepoint: Option<Timepoint<T::BlockNumber>>, call: Box<<T as Config>::RuntimeCall>, max_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("Option<Timepoint<T::BlockNumber>>", "Option<Timepoint<BlockNumberFor<T>>>"))])] })]
    [≠]  2: approve_as_multi ( threshold: u16, other_signatories: Vec<T::AccountId>, maybe_timepoint: Option<Timepoint<T::BlockNumber>>, call_hash: [u8; 32], max_weight: Weight, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("Option<Timepoint<T::BlockNumber>>", "Option<Timepoint<BlockNumberFor<T>>>"))])] })]
    [≠]  3: cancel_as_multi ( threshold: u16, other_signatories: Vec<T::AccountId>, timepoint: Timepoint<T::BlockNumber>, call_hash: [u8; 32], )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("Timepoint<T::BlockNumber>", "Timepoint<BlockNumberFor<T>>"))])] })]

  - events changes:
    [≠]  1: MultisigApproval ( approving: T::AccountId, timepoint: Timepoint<T::BlockNumber>, multisig: T::AccountId, call_hash: CallHash, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("Timepoint<T::BlockNumber>", "Timepoint<BlockNumberFor<T>>"))])] })]
    [≠]  2: MultisigExecuted ( approving: T::AccountId, timepoint: Timepoint<T::BlockNumber>, multisig: T::AccountId, call_hash: CallHash, result: DispatchResult, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("Timepoint<T::BlockNumber>", "Timepoint<BlockNumberFor<T>>"))])] })]
    [≠]  3: MultisigCancelled ( cancelling: T::AccountId, timepoint: Timepoint<T::BlockNumber>, multisig: T::AccountId, call_hash: CallHash, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("Timepoint<T::BlockNumber>", "Timepoint<BlockNumberFor<T>>"))])] })]

[≠] pallet 36: ElectionProviderMultiPhase -> 5 change(s)
  - events changes:
    [≠]  5: PhaseTransitioned ( from: Phase<T::BlockNumber>, to: Phase<T::BlockNumber>, round: u32, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Phase<T::BlockNumber>", "Phase<BlockNumberFor<T>>"))]), Changed(1, [Ty(StringChange("Phase<T::BlockNumber>", "Phase<BlockNumberFor<T>>"))])] })]

  - constants changes:
    [≠] MinerMaxWeight: [11, 200, 60, 119, 39, 86, 1, 19, 163, 112, 61, 10, 215, 163, 112, 189]
        [Value([Changed(1, U8Change(200, 8)), Changed(2, U8Change(60, 199)), Changed(3, U8Change(119, 114)), Changed(4, U8Change(39, 88)), Changed(5, U8Change(86, 85))])]
    [≠] SignedMaxWeight: [11, 200, 60, 119, 39, 86, 1, 19, 163, 112, 61, 10, 215, 163, 112, 189]
        [Value([Changed(1, U8Change(200, 8)), Changed(2, U8Change(60, 199)), Changed(3, U8Change(119, 114)), Changed(4, U8Change(39, 88)), Changed(5, U8Change(86, 85))])]
    [-] "MaxElectableTargets"
    [-] "MaxElectingVoters"

[≠] pallet 37: VoterList -> 1 change(s)
  - calls changes:
    [+] CallDesc { index: 2, name: "put_in_front_of_other", signature: SignatureDesc { args: [ArgDesc { name: "heavier", ty: "AccountIdLookupOf<T>" }, ArgDesc { name: "lighter", ty: "AccountIdLookupOf<T>" }] } }

[≠] pallet 39: NominationPools -> 10 change(s)
  - calls changes:
    [≠] 19: set_commission_change_rate ( pool_id: PoolId, change_rate: CommissionChangeRate<T::BlockNumber>, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("CommissionChangeRate<T::BlockNumber>", "CommissionChangeRate<BlockNumberFor<T>>"))])] })]

  - events changes:
    [≠] 13: PoolCommissionChangeRateUpdated ( pool_id: PoolId, change_rate: CommissionChangeRate<T::BlockNumber>, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("CommissionChangeRate<T::BlockNumber>", "CommissionChangeRate<BlockNumberFor<T>>"))])] })]

  - errors changes:
    [≠] 23: CommissionChangeThrottled
        [Name(StringChange("CommissionChangeThrottled", "CommissionExceedsGlobalMaximum"))]
    [≠] 24: CommissionChangeRateNotAllowed
        [Name(StringChange("CommissionChangeRateNotAllowed", "CommissionChangeThrottled"))]
    [≠] 25: NoPendingCommission
        [Name(StringChange("NoPendingCommission", "CommissionChangeRateNotAllowed"))]
    [≠] 26: NoCommissionCurrentSet
        [Name(StringChange("NoCommissionCurrentSet", "NoPendingCommission"))]
    [≠] 27: PoolIdInUse     
        [Name(StringChange("PoolIdInUse", "NoCommissionCurrentSet"))]
    [≠] 28: InvalidPoolId   
        [Name(StringChange("InvalidPoolId", "PoolIdInUse"))]
    [≠] 29: BondExtraRestricted
        [Name(StringChange("BondExtraRestricted", "InvalidPoolId"))]
    [+] ErrorDesc { index: 30, name: "BondExtraRestricted" }

[≠] pallet 40: FastUnstake -> 3 change(s)
  - events changes:
    [≠]  2: InternalError ( )  )
        [Name(StringChange("InternalError", "BatchChecked")), Signature(SignatureChange { args: [Added(0, ArgDesc { name: "eras", ty: "Vec<EraIndex>" })] })]
    [≠]  3: BatchChecked ( eras: Vec<EraIndex>, )  )
        [Name(StringChange("BatchChecked", "BatchFinished")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("eras", "size")), Ty(StringChange("Vec<EraIndex>", "u32"))])] })]
    [≠]  4: BatchFinished ( size: u32, )  )
        [Name(StringChange("BatchFinished", "InternalError")), Signature(SignatureChange { args: [Removed(0, ArgDesc { name: "size", ty: "u32" })] })]

[≠] pallet 51: Configuration -> 20 change(s)
  - calls changes:
    [≠]  0: set_validation_upgrade_cooldown ( new: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  1: set_validation_upgrade_delay ( new: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  2: set_code_retention_period ( new: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  6: set_parathread_cores ( new: u32, )  )
        [Name(StringChange("set_parathread_cores", "set_on_demand_cores"))]
    [≠]  7: set_parathread_retries ( new: u32, )  )
        [Name(StringChange("set_parathread_retries", "set_on_demand_retries"))]
    [≠]  8: set_group_rotation_frequency ( new: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  9: set_chain_availability_period ( new: T::BlockNumber, )  )
        [Name(StringChange("set_chain_availability_period", "set_paras_availability_period")), Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠] 15: set_dispute_post_conclusion_acceptance_period ( new: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠] 43: set_minimum_validation_upgrade_delay ( new: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [+] CallDesc { index: 47, name: "set_on_demand_base_fee", signature: SignatureDesc { args: [ArgDesc { name: "new", ty: "Balance" }] } }
    [+] CallDesc { index: 48, name: "set_on_demand_fee_variability", signature: SignatureDesc { args: [ArgDesc { name: "new", ty: "Perbill" }] } }
    [+] CallDesc { index: 49, name: "set_on_demand_queue_max_size", signature: SignatureDesc { args: [ArgDesc { name: "new", ty: "u32" }] } }
    [+] CallDesc { index: 50, name: "set_on_demand_target_queue_utilization", signature: SignatureDesc { args: [ArgDesc { name: "new", ty: "Perbill" }] } }
    [+] CallDesc { index: 51, name: "set_on_demand_ttl", signature: SignatureDesc { args: [ArgDesc { name: "new", ty: "BlockNumberFor<T>" }] } }
    [+] CallDesc { index: 52, name: "set_minimum_backing_votes", signature: SignatureDesc { args: [ArgDesc { name: "new", ty: "u32" }] } }
    [-] "set_thread_availability_period"
    [-] "set_hrmp_max_parathread_inbound_channels"
    [-] "set_hrmp_max_parathread_outbound_channels"
    [-] "set_pvf_checking_enabled"

  - storages changes:
    [≠] Default  ActiveConfig: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... ]
        [DefaultValue([Changed(117, U8Change(0, 16)), Changed(118, U8Change(0, 39)), Changed(121, U8Change(0, 128)), Changed(122, U8Change(0, 178)), Changed(123, U8Change(0, 230)), Changed(124, U8Change(0, 14)), Changed(125, U8Change(1, 128)), Changed(126, U8Change(0, 195)), Changed(127, U8Change(0, 201)), Changed(128, U8Change(0, 1)), Changed(129, U8Change(1, 128)), Changed(130, U8Change(0, 150)), Changed(131, U8Change(0, 152)), Changed(133, U8Change(1, 0)), Changed(143, U8Change(6, 0)), Changed(145, U8Change(0, 5)), Changed(147, U8Change(100, 0)), Changed(149, U8Change(0, 1)), Changed(151, U8Change(1, 0)), Changed(153, U8Change(0, 1)), Changed(157, U8Change(0, 1)), Changed(163, U8Change(0, 6)), Changed(167, U8Change(0, 100)), Changed(171, U8Change(0, 1)), Changed(172, U8Change(2, 0)), Changed(176, U8Change(2, 0)), Added(180, 0), Added(181, 0), Added(182, 0), Added(183, 0), Added(184, 0), Added(185, 0), Added(186, 0), Added(187, 0), Added(188, 0), Added(189, 0), Added(190, 0), Added(191, 2), Added(192, 0), Added(193, 0), Added(194, 0), Added(195, 2), Added(196, 0), Added(197, 0), Added(198, 0), Added(199, 2), Added(200, 0), Added(201, 0), Added(202, 0)])]

[≠] pallet 52: ParasShared -> 1 change(s)
  - storages changes:
    [+] StorageDesc { name: "AllowedRelayParents", modifier: "Default", default_value: [0, 0, 0, 0, 0] }

[≠] pallet 53: ParaInclusion -> 6 change(s)
  - errors changes:
    [≠] 11: WrongCollator   
        [Name(StringChange("WrongCollator", "ScheduledOutOfOrder"))]
    [≠] 12: ScheduledOutOfOrder
        [Name(StringChange("ScheduledOutOfOrder", "HeadDataTooLarge"))]
    [≠] 13: HeadDataTooLarge
        [Name(StringChange("HeadDataTooLarge", "PrematureCodeUpgrade"))]
    [≠] 14: PrematureCodeUpgrade
        [Name(StringChange("PrematureCodeUpgrade", "NewCodeTooLarge"))]
    [≠] 15: NewCodeTooLarge 
        [Name(StringChange("NewCodeTooLarge", "DisallowedRelayParent"))]
    [≠] 16: CandidateNotInParentContext
        [Name(StringChange("CandidateNotInParentContext", "InvalidAssignment"))]

[≠] pallet 54: ParaInherent -> 1 change(s)
  - calls changes:
    [≠]  0: enter ( data: ParachainsInherentData<T::Header>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("ParachainsInherentData<T::Header>", "ParachainsInherentData<HeaderFor<T>>"))])] })]

[≠] pallet 55: ParaScheduler -> 4 change(s)
  - storages changes:
    [+] StorageDesc { name: "ClaimQueue", modifier: "Default", default_value: [0] }
    [-] "ParathreadClaimIndex"
    [-] "ParathreadQueue"
    [-] "Scheduled"

[≠] pallet 56: Paras -> 3 change(s)
  - calls changes:
    [≠]  2: force_schedule_code_upgrade ( para: ParaId, new_code: ValidationCode, relay_parent_number: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [+] CallDesc { index: 8, name: "force_set_most_recent_context", signature: SignatureDesc { args: [ArgDesc { name: "para", ty: "ParaId" }, ArgDesc { name: "context", ty: "BlockNumberFor<T>" }] } }

  - storages changes:
    [+] StorageDesc { name: "MostRecentContext", modifier: "Optional", default_value: [0] }

[≠] pallet 62: ParasDisputes -> 1 change(s)
  - events changes:
    [≠]  2: Revert ( : T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]

[+] id: 64 - new pallet: ParaAssignmentProvider
[≠] pallet 72: Auctions -> 3 change(s)
  - calls changes:
    [≠]  0: new_auction ( duration: T::BlockNumber, lease_period_index: LeasePeriodOf<T>, )  )
        [Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]

  - events changes:
    [≠]  0: AuctionStarted ( auction_index: AuctionIndex, lease_period: LeasePeriodOf<T>, ending: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  6: WinningOffset ( auction_index: AuctionIndex, block_number: T::BlockNumber, )  )
        [Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]

[≠] pallet 73: Crowdloan -> 2 change(s)
  - calls changes:
    [≠]  0: create ( index: ParaId, cap: BalanceOf<T>, first_period: LeasePeriodOf<T>, last_period: LeasePeriodOf<T>, end: T::BlockNumber, verifier: Option<MultiSigner>, )  )
        [Signature(SignatureChange { args: [Changed(4, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]
    [≠]  5: edit ( index: ParaId, cap: BalanceOf<T>, first_period: LeasePeriodOf<T>, last_period: LeasePeriodOf<T>, end: T::BlockNumber, verifier: Option<MultiSigner>, )  )
        [Signature(SignatureChange { args: [Changed(4, [Ty(StringChange("T::BlockNumber", "BlockNumberFor<T>"))])] })]

[≠] pallet 99: XcmPallet -> 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 100: MessageQueue -> 1 change(s)
  - errors changes:
    [+] ErrorDesc { index: 7, name: "QueuePaused" }

[-] pallet 14: Democracy
[-] pallet 15: Council
[-] pallet 16: TechnicalCommittee
[-] pallet 17: PhragmenElection
[-] pallet 18: TechnicalMembership
[-] pallet 35: Tips
SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: true

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

tldr:

[-] pallet 14: Democracy
[-] pallet 15: Council
[-] pallet 16: TechnicalCommittee
[-] pallet 17: PhragmenElection
[-] pallet 18: TechnicalMembership
[-] pallet 35: Tips
SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: true
@bkchr
Copy link
Contributor

bkchr commented Oct 25, 2023

@joepetrowski and me checked this, we couldn't see any reason why there is a transaction version bump required for Polkadot. Why do you think there is a tx version bump required?

@chevdor
Copy link
Contributor Author

chevdor commented Oct 25, 2023

Due to the removal of the following pallets/calls:

[-] pallet 14: Democracy
[-] pallet 15: Council
[-] pallet 16: TechnicalCommittee
[-] pallet 17: PhragmenElection
[-] pallet 18: TechnicalMembership
[-] pallet 35: Tips

@bkchr
Copy link
Contributor

bkchr commented Oct 25, 2023

Removal of pallets is no reason for a transaction version bump. Transaction version bumps guarantees that things are not changing, like you decode a transfer differently. But here, the transaction would just fail on chain and no harm would happen.

@bkchr
Copy link
Contributor

bkchr commented Oct 25, 2023

Improved the docs on the transaction_version field: paritytech/polkadot-sdk#2027

Going to close this, as there is no tx version bump required as far as I can see.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants