Warning
This release introduces significant updates to both the runtime and the node. As a result, a new binary version has been distributed. Upgrading to this version is mandatory to ensure proper block production after the 0.8.0 runtime is enacted and to maintain the correct operation of an RPC node.
Note
Among the changes, this version also includes a Polkadot SDK upgrade. We have moved from Polkadot SDK 1.6.0 to Polkadot SDK 1.13.0, ensuring our runtime and codebase remain aligned with the latest updates, improvements, and security fixes.
What's Changed
- 🔧 Fix migration test by @JuaniRios in #360
- 😎 Runtime APIs by @JuaniRios in #354
- Vstam1/simplifications by @vstam1 in #358
- 🧹 Cargo fmt by @JuaniRios in #361
- ✲ Transitions can be called by anyone by @JuaniRios in #362
- 🚮 Remove "Y" variable from fee allocation by @JuaniRios in #363
- 🐛 Fix Compilation by @JuaniRios in #364
- ✨ New evaluation reward/slash thresholds by @JuaniRios in #366
- 🗑️ Remove unnecessary bid fields by @JuaniRios in #367
- 🛠️ Rework tests by @JuaniRios in #365
- ✌️ Fix project transition event by @JuaniRios in #368
- 💥 Remove AuctionClosingDuration by @JuaniRios in #369
- 💥 Remove random end field by @JuaniRios in #371
- ✨ Add mark project settled extrinsic by @JuaniRios in #373
- ✅ New tests by @JuaniRios in #372
- 💥 Remove AuctionInitializePeriod by @JuaniRios in #377
- 🛠️ Rework benchmarks by @JuaniRios in #374
- 💿 AWS runtime weight generation by @JuaniRios in #376
- 🦀 Comprehensive Clippy run by @JuaniRios in #380
- ✨ Upgrade to Polkadot SDK 1.13 by @lrazovic in #357
- 🔧 Fix penpal by @JuaniRios in #388
- 🙅🏻♂️ Disallow 0CT participation by @JuaniRios in #385
- 💻 Runtime Benchmarks by @JuaniRios in #384
- 🔖 Runtime Upgrade by @JuaniRios in #383
Tip
The latest
/v0.8.0
Docker image can be accessed on Docker Hub.
Full Changelog: v0.7.6...v0.8.0
- Generated using
srtool
✨ Your Substrate WASM Runtime is ready! ✨
✨ WASM : runtimes/polimec/target/srtool/production/wbuild/polimec-runtime/polimec_runtime.compact.wasm
✨ Z_WASM: runtimes/polimec/target/srtool/production/wbuild/polimec-runtime/polimec_runtime.compact.compressed.wasm
Summary generated with srtool v0.15.0 using the docker image paritytech/srtool:1.77.0:
Package : polimec-runtime v0.8.0
GIT commit : 59222cb91026cd2b25f248013af78d35254b6acf
GIT tag : v0.7.6
GIT branch : HEAD
Rustc : rustc 1.77.0 (aedd173a2 2024-03-17)
Time : 2024-09-05T09:00:39Z
== Compact
Version : polimec-mainnet-8000 (polimec-mainnet-0.tx5.au1)
Metadata : V14
Size : 5.46 MB (5728109 bytes)
setCode : 0xf9ac0a38e271f4634cb02dbd3b263d24dee0309762dc931829f2b64d0d9f8aaf
authorizeUpgrade : 0xac132949f354ffab19669e9a07ba2c4fb308893617682bd99a37b7f246f5f5ce
IPFS : QmXtTEFsRtTdd9WKqaJphrgtVnGQoUibWpG2TFAMPuGirK
BLAKE2_256 : 0x099b7f2ca54a1797ed32f262bdda2d3b79280a455b0dfca39a1f4ec929cb701d
Wasm : runtimes/polimec/target/srtool/production/wbuild/polimec-runtime/polimec_runtime.compact.wasm
== Compressed
Version : polimec-mainnet-8000 (polimec-mainnet-0.tx5.au1)
Metadata : V14
Size : 1.36 MB (1422031 bytes)
Compression : 75.18%
setCode : 0xcfc26ec17fc5cfda8be3f72c1dfdf0d719549104afc6be9b59e3a920dd245efc
authorizeUpgrade : 0x1c9e02018e4996ead7e99273c13eb954945729ea641be74357ad2fa437455cf6
IPFS : QmUodXNA7BWoJEp5SwE2s3E921mFY5wnQ1mXHd1ZPbhNEh
BLAKE2_256 : 0x9da7550f853f4ad42aecce88dd187f2f5ced7b89e193fd4b9dd3e2d55d2a0010
Wasm : runtimes/polimec/target/srtool/production/wbuild/polimec-runtime/polimec_runtime.compact.compressed.wasm
- Generated using
subwasm info
🏋️ Runtime size: 1.356 MB (1,422,031 bytes)
🗜 Compressed: Yes, 75.17%
✨ Reserved meta: OK - [6D, 65, 74, 61]
🎁 Metadata version: V14
🔥 Core version: polimec-mainnet-8000 (polimec-mainnet-0.tx5.au1)
🗳️ system.setCode hash: 0xcfc26ec17fc5cfda8be3f72c1dfdf0d719549104afc6be9b59e3a920dd245efc
🗳️ authorizeUpgrade hash: 0x1c9e02018e4996ead7e99273c13eb954945729ea641be74357ad2fa437455cf6
🗳️ Blake2-256 hash: 0x9da7550f853f4ad42aecce88dd187f2f5ced7b89e193fd4b9dd3e2d55d2a0010
📦 IPFS: https://www.ipfs.io/ipfs/QmUodXNA7BWoJEp5SwE2s3E921mFY5wnQ1mXHd1ZPbhNEh
- Generated using
subwasm diff
[≠] pallet 0: System -> 5 change(s)
- errors changes:
[≠] 6: NothingAuthorized
[Name(StringChange("NothingAuthorized", "MultiBlockMigrationsOngoing"))]
[≠] 7: Unauthorized
[Name(StringChange("Unauthorized", "NothingAuthorized"))]
[+] ErrorDesc { index: 8, name: "Unauthorized" }
- constants changes:
[≠] Version: [ 60, 112, 111, 108, 105, 109, 101, 99, 45, 109, 97, 105, 110, 110, 101, 116, 60, 112, 111, 108, 105, 109, 101, 99, 45, 109, 97, 105, 110, 110, 101, 116, ... ]
[Value([Changed(36, U8Change(94, 64)), Changed(37, U8Change(27, 31)), Changed(44, U8Change(52, 68)), Changed(77, U8Change(4, 5)), Changed(189, U8Change(251, 217)), Changed(190, U8Change(197, 101)), Changed(191, U8Change(119, 16)), Changed(192, U8Change(185, 39)), Changed(193, U8Change(215, 209)), Changed(194, U8Change(71, 133)), Changed(195, U8Change(239, 146)), Changed(196, U8Change(214, 52)), Changed(201, U8Change(4, 99)), Changed(202, U8Change(0, 137)), Changed(203, U8Change(0, 71)), Changed(204, U8Change(0, 238)), Changed(205, U8Change(1, 183)), Added(206, 168), Added(207, 251), Added(208, 223), Added(209, 1), Added(210, 0), Added(211, 0), Added(212, 0), Added(213, 74), Added(214, 49), Added(215, 12), Added(216, 237), Added(217, 116), Added(218, 92), Added(219, 130), Added(220, 18), Added(221, 1), Added(222, 0), Added(223, 0), Added(224, 0), Added(225, 64), Added(226, 98), Added(227, 235), Added(228, 97), Added(229, 215), Added(230, 193), Added(231, 244), Added(232, 156), Added(233, 1), Added(234, 0), Added(235, 0), Added(236, 0), Added(237, 251), Added(238, 197), Added(239, 119), Added(240, 185), Added(241, 215), Added(242, 71), Added(243, 239), Added(244, 214), Added(245, 1), Added(246, 0), Added(247, 0), Added(248, 0), Added(249, 5), Added(250, 0), Added(251, 0), Added(252, 0), Added(253, 1)])]
- storages changes:
[+] StorageDesc { name: "InherentsApplied", modifier: "Default", default_value: [0] }
[≠] pallet 1: ParachainSystem -> 1 change(s)
- constants changes:
[+] ConstantDesc { name: "SelfParaId", value: [100, 0, 0, 0] }
[≠] pallet 10: Balances -> 6 change(s)
- calls changes:
[+] CallDesc { index: 9, name: "force_adjust_total_issuance", signature: SignatureDesc { args: [ArgDesc { name: "direction", ty: "AdjustmentDirection" }, ArgDesc { name: "delta", ty: "T::Balance" }] } }
[+] CallDesc { index: 10, name: "burn", signature: SignatureDesc { args: [ArgDesc { name: "value", ty: "T::Balance" }, ArgDesc { name: "keep_alive", ty: "bool" }] } }
- events changes:
[+] EventDesc { index: 21, name: "TotalIssuanceForced", signature: SignatureDesc { args: [ArgDesc { name: "old", ty: "T::Balance" }, ArgDesc { name: "new", ty: "T::Balance" }] } }
- errors changes:
[+] ErrorDesc { index: 10, name: "IssuanceDeactivated" }
[+] ErrorDesc { index: 11, name: "DeltaZero" }
- constants changes:
[-] "MaxHolds"
[≠] pallet 13: ContributionTokens -> 2 change(s)
- events changes:
[+] EventDesc { index: 24, name: "Deposited", signature: SignatureDesc { args: [ArgDesc { name: "asset_id", ty: "T::AssetId" }, ArgDesc { name: "who", ty: "T::AccountId" }, ArgDesc { name: "amount", ty: "T::Balance" }] } }
[+] EventDesc { index: 25, name: "Withdrawn", signature: SignatureDesc { args: [ArgDesc { name: "asset_id", ty: "T::AssetId" }, ArgDesc { name: "who", ty: "T::AccountId" }, ArgDesc { name: "amount", ty: "T::Balance" }] } }
[≠] pallet 14: ForeignAssets -> 2 change(s)
- events changes:
[+] EventDesc { index: 24, name: "Deposited", signature: SignatureDesc { args: [ArgDesc { name: "asset_id", ty: "T::AssetId" }, ArgDesc { name: "who", ty: "T::AccountId" }, ArgDesc { name: "amount", ty: "T::Balance" }] } }
[+] EventDesc { index: 25, name: "Withdrawn", signature: SignatureDesc { args: [ArgDesc { name: "asset_id", ty: "T::AssetId" }, ArgDesc { name: "who", ty: "T::AccountId" }, ArgDesc { name: "amount", ty: "T::Balance" }] } }
[≠] pallet 23: Aura -> 1 change(s)
- constants changes:
[+] ConstantDesc { name: "SlotDuration", value: [224, 46, 0, 0, 0, 0, 0, 0] }
[≠] pallet 30: XcmpQueue -> 4 change(s)
- errors changes:
[+] ErrorDesc { index: 3, name: "TooManyActiveOutboundChannels" }
[+] ErrorDesc { index: 4, name: "TooBig" }
- constants changes:
[+] ConstantDesc { name: "MaxActiveOutboundChannels", value: [128, 0, 0, 0] }
[+] ConstantDesc { name: "MaxPageSize", value: [0, 156, 1, 0] }
[≠] pallet 31: PolkadotXcm -> 31 change(s)
- calls changes:
[≠] 0: send ( dest: Box<VersionedMultiLocation>, message: Box<VersionedXcm<()>>, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))])] })]
[≠] 1: teleport_assets ( dest: Box<VersionedMultiLocation>, beneficiary: Box<VersionedMultiLocation>, assets: Box<VersionedMultiAssets>, fee_asset_item: u32, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(1, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(2, [Ty(StringChange("Box<VersionedMultiAssets>", "Box<VersionedAssets>"))])] })]
[≠] 2: reserve_transfer_assets ( dest: Box<VersionedMultiLocation>, beneficiary: Box<VersionedMultiLocation>, assets: Box<VersionedMultiAssets>, fee_asset_item: u32, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(1, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(2, [Ty(StringChange("Box<VersionedMultiAssets>", "Box<VersionedAssets>"))])] })]
[≠] 4: force_xcm_version ( location: Box<MultiLocation>, version: XcmVersion, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<MultiLocation>", "Box<Location>"))])] })]
[≠] 6: force_subscribe_version_notify ( location: Box<VersionedMultiLocation>, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))])] })]
[≠] 7: force_unsubscribe_version_notify ( location: Box<VersionedMultiLocation>, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))])] })]
[≠] 8: limited_reserve_transfer_assets ( dest: Box<VersionedMultiLocation>, beneficiary: Box<VersionedMultiLocation>, assets: Box<VersionedMultiAssets>, fee_asset_item: u32, weight_limit: WeightLimit, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(1, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(2, [Ty(StringChange("Box<VersionedMultiAssets>", "Box<VersionedAssets>"))])] })]
[≠] 9: limited_teleport_assets ( dest: Box<VersionedMultiLocation>, beneficiary: Box<VersionedMultiLocation>, assets: Box<VersionedMultiAssets>, fee_asset_item: u32, weight_limit: WeightLimit, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(1, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(2, [Ty(StringChange("Box<VersionedMultiAssets>", "Box<VersionedAssets>"))])] })]
[≠] 11: transfer_assets ( dest: Box<VersionedMultiLocation>, beneficiary: Box<VersionedMultiLocation>, assets: Box<VersionedMultiAssets>, fee_asset_item: u32, weight_limit: WeightLimit, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(1, [Ty(StringChange("Box<VersionedMultiLocation>", "Box<VersionedLocation>"))]), Changed(2, [Ty(StringChange("Box<VersionedMultiAssets>", "Box<VersionedAssets>"))])] })]
[+] CallDesc { index: 12, name: "claim_assets", signature: SignatureDesc { args: [ArgDesc { name: "assets", ty: "Box<VersionedAssets>" }, ArgDesc { name: "beneficiary", ty: "Box<VersionedLocation>" }] } }
[+] CallDesc { index: 13, name: "transfer_assets_using_type_and_then", signature: SignatureDesc { args: [ArgDesc { name: "dest", ty: "Box<VersionedLocation>" }, ArgDesc { name: "assets", ty: "Box<VersionedAssets>" }, ArgDesc { name: "assets_transfer_type", ty: "Box<TransferType>" }, ArgDesc { name: "remote_fees_id", ty: "Box<VersionedAssetId>" }, ArgDesc { name: "fees_transfer_type", ty: "Box<TransferType>" }, ArgDesc { name: "custom_xcm_on_dest", ty: "Box<VersionedXcm<()>>" }, ArgDesc { name: "weight_limit", ty: "WeightLimit" }] } }
- events changes:
[≠] 1: Sent ( origin: MultiLocation, destination: MultiLocation, message: Xcm<()>, message_id: XcmHash, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))]), Changed(1, [Ty(StringChange("MultiLocation", "Location"))])] })]
[≠] 2: UnexpectedResponse ( origin: MultiLocation, query_id: QueryId, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))])] })]
[≠] 8: InvalidResponder ( origin: MultiLocation, query_id: QueryId, expected_location: Option<MultiLocation>, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))]), Changed(2, [Ty(StringChange("Option<MultiLocation>", "Option<Location>"))])] })]
[≠] 9: InvalidResponderVersion ( origin: MultiLocation, query_id: QueryId, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))])] })]
[≠] 11: AssetsTrapped ( hash: H256, origin: MultiLocation, assets: VersionedMultiAssets, ) )
[Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("MultiLocation", "Location"))]), Changed(2, [Ty(StringChange("VersionedMultiAssets", "VersionedAssets"))])] })]
[≠] 12: VersionChangeNotified ( destination: MultiLocation, result: XcmVersion, cost: MultiAssets, message_id: XcmHash, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))]), Changed(2, [Ty(StringChange("MultiAssets", "Assets"))])] })]
[≠] 13: SupportedVersionChanged ( location: MultiLocation, version: XcmVersion, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))])] })]
[≠] 14: NotifyTargetSendFail ( location: MultiLocation, query_id: QueryId, error: XcmError, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))])] })]
[≠] 15: NotifyTargetMigrationFail ( location: VersionedMultiLocation, query_id: QueryId, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("VersionedMultiLocation", "VersionedLocation"))])] })]
[≠] 16: InvalidQuerierVersion ( origin: MultiLocation, query_id: QueryId, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))])] })]
[≠] 17: InvalidQuerier ( origin: MultiLocation, query_id: QueryId, expected_querier: MultiLocation, maybe_actual_querier: Option<MultiLocation>, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))]), Changed(2, [Ty(StringChange("MultiLocation", "Location"))]), Changed(3, [Ty(StringChange("Option<MultiLocation>", "Option<Location>"))])] })]
[≠] 18: VersionNotifyStarted ( destination: MultiLocation, cost: MultiAssets, message_id: XcmHash, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))]), Changed(1, [Ty(StringChange("MultiAssets", "Assets"))])] })]
[≠] 19: VersionNotifyRequested ( destination: MultiLocation, cost: MultiAssets, message_id: XcmHash, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))]), Changed(1, [Ty(StringChange("MultiAssets", "Assets"))])] })]
[≠] 20: VersionNotifyUnrequested ( destination: MultiLocation, cost: MultiAssets, message_id: XcmHash, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))]), Changed(1, [Ty(StringChange("MultiAssets", "Assets"))])] })]
[≠] 21: FeesPaid ( paying: MultiLocation, fees: MultiAssets, ) )
[Signature(SignatureChange { args: [Changed(0, [Ty(StringChange("MultiLocation", "Location"))]), Changed(1, [Ty(StringChange("MultiAssets", "Assets"))])] })]
[≠] 22: AssetsClaimed ( hash: H256, origin: MultiLocation, assets: VersionedMultiAssets, ) )
[Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("MultiLocation", "Location"))]), Changed(2, [Ty(StringChange("VersionedMultiAssets", "VersionedAssets"))])] })]
[+] EventDesc { index: 23, name: "VersionMigrationFinished", signature: SignatureDesc { args: [ArgDesc { name: "version", ty: "XcmVersion" }] } }
- errors changes:
[-] "InvalidAssetNotConcrete"
- storages changes:
[+] StorageDesc { name: "RecordedXcm", modifier: "Optional", default_value: [0] }
[+] StorageDesc { name: "ShouldRecordXcm", modifier: "Default", default_value: [0] }
[≠] pallet 34: MessageQueue -> 1 change(s)
- constants changes:
[+] ConstantDesc { name: "IdleMaxServiceWeight", value: [1, 7, 0, 232, 118, 72, 23, 2, 0, 64, 0] }
[≠] pallet 46: Scheduler -> 11 change(s)
- calls changes:
[+] CallDesc { index: 6, name: "set_retry", signature: SignatureDesc { args: [ArgDesc { name: "task", ty: "TaskAddress<BlockNumberFor<T>>" }, ArgDesc { name: "retries", ty: "u8" }, ArgDesc { name: "period", ty: "BlockNumberFor<T>" }] } }
[+] CallDesc { index: 7, name: "set_retry_named", signature: SignatureDesc { args: [ArgDesc { name: "id", ty: "TaskName" }, ArgDesc { name: "retries", ty: "u8" }, ArgDesc { name: "period", ty: "BlockNumberFor<T>" }] } }
[+] CallDesc { index: 8, name: "cancel_retry", signature: SignatureDesc { args: [ArgDesc { name: "task", ty: "TaskAddress<BlockNumberFor<T>>" }] } }
[+] CallDesc { index: 9, name: "cancel_retry_named", signature: SignatureDesc { args: [ArgDesc { name: "id", ty: "TaskName" }] } }
- events changes:
[≠] 3: CallUnavailable ( task: TaskAddress<BlockNumberFor<T>>, id: Option<TaskName>, ) )
[Name(StringChange("CallUnavailable", "RetrySet")), Signature(SignatureChange { args: [Added(2, ArgDesc { name: "period", ty: "BlockNumberFor<T>" }), Added(3, ArgDesc { name: "retries", ty: "u8" })] })]
[≠] 4: PeriodicFailed ( task: TaskAddress<BlockNumberFor<T>>, id: Option<TaskName>, ) )
[Name(StringChange("PeriodicFailed", "RetryCancelled"))]
[≠] 5: PermanentlyOverweight ( task: TaskAddress<BlockNumberFor<T>>, id: Option<TaskName>, ) )
[Name(StringChange("PermanentlyOverweight", "CallUnavailable"))]
[+] EventDesc { index: 6, name: "PeriodicFailed", signature: SignatureDesc { args: [ArgDesc { name: "task", ty: "TaskAddress<BlockNumberFor<T>>" }, ArgDesc { name: "id", ty: "Option<TaskName>" }] } }
[+] EventDesc { index: 7, name: "RetryFailed", signature: SignatureDesc { args: [ArgDesc { name: "task", ty: "TaskAddress<BlockNumberFor<T>>" }, ArgDesc { name: "id", ty: "Option<TaskName>" }] } }
[+] EventDesc { index: 8, name: "PermanentlyOverweight", signature: SignatureDesc { args: [ArgDesc { name: "task", ty: "TaskAddress<BlockNumberFor<T>>" }, ArgDesc { name: "id", ty: "Option<TaskName>" }] } }
- storages changes:
[+] StorageDesc { name: "Retries", modifier: "Optional", default_value: [0] }
[≠] pallet 80: Funding -> 91 change(s)
- calls changes:
[≠] 4: start_auction ( jwt: UntrustedToken, project_id: ProjectId, ) )
[Name(StringChange("start_auction", "evaluate")), Signature(SignatureChange { args: [Added(2, ArgDesc { name: "usd_amount", ty: "BalanceOf<T>" })] })]
[≠] 5: evaluate ( jwt: UntrustedToken, project_id: ProjectId, usd_amount: BalanceOf<T>, ) )
[Name(StringChange("evaluate", "end_evaluation")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("jwt", "project_id")), Ty(StringChange("UntrustedToken", "ProjectId"))]), Removed(1, ArgDesc { name: "project_id", ty: "ProjectId" }), Removed(2, ArgDesc { name: "usd_amount", ty: "BalanceOf<T>" })] })]
[≠] 7: root_do_auction_opening ( project_id: ProjectId, ) )
[Name(StringChange("root_do_auction_opening", "bid")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("project_id", "jwt")), Ty(StringChange("ProjectId", "UntrustedToken"))]), Added(1, ArgDesc { name: "project_id", ty: "ProjectId" }), Added(2, ArgDesc { name: "ct_amount", ty: "BalanceOf<T>" }), Added(3, ArgDesc { name: "multiplier", ty: "T::Multiplier" }), Added(4, ArgDesc { name: "funding_asset", ty: "AcceptedFundingAsset" })] })]
[≠] 8: bid ( jwt: UntrustedToken, project_id: ProjectId, ct_amount: BalanceOf<T>, multiplier: T::Multiplier, asset: AcceptedFundingAsset, ) )
[Name(StringChange("bid", "end_auction")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("jwt", "project_id")), Ty(StringChange("UntrustedToken", "ProjectId"))]), Removed(1, ArgDesc { name: "project_id", ty: "ProjectId" }), Removed(2, ArgDesc { name: "ct_amount", ty: "BalanceOf<T>" }), Removed(3, ArgDesc { name: "multiplier", ty: "T::Multiplier" }), Removed(4, ArgDesc { name: "asset", ty: "AcceptedFundingAsset" })] })]
[≠] 9: root_do_start_auction_closing ( project_id: ProjectId, ) )
[Name(StringChange("root_do_start_auction_closing", "contribute")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("project_id", "jwt")), Ty(StringChange("ProjectId", "UntrustedToken"))]), Added(1, ArgDesc { name: "project_id", ty: "ProjectId" }), Added(2, ArgDesc { name: "ct_amount", ty: "BalanceOf<T>" }), Added(3, ArgDesc { name: "multiplier", ty: "MultiplierOf<T>" }), Added(4, ArgDesc { name: "funding_asset", ty: "AcceptedFundingAsset" })] })]
[≠] 10: root_do_end_auction_closing ( project_id: ProjectId, ) )
[Name(StringChange("root_do_end_auction_closing", "end_funding"))]
[≠] 11: root_do_community_funding ( project_id: ProjectId, ) )
[Name(StringChange("root_do_community_funding", "start_settlement"))]
[≠] 12: community_contribute ( jwt: UntrustedToken, project_id: ProjectId, amount: BalanceOf<T>, multiplier: MultiplierOf<T>, asset: AcceptedFundingAsset, ) )
[Name(StringChange("community_contribute", "settle_evaluation")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("jwt", "project_id")), Ty(StringChange("UntrustedToken", "ProjectId"))]), Changed(1, [Name(StringChange("project_id", "evaluator")), Ty(StringChange("ProjectId", "AccountIdOf<T>"))]), Changed(2, [Name(StringChange("amount", "evaluation_id")), Ty(StringChange("BalanceOf<T>", "u32"))]), Removed(3, ArgDesc { name: "multiplier", ty: "MultiplierOf<T>" }), Removed(4, ArgDesc { name: "asset", ty: "AcceptedFundingAsset" })] })]
[≠] 13: root_do_remainder_funding ( project_id: ProjectId, ) )
[Name(StringChange("root_do_remainder_funding", "settle_bid")), Signature(SignatureChange { args: [Added(1, ArgDesc { name: "bidder", ty: "AccountIdOf<T>" }), Added(2, ArgDesc { name: "bid_id", ty: "u32" })] })]
[≠] 17: root_do_project_decision ( project_id: ProjectId, decision: FundingOutcomeDecision, ) )
[Name(StringChange("root_do_project_decision", "settle_contribution")), Signature(SignatureChange { args: [Changed(1, [Name(StringChange("decision", "contributor")), Ty(StringChange("FundingOutcomeDecision", "AccountIdOf<T>"))]), Added(2, ArgDesc { name: "contribution_id", ty: "u32" })] })]
[≠] 18: root_do_start_settlement ( project_id: ProjectId, ) )
[Name(StringChange("root_do_start_settlement", "mark_project_as_settled"))]
[≠] 19: settle_successful_evaluation ( project_id: ProjectId, evaluator: AccountIdOf<T>, evaluation_id: u32, ) )
[Name(StringChange("settle_successful_evaluation", "start_offchain_migration")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("project_id", "jwt")), Ty(StringChange("ProjectId", "UntrustedToken"))]), Changed(1, [Name(StringChange("evaluator", "project_id")), Ty(StringChange("AccountIdOf<T>", "ProjectId"))]), Removed(2, ArgDesc { name: "evaluation_id", ty: "u32" })] })]
[≠] 20: settle_successful_bid ( project_id: ProjectId, bidder: AccountIdOf<T>, bid_id: u32, ) )
[Name(StringChange("settle_successful_bid", "confirm_offchain_migration")), Signature(SignatureChange { args: [Changed(1, [Name(StringChange("bidder", "participant"))]), Removed(2, ArgDesc { name: "bid_id", ty: "u32" })] })]
[≠] 21: settle_successful_contribution ( project_id: ProjectId, contributor: AccountIdOf<T>, contribution_id: u32, ) )
[Name(StringChange("settle_successful_contribution", "start_pallet_migration")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("project_id", "jwt")), Ty(StringChange("ProjectId", "UntrustedToken"))]), Changed(1, [Name(StringChange("contributor", "project_id")), Ty(StringChange("AccountIdOf<T>", "ProjectId"))]), Changed(2, [Name(StringChange("contribution_id", "para_id")), Ty(StringChange("u32", "ParaId"))])] })]
[≠] 22: settle_failed_evaluation ( project_id: ProjectId, evaluator: AccountIdOf<T>, evaluation_id: u32, ) )
[Name(StringChange("settle_failed_evaluation", "start_pallet_migration_readiness_check")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("project_id", "jwt")), Ty(StringChange("ProjectId", "UntrustedToken"))]), Changed(1, [Name(StringChange("evaluator", "project_id")), Ty(StringChange("AccountIdOf<T>", "ProjectId"))]), Removed(2, ArgDesc { name: "evaluation_id", ty: "u32" })] })]
[≠] 23: settle_failed_bid ( project_id: ProjectId, bidder: AccountIdOf<T>, bid_id: u32, ) )
[Name(StringChange("settle_failed_bid", "pallet_migration_readiness_response")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("project_id", "query_id")), Ty(StringChange("ProjectId", "QueryId"))]), Changed(1, [Name(StringChange("bidder", "response")), Ty(StringChange("AccountIdOf<T>", "Response"))]), Removed(2, ArgDesc { name: "bid_id", ty: "u32" })] })]
[≠] 24: settle_failed_contribution ( project_id: ProjectId, contributor: AccountIdOf<T>, contribution_id: u32, ) )
[Name(StringChange("settle_failed_contribution", "send_pallet_migration_for")), Signature(SignatureChange { args: [Changed(1, [Name(StringChange("contributor", "participant"))]), Removed(2, ArgDesc { name: "contribution_id", ty: "u32" })] })]
[≠] 25: start_pallet_migration ( jwt: UntrustedToken, project_id: ProjectId, para_id: ParaId, ) )
[Name(StringChange("start_pallet_migration", "confirm_pallet_migrations")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("jwt", "query_id")), Ty(StringChange("UntrustedToken", "QueryId"))]), Changed(1, [Name(StringChange("project_id", "response")), Ty(StringChange("ProjectId", "Response"))]), Removed(2, ArgDesc { name: "para_id", ty: "ParaId" })] })]
[≠] 26: start_offchain_migration ( jwt: UntrustedToken, project_id: ProjectId, ) )
[Name(StringChange("start_offchain_migration", "mark_project_ct_migration_as_finished")), Signature(SignatureChange { args: [Changed(0, [Name(StringChange("jwt", "project_id")), Ty(StringChange("UntrustedToken", "ProjectId"))]), Removed(1, ArgDesc { name: "project_id", ty: "ProjectId" })] })]
[-] "root_do_evaluation_end"
[-] "remaining_contribute"
[-] "root_do_end_funding"
[-] "decide_project_outcome"
[-] "start_pallet_migration_readiness_check"
[-] "pallet_migration_readiness_response"
[-] "send_pallet_migration_for"
[-] "confirm_pallet_migrations"
[-] "confirm_offchain_migration"
[-] "mark_project_ct_migration_as_finished"
- events changes:
[≠] 3: ProjectPhaseTransition ( project_id: ProjectId, phase: ProjectPhases, ) )
[Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("ProjectPhases", "ProjectStatus<BlockNumberFor<T>>"))])] })]
[≠] 7: ProjectOutcomeDecided ( project_id: ProjectId, decision: FundingOutcomeDecision, ) )
[Name(StringChange("ProjectOutcomeDecided", "BidRefunded")), Signature(SignatureChange { args: [Changed(1, [Name(StringChange("decision", "account")), Ty(StringChange("FundingOutcomeDecision", "AccountIdOf<T>"))]), Added(2, ArgDesc { name: "bid_id", ty: "u32" }), Added(3, ArgDesc { name: "plmc_amount", ty: "BalanceOf<T>" }), Added(4, ArgDesc { name: "funding_asset", ty: "AcceptedFundingAsset" }), Added(5, ArgDesc { name: "funding_amount", ty: "BalanceOf<T>" })] })]
[≠] 8: BidRefunded ( project_id: ProjectId, account: AccountIdOf<T>, bid_id: u32, reason: RejectionReason, plmc_amount: BalanceOf<T>, funding_asset: AcceptedFundingAsset, funding_amount: BalanceOf<T>, ) )
[Name(StringChange("BidRefunded", "EvaluationSettled")), Signature(SignatureChange { args: [Changed(2, [Name(StringChange("bid_id", "id"))]), Changed(3, [Name(StringChange("reason", "ct_rewarded")), Ty(StringChange("RejectionReason", "BalanceOf<T>"))]), Changed(4, [Name(StringChange("plmc_amount", "plmc_released"))]), Removed(5, ArgDesc { name: "funding_asset", ty: "AcceptedFundingAsset" }), Removed(6, ArgDesc { name: "funding_amount", ty: "BalanceOf<T>" })] })]
[≠] 9: EvaluationSettled ( project_id: ProjectId, account: AccountIdOf<T>, id: u32, ct_amount: BalanceOf<T>, slashed_plmc_amount: BalanceOf<T>, ) )
[Name(StringChange("EvaluationSettled", "BidSettled")), Signature(SignatureChange { args: [Changed(3, [Name(StringChange("ct_amount", "final_ct_amount"))]), Changed(4, [Name(StringChange("slashed_plmc_amount", "final_ct_usd_price")), Ty(StringChange("BalanceOf<T>", "PriceOf<T>"))])] })]
[≠] 10: BidSettled ( project_id: ProjectId, account: AccountIdOf<T>, id: u32, ct_amount: BalanceOf<T>, ) )
[Name(StringChange("BidSettled", "ContributionSettled"))]
[≠] 11: ContributionSettled ( project_id: ProjectId, account: AccountIdOf<T>, id: u32, ct_amount: BalanceOf<T>, ) )
[Name(StringChange("ContributionSettled", "PalletMigrationStarted")), Signature(SignatureChange { args: [Changed(1, [Name(StringChange("account", "para_id")), Ty(StringChange("AccountIdOf<T>", "ParaId"))]), Removed(2, ArgDesc { name: "id", ty: "u32" }), Removed(3, ArgDesc { name: "ct_amount", ty: "BalanceOf<T>" })] })]
[≠] 12: PalletMigrationStarted ( project_id: ProjectId, para_id: ParaId, ) )
[Name(StringChange("PalletMigrationStarted", "HrmpChannelAccepted"))]
[≠] 13: HrmpChannelAccepted ( project_id: ProjectId, para_id: ParaId, ) )
[Name(StringChange("HrmpChannelAccepted", "HrmpChannelEstablished"))]
[≠] 14: HrmpChannelEstablished ( project_id: ProjectId, para_id: ParaId, ) )
[Name(StringChange("HrmpChannelEstablished", "MigrationReadinessCheckStarted")), Signature(SignatureChange { args: [Changed(1, [Name(StringChange("para_id", "caller")), Ty(StringChange("ParaId", "T::AccountId"))])] })]
[≠] 15: MigrationReadinessCheckStarted ( project_id: ProjectId, caller: T::AccountId, ) )
[Name(StringChange("MigrationReadinessCheckStarted", "MigrationCheckResponseAccepted")), Signature(SignatureChange { args: [Changed(1, [Name(StringChange("caller", "query_id")), Ty(StringChange("T::AccountId", "QueryId"))]), Added(2, ArgDesc { name: "response", ty: "Response" })] })]
[≠] 16: MigrationCheckResponseAccepted ( project_id: ProjectId, query_id: QueryId, response: Response, ) )
[Name(StringChange("MigrationCheckResponseAccepted", "MigrationCheckResponseRejected"))]
[≠] 17: MigrationCheckResponseRejected ( project_id: ProjectId, query_id: QueryId, response: Response, ) )
[Name(StringChange("MigrationCheckResponseRejected", "MigrationStatusUpdated")), Signature(SignatureChange { args: [Changed(1, [Name(StringChange("query_id", "account")), Ty(StringChange("QueryId", "AccountIdOf<T>"))]), Changed(2, [Name(StringChange("response", "status")), Ty(StringChange("Response", "MigrationStatus"))])] })]
[≠] 18: MigrationStatusUpdated ( project_id: ProjectId, account: AccountIdOf<T>, status: MigrationStatus, ) )
[Name(StringChange("MigrationStatusUpdated", "CTMigrationFinished")), Signature(SignatureChange { args: [Removed(1, ArgDesc { name: "account", ty: "AccountIdOf<T>" }), Removed(2, ArgDesc { name: "status", ty: "MigrationStatus" })] })]
[-] "CTMigrationFinished"
- errors changes:
[≠] 14: RoundTransitionAlreadyHappened
[Name(StringChange("RoundTransitionAlreadyHappened", "TooLateForRound"))]
[≠] 16: TooManyInsertionAttempts
[Name(StringChange("TooManyInsertionAttempts", "NotIssuer"))]
[≠] 17: NotIssuer
[Name(StringChange("NotIssuer", "HasActiveProject"))]
[≠] 18: HasActiveProject
[Name(StringChange("HasActiveProject", "ParticipationToOwnProject"))]
[≠] 19: ParticipationToOwnProject
[Name(StringChange("ParticipationToOwnProject", "IssuerNotEnoughFunds"))]
[≠] 20: IssuerNotEnoughFunds
[Name(StringChange("IssuerNotEnoughFunds", "PriceTooLow"))]
[≠] 21: PriceTooLow
[Name(StringChange("PriceTooLow", "TicketSizeError"))]
[≠] 22: TicketSizeError
[Name(StringChange("TicketSizeError", "ParticipationCurrenciesError"))]
[≠] 23: ParticipationCurrenciesError
[Name(StringChange("ParticipationCurrenciesError", "AllocationSizeError"))]
[≠] 24: AllocationSizeError
[Name(StringChange("AllocationSizeError", "AuctionRoundPercentageError"))]
[≠] 25: AuctionRoundPercentageError
[Name(StringChange("AuctionRoundPercentageError", "FundingTargetTooLow"))]
[≠] 26: FundingTargetTooLow
[Name(StringChange("FundingTargetTooLow", "FundingTargetTooHigh"))]
[≠] 27: FundingTargetTooHigh
[Name(StringChange("FundingTargetTooHigh", "CidNotProvided"))]
[≠] 28: CidNotProvided
[Name(StringChange("CidNotProvided", "BadDecimals"))]
[≠] 29: BadDecimals
[Name(StringChange("BadDecimals", "BadTokenomics"))]
[≠] 30: BadTokenomics
[Name(StringChange("BadTokenomics", "TooLow"))]
[≠] 31: TooLow
[Name(StringChange("TooLow", "TooHigh"))]
[≠] 32: TooHigh
[Name(StringChange("TooHigh", "FundingAssetNotAccepted"))]
[≠] 33: FundingAssetNotAccepted
[Name(StringChange("FundingAssetNotAccepted", "TooManyUserParticipations"))]
[≠] 34: TooManyUserParticipations
[Name(StringChange("TooManyUserParticipations", "TooManyProjectParticipations"))]
[≠] 35: TooManyProjectParticipations
[Name(StringChange("TooManyProjectParticipations", "ForbiddenMultiplier"))]
[≠] 36: ForbiddenMultiplier
[Name(StringChange("ForbiddenMultiplier", "UserHasWinningBid"))]
[≠] 37: UserHasWinningBid
[Name(StringChange("UserHasWinningBid", "ParticipantNotEnoughFunds"))]
[≠] 38: ParticipantNotEnoughFunds
[Name(StringChange("ParticipantNotEnoughFunds", "PolicyMismatch"))]
[≠] 39: PolicyMismatch
[Name(StringChange("PolicyMismatch", "ProjectSoldOut"))]
[≠] 47: FundingSuccessSettlementNotStarted
[Name(StringChange("FundingSuccessSettlementNotStarted", "SettlementNotStarted"))]
[≠] 48: FundingFailedSettlementNotStarted
[Name(StringChange("FundingFailedSettlementNotStarted", "WrongSettlementOutcome"))]
[≠] 49: WrongSettlementOutcome
[Name(StringChange("WrongSettlementOutcome", "ParticipationsNotSettled"))]
[≠] 50: ParticipationsNotSettled
[Name(StringChange("ParticipationsNotSettled", "SettlementNotComplete"))]
[≠] 51: SettlementNotComplete
[Name(StringChange("SettlementNotComplete", "MigrationsStillPending"))]
[-] "MigrationsStillPending"
- constants changes:
[+] ConstantDesc { name: "AuctionRoundDuration", value: [224, 196, 0, 0] }
[+] ConstantDesc { name: "CommunityRoundDuration", value: [160, 140, 0, 0] }
[+] ConstantDesc { name: "EvaluationRoundDuration", value: [224, 196, 0, 0] }
[+] ConstantDesc { name: "RemainderRoundDuration", value: [64, 56, 0, 0] }
[-] "AuctionClosingDuration"
[-] "AuctionInitializePeriodDuration"
[-] "AuctionOpeningDuration"
[-] "CommunityFundingDuration"
[-] "EvaluationDuration"
[-] "ManualAcceptanceDuration"
[-] "MaxProjectsToUpdateInsertionAttempts"
[-] "MaxProjectsToUpdatePerBlock"
[-] "RemainderFundingDuration"
[-] "SuccessToSettlementTime"
- storages changes:
[-] "Nonce"
[-] "ProjectsToUpdate"
[-] "RetailParticipations"
[≠] pallet 81: LinearRelease -> 3 change(s)
- calls changes:
[≠] 2: vested_transfer ( target: AccountIdOf<T>, schedule: VestingInfo<BalanceOf<T>, BlockNumberFor<T>>, reason: ReasonOf<T>, ) )
[Signature(SignatureChange { args: [Changed(1, [Ty(StringChange("VestingInfo<BalanceOf<T>, BlockNumberFor<T>>", "VestingInfoOf<T>"))])] })]
[≠] 3: force_vested_transfer ( source: AccountIdOf<T>, target: AccountIdOf<T>, schedule: VestingInfo<BalanceOf<T>, BlockNumberFor<T>>, reason: ReasonOf<T>, ) )
[Signature(SignatureChange { args: [Changed(2, [Ty(StringChange("VestingInfo<BalanceOf<T>, BlockNumberFor<T>>", "VestingInfoOf<T>"))])] })]
- constants changes:
[≠] MaxVestingSchedules: [26, 0, 0, 0]
[Value([Changed(0, U8Change(26, 100))])]
[-] pallet 33: DmpQueue
SUMMARY:
- Compatible.......................: false
- Require transaction_version bump.: true