mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 10:27:59 +00:00
contracts: Remove state rent (#9669)
* Remove storage rent * Add storage migration * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs * Add migration for deletetion queue * Fix compilation * Increase gas supplied to out_of_gas to be sure that it won't deplete too early * cargo run --quiet --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs Co-authored-by: Parity Bot <admin@parity.io>
This commit is contained in:
committed by
GitHub
parent
13f3e25ebb
commit
522e77e243
@@ -70,35 +70,17 @@ pub struct ContractResult<T> {
|
||||
pub type ContractExecResult = ContractResult<Result<ExecReturnValue, DispatchError>>;
|
||||
|
||||
/// Result type of a `bare_instantiate` call.
|
||||
pub type ContractInstantiateResult<AccountId, BlockNumber> =
|
||||
ContractResult<Result<InstantiateReturnValue<AccountId, BlockNumber>, DispatchError>>;
|
||||
pub type ContractInstantiateResult<AccountId> =
|
||||
ContractResult<Result<InstantiateReturnValue<AccountId>, DispatchError>>;
|
||||
|
||||
/// Result type of a `get_storage` call.
|
||||
pub type GetStorageResult = Result<Option<Vec<u8>>, ContractAccessError>;
|
||||
|
||||
/// Result type of a `rent_projection` call.
|
||||
pub type RentProjectionResult<BlockNumber> =
|
||||
Result<RentProjection<BlockNumber>, ContractAccessError>;
|
||||
|
||||
/// The possible errors that can happen querying the storage of a contract.
|
||||
#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug)]
|
||||
pub enum ContractAccessError {
|
||||
/// The given address doesn't point to a contract.
|
||||
DoesntExist,
|
||||
/// The specified contract is a tombstone and thus cannot have any storage.
|
||||
IsTombstone,
|
||||
}
|
||||
|
||||
#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
|
||||
#[cfg_attr(feature = "std", serde(rename_all = "camelCase"))]
|
||||
pub enum RentProjection<BlockNumber> {
|
||||
/// Eviction is projected to happen at the specified block number.
|
||||
EvictionAt(BlockNumber),
|
||||
/// No eviction is scheduled.
|
||||
///
|
||||
/// E.g. Contract accumulated enough funds to offset the rent storage costs.
|
||||
NoEviction,
|
||||
}
|
||||
|
||||
bitflags! {
|
||||
@@ -134,19 +116,11 @@ impl ExecReturnValue {
|
||||
#[derive(PartialEq, Eq, Encode, Decode, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
|
||||
#[cfg_attr(feature = "std", serde(rename_all = "camelCase"))]
|
||||
pub struct InstantiateReturnValue<AccountId, BlockNumber> {
|
||||
pub struct InstantiateReturnValue<AccountId> {
|
||||
/// The output of the called constructor.
|
||||
pub result: ExecReturnValue,
|
||||
/// The account id of the new contract.
|
||||
pub account_id: AccountId,
|
||||
/// Information about when and if the new project will be evicted.
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// `None` if `bare_instantiate` was called with
|
||||
/// `compute_projection` set to false. From the perspective of an RPC this means that
|
||||
/// the runtime API did not request this value and this feature is therefore unsupported.
|
||||
pub rent_projection: Option<RentProjection<BlockNumber>>,
|
||||
}
|
||||
|
||||
/// Reference to an existing code hash or a new wasm module.
|
||||
|
||||
Reference in New Issue
Block a user