Trait pallet_revive::pallet::DefaultConfig
source · pub trait DefaultConfig: DefaultConfig {
Show 20 associated items
type Time: Time;
type RuntimeEvent;
type RuntimeCall;
type RuntimeHoldReason;
type CallFilter;
type WeightPrice;
type WeightInfo: WeightInfo;
type ChainExtension;
type DepositPerByte;
type DepositPerItem;
type CodeHashLockupDepositPercent: Get<Perbill>;
type UnsafeUnstableInterface: Get<bool>;
type UploadOrigin;
type InstantiateOrigin;
type Debug;
type Xcm;
type RuntimeMemory: Get<u32>;
type PVFMemory: Get<u32>;
type ChainId: Get<u64>;
type NativeToEthRatio: Get<u32>;
}
Expand description
Based on Config
. Auto-generated by
#[pallet::config(with_default)]
.
Can be used in tandem with
#[register_default_config]
and
#[derive_impl]
to derive test config traits
based on existing pallet config traits in a safe and developer-friendly way.
See here for more information and caveats about
the auto-generated DefaultConfig
trait and how it is generated.
Required Associated Types§
sourcetype Time: Time
type Time: Time
The time implementation used to supply timestamps to contracts through seal_now
.
sourcetype RuntimeEvent
type RuntimeEvent
The overarching event type.
sourcetype RuntimeCall
type RuntimeCall
The overarching call type.
sourcetype RuntimeHoldReason
type RuntimeHoldReason
Overarching hold reason.
sourcetype CallFilter
type CallFilter
Filter that is applied to calls dispatched by contracts.
Use this filter to control which dispatchables are callable by contracts.
This is applied in addition to frame_system::Config::BaseCallFilter
.
It is recommended to treat this as a whitelist.
§Stability
The runtime must make sure that all dispatchables that are callable by
contracts remain stable. In addition Self::RuntimeCall
itself must remain stable.
This means that no existing variants are allowed to switch their positions.
§Note
Note that dispatchables that are called via contracts do not spawn their own wasm instance for each call (as opposed to when called via a transaction). Therefore please make sure to be restrictive about which dispatchables are allowed in order to not introduce a new DoS vector like memory allocation patterns that can be exploited to drive the runtime into a panic.
This filter does not apply to XCM transact calls. To impose restrictions on XCM transact calls, you must configure them separately within the XCM pallet itself.
sourcetype WeightPrice
type WeightPrice
Used to answer contracts’ queries regarding the current weight price. This is not used to calculate the actual fee and is only for informational purposes.
sourcetype WeightInfo: WeightInfo
type WeightInfo: WeightInfo
Describes the weights of the dispatchables of this module and is also used to construct a default cost schedule.
sourcetype ChainExtension
type ChainExtension
Type that allows the runtime authors to add new host functions for a contract to call.
sourcetype DepositPerByte
type DepositPerByte
The amount of balance a caller has to pay for each byte of storage.
§Note
It is safe to change this value on a live chain as all refunds are pro rata.
sourcetype DepositPerItem
type DepositPerItem
The amount of balance a caller has to pay for each storage item.
§Note
It is safe to change this value on a live chain as all refunds are pro rata.
sourcetype CodeHashLockupDepositPercent: Get<Perbill>
type CodeHashLockupDepositPercent: Get<Perbill>
The percentage of the storage deposit that should be held for using a code hash.
Instantiating a contract, or calling chain_extension::Ext::lock_delegate_dependency
protects the code from being removed. In order to prevent abuse these actions are
protected with a percentage of the code deposit.
sourcetype UnsafeUnstableInterface: Get<bool>
type UnsafeUnstableInterface: Get<bool>
Make contract callable functions marked as #[unstable]
available.
Contracts that use #[unstable]
functions won’t be able to be uploaded unless
this is set to true
. This is only meant for testnets and dev nodes in order to
experiment with new features.
§Warning
Do not set to true
on productions chains.
sourcetype UploadOrigin
type UploadOrigin
Origin allowed to upload code.
By default, it is safe to set this to EnsureSigned
, allowing anyone to upload contract
code.
sourcetype InstantiateOrigin
type InstantiateOrigin
Origin allowed to instantiate code.
§Note
This is not enforced when a contract instantiates another contract. The
Self::UploadOrigin
should make sure that no code is deployed that does unwanted
instantiations.
By default, it is safe to set this to EnsureSigned
, allowing anyone to instantiate
contract code.
sourcetype Debug
type Debug
For most production chains, it’s recommended to use the ()
implementation of this
trait. This implementation offers additional logging when the log target
“runtime::revive” is set to trace.
sourcetype Xcm
type Xcm
A type that exposes XCM APIs, allowing contracts to interact with other parachains, and execute XCM programs.
sourcetype RuntimeMemory: Get<u32>
type RuntimeMemory: Get<u32>
The amount of memory in bytes that parachain nodes a lot to the runtime.
This is used in Pallet::integrity_test
to make sure that the runtime has enough
memory to support this pallet if set to the correct value.
sourcetype PVFMemory: Get<u32>
type PVFMemory: Get<u32>
The amount of memory in bytes that relay chain validators a lot to the PoV.
This is used in Pallet::integrity_test
to make sure that the runtime has enough
memory to support this pallet if set to the correct value.
This value is usually higher than Self::RuntimeMemory
to account for the fact
that validators have to hold all storage items in PvF memory.
sourcetype ChainId: Get<u64>
type ChainId: Get<u64>
The EIP-155 chain ID.
This is a unique identifier assigned to each blockchain network, preventing replay attacks.
sourcetype NativeToEthRatio: Get<u32>
type NativeToEthRatio: Get<u32>
The ratio between the decimal representation of the native token and the ETH token.