-
Notifications
You must be signed in to change notification settings - Fork 839
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Introduces TypeWithDefault<T, D: Get<T>>
#4034
Conversation
Because we like different implementations, I came up with another one :D #4044 (which should be actually the one that requires the least changes) |
Yeah, yours is much simpler :)) |
NonceWithDefault<D: Get<N>, N: Nonce>
TypeWithDefault<T, D: Get<T>>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am still a bit unsure about the technicality of all the trait impls that are added, but in general looks good as it solves a security issue.
|
||
//! Provides a type that wraps another type and provides a default value. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DQ but it wraps a value, not a type, or?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe ValueWithDefault<T, D: Get<T>>
?
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
It's actually a type. For example, the mock is wrapping |
But it does also contain a value |
* 'master' of https://github.com/metaspan/polkadot-sdk: (65 commits) Introduces `TypeWithDefault<T, D: Get<T>>` (paritytech#4034) Publish `polkadot-sdk-frame` crate (paritytech#4370) Add validate field to prdoc (paritytech#4368) State trie migration on asset-hub westend and collectives westend (paritytech#4185) Fix: dust unbonded for zero existential deposit (paritytech#4364) Bridge: added subcommand to relay single parachain header (paritytech#4365) Bridge: fix zombienet tests (paritytech#4367) [WIP][CI] Add more GHA jobs (paritytech#4270) Allow for 0 existential deposit in benchmarks for `pallet_staking`, `pallet_session`, and `pallet_balances` (paritytech#4346) Deprecate `NativeElseWasmExecutor` (paritytech#4329) More `xcm::v4` cleanup and `xcm_fee_payment_runtime_api::XcmPaymentApi` nits (paritytech#4355) sc-tracing: enable env-filter feature (paritytech#4357) deps: update jsonrpsee to v0.22.5 (paritytech#4330) Add PoV-reclaim enablement guide to polkadot-sdk-docs (paritytech#4244) cargo: Update experimental litep2p to latest version (paritytech#4344) Bridge: ignore client errors when calling recently added `*_free_headers_interval` methods (paritytech#4350) Make parachain template great again (and async backing ready) (paritytech#4295) [Backport] Version bumps and reorg prdocs from 1.11.0 (paritytech#4336) HRMP - set `DefaultChannelSizeAndCapacityWithSystem` with dynamic values according to the `ActiveConfig` (paritytech#4332) Statement Distribution Per Peer Rate Limit (paritytech#3444) ...
Needed for: polkadot-fellows/runtimes#248 This PR introduces a new type `TypeWithDefault<T, D: Get<T>>` to be able to provide a custom default for any type. This can, then, be used to provide the nonce type that returns the current block number as the default, to avoid replay of immortal transactions. --------- Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Needed for: polkadot-fellows/runtimes#248 This PR introduces a new type `TypeWithDefault<T, D: Get<T>>` to be able to provide a custom default for any type. This can, then, be used to provide the nonce type that returns the current block number as the default, to avoid replay of immortal transactions. --------- Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
/// A type that wraps another type and provides a default value. | ||
/// | ||
/// Passes through arithmetical and many other operations to the inner value. | ||
#[derive(Encode, Decode, TypeInfo, Debug, MaxEncodedLen)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Crucially, this type should have not derived TypeInfo
. It should have had a manual TypeInfo
implementation that would mimic the internal T
.
Needed for: polkadot-fellows/runtimes#248
This PR introduces a new type
TypeWithDefault<T, D: Get<T>>
to be able to provide a custom default for any type. This can, then, be used to provide the nonce type that returns the current block number as the default, to avoid replay of immortal transactions.