Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

contracts: Add salt argument to contract instantiation #7482

Merged
13 commits merged into from
Nov 24, 2020

Conversation

athei
Copy link
Member

@athei athei commented Nov 3, 2020

This PR adds a salt: &[u8] argument to the instantiate dispatchable and the seal_instantiate host function. The new formula for contract address derivation is:

hash(deploying_address ++ code_hash ++ salt)

This is akin to Ethereum's CREATE2 semantic.

This PR can be reviewed on a commit by commit basis. The description of each commit contains more information on what happened there.

Motivation

Currently, the formula to to derive a new contract address looks like this:

hash(deploying_address ++ code_hash ++ hash(input_bytes))

This formula has two problems: First, a generic UI cannot help the user to deploy the same contract multiple times. Even though the formula theoretically allows for deploying the same contract from the same sender multiple times this support needs to be baked into the contract code and the UI needs to be aware of that. Today, this is not the case. Second, hashing the contract input for every input is wasteful because it could be a a large data blob while something shorter would suffice as input for the address derivation.

The change in this PR solves these problems: The input data is no longer hashed and a generic UI could suggest the account nonce or some off-chain generated random number as default value for the salt. Since the salt is just raw bytes it could also be used to implement the old behaviour by supplying the hash of the input data as salt.

Please note that the decision against implementing CREATE semantic where the account nonce is used for the contract address is intentional: The new salt semantic is strictly more powerful and is needed anyways for counterfactual contract deployment.

Implementation Hurdles

Up until now the actual contract address derivation was performed by a runtime configuration supplied function. Theoretically, pallet_contracts wasn't able to make any assumptions about how the contract address was derived. In practice, assumptions must be made in order to write proper benchmarks which use the actual runtime configuration. Additionally, the whole construct is a workaround because pallet_system::Trait::AccountId is missing some trait bounds that allow proper AccountId derivation. This PR makes the pallet_contracts require those trait bounds and subsequently internalizes runtime passed derivation functions. The fallout from that is minimized by grouping many free standing functions to inherent functions to reduce the littering with where clauses. See rfc-2089.

Porting Guide

Client

@jacogr
Clients need to be aware of an additional argument to the instantiate dispatchable which has a new argument salt:

salt: Vec<u8>,

Contracts

@Robbepop @seanyoung
Contracts need to be aware that the seal_instantiate host function has the same new argument:

salt_ptr: u32,
salt_len: u32

Runtime Integration

@ascjones
DetermineContractAddress and TrieIdGenerator are no longer part of the pallet_contracts::Trait. They can just be removed from the configuration.

Additionally those types are removed from the pallet public interface:

 DefaultSignedClaimHandicap
 DefaultTombstoneDeposit
 DefaultStorageSizeOffset
 DefaultRentByteFee
 DefaultRentDepositOffset
 DefaultSurchargeReward
 DefaultMaxDepth
 DefaultMaxValueSize

The pallet contracts cannot possible define sane defaults for rent parameters because that is an economic decision each runtime has to make. The rest of the defaults is removed for consistency and similar reason. Have a look at the substrate node for guidance.

@athei athei added A3-in_progress Pull request is in progress. No review needed at this stage. B3-apinoteworthy C1-low PR touches the given topic and has a low impact on builders. labels Nov 3, 2020
@seanyoung
Copy link

This is a good idea, and it will fit nicely into solidity where the salt can be specified on contract creation:

Piffle p = new Piffle{salt: 102}(arg1, arg2);

Currently Solang appends the salt to the input.

However, I do have concerns about updating the host function seal_instantiate. The various changes so far like renaming ext_* to seal_* and the metadata changes where painful for users. This means again that the version of Solang and contracts module/plasm must line up; this is a breaking change. We could have seal_instantiate_with_salt rather than update the prototype of the existing host function.

@athei
Copy link
Member Author

athei commented Nov 3, 2020

I understand your concerns. However, is is too early to start with compatibility. I am doing all the breaking changes right now. We start with semver and compatiblity once pallet_contracts is officially released/deployed and we gain agency over the pallet contracts release cycle or version numbers. Technically, it is "released" but only because it is part of the mono repo. In practice it is still considered pre-release.

@atenjin
Copy link
Contributor

atenjin commented Nov 10, 2020

why not just like Ethereum, add nonce as input to generate contracts address?

We always thought "hash(deploying_address ++ code_hash ++ hash(input_bytes))" may be your particular design...

So in our Patract RedSpot, we provide a tools to generate a accounts in repeated test to avoid this situation( what means we change deploying_address in every deploy)
refer:
https://polkadot.polkassembly.io/post/156

In v0.1, we found it difficult to repeat unit tests. Because Substate does not support the deployment of multiple identical contracts for the same account. So in v0.2, we call a setup function before running each test. It will initialize the contract and provide a random account, and then we will use this random account to redeploy the contract. In this way, the influence of the external environment can be avoided and unit testing can be carried out more stably. Now you can run npx redspot test to test, and you will get a result like this:

微信图片_20201110172656

And on the other hand, in our contract testnet Jupiter, we change the rule of generate an address like:

https://github.com/patractlabs/jupiter/blob/207bc7dc43398e59fed19ef2ad890bf6b11d4675/frame/contracts-ext/src/lib.rs#L73-L99

we add a stroage to distinguish whether this deploy need to use nonce as part of the rule of generating an address, so that in test or other situation would deploy normally.

We think the old design "hash(deploying_address ++ code_hash ++ hash(input_bytes))" may be useful in some situations. Add a salt changes the old default rule, I think if need to change address every, why not use nonce?

All in all, I think the old design could be reserved in some situation, so that the contracts could be unique in chain.

@athei
Copy link
Member Author

athei commented Nov 10, 2020

why not just like Ethereum, add nonce as input to generate contracts address?

Explained in the opening post: The new design is strictly more powerful. You are free to supply the account nonce as salt if you like. Just keep in mind that the nonce is only bumped when sending a transaction.

We always thought "hash(deploying_address ++ code_hash ++ hash(input_bytes))" may be your particular design...

It was. And it is changing as explained in the opening post. For the why. I think you answered that yourself pretty well: You had to a a lot of gymnastics so that your tool works with the old semantic.

We think the old design "hash(deploying_address ++ code_hash ++ hash(input_bytes))" may be useful in some situations. Add a salt changes the old default rule, I think if need to change address every, why not use nonce?

All in all, I think the old design could be reserved in some situation, so that the contracts could be unique in chain.

You can replicate the old behaviour yourself if you think that is useful to your use case. Just hash your input data and supply it as salt.

@athei
Copy link
Member Author

athei commented Nov 10, 2020

/bench runtime pallet pallet_contracts

@parity-benchapp
Copy link

parity-benchapp bot commented Nov 10, 2020

Finished benchmark for branch: at-instantiate-contract

Benchmark: Benchmark Runtime Pallet

cargo run --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

Results

Pallet: "pallet_contracts", Extrinsic: "update_schedule", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 35.21
µs

Reads = 1
Writes = 1
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 35.21
µs

Reads = 1
Writes = 1
Pallet: "pallet_contracts", Extrinsic: "put_code", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 110.2
+ n 108.7
µs

Reads = 1 + (0 * n)
Writes = 2 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 126.3 0.401 0.3%
10 1180 1.001 0.0%
20 2250 10.63 0.4%
30 3375 9.428 0.2%
40 4367 1.248 0.0%
50 5748 12.44 0.2%
60 6625 14.77 0.2%
70 7729 12.99 0.1%
80 8617 14.47 0.1%
90 9517 12.49 0.1%
100 11350 8.341 0.0%
110 12250 8.021 0.0%
120 13160 13.88 0.1%
130 14480 11.54 0.0%
140 15370 19.62 0.1%
150 16260 13.5 0.0%
160 17170 22.51 0.1%
170 18070 16.99 0.0%
180 18960 16.77 0.0%
190 19880 11.83 0.0%
200 22630 17 0.0%
210 23560 26.61 0.1%
220 24440 23.77 0.0%
230 25370 22.61 0.0%
240 26240 19.51 0.0%
250 27140 13.99 0.0%
260 28860 17.15 0.0%
270 29750 11.19 0.0%
280 30650 16.35 0.0%
290 31560 9.619 0.0%
300 32440 14.97 0.0%
310 33370 11.7 0.0%
320 34250 11.52 0.0%
330 35200 18.09 0.0%
340 36440 241.3 0.6%
350 36980 13.14 0.0%
360 37870 19.64 0.0%
370 38790 31.39 0.0%
380 39670 15.1 0.0%
390 44290 25.27 0.0%
400 45180 27.73 0.0%
410 46090 19.05 0.0%
420 47060 58.89 0.1%
430 47910 17.01 0.0%
440 48760 24.31 0.0%
450 49700 22.66 0.0%
460 50610 34.15 0.0%
470 51530 23.63 0.0%
480 52400 15.9 0.0%
490 53290 18.59 0.0%
500 54210 21.58 0.0%
510 55120 26.75 0.0%

Quality and confidence:
param error
n 0.207

Model:
Time ~= 0
+ n 109.2
µs

Reads = 1 + (0 * n)
Writes = 2 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "instantiate", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 210.4
+ n 0.006
+ s 2.236
µs

Reads = 6 + (0 * n) + (0 * s)
Writes = 3 + (0 * n) + (0 * s)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n s mean µs sigma µs %
0 1024 2500 3.32 0.1%
20 1024 2506 9.451 0.3%
40 1024 2499 2.802 0.1%
60 1024 2501 2.954 0.1%
80 1024 2515 10.39 0.4%
100 1024 2506 1.568 0.0%
120 1024 2507 8.199 0.3%
140 1024 2502 0.887 0.0%
160 1024 2501 1.828 0.0%
180 1024 2503 2.303 0.0%
200 1024 2501 1.79 0.0%
220 1024 2502 2.241 0.0%
240 1024 2510 11.4 0.4%
260 1024 2502 1.527 0.0%
280 1024 2509 9.827 0.3%
300 1024 2502 2.813 0.1%
320 1024 2496 2.853 0.1%
340 1024 2498 0.884 0.0%
360 1024 2497 2.613 0.1%
380 1024 2497 1.305 0.0%
400 1024 2498 1.289 0.0%
420 1024 2523 14.62 0.5%
440 1024 2507 8.367 0.3%
460 1024 2501 3.642 0.1%
480 1024 2503 2.854 0.1%
500 1024 2503 2.193 0.0%
520 1024 2505 2.322 0.0%
540 1024 2504 1.551 0.0%
560 1024 2505 1.628 0.0%
580 1024 2509 7.51 0.2%
600 1024 2516 13.74 0.5%
620 1024 2503 1.579 0.0%
640 1024 2505 1.948 0.0%
660 1024 2504 1.476 0.0%
680 1024 2506 3.804 0.1%
700 1024 2505 2.435 0.0%
720 1024 2506 1.257 0.0%
740 1024 2518 11.34 0.4%
760 1024 2508 2.429 0.0%
780 1024 2505 1.683 0.0%
800 1024 2506 0.877 0.0%
820 1024 2506 2.605 0.1%
840 1024 2506 2.45 0.0%
860 1024 2506 0.703 0.0%
880 1024 2505 0.33 0.0%
900 1024 2510 5.856 0.2%
920 1024 2507 6.065 0.2%
940 1024 2505 3.866 0.1%
960 1024 2506 3.347 0.1%
980 1024 2507 2.558 0.1%
1000 1024 2510 2.606 0.1%
1020 1024 2507 1.175 0.0%
1024 0 220.4 0.217 0.0%
1024 20 265.3 0.292 0.1%
1024 40 311 0.38 0.1%
1024 60 355 0.26 0.0%
1024 80 399.7 0.196 0.0%
1024 100 444.4 0.336 0.0%
1024 120 488.3 0.163 0.0%
1024 140 533.8 0.818 0.1%
1024 160 578.1 0.504 0.0%
1024 180 622.3 0.299 0.0%
1024 200 667.2 1.02 0.1%
1024 220 711.7 0.32 0.0%
1024 240 756.4 0.502 0.0%
1024 260 800.8 0.487 0.0%
1024 280 845.1 1.139 0.1%
1024 300 889.4 0.613 0.0%
1024 320 934.5 0.981 0.1%
1024 340 978.4 0.263 0.0%
1024 360 1023 1.135 0.1%
1024 380 1068 1.185 0.1%
1024 400 1112 0.585 0.0%
1024 420 1156 0.665 0.0%
1024 440 1201 1.105 0.0%
1024 460 1246 1.016 0.0%
1024 480 1290 1.192 0.0%
1024 500 1334 1.309 0.0%
1024 520 1380 2.122 0.1%
1024 540 1429 2.655 0.1%
1024 560 1472 1.581 0.1%
1024 580 1518 2.573 0.1%
1024 600 1565 7.663 0.4%
1024 620 2005 337.5 16.8%
1024 640 1729 1.963 0.1%
1024 660 1823 4.95 0.2%
1024 680 1825 8.018 0.4%
1024 700 1849 11.91 0.6%
1024 720 1971 1.194 0.0%
1024 740 2020 1.871 0.0%
1024 760 1942 17.52 0.9%
1024 780 1972 10.55 0.5%
1024 800 2011 3.873 0.1%
1024 820 2058 6.63 0.3%
1024 840 2103 6.573 0.3%
1024 860 2143 1.209 0.0%
1024 880 2188 1.913 0.0%
1024 900 2232 2.502 0.1%
1024 920 2282 12.23 0.5%
1024 940 2320 2.126 0.0%
1024 960 2367 8.173 0.3%
1024 980 2412 4.856 0.2%
1024 1000 2455 1.41 0.0%
1024 1020 2499 3.001 0.1%

Quality and confidence:
param error
n 0.006
s 0.006

Model:
Time ~= 195.2
+ n 0.035
+ s 2.244
µs

Reads = 6 + (0 * n) + (0 * s)
Writes = 3 + (0 * n) + (0 * s)
Pallet: "pallet_contracts", Extrinsic: "call", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 207.1
µs

Reads = 5
Writes = 2
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 207.1
µs

Reads = 5
Writes = 2
Pallet: "pallet_contracts", Extrinsic: "claim_surcharge", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 489.6
µs

Reads = 3
Writes = 2
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 489.6
µs

Reads = 3
Writes = 2
Pallet: "pallet_contracts", Extrinsic: "seal_caller", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 138.3
+ r 372.7
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.5 0.128 0.0%
1 512 0.568 0.1%
2 884.1 1.062 0.1%
3 1256 2.074 0.1%
4 1628 1.483 0.0%
5 2004 7.921 0.3%
6 2377 9.595 0.4%
7 2747 5.16 0.1%
8 3122 6.338 0.2%
9 3491 7.109 0.2%
10 3866 5.792 0.1%
11 4240 10.91 0.2%
12 4612 6.038 0.1%
13 4991 8.278 0.1%
14 5364 9.921 0.1%
15 5731 10.84 0.1%
16 6105 11.25 0.1%
17 6472 6.385 0.0%
18 6886 22.15 0.3%
19 7221 12.19 0.1%
20 7585 13.98 0.1%

Quality and confidence:
param error
r 0.142

Model:
Time ~= 136.5
+ r 373.1
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_address", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 137.1
+ r 373.1
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.3 0.059 0.0%
1 510.9 0.97 0.1%
2 884 1.413 0.1%
3 1258 1.907 0.1%
4 1631 4.056 0.2%
5 2005 3.6 0.1%
6 2375 3.697 0.1%
7 2757 8.517 0.3%
8 3122 8.519 0.2%
9 3492 7.041 0.2%
10 3873 9.263 0.2%
11 4239 10.08 0.2%
12 4607 7.222 0.1%
13 4992 14.41 0.2%
14 5363 6.762 0.1%
15 5730 6.345 0.1%
16 6113 13.25 0.2%
17 6492 15.8 0.2%
18 6856 15.49 0.2%
19 7234 9.475 0.1%
20 7600 15.17 0.1%

Quality and confidence:
param error
r 0.116

Model:
Time ~= 136.3
+ r 373.3
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_gas_left", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 132.2
+ r 370.6
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.3 0.115 0.0%
1 507.3 0.457 0.0%
2 876.8 1.297 0.1%
3 1245 1.823 0.1%
4 1612 2.138 0.1%
5 1981 5.378 0.2%
6 2350 2.017 0.0%
7 2725 9.039 0.3%
8 3096 6.54 0.2%
9 3456 5.883 0.1%
10 3825 7.516 0.1%
11 4196 9.5 0.2%
12 4583 9.752 0.2%
13 4950 9.556 0.1%
14 5299 5.651 0.1%
15 5675 8.27 0.1%
16 6049 10.93 0.1%
17 6416 7.438 0.1%
18 6827 29.98 0.4%
19 7304 10.27 0.1%
20 7668 6.141 0.0%

Quality and confidence:
param error
r 0.422

Model:
Time ~= 111.5
+ r 373.5
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_balance", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 156.1
+ r 810.3
µs

Reads = 5 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.8 0.179 0.1%
1 975.3 14.38 1.4%
2 1801 6.778 0.3%
3 2584 7.131 0.2%
4 3391 6.613 0.1%
5 4207 4.882 0.1%
6 5020 6.049 0.1%
7 5823 7.286 0.1%
8 6652 15.69 0.2%
9 7459 18.38 0.2%
10 8260 12.08 0.1%
11 9063 12.83 0.1%
12 9883 21.1 0.2%
13 10710 21.55 0.2%
14 11490 23.76 0.2%
15 12320 10.5 0.0%
16 13110 29.05 0.2%
17 13920 26.9 0.1%
18 14740 22.06 0.1%
19 15530 15.54 0.1%
20 16370 27.33 0.1%

Quality and confidence:
param error
r 0.23

Model:
Time ~= 157.5
+ r 810.3
µs

Reads = 5 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_value_transferred", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 139.7
+ r 369.8
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.4 0.125 0.0%
1 508.9 0.592 0.1%
2 879.4 1.419 0.1%
3 1248 2.038 0.1%
4 1617 1.658 0.1%
5 1992 8.09 0.4%
6 2366 3.774 0.1%
7 2733 6.064 0.2%
8 3109 6.08 0.1%
9 3486 5.971 0.1%
10 3854 7.214 0.1%
11 4210 9.671 0.2%
12 4584 11.42 0.2%
13 4960 14.59 0.2%
14 5331 12.03 0.2%
15 5686 7.825 0.1%
16 6049 17.53 0.2%
17 6440 21.11 0.3%
18 6784 5.167 0.0%
19 7159 17.03 0.2%
20 7532 10.7 0.1%

Quality and confidence:
param error
r 0.149

Model:
Time ~= 143.8
+ r 369.7
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_minimum_balance", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 135.7
+ r 369.6
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.4 0.157 0.1%
1 507.2 0.502 0.0%
2 876.4 1.255 0.1%
3 1247 2.244 0.1%
4 1611 1.647 0.1%
5 1983 3.707 0.1%
6 2355 2.702 0.1%
7 2719 3.303 0.1%
8 3093 9.516 0.3%
9 3461 8.391 0.2%
10 3830 4.234 0.1%
11 4196 5.806 0.1%
12 4582 16.4 0.3%
13 4937 10.93 0.2%
14 5310 4.521 0.0%
15 5681 13.55 0.2%
16 6060 14.36 0.2%
17 6432 12.54 0.1%
18 6788 8.332 0.1%
19 7160 8.334 0.1%
20 7540 13.66 0.1%

Quality and confidence:
param error
r 0.111

Model:
Time ~= 133.5
+ r 370
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_tombstone_deposit", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 138.9
+ r 370.2
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.8 0.217 0.1%
1 509.4 0.471 0.0%
2 881.4 0.929 0.1%
3 1249 1.905 0.1%
4 1621 2.129 0.1%
5 1993 2.581 0.1%
6 2365 6.086 0.2%
7 2732 3.47 0.1%
8 3098 7.779 0.2%
9 3470 2.572 0.0%
10 3836 6.611 0.1%
11 4212 11.33 0.2%
12 4590 11.18 0.2%
13 4946 5.733 0.1%
14 5324 17.28 0.3%
15 5687 8.636 0.1%
16 6062 8.169 0.1%
17 6432 7.434 0.1%
18 6808 7.792 0.1%
19 7168 10.59 0.1%
20 7551 6.047 0.0%

Quality and confidence:
param error
r 0.097

Model:
Time ~= 138.5
+ r 370.3
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_rent_allowance", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 142.7
+ r 851.8
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 134.2 1.191 0.8%
1 996.4 2.412 0.2%
2 1848 5.611 0.3%
3 2692 4.454 0.1%
4 3560 9.028 0.2%
5 4407 9.358 0.2%
6 5264 8.207 0.1%
7 6107 15.3 0.2%
8 6960 12.01 0.1%
9 7815 21.94 0.2%
10 8653 15.7 0.1%
11 9507 12.28 0.1%
12 10350 17.81 0.1%
13 11240 20.14 0.1%
14 12070 27.98 0.2%
15 12910 17.53 0.1%
16 13760 28.39 0.2%
17 14630 24.2 0.1%
18 15470 16.44 0.1%
19 16320 29.88 0.1%
20 17170 28.13 0.1%

Quality and confidence:
param error
r 0.223

Model:
Time ~= 144.4
+ r 851.8
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_block_number", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 135.5
+ r 368.8
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.7 0.152 0.1%
1 507.3 0.86 0.1%
2 875 0.848 0.0%
3 1244 1.857 0.1%
4 1609 1.615 0.1%
5 1978 2.841 0.1%
6 2347 2.832 0.1%
7 2714 2.617 0.0%
8 3082 3.926 0.1%
9 3450 9.044 0.2%
10 3816 8.061 0.2%
11 4207 7.906 0.1%
12 4556 4.551 0.0%
13 4928 9.255 0.1%
14 5301 5.157 0.0%
15 5673 10 0.1%
16 6036 10.46 0.1%
17 6410 10.49 0.1%
18 6776 9.047 0.1%
19 7153 13.05 0.1%
20 7518 13.3 0.1%

Quality and confidence:
param error
r 0.1

Model:
Time ~= 133.2
+ r 369.1
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_now", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 138.6
+ r 368.9
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.3 0.109 0.0%
1 507.3 0.564 0.1%
2 875.9 1.27 0.1%
3 1245 0.678 0.0%
4 1617 2.385 0.1%
5 1984 3.012 0.1%
6 2351 2.281 0.0%
7 2725 4.147 0.1%
8 3090 4.756 0.1%
9 3466 9.985 0.2%
10 3835 9.867 0.2%
11 4196 8.706 0.2%
12 4573 6.9 0.1%
13 4937 7.575 0.1%
14 5300 12.02 0.2%
15 5671 12.66 0.2%
16 6049 16.11 0.2%
17 6419 11.85 0.1%
18 6771 5.53 0.0%
19 7156 10 0.1%
20 7504 6.937 0.0%

Quality and confidence:
param error
r 0.111

Model:
Time ~= 139.7
+ r 368.9
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_weight_to_fee", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 146.9
+ r 625
µs

Reads = 5 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.8 0.108 0.0%
1 771.1 1.676 0.2%
2 1397 2.726 0.1%
3 2018 4.396 0.2%
4 2648 5.542 0.2%
5 3271 9.777 0.2%
6 3903 6.096 0.1%
7 4531 8.717 0.1%
8 5144 8.801 0.1%
9 5782 11.01 0.1%
10 6408 15.56 0.2%
11 7017 11.73 0.1%
12 7678 14.29 0.1%
13 8273 10.07 0.1%
14 8996 79.74 0.8%
15 9697 12.62 0.1%
16 10130 34.47 0.3%
17 10740 17.96 0.1%
18 11350 10.96 0.0%
19 11980 16.9 0.1%
20 12640 17.39 0.1%

Quality and confidence:
param error
r 0.572

Model:
Time ~= 149.3
+ r 625.8
µs

Reads = 5 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_gas", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 126.8
+ r 187.4
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 121.2 0.117 0.0%
1 314.7 0.433 0.1%
2 502.2 0.888 0.1%
3 690.1 1.178 0.1%
4 876.6 0.724 0.0%
5 1064 1.469 0.1%
6 1253 1.688 0.1%
7 1440 1.994 0.1%
8 1627 4.831 0.2%
9 1812 1.191 0.0%
10 2000 6.282 0.3%
11 2183 3.647 0.1%
12 2373 3.23 0.1%
13 2557 4.853 0.1%
14 2751 4.35 0.1%
15 2949 9.935 0.3%
16 3132 9.724 0.3%
17 3317 8.031 0.2%
18 3507 10.6 0.3%
19 3685 6.117 0.1%
20 3872 10.84 0.2%

Quality and confidence:
param error
r 0.078

Model:
Time ~= 125.7
+ r 187.5
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_input", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 132.5
+ r 7.673
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 132.5 0.084 0.0%
1 140.2 0.111 0.0%

Quality and confidence:
param error
r 0.046

Model:
Time ~= 132.5
+ r 7.661
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_input_per_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 143.4
+ n 0.273
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 140.1 0.161 0.1%
20 147.3 0.127 0.0%
40 154.1 0.123 0.0%
60 160.4 0.138 0.0%
80 166.9 0.123 0.0%
100 172.8 0.092 0.0%
120 179 0.13 0.0%
140 181.9 0.132 0.0%
160 187.4 0.181 0.0%
180 192.7 0.164 0.0%
200 198.4 0.183 0.0%
220 203.9 0.102 0.0%
240 209.2 0.173 0.0%
260 214.7 0.22 0.1%
280 220.2 0.231 0.1%
300 225.5 0.19 0.0%
320 231.1 0.168 0.0%
340 236.5 0.152 0.0%
360 242 0.254 0.1%
380 247.2 0.148 0.0%
400 252.6 0.195 0.0%
420 258 0.103 0.0%
440 263.3 0.233 0.0%
460 268.7 0.195 0.0%
480 274.1 0.235 0.0%
500 279.4 0.102 0.0%
520 286 0.213 0.0%
540 291.3 0.232 0.0%
560 296.8 0.294 0.0%
580 302.1 0.15 0.0%
600 307.7 0.147 0.0%
620 313 0.222 0.0%
640 318.7 0.234 0.0%
660 324.3 0.239 0.0%
680 329.3 0.188 0.0%
700 334.5 0.288 0.0%
720 340.2 0.108 0.0%
740 346 0.177 0.0%
760 351.2 0.251 0.0%
780 356.9 0.169 0.0%
800 362.3 0.145 0.0%
820 367.7 0.221 0.0%
840 373.6 0.329 0.0%
860 378.3 0.145 0.0%
880 384.2 0.304 0.0%
900 389.9 0.229 0.0%
920 395.7 0.477 0.1%
940 400.8 0.262 0.0%
960 406.9 0.262 0.0%
980 412.2 0.13 0.0%
1000 417.9 0.245 0.0%
1020 423.8 0.275 0.0%

Quality and confidence:
param error
n 0

Model:
Time ~= 143.4
+ n 0.274
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "seal_return", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 126.2
+ r 5.45
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 126.2 0.117 0.0%
1 131.7 0.15 0.1%

Quality and confidence:
param error
r 0.063

Model:
Time ~= 126.2
+ r 5.455
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_return_per_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 134.7
+ n 0.674
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 131.8 0.152 0.1%
20 147.8 0.664 0.4%
40 161.4 0.332 0.2%
60 177.7 3.057 1.7%
80 190.1 0.365 0.1%
100 206 3.081 1.4%
120 219.1 0.671 0.3%
140 232.1 6.238 2.6%
160 243.8 5.547 2.2%
180 255.1 1.217 0.4%
200 277.6 9.421 3.3%
220 282.3 0.83 0.2%
240 295.3 1.402 0.4%
260 309 1.023 0.3%
280 322.8 1.546 0.4%
300 334.4 0.653 0.1%
320 348.5 1.09 0.3%
340 362.1 1.189 0.3%
360 376.6 1.486 0.3%
380 391.5 2.003 0.5%
400 431.8 19.51 4.5%
420 435.4 22.98 5.2%
440 445.5 22.47 5.0%
460 472.9 24.2 5.1%
480 484.2 20.96 4.3%
500 474.6 17.37 3.6%
520 514.5 30.04 5.8%
540 498.1 2.127 0.4%
560 526.4 24.29 4.6%
580 525.2 2.114 0.4%
600 560.7 25.65 4.5%
620 552.4 1.676 0.3%
640 560.2 0.73 0.1%
660 575.7 1.838 0.3%
680 630.8 37.15 5.8%
700 650.2 34.52 5.3%
720 629.4 25.17 3.9%
740 638.1 25.61 4.0%
760 673.9 40.13 5.9%
780 681.6 37.7 5.5%
800 705.3 39.91 5.6%
820 721.9 45.23 6.2%
840 702.9 3.2 0.4%
860 739.9 35.58 4.8%
880 750.6 37.48 4.9%
900 740.9 1.944 0.2%
920 822.6 43.79 5.3%
940 777.9 32.14 4.1%
960 782.2 8.634 1.1%
980 808.5 33.75 4.1%
1000 808.2 3.435 0.4%
1020 858.6 51.59 6.0%

Quality and confidence:
param error
n 0.003

Model:
Time ~= 133.2
+ n 0.698
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "seal_terminate", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 130.6
+ r 358.2
µs

Reads = 4 + (2 * r)
Writes = 0 + (3 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 130.6 0.096 0.0%
1 488.9 1.042 0.2%

Quality and confidence:
param error
r 0.349

Model:
Time ~= 130.6
+ r 358.3
µs

Reads = 4 + (2 * r)
Writes = 0 + (3 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_restore_to", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 233.7
+ r 135.3
µs

Reads = 5 + (3 * r)
Writes = 0 + (4 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 233.6 0.41 0.1%
1 368.9 0.587 0.1%

Quality and confidence:
param error
r 0.238

Model:
Time ~= 233.6
+ r 135.3
µs

Reads = 5 + (3 * r)
Writes = 0 + (4 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_restore_to_per_delta", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 109.1
+ d 3763
µs

Reads = 7 + (100 * d)
Writes = 5 + (100 * d)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
d mean µs sigma µs %
0 554.5 1.179 0.2%
1 4001 11.44 0.2%
2 7648 19.7 0.2%
3 11420 81.09 0.7%
4 15090 29.57 0.1%
5 18820 25.08 0.1%
6 22490 31.32 0.1%
7 26240 50.92 0.1%
8 30160 77.56 0.2%
9 34040 73.36 0.2%
10 37550 79.39 0.2%
11 41340 187.4 0.4%
12 45140 88.47 0.1%
13 48820 101 0.2%
14 52560 106.6 0.2%
15 56770 94.96 0.1%
16 60760 166.4 0.2%
17 63980 140.1 0.2%
18 67840 170.8 0.2%
19 71900 187.1 0.2%
20 75770 200.3 0.2%

Quality and confidence:
param error
d 2.75

Model:
Time ~= 74.57
+ d 3768
µs

Reads = 7 + (100 * d)
Writes = 5 + (100 * d)
Pallet: "pallet_contracts", Extrinsic: "seal_random", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 142.6
+ r 950.7
µs

Reads = 5 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 131.9 0.285 0.2%
1 1096 1.537 0.1%
2 2052 3.164 0.1%
3 2996 5.093 0.1%
4 3950 8.218 0.2%
5 4894 10.78 0.2%
6 5846 13.09 0.2%
7 6809 9.339 0.1%
8 7762 12.98 0.1%
9 8695 19.54 0.2%
10 9630 13.17 0.1%
11 10590 24.59 0.2%
12 11520 26.53 0.2%
13 12500 27.5 0.2%
14 13420 24.19 0.1%
15 14380 23.91 0.1%
16 15360 36.21 0.2%
17 16280 36.44 0.2%
18 17280 26.17 0.1%
19 18220 26.56 0.1%
20 19170 33.83 0.1%

Quality and confidence:
param error
r 0.301

Model:
Time ~= 140.2
+ r 950.8
µs

Reads = 5 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_deposit_event", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 150.1
+ r 1375
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 125.6 0.153 0.1%
1 1522 2.163 0.1%
2 2900 10.51 0.3%
3 4289 9.439 0.2%
4 5653 11.19 0.1%
5 7028 14.47 0.2%
6 8396 13.65 0.1%
7 9776 12.03 0.1%
8 11150 15.16 0.1%
9 12760 28.01 0.2%
10 14050 62.22 0.4%
11 15270 22.79 0.1%
12 16660 22.14 0.1%
13 18000 26.31 0.1%
14 19430 30.7 0.1%
15 20780 35.05 0.1%
16 22170 40.2 0.1%
17 23500 30.21 0.1%
18 24870 58.33 0.2%
19 26280 47.26 0.1%
20 27680 32.88 0.1%

Quality and confidence:
param error
r 0.77

Model:
Time ~= 167.7
+ r 1375
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_deposit_event_per_topic_and_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 1812
+ t 744.5
+ n 239.9
µs

Reads = 4 + (100 * t) + (0 * n)
Writes = 0 + (100 * t) + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
t n mean µs sigma µs %
0 16 5475 14.25 0.2%
1 16 6453 14.76 0.2%
2 16 7140 10.68 0.1%
3 16 7918 15.1 0.1%
4 0 4699 12.06 0.2%
4 1 5031 14.2 0.2%
4 2 5273 7.318 0.1%
4 3 5482 13.53 0.2%
4 4 5712 10.73 0.1%
4 5 5958 13.37 0.2%
4 6 6194 11.95 0.1%
4 7 6418 14.8 0.2%
4 8 6669 21.48 0.3%
4 9 7118 10.48 0.1%
4 10 7210 71.62 0.9%
4 11 7396 11.72 0.1%
4 12 7620 14.57 0.1%
4 13 7871 22.04 0.2%
4 14 8104 14.62 0.1%
4 15 8362 20.05 0.2%
4 16 8607 15.08 0.1%

Quality and confidence:
param error
t 4.478
n 0.882

Model:
Time ~= 1715
+ t 760.7
+ n 241.8
µs

Reads = 4 + (100 * t) + (0 * n)
Writes = 0 + (100 * t) + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "seal_set_rent_allowance", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 149.7
+ r 1006
µs

Reads = 4 + (0 * r)
Writes = 1 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 131.6 0.086 0.0%
1 1152 2.031 0.1%
2 2170 9.933 0.4%
3 3165 6.629 0.2%
4 4180 6.631 0.1%
5 5189 7.091 0.1%
6 6191 6.163 0.0%
7 7201 7.396 0.1%
8 8209 11.04 0.1%
9 9247 20.34 0.2%
10 10220 9.136 0.0%
11 11230 13.16 0.1%
12 12240 32.43 0.2%
13 13240 15.37 0.1%
14 14220 14.64 0.1%
15 15270 9.363 0.0%
16 16240 17.36 0.1%
17 17290 32.28 0.1%
18 18250 34.87 0.1%
19 19260 25.05 0.1%
20 20240 34.37 0.1%

Quality and confidence:
param error
r 0.295

Model:
Time ~= 156.9
+ r 1006
µs

Reads = 4 + (0 * r)
Writes = 1 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_set_storage", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 0
+ r 14880
µs

Reads = 4 + (100 * r)
Writes = 1 + (100 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 127.2 0.148 0.1%
1 15250 17.16 0.1%
2 29350 25.07 0.0%
3 43820 35.16 0.0%
4 58310 74.47 0.1%
5 73470 47.79 0.0%
6 88060 78.44 0.0%
7 102600 88.72 0.0%
8 117200 94.83 0.0%
9 132100 157.7 0.1%
10 146500 143.9 0.0%
11 161000 70.66 0.0%
12 175700 182.1 0.1%
13 190100 132.2 0.0%
14 204900 157.7 0.0%
15 223800 166.5 0.0%
16 238700 177.5 0.0%
17 253700 83.99 0.0%
18 268800 132.8 0.0%
19 283800 201.3 0.0%
20 299000 175.9 0.0%

Quality and confidence:
param error
r 16.63

Model:
Time ~= 0
+ r 14930
µs

Reads = 4 + (100 * r)
Writes = 1 + (100 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_set_storage_per_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 2327
+ n 202.7
µs

Reads = 5 + (0 * n)
Writes = 2 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 2181 5.589 0.2%
1 2506 4.314 0.1%
2 2748 8.453 0.3%
3 2957 4.697 0.1%
4 3154 6.779 0.2%
5 3360 5.933 0.1%
6 3550 9.339 0.2%
7 3754 3.83 0.1%
8 3934 7.879 0.2%
9 4125 7.098 0.1%
10 4317 4.817 0.1%
11 4528 13.51 0.2%
12 4725 10.09 0.2%
13 4957 10.7 0.2%
14 5176 21.17 0.4%
15 5378 10.29 0.1%
16 5566 13.35 0.2%

Quality and confidence:
param error
n 0.609

Model:
Time ~= 2300
+ n 204.5
µs

Reads = 5 + (0 * n)
Writes = 2 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "seal_clear_storage", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 0
+ r 5131
µs

Reads = 4 + (100 * r)
Writes = 1 + (100 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 128.7 0.103 0.0%
1 5399 20.8 0.3%
2 10350 28.55 0.2%
3 15330 20.61 0.1%
4 20380 28.05 0.1%
5 25520 47.99 0.1%
6 30570 33.04 0.1%
7 35630 60.26 0.1%
8 40730 50.98 0.1%
9 45940 41.46 0.0%
10 51060 79.25 0.1%
11 56010 69.84 0.1%
12 61410 64.98 0.1%
13 66480 102.7 0.1%
14 71480 116.1 0.1%
15 76840 156 0.2%
16 81950 103.6 0.1%
17 87120 80.83 0.0%
18 92650 108.6 0.1%
19 97860 59.1 0.0%
20 103200 118.1 0.1%

Quality and confidence:
param error
r 3.048

Model:
Time ~= 0
+ r 5140
µs

Reads = 4 + (100 * r)
Writes = 1 + (100 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_get_storage", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 84.88
+ r 1127
µs

Reads = 4 + (100 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 127.8 0.15 0.1%
1 1299 3.753 0.2%
2 2366 3.35 0.1%
3 3496 13.64 0.3%
4 4542 9.105 0.2%
5 5717 8.811 0.1%
6 6829 22.24 0.3%
7 7868 12.64 0.1%
8 9011 22.06 0.2%
9 10150 23.26 0.2%
10 11340 18.58 0.1%
11 12400 38.16 0.3%
12 13610 27.21 0.1%
13 14680 35.4 0.2%
14 15730 36.01 0.2%
15 16990 39.73 0.2%
16 18090 37.22 0.2%
17 19190 48.49 0.2%
18 20560 34.44 0.1%
19 21590 34.53 0.1%
20 22910 36.26 0.1%

Quality and confidence:
param error
r 1.105

Model:
Time ~= 45.21
+ r 1131
µs

Reads = 4 + (100 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_get_storage_per_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 892.8
+ n 148.6
µs

Reads = 5 + (0 * n)
Writes = 0 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 834.9 1.566 0.1%
1 1028 1.162 0.1%
2 1204 2.233 0.1%
3 1355 1.921 0.1%
4 1508 5.284 0.3%
5 1638 7.07 0.4%
6 1780 6.409 0.3%
7 1930 6.1 0.3%
8 2080 7.237 0.3%
9 2228 5.191 0.2%
10 2373 8.809 0.3%
11 2519 10.8 0.4%
12 2653 11.86 0.4%
13 2817 15.83 0.5%
14 2931 20.71 0.7%
15 3140 8.917 0.2%
16 3288 13.79 0.4%

Quality and confidence:
param error
n 0.356

Model:
Time ~= 885.5
+ n 148.9
µs

Reads = 5 + (0 * n)
Writes = 0 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "seal_transfer", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 106.5
+ r 6214
µs

Reads = 5 + (100 * r)
Writes = 1 + (100 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 134.6 0.173 0.1%
1 6347 12.36 0.1%
2 12510 18.41 0.1%
3 18690 30.92 0.1%
4 24840 17.99 0.0%
5 31190 55.04 0.1%
6 37360 29.74 0.0%
7 43880 303.4 0.6%
8 49800 78.91 0.1%
9 56160 80.73 0.1%
10 62170 49.33 0.0%
11 68420 72.77 0.1%
12 74910 63.59 0.0%
13 80790 90.57 0.1%
14 87020 157.4 0.1%
15 92960 113.5 0.1%
16 99420 101.9 0.1%
17 105500 118.5 0.1%
18 112300 118.5 0.1%
19 118400 127.9 0.1%
20 124400 128.7 0.1%

Quality and confidence:
param error
r 2.232

Model:
Time ~= 92.27
+ r 6216
µs

Reads = 5 + (100 * r)
Writes = 1 + (100 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_call", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 0
+ r 10730
µs

Reads = 5 + (100 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 135.9 0.281 0.2%
1 10690 20.05 0.1%
2 21450 46.94 0.2%
3 32050 32.53 0.1%
4 42700 63.75 0.1%
5 53370 164 0.3%
6 63410 54.06 0.0%
7 73980 75.76 0.1%
8 85850 53.41 0.0%
9 96560 56.48 0.0%
10 107400 110.1 0.1%
11 116800 550.7 0.4%
12 127700 780.9 0.6%
13 139700 116.7 0.0%
14 149500 819.5 0.5%
15 160000 959.9 0.5%
16 171200 1056 0.6%
17 181500 1077 0.5%
18 192600 1043 0.5%
19 204600 153.9 0.0%
20 215500 321.2 0.1%

Quality and confidence:
param error
r 8.995

Model:
Time ~= 0
+ r 10730
µs

Reads = 5 + (100 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_call_per_transfer_input_output_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 12710
+ t 2512
+ i 52.64
+ o 73.89
µs

Reads = 105 + (101 * t) + (0 * i) + (0 * o)
Writes = 0 + (101 * t) + (0 * i) + (0 * o)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
t i o mean µs sigma µs %
0 1024 960 137500 274.5 0.1%
1 0 960 86390 149.7 0.1%
1 20 960 87600 248.1 0.2%
1 40 960 89020 239.2 0.2%
1 60 960 90030 282 0.3%
1 80 960 90980 272.6 0.2%
1 100 960 92170 209.2 0.2%
1 120 960 92660 191.7 0.2%
1 140 960 93820 182.8 0.1%
1 160 960 94910 213.6 0.2%
1 180 960 95710 218.4 0.2%
1 200 960 97060 211 0.2%
1 220 960 98050 164.4 0.1%
1 240 960 99080 118.6 0.1%
1 260 960 100100 252.7 0.2%
1 280 960 101100 47.84 0.0%
1 300 960 102200 142.4 0.1%
1 320 960 103300 198.2 0.1%
1 340 960 104400 117 0.1%
1 360 960 105700 199.1 0.1%
1 380 960 106500 194.2 0.1%
1 400 960 107300 276.8 0.2%
1 420 960 108500 247.6 0.2%
1 440 960 109800 138.8 0.1%
1 460 960 111100 188.6 0.1%
1 480 960 111800 222.9 0.1%
1 500 960 113000 263.1 0.2%
1 520 960 113900 137.1 0.1%
1 540 960 115000 91.62 0.0%
1 560 960 116000 246.2 0.2%
1 580 960 117100 171.2 0.1%
1 600 960 118000 167.6 0.1%
1 620 960 119200 226.2 0.1%
1 640 960 120700 342.3 0.2%
1 660 960 121000 248.9 0.2%
1 680 960 122400 235.1 0.1%
1 700 960 123500 242.7 0.1%
1 720 960 124700 271 0.2%
1 740 960 125300 265.8 0.2%
1 760 960 126400 232.9 0.1%
1 780 960 127500 209.6 0.1%
1 800 960 128600 301.9 0.2%
1 820 960 129200 243.7 0.1%
1 840 960 130900 241 0.1%
1 860 960 132100 321.9 0.2%
1 880 960 132700 110.7 0.0%
1 900 960 134000 326.4 0.2%
1 920 960 134900 239.4 0.1%
1 940 960 136300 250.9 0.1%
1 960 960 137200 226.7 0.1%
1 980 960 138300 300 0.2%
1 1000 960 139200 274.2 0.1%
1 1020 960 139800 423 0.3%
1 1024 0 68820 107.2 0.1%
1 1024 19 71230 260.3 0.3%
1 1024 38 72430 271.3 0.3%
1 1024 57 73760 192.2 0.2%
1 1024 76 75190 349.5 0.4%
1 1024 95 76240 172.2 0.2%
1 1024 114 78070 189.6 0.2%
1 1024 133 79270 233.6 0.2%
1 1024 152 80520 115.1 0.1%
1 1024 171 81890 365.1 0.4%
1 1024 190 83330 269.4 0.3%
1 1024 209 85180 266.6 0.3%
1 1024 228 86270 309.6 0.3%
1 1024 247 87660 156.5 0.1%
1 1024 266 88900 235.6 0.2%
1 1024 285 90480 273.2 0.3%
1 1024 304 91930 244.8 0.2%
1 1024 323 93340 196.1 0.2%
1 1024 342 94590 288.1 0.3%
1 1024 361 96320 453.5 0.4%
1 1024 380 97470 186.1 0.1%
1 1024 399 99080 290.2 0.2%
1 1024 418 100400 186.6 0.1%
1 1024 437 101500 293.4 0.2%
1 1024 456 103300 225.3 0.2%
1 1024 475 104600 227.1 0.2%
1 1024 494 105700 235.3 0.2%
1 1024 513 107600 253.8 0.2%
1 1024 532 108800 200.7 0.1%
1 1024 551 110200 111.3 0.1%
1 1024 570 111400 180.5 0.1%
1 1024 589 113300 246.1 0.2%
1 1024 608 114200 291.5 0.2%
1 1024 627 115900 276.7 0.2%
1 1024 646 117200 274 0.2%
1 1024 665 118500 289.4 0.2%
1 1024 684 119800 191.5 0.1%
1 1024 703 121300 197.1 0.1%
1 1024 722 123200 234 0.1%
1 1024 741 124400 265.1 0.2%
1 1024 760 125400 398.6 0.3%
1 1024 779 126700 292.6 0.2%
1 1024 798 128000 357.4 0.2%
1 1024 817 129900 220.5 0.1%
1 1024 836 131300 258.9 0.1%
1 1024 855 132500 199.2 0.1%
1 1024 874 134100 383.7 0.2%
1 1024 893 135400 337.7 0.2%
1 1024 912 136700 341 0.2%
1 1024 931 138300 528.8 0.3%
1 1024 950 139300 311.7 0.2%
1 1024 960 140000 329.9 0.2%

Quality and confidence:
param error
t 105.3
i 0.037
o 0.04

Model:
Time ~= 12730
+ t 2870
+ i 52.56
+ o 73.95
µs

Reads = 105 + (101 * t) + (0 * i) + (0 * o)
Writes = 0 + (101 * t) + (0 * i) + (0 * o)
Pallet: "pallet_contracts", Extrinsic: "seal_instantiate", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 0
+ r 22370
µs

Reads = 6 + (300 * r)
Writes = 2 + (200 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 137.3 0.226 0.1%
1 20540 9.128 0.0%
2 41130 20.16 0.0%
3 62060 46.8 0.0%
4 83080 48.76 0.0%
5 104400 47.73 0.0%
6 126200 89.88 0.0%
7 147600 118.4 0.0%
8 169300 116.4 0.0%
9 191300 269.8 0.1%
10 215000 99.61 0.0%
11 237500 199 0.0%
12 260200 67.63 0.0%
13 282200 264.2 0.0%
14 305600 373.9 0.1%
15 328300 280.9 0.0%
16 352100 464.8 0.1%
17 373800 319.8 0.0%
18 398600 242.4 0.0%
19 423800 461.5 0.1%
20 446700 178.6 0.0%

Quality and confidence:
param error
r 34.46

Model:
Time ~= 0
+ r 22360
µs

Reads = 6 + (300 * r)
Writes = 2 + (200 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_instantiate_per_input_output_salt_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 18760
+ i 53.15
+ o 76.09
+ s 281.2
µs

Reads = 207 + (0 * i) + (0 * o) + (0 * s)
Writes = 202 + (0 * i) + (0 * o) + (0 * s)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
i o s mean µs sigma µs %
0 960 960 358100 185.6 0.0%
19 960 960 363200 380.8 0.1%
38 960 960 363700 202.4 0.0%
57 960 960 364700 395.9 0.1%
76 960 960 366100 299.1 0.0%
95 960 960 367100 351.2 0.0%
114 960 960 367800 421.5 0.1%
133 960 960 369300 380.5 0.1%
152 960 960 370300 300.2 0.0%
171 960 960 371200 357.5 0.0%
190 960 960 372400 481 0.1%
209 960 960 372900 239.9 0.0%
228 960 960 374100 297.5 0.0%
247 960 960 374800 338.6 0.0%
266 960 960 375800 334.7 0.0%
285 960 960 376800 207.3 0.0%
304 960 960 377700 453.7 0.1%
323 960 960 379000 295.8 0.0%
342 960 960 380000 505.2 0.1%
361 960 960 381000 227.7 0.0%
380 960 960 381900 219.1 0.0%
399 960 960 382600 305.8 0.0%
418 960 960 383800 486.8 0.1%
437 960 960 384900 428 0.1%
456 960 960 386000 330.6 0.0%
475 960 960 386800 184.3 0.0%
494 960 960 387800 448.7 0.1%
513 960 960 389900 315.6 0.0%
532 960 960 390400 273 0.0%
551 960 960 391400 354.9 0.0%
570 960 960 392400 318.3 0.0%
589 960 960 393500 416 0.1%
608 960 960 394500 200.4 0.0%
627 960 960 395100 446 0.1%
646 960 960 397200 199.5 0.0%
665 960 960 397700 191.4 0.0%
684 960 960 398600 299.1 0.0%
703 960 960 400200 288.5 0.0%
722 960 960 400900 383.1 0.0%
741 960 960 400700 131.5 0.0%
760 960 960 400900 141.5 0.0%
779 960 960 401700 778 0.1%
798 960 960 403100 967.3 0.2%
817 960 960 404800 515.9 0.1%
836 960 960 405000 348.5 0.0%
855 960 960 407100 477.1 0.1%
874 960 960 408100 578.8 0.1%
893 960 960 409600 298.9 0.0%
912 960 960 410100 111 0.0%
931 960 960 411600 411.4 0.0%
950 960 960 412500 521.4 0.1%
960 0 960 338500 407.9 0.1%
960 19 960 341300 415.4 0.1%
960 38 960 342300 403.7 0.1%
960 57 960 343600 178.2 0.0%
960 76 960 345000 277.9 0.0%
960 95 960 346700 301.1 0.0%
960 114 960 348000 251.2 0.0%
960 133 960 349600 372.2 0.1%
960 152 960 351100 350.5 0.0%
960 171 960 353100 324.4 0.0%
960 190 960 354200 457.3 0.1%
960 209 960 355700 319.2 0.0%
960 228 960 357400 235.1 0.0%
960 247 960 359100 287.6 0.0%
960 266 960 360200 154.4 0.0%
960 285 960 362200 483.2 0.1%
960 304 960 363500 485.1 0.1%
960 323 960 364500 167.5 0.0%
960 342 960 366100 271.8 0.0%
960 361 960 367500 427 0.1%
960 380 960 369200 414.6 0.1%
960 399 960 370900 352.9 0.0%
960 418 960 372100 351.5 0.0%
960 437 960 373400 242.1 0.0%
960 456 960 374500 302.1 0.0%
960 475 960 376700 431.6 0.1%
960 494 960 378000 352.1 0.0%
960 513 960 378900 553.2 0.1%
960 532 960 380500 618.8 0.1%
960 551 960 381700 279.9 0.0%
960 570 960 383400 260.7 0.0%
960 589 960 384900 358.5 0.0%
960 608 960 386800 282.7 0.0%
960 627 960 387800 353.8 0.0%
960 646 960 389300 416.9 0.1%
960 665 960 391000 393 0.1%
960 684 960 392700 433.1 0.1%
960 703 960 393400 435 0.1%
960 722 960 394500 501.5 0.1%
960 741 960 396700 364.9 0.0%
960 760 960 397900 166.8 0.0%
960 779 960 399700 588 0.1%
960 798 960 400900 273.6 0.0%
960 817 960 400800 125.9 0.0%
960 836 960 401000 285.6 0.0%
960 855 960 403900 490.7 0.1%
960 874 960 405600 488.8 0.1%
960 893 960 406700 366.9 0.0%
960 912 960 408700 345.2 0.0%
960 931 960 410500 388 0.0%
960 950 960 412100 619 0.1%
960 960 0 142600 401.8 0.2%
960 960 19 148200 291.7 0.1%
960 960 38 153400 275.8 0.1%
960 960 57 158900 324.5 0.2%
960 960 76 164400 299.5 0.1%
960 960 95 169400 376.2 0.2%
960 960 114 174900 364.3 0.2%
960 960 133 180400 221.1 0.1%
960 960 152 185400 488.4 0.2%
960 960 171 190800 147.9 0.0%
960 960 190 196600 292 0.1%
960 960 209 201400 325.7 0.1%
960 960 228 207100 345.4 0.1%
960 960 247 212300 310 0.1%
960 960 266 217900 196.3 0.0%
960 960 285 222800 226.5 0.1%
960 960 304 228200 216 0.0%
960 960 323 233600 358 0.1%
960 960 342 239300 438.6 0.1%
960 960 361 244400 344.2 0.1%
960 960 380 250000 259.9 0.1%
960 960 399 255100 169.6 0.0%
960 960 418 260700 517.9 0.1%
960 960 437 266000 578.8 0.2%
960 960 456 271300 151.2 0.0%
960 960 475 277000 304.3 0.1%
960 960 494 281900 246 0.0%
960 960 513 287000 253.5 0.0%
960 960 532 292300 254 0.0%
960 960 551 299000 291.1 0.0%
960 960 570 303900 220.1 0.0%
960 960 589 309300 306.3 0.0%
960 960 608 314600 360.1 0.1%
960 960 627 319700 224.7 0.0%
960 960 646 325400 310.1 0.0%
960 960 665 330600 277.3 0.0%
960 960 684 335600 382.7 0.1%
960 960 703 340700 521.4 0.1%
960 960 722 345900 158.7 0.0%
960 960 741 351300 255.1 0.0%
960 960 760 356200 433.5 0.1%
960 960 779 361500 445 0.1%
960 960 798 367000 369 0.1%
960 960 817 372500 366.4 0.0%
960 960 836 377800 285.7 0.0%
960 960 855 383100 452.3 0.1%
960 960 874 388700 423.1 0.1%
960 960 893 393900 326.1 0.0%
960 960 912 399900 421.8 0.1%
960 960 931 403600 522.7 0.1%
960 960 950 409300 405.9 0.0%

Quality and confidence:
param error
i 0.078
o 0.078
s 0.078

Model:
Time ~= 18890
+ i 53.28
+ o 76.02
+ s 281
µs

Reads = 207 + (0 * i) + (0 * o) + (0 * s)
Writes = 202 + (0 * i) + (0 * o) + (0 * s)
Pallet: "pallet_contracts", Extrinsic: "seal_hash_sha2_256", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 137.9
+ r 323.2
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 127.4 0.164 0.1%
1 461.4 0.457 0.0%
2 787.1 0.87 0.1%
3 1120 12.61 1.1%
4 1432 2.707 0.1%
5 1757 5.416 0.3%
6 2077 3.496 0.1%
7 2395 3.366 0.1%
8 2721 4.26 0.1%
9 3039 3.895 0.1%
10 3366 6.056 0.1%
11 3688 7.14 0.1%
12 4016 4.004 0.0%
13 4346 7.4 0.1%
14 4660 7.299 0.1%
15 4987 12.54 0.2%
16 5314 11.01 0.2%
17 5621 9.43 0.1%
18 5963 8.741 0.1%
19 6279 9.913 0.1%
20 6612 16.55 0.2%

Quality and confidence:
param error
r 0.112

Model:
Time ~= 136.6
+ r 323.3
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_hash_sha2_256_per_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 643.3
+ n 423.4
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 460.6 0.648 0.1%
20 9033 17.88 0.1%
40 17520 26.72 0.1%
60 25980 33.09 0.1%
80 34430 73.03 0.2%
100 42940 93.11 0.2%
120 51390 85.62 0.1%
140 59940 126.1 0.2%
160 68420 106.5 0.1%
180 76880 176.2 0.2%
200 85460 123.1 0.1%
220 93870 109.7 0.1%
240 102500 139.9 0.1%
260 110700 135.8 0.1%
280 119500 91.79 0.0%
300 128100 340.9 0.2%
320 136100 310 0.2%
340 144400 272.4 0.1%
360 152900 218.4 0.1%
380 161400 316.5 0.1%
400 170100 391.8 0.2%
420 178600 584.8 0.3%
440 187700 462.6 0.2%
460 195800 164.1 0.0%
480 204400 516.9 0.2%
500 212500 317.1 0.1%
520 221600 280.4 0.1%
540 229200 256.5 0.1%
560 238100 440.6 0.1%
580 246400 466.2 0.1%
600 255400 697.7 0.2%
620 264100 478.9 0.1%
640 271900 487.6 0.1%
660 279700 326.8 0.1%
680 288900 370.3 0.1%
700 297000 610.6 0.2%
720 305000 562.9 0.1%
740 313600 254 0.0%
760 322700 807.2 0.2%
780 331700 725 0.2%
800 339500 538 0.1%
820 348000 622.7 0.1%
840 355700 850.5 0.2%
860 364900 787 0.2%
880 372900 856.6 0.2%
900 380700 596.5 0.1%
920 390400 1068 0.2%
940 398600 689.1 0.1%
960 406400 797.5 0.1%
980 415300 995.3 0.2%
1000 424500 1151 0.2%
1020 432500 1192 0.2%

Quality and confidence:
param error
n 0.094

Model:
Time ~= 777.5
+ n 423.3
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "seal_hash_keccak_256", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 137.6
+ r 337.7
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 127.2 0.179 0.1%
1 475.5 0.354 0.0%
2 814.3 1.231 0.1%
3 1153 3.006 0.2%
4 1489 2.061 0.1%
5 1835 12.2 0.6%
6 2166 6.213 0.2%
7 2498 5.083 0.2%
8 2837 2.723 0.0%
9 3176 6.581 0.2%
10 3509 9.035 0.2%
11 3855 8.894 0.2%
12 4198 10.89 0.2%
13 4527 8.141 0.1%
14 4870 13.27 0.2%
15 5198 9.154 0.1%
16 5535 6.698 0.1%
17 5879 8.401 0.1%
18 6213 11.9 0.1%
19 6562 10.29 0.1%
20 6899 14.3 0.2%

Quality and confidence:
param error
r 0.111

Model:
Time ~= 136.7
+ r 337.8
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_hash_keccak_256_per_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 474.4
+ n 336.4
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 475.7 0.219 0.0%
20 7273 23.93 0.3%
40 14000 63.54 0.4%
60 20710 40.75 0.1%
80 27580 115.9 0.4%
100 34100 56.84 0.1%
120 40870 106 0.2%
140 47500 92.86 0.1%
160 54230 136.4 0.2%
180 60830 166.2 0.2%
200 67640 107.4 0.1%
220 74460 220.6 0.2%
240 81040 118.9 0.1%
260 87730 377 0.4%
280 94660 307.9 0.3%
300 101000 221.1 0.2%
320 108000 241.2 0.2%
340 114700 227.6 0.1%
360 121500 254.3 0.2%
380 127900 212.2 0.1%
400 134500 222.5 0.1%
420 141500 386.4 0.2%
440 148300 372.3 0.2%
460 155500 414 0.2%
480 161800 320.6 0.1%
500 169400 478.4 0.2%
520 175500 420.4 0.2%
540 182700 531.7 0.2%
560 188800 461.6 0.2%
580 195700 300.8 0.1%
600 201600 293.4 0.1%
620 208800 307.5 0.1%
640 215800 429.7 0.1%
660 222300 371.5 0.1%
680 228900 793.3 0.3%
700 235400 427.1 0.1%
720 242900 452.6 0.1%
740 249400 737 0.2%
760 257000 573.6 0.2%
780 263300 548.3 0.2%
800 270100 608.7 0.2%
820 275800 473 0.1%
840 283800 695.2 0.2%
860 291000 568.2 0.1%
880 296000 321.5 0.1%
900 303200 700.2 0.2%
920 310100 670.1 0.2%
940 316400 1098 0.3%
960 323400 938.9 0.2%
980 330100 907.2 0.2%
1000 337900 746.2 0.2%
1020 344100 1532 0.4%

Quality and confidence:
param error
n 0.092

Model:
Time ~= 337.9
+ n 336.7
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "seal_hash_blake2_256", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 133.8
+ r 312.6
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 127 0.154 0.1%
1 449.5 0.383 0.0%
2 762.1 0.651 0.0%
3 1073 1.696 0.1%
4 1385 1.47 0.1%
5 1698 8.013 0.4%
6 2009 6.154 0.3%
7 2315 1.925 0.0%
8 2632 4.061 0.1%
9 2944 7.209 0.2%
10 3254 4.82 0.1%
11 3567 3.507 0.0%
12 3885 7.929 0.2%
13 4203 7.976 0.1%
14 4514 6.739 0.1%
15 4827 10.23 0.2%
16 5135 11.67 0.2%
17 5449 19.91 0.3%
18 5764 14.28 0.2%
19 6088 11.79 0.1%
20 6391 8.901 0.1%

Quality and confidence:
param error
r 0.107

Model:
Time ~= 131
+ r 312.9
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_hash_blake2_256_per_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 648.1
+ n 152.7
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 450.9 0.412 0.0%
20 3621 11 0.3%
40 6762 37.12 0.5%
60 9723 23.58 0.2%
80 12910 65.3 0.5%
100 15860 66.37 0.4%
120 19080 74.68 0.3%
140 22120 84.89 0.3%
160 25130 111.9 0.4%
180 28530 131.4 0.4%
200 31210 105.8 0.3%
220 34250 121.5 0.3%
240 37430 142.1 0.3%
260 40360 147.2 0.3%
280 43300 133.5 0.3%
300 46420 176.5 0.3%
320 49760 186.5 0.3%
340 52460 153.3 0.2%
360 56010 268.8 0.4%
380 58630 240.2 0.4%
400 61630 191.7 0.3%
420 64700 210.2 0.3%
440 67870 147.7 0.2%
460 70800 182.5 0.2%
480 74050 157 0.2%
500 77260 296 0.3%
520 80280 275.9 0.3%
540 83430 246.9 0.2%
560 86300 255.4 0.2%
580 89490 439.8 0.4%
600 92620 321.8 0.3%
620 95450 359.4 0.3%
640 98790 243.2 0.2%
660 101700 354.3 0.3%
680 104900 532.7 0.5%
700 108100 569.3 0.5%
720 110200 556.4 0.5%
740 113300 526.7 0.4%
760 116400 353.2 0.3%
780 119400 340.3 0.2%
800 122700 349.3 0.2%
820 126100 737.6 0.5%
840 128600 465.5 0.3%
860 132000 434.2 0.3%
880 134700 446.6 0.3%
900 137900 268.7 0.1%
920 140900 264.8 0.1%
940 144500 639.1 0.4%
960 147300 620.4 0.4%
980 150200 694.5 0.4%
1000 153500 483.4 0.3%
1020 156800 823.1 0.5%

Quality and confidence:
param error
n 0.061

Model:
Time ~= 693.4
+ n 152.7
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "seal_hash_blake2_128", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 137.2
+ r 311.1
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 127.5 0.2 0.1%
1 450.4 0.51 0.1%
2 762 1.36 0.1%
3 1073 1.103 0.1%
4 1381 1.147 0.0%
5 1697 4.47 0.2%
6 2006 2.813 0.1%
7 2317 2.926 0.1%
8 2614 4.172 0.1%
9 2930 7.822 0.2%
10 3237 3.739 0.1%
11 3553 5.163 0.1%
12 3885 11.19 0.2%
13 4184 9.553 0.2%
14 4497 11.24 0.2%
15 4799 10.97 0.2%
16 5119 9.328 0.1%
17 5420 5.337 0.0%
18 5752 11.23 0.1%
19 6040 17.33 0.2%
20 6361 8.991 0.1%

Quality and confidence:
param error
r 0.12

Model:
Time ~= 135.6
+ r 311.2
µs

Reads = 4 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "seal_hash_blake2_128_per_kb", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 669.1
+ n 153.4
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 449.6 0.433 0.0%
20 3634 7.935 0.2%
40 6765 41.96 0.6%
60 9871 31.15 0.3%
80 12870 50.75 0.3%
100 15990 77.35 0.4%
120 18950 39.6 0.2%
140 22090 53.71 0.2%
160 25260 115.1 0.4%
180 28100 82.04 0.2%
200 31350 150 0.4%
220 34800 253.8 0.7%
240 37620 118.3 0.3%
260 40580 98.64 0.2%
280 43810 182.9 0.4%
300 46680 116.9 0.2%
320 50100 176.3 0.3%
340 53050 251.5 0.4%
360 55760 254 0.4%
380 59170 193.8 0.3%
400 62160 171 0.2%
420 65020 272 0.4%
440 68480 245 0.3%
460 71470 415.6 0.5%
480 74680 438.2 0.5%
500 77270 254.4 0.3%
520 80980 283.7 0.3%
540 84330 230.3 0.2%
560 87000 182.6 0.2%
580 89860 511.3 0.5%
600 92840 468.6 0.5%
620 96090 280.5 0.2%
640 99640 556.5 0.5%
660 101600 401.5 0.3%
680 105100 373.4 0.3%
700 108200 421 0.3%
720 111300 601 0.5%
740 114100 223 0.1%
760 116900 274.3 0.2%
780 120900 411.9 0.3%
800 124200 480 0.3%
820 125900 477.5 0.3%
840 128900 731 0.5%
860 132000 483.3 0.3%
880 135800 691.8 0.5%
900 138400 470.2 0.3%
920 141400 287.6 0.2%
940 144800 432.5 0.2%
960 147200 726.8 0.4%
980 150000 890.5 0.5%
1000 154000 885.7 0.5%
1020 156400 615.5 0.3%

Quality and confidence:
param error
n 0.077

Model:
Time ~= 839.5
+ n 153.1
µs

Reads = 4 + (0 * n)
Writes = 0 + (0 * n)
Pallet: "pallet_contracts", Extrinsic: "instr_i64const", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.66
+ r 3.148
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.67 0.038 0.1%
1 29.83 0.038 0.1%

Quality and confidence:
param error
r 0.018

Model:
Time ~= 26.67
+ r 3.155
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64load", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 28.93
+ r 159.3
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 28.92 0.037 0.1%
1 188.2 0.049 0.0%

Quality and confidence:
param error
r 0.02

Model:
Time ~= 28.92
+ r 159.3
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64store", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 28.92
+ r 227.2
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 28.92 0.033 0.1%
1 256.2 0.213 0.0%

Quality and confidence:
param error
r 0.071

Model:
Time ~= 28.92
+ r 227.2
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_select", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.59
+ r 12.58
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.59 0.021 0.0%
1 39.18 0.049 0.1%

Quality and confidence:
param error
r 0.017

Model:
Time ~= 26.59
+ r 12.59
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_if", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.6
+ r 12.26
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.59 0.03 0.1%
1 38.85 0.044 0.1%

Quality and confidence:
param error
r 0.018

Model:
Time ~= 26.59
+ r 12.25
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_br", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.58
+ r 5.812
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.58 0.024 0.0%
1 32.39 0.032 0.0%

Quality and confidence:
param error
r 0.013

Model:
Time ~= 26.58
+ r 5.811
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_br_if", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.57
+ r 14.05
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.58 0.026 0.0%
1 40.63 0.041 0.1%

Quality and confidence:
param error
r 0.016

Model:
Time ~= 26.58
+ r 14.05
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_br_table", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.61
+ r 15.68
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.61 0.04 0.1%
1 42.3 0.045 0.1%

Quality and confidence:
param error
r 0.02

Model:
Time ~= 26.61
+ r 15.68
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_br_table_per_entry", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 40.9
+ e 0.092
µs

Reads = 0 + (0 * e)
Writes = 0 + (0 * e)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
e mean µs sigma µs %
1 38.74 0.057 0.1%
6 40.53 0.043 0.1%
11 41.3 0.052 0.1%
16 42.72 0.133 0.3%
21 43.13 0.076 0.1%
26 43.5 0.083 0.1%
31 43.55 0.045 0.1%
36 44.19 0.06 0.1%
41 44.2 0.106 0.2%
46 44.14 0.104 0.2%
51 44.85 0.049 0.1%
56 45.76 0.098 0.2%
61 46.14 0.064 0.1%
66 47.02 0.105 0.2%
71 47.26 0.069 0.1%
76 48.18 0.069 0.1%
81 48.03 0.131 0.2%
86 48.84 0.038 0.0%
91 49.46 0.083 0.1%
96 51.59 0.195 0.3%
101 51.71 0.208 0.4%
106 52.21 0.186 0.3%
111 52.56 0.241 0.4%
116 53.06 0.289 0.5%
121 53.4 0.262 0.4%
126 52.89 0.323 0.6%
131 53.31 0.502 0.9%
136 54.57 0.569 1.0%
141 54.51 0.387 0.7%
146 56.39 0.485 0.8%
151 55.21 0.514 0.9%
156 55.4 0.227 0.4%
161 55.6 0.118 0.2%
166 56.03 0.548 0.9%
171 56.78 0.48 0.8%
176 57.94 0.357 0.6%
181 57.68 0.351 0.6%
186 58.32 0.439 0.7%
191 57.87 0.504 0.8%
196 58.55 0.59 1.0%
201 59.72 0.608 1.0%
206 60.4 0.4 0.6%
211 62.31 0.33 0.5%
216 59.18 0.319 0.5%
221 60.02 0.261 0.4%
226 60.57 0.346 0.5%
231 61.4 0.199 0.3%
236 61.62 0.167 0.2%
241 62.55 0.3 0.4%
246 63.86 0.342 0.5%
251 63.8 0.178 0.2%
256 64.02 0.399 0.6%

Quality and confidence:
param error
e 0

Model:
Time ~= 40.96
+ e 0.092
µs

Reads = 0 + (0 * e)
Writes = 0 + (0 * e)
Pallet: "pallet_contracts", Extrinsic: "instr_call", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.88
+ r 97.49
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.88 0.026 0.0%
1 124.4 0.142 0.1%

Quality and confidence:
param error
r 0.048

Model:
Time ~= 26.88
+ r 97.52
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_call_indirect", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 34.63
+ r 201.4
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 34.62 0.057 0.1%
1 236.5 0.809 0.3%

Quality and confidence:
param error
r 0.27

Model:
Time ~= 34.62
+ r 201.9
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_call_indirect_per_param", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 255.5
+ p 3.616
µs

Reads = 0 + (0 * p)
Writes = 0 + (0 * p)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
p mean µs sigma µs %
0 236.5 0.965 0.4%
2 250.8 1.958 0.7%
4 253.5 1.221 0.4%
6 262.6 0.569 0.2%
8 282.9 0.628 0.2%
10 283.8 0.875 0.3%
12 296.8 0.694 0.2%
14 305.5 0.859 0.2%
16 311.5 0.666 0.2%
18 320.1 0.817 0.2%
20 332 6.064 1.8%
22 337.6 3.875 1.1%
24 343.5 0.622 0.1%
26 350.9 0.552 0.1%
28 396.2 0.812 0.2%
30 394.6 0.697 0.1%
32 373 0.979 0.2%
34 380.3 1.284 0.3%
36 387.1 1.25 0.3%
38 395.2 1.471 0.3%
40 402.6 0.957 0.2%
42 407.4 0.675 0.1%
44 415 0.878 0.2%
46 420.5 0.874 0.2%
48 426.9 0.807 0.1%
50 437 0.948 0.2%
52 444.4 1.091 0.2%
54 450.4 0.466 0.1%
56 457 0.257 0.0%
58 466.2 1.113 0.2%
60 471.2 0.577 0.1%
62 478.1 0.819 0.1%
64 484.9 0.518 0.1%
66 492 1.233 0.2%
68 506.6 1.349 0.2%
70 511.5 1.079 0.2%
72 519.1 1.758 0.3%
74 525.2 0.73 0.1%
76 532.5 0.629 0.1%
78 542.6 3.224 0.5%
80 546.9 1.1 0.2%
82 553.5 0.666 0.1%
84 561.4 0.504 0.0%
86 568.2 0.909 0.1%
88 571.6 0.753 0.1%
90 581.7 0.647 0.1%
92 589.7 1.011 0.1%
94 596.4 0.957 0.1%
96 607 1.336 0.2%
98 611.3 0.793 0.1%
100 619 0.933 0.1%
102 623.3 1.467 0.2%
104 633.4 1.151 0.1%
106 636.3 0.758 0.1%
108 643.8 1.03 0.1%
110 649.6 1.432 0.2%
112 659.4 2.181 0.3%
114 662.8 1.409 0.2%
116 672.6 1.61 0.2%
118 678.4 2.34 0.3%
120 684 0.79 0.1%
122 691 1.158 0.1%
124 697.6 1.602 0.2%
126 709.1 2.397 0.3%
128 712.6 1.355 0.1%

Quality and confidence:
param error
p 0.008

Model:
Time ~= 255.7
+ p 3.612
µs

Reads = 0 + (0 * p)
Writes = 0 + (0 * p)
Pallet: "pallet_contracts", Extrinsic: "instr_local_get", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 45.94
+ r 3.447
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 45.95 0.044 0.0%
1 49.39 0.034 0.0%

Quality and confidence:
param error
r 0.018

Model:
Time ~= 45.95
+ r 3.439
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_local_set", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 45.93
+ r 3.609
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 45.95 0.035 0.0%
1 49.55 0.047 0.0%

Quality and confidence:
param error
r 0.019

Model:
Time ~= 45.95
+ r 3.601
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_local_tee", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 45.88
+ r 5.202
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 45.88 0.031 0.0%
1 51.08 0.048 0.0%

Quality and confidence:
param error
r 0.019

Model:
Time ~= 45.88
+ r 5.203
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_global_get", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 29.89
+ r 8.22
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 29.89 0.042 0.1%
1 38.11 0.05 0.1%

Quality and confidence:
param error
r 0.022

Model:
Time ~= 29.89
+ r 8.221
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_global_set", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 29.92
+ r 12.03
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 29.91 0.033 0.1%
1 41.95 0.049 0.1%

Quality and confidence:
param error
r 0.019

Model:
Time ~= 29.91
+ r 12.03
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_memory_current", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 28.89
+ r 3.785
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 28.87 0.041 0.1%
1 32.67 0.041 0.1%

Quality and confidence:
param error
r 0.019

Model:
Time ~= 28.87
+ r 3.794
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_memory_grow", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 27.35
+ r 2313
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 27.35 0.012 0.0%
1 2329 13.89 0.5%

Quality and confidence:
param error
r 4.631

Model:
Time ~= 27.35
+ r 2302
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64clz", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.53
+ r 5.466
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.53 0.042 0.1%
1 31.98 0.021 0.0%

Quality and confidence:
param error
r 0.015

Model:
Time ~= 26.53
+ r 5.45
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64ctz", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.49
+ r 5.405
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.48 0.035 0.1%
1 31.89 0.029 0.0%

Quality and confidence:
param error
r 0.015

Model:
Time ~= 26.48
+ r 5.41
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64popcnt", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.57
+ r 5.98
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.57 0.026 0.0%
1 32.55 0.03 0.0%

Quality and confidence:
param error
r 0.013

Model:
Time ~= 26.57
+ r 5.976
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64eqz", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.53
+ r 5.468
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.52 0.043 0.1%
1 31.98 0.033 0.1%

Quality and confidence:
param error
r 0.018

Model:
Time ~= 26.52
+ r 5.465
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64extendsi32", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.53
+ r 5.378
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.53 0.024 0.0%
1 31.9 0.033 0.1%

Quality and confidence:
param error
r 0.013

Model:
Time ~= 26.53
+ r 5.375
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64extendui32", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.54
+ r 5.286
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.55 0.04 0.1%
1 31.84 0.026 0.0%

Quality and confidence:
param error
r 0.016

Model:
Time ~= 26.56
+ r 5.284
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i32wrapi64", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.56
+ r 5.36
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.55 0.025 0.0%
1 31.91 0.027 0.0%

Quality and confidence:
param error
r 0.012

Model:
Time ~= 26.55
+ r 5.358
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64eq", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.53
+ r 7.399
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.54 0.028 0.1%
1 33.95 0.028 0.0%

Quality and confidence:
param error
r 0.013

Model:
Time ~= 26.54
+ r 7.402
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64ne", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.58
+ r 7.266
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.58 0.026 0.0%
1 33.84 0.033 0.0%

Quality and confidence:
param error
r 0.014

Model:
Time ~= 26.58
+ r 7.266
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64lts", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.56
+ r 7.288
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.55 0.027 0.1%
1 33.85 0.024 0.0%

Quality and confidence:
param error
r 0.012

Model:
Time ~= 26.55
+ r 7.293
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64ltu", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.57
+ r 7.271
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.56 0.018 0.0%
1 33.84 0.04 0.1%

Quality and confidence:
param error
r 0.015

Model:
Time ~= 26.56
+ r 7.278
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64gts", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.52
+ r 7.33
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.51 0.026 0.0%
1 33.84 0.036 0.1%

Quality and confidence:
param error
r 0.015

Model:
Time ~= 26.51
+ r 7.334
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64gtu", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.57
+ r 7.284
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.56 0.032 0.1%
1 33.84 0.037 0.1%

Quality and confidence:
param error
r 0.016

Model:
Time ~= 26.56
+ r 7.283
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64les", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.59
+ r 7.246
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.58 0.034 0.1%
1 33.83 0.039 0.1%

Quality and confidence:
param error
r 0.017

Model:
Time ~= 26.58
+ r 7.244
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64leu", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.58
+ r 7.324
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.59 0.036 0.1%
1 33.91 0.034 0.1%

Quality and confidence:
param error
r 0.016

Model:
Time ~= 26.59
+ r 7.318
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64ges", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.62
+ r 7.346
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.62 0.033 0.1%
1 33.97 0.024 0.0%

Quality and confidence:
param error
r 0.013

Model:
Time ~= 26.62
+ r 7.348
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64geu", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.59
+ r 7.338
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.59 0.017 0.0%
1 33.92 0.035 0.1%

Quality and confidence:
param error
r 0.013

Model:
Time ~= 26.59
+ r 7.33
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64add", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.55
+ r 7.446
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.56 0.031 0.1%
1 35.22 1.421 4.0%

Quality and confidence:
param error
r 0.474

Model:
Time ~= 26.56
+ r 8.657
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64sub", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 27.31
+ r 6.758
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 27.39 0.233 0.8%
1 34.13 0.122 0.3%

Quality and confidence:
param error
r 0.087

Model:
Time ~= 27.39
+ r 6.743
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64mul", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.57
+ r 7.33
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.57 0.032 0.1%
1 33.89 0.041 0.1%

Quality and confidence:
param error
r 0.017

Model:
Time ~= 26.57
+ r 7.329
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64divs", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.58
+ r 12.96
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.58 0.041 0.1%
1 39.56 0.053 0.1%

Quality and confidence:
param error
r 0.022

Model:
Time ~= 26.58
+ r 12.97
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64divu", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.55
+ r 11.94
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.55 0.041 0.1%
1 38.5 0.031 0.0%

Quality and confidence:
param error
r 0.017

Model:
Time ~= 26.55
+ r 11.95
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64rems", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.57
+ r 12.9
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.56 0.018 0.0%
1 39.47 0.04 0.1%

Quality and confidence:
param error
r 0.014

Model:
Time ~= 26.57
+ r 12.9
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64remu", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.56
+ r 12.08
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.56 0.015 0.0%
1 38.67 0.08 0.2%

Quality and confidence:
param error
r 0.027

Model:
Time ~= 26.56
+ r 12.11
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64and", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.57
+ r 7.41
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.58 0.023 0.0%
1 33.99 0.039 0.1%

Quality and confidence:
param error
r 0.015

Model:
Time ~= 26.58
+ r 7.411
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64or", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.58
+ r 7.37
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.58 0.025 0.0%
1 34.06 0.236 0.6%

Quality and confidence:
param error
r 0.079

Model:
Time ~= 26.58
+ r 7.479
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64xor", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.53
+ r 7.364
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.54 0.026 0.0%
1 33.92 0.083 0.2%

Quality and confidence:
param error
r 0.029

Model:
Time ~= 26.54
+ r 7.386
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64shl", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.56
+ r 7.264
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.56 0.028 0.1%
1 33.82 0.028 0.0%

Quality and confidence:
param error
r 0.013

Model:
Time ~= 26.56
+ r 7.263
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64shrs", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.57
+ r 7.349
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.56 0.027 0.1%
1 33.92 0.027 0.0%

Quality and confidence:
param error
r 0.013

Model:
Time ~= 26.56
+ r 7.353
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64shru", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.52
+ r 7.339
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.53 0.025 0.0%
1 33.87 0.041 0.1%

Quality and confidence:
param error
r 0.016

Model:
Time ~= 26.53
+ r 7.342
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64rotl", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.53
+ r 7.359
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.54 0.024 0.0%
1 33.9 0.046 0.1%

Quality and confidence:
param error
r 0.017

Model:
Time ~= 26.54
+ r 7.362
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Pallet: "pallet_contracts", Extrinsic: "instr_i64rotr", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 26.54
+ r 7.324
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
r mean µs sigma µs %
0 26.53 0.033 0.1%
1 33.86 0.03 0.0%

Quality and confidence:
param error
r 0.015

Model:
Time ~= 26.53
+ r 7.33
µs

Reads = 0 + (0 * r)
Writes = 0 + (0 * r)

athei and others added 9 commits November 10, 2020 16:06
Those errors where part of the decl_error for some time but where
never actually returned. This allows proper debugging of failed
restorations. Previously, any error did return the misleading
`ContractTrapped`.
This allows us to make assumptions about the AccoutId
that are necessary for testing and in order to benchmark
the module properly.

This also groups free standing functions into inherent functions
in order to minimize the places where the new bounds need to
be specified.
* Do not allow override by runtime author
* Instantiate gained a new parameter "salt"

This change is done now in expecation of the upcoming code rent
which needs to change the instantiation dispatchable and
host function anyways.

The situation in where we have only something that is like CREATE2
makes it impossible for UIs to help the user to create an arbitrary
amount of instantiations from the same code.

With this change we have the same functionality as ethereum with
a CREATE and CREATE2 instantation semantic.
The new trait bounds allows us to remove this workaround
from the configuration trait.
It should be solely the responsiblity to determine proper values for
these parameter. As a matter of fact most runtime weren't using these
values anyways.
Because of the new bounds on the trait tests can't get away by using
u64 as accound id. Replacing the 8 byte value by a 32 byte value
creates out quite a bit of code churn.
The benchmarks need adaption to the new instantiate semantics.

* Fix compile errors caused by adding new trait bounds
* Fix compile errors caused by renaming storage and rent functions
* Adapt host functions and dispatchables to the new salt
* Add tests for instantiate host functions (was not possible before)
The new benchmarks add a new parameter for salt "s" to the instantiate weights
that needs to be applied.
@athei athei marked this pull request as ready for review November 10, 2020 15:28
@athei athei removed the A3-in_progress Pull request is in progress. No review needed at this stage. label Nov 10, 2020
@athei athei added the A0-please_review Pull request needs code review. label Nov 10, 2020
/// This is the address generation function used by contract instantation. Its result
/// is only dependend on its inputs. It can therefore be used to reliably predict the
/// address of a contract. This is akin to the formular of eth's CRATE2 opcode. There
/// is no CREATE equivalent because CREATE2 is strictly more powerful.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure we want ethereum terminology (CREATE2) in docs?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did not think that intensely about that. What is your recommendation?

Copy link
Contributor

@NikVolf NikVolf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Contributor

@wheresaddie wheresaddie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

Copy link
Contributor

@ascjones ascjones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@athei
Copy link
Member Author

athei commented Nov 24, 2020

bot merge

@ghost
Copy link

ghost commented Nov 24, 2020

Trying merge.

@ghost ghost merged commit 9a29852 into master Nov 24, 2020
@ghost ghost deleted the at-instantiate-contract branch November 24, 2020 10:42
clearloop added a commit to patractlabs/substrate that referenced this pull request Nov 25, 2020
* make ClientConfig public (paritytech#7544)

* sc-basic-authorship: remove useless dependencies (paritytech#7550)

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* Add slashing events to elections-phragmen. (paritytech#7543)

* Add slashing events to elections-phragmen.

* Fix build

* Apply suggestions from code review

* Update frame/elections-phragmen/src/lib.rs

* Update frame/elections-phragmen/src/lib.rs

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>

* Remove necessity to pass ConsensusEngineId when registering notifications protocol (paritytech#7549)

* Remove necessity to pass ConsensusEngineId when registering notifications protocol

* Line width

* Fix tests protocol name

* Other renames

* Doc update

* Change issue in TODO

* sc-cli: replace bip39 with tiny-bip39 (paritytech#7551)

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* Add extra docs to on_initialize (paritytech#7552)

* Add some extra on_initialize docs.

* Address review comments.

* More Extensible Multiaddress Format (paritytech#7380)

* More extensible multiaddress format

* update name

* Don't depend on indices to define multiaddress type

* Use MultiAddress in Node Template too!

* reduce traits, fix build

* support multiple `StaticLookup`

* bump tx version

* feedback

* Fix weight template to remove ugliness in rust doc (paritytech#7565)

fixed weight template

* Cargo.lock: Run cargo update (paritytech#7553)

* Cargo.lock: Run cargo update

* Cargo.lock: Downgrade cc to v1.0.62

* Cargo.lock: Revert wasm-* updates

* .github: Add dependabot config and thus enable dependabot (paritytech#7509)

* .github: Add dependabot config and thus enable dependabot

* Update .github/dependabot.yml

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

* Thread-local parameter_types for testing. (paritytech#7542)

* Thread-local parameter_types for testing.

* Better docs.

* Some minors

* Merge'em

* Update frame/support/src/lib.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* Align more to basti's trick

* Update frame/support/src/lib.rs

* Update frame/support/src/lib.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Bastian Köcher <git@kchr.de>

* Bump wasm-bindgen-test from 0.3.12 to 0.3.17 (paritytech#7567)

* Bump wasm-bindgen-test from 0.3.12 to 0.3.17

Bumps [wasm-bindgen-test](https://github.com/rustwasm/wasm-bindgen) from 0.3.12 to 0.3.17.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

Signed-off-by: dependabot[bot] <support@github.com>

* Update wasm-bindgen pin to 0.2.68

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

* pallet-evm: move to Frontier (Part IV) (paritytech#7573)

* Bump secrecy from 0.6.0 to 0.7.0 (paritytech#7568)

* Bump secrecy from 0.6.0 to 0.7.0

Bumps [secrecy](https://github.com/iqlusioninc/crates) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/iqlusioninc/crates/releases)
- [Commits](iqlusioninc/crates@secrecy/v0.6.0...secrecy/v0.7.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Fix compilation errors

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>

* Bump wasm-bindgen-futures from 0.4.17 to 0.4.18 (paritytech#7572)

Bumps [wasm-bindgen-futures](https://github.com/rustwasm/wasm-bindgen) from 0.4.17 to 0.4.18.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump lru from 0.4.3 to 0.6.1 (paritytech#7577)

Bumps [lru](https://github.com/jeromefroe/lru-rs) from 0.4.3 to 0.6.1.
- [Release notes](https://github.com/jeromefroe/lru-rs/releases)
- [Changelog](https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md)
- [Commits](jeromefroe/lru-rs@0.4.3...0.6.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump wasm-bindgen-test from 0.3.17 to 0.3.18 (paritytech#7579)

Bumps [wasm-bindgen-test](https://github.com/rustwasm/wasm-bindgen) from 0.3.17 to 0.3.18.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump wasm-timer from 0.2.4 to 0.2.5 (paritytech#7578)

Bumps [wasm-timer](https://github.com/tomaka/wasm-timer) from 0.2.4 to 0.2.5.
- [Release notes](https://github.com/tomaka/wasm-timer/releases)
- [Commits](https://github.com/tomaka/wasm-timer/commits)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* grandpa: remove light-client specific block import pipeline (paritytech#7546)

* grandpa: remove light-client specific block import

* consensus, network: remove finality proofs

* client/authority-discovery: Publish and query on exponential interval (paritytech#7545)

* client/authority-discovery: Publish and query on exponential interval

When a node starts up publishing and querying might fail due to various
reasons, for example due to being not yet fully bootstrapped on the DHT.
Thus one should retry rather sooner than later. On the other hand, a
long running node is likely well connected and thus timely retries are
not needed. For this reasoning use an exponentially increasing interval
for `publish_interval`, `query_interval` and
`priority_group_set_interval` instead of a constant interval.

* client/authority-discovery/src/interval.rs: Add license header

* .maintain/gitlab: Ensure adder collator tests are run on CI

* sc-network: update some dependencies (paritytech#7582)

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* Bump linregress and do some other cleanups (paritytech#7580)

* Wasm-builder 3.0 (paritytech#7532)

* Build every wasm crate in its own project with wasm-builder

Building all wasm crates in one workspace was a nice idea, however it
just introduced problems:

1. We needed to prune old members, but this didn't worked for old git
deps.
2. We locked the whole wasm workspace while building one crate. This
could lead to infinitely locking the workspace on a crash.

Now we just build every crate in its own project, this means we will
build the dependencies multiple times. While building the dependencies
multiple times, we still decrease the build time by around 30 seconds
for Polkadot and Substrate because of the new parallelism ;)

* Remove the requirement on wasm-builder-runner

This removes the requirement on wasm-builder-runner by using the new
`build_dep` feature of cargo. We use nightly anyway and that enables us
to use this feature. This solves the problem of not mixing
build/proc-macro deps with normal deps. By doing this we get rid off
this complicated project structure and can depend directly on
`wasm-builder`. This also removes all the code from wasm-builder-runner
and mentions that it is deprecated.

* Copy the `Cargo.lock` to the correct folder

* Remove wasm-builder-runner

* Update docs

* Fix deterministic check

Modified-by: Bastian Köcher <git@kchr.de>

* Try to make the ui test happy

* Switch to `SKIP_WASM_BUILD`

* Rename `SKIP_WASM_BINARY` to the correct name...

* Update utils/wasm-builder/src/builder.rs

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* Update utils/wasm-builder/src/builder.rs

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* Bump tracing from 0.1.21 to 0.1.22 (paritytech#7589)

Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.21 to 0.1.22.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](tokio-rs/tracing@tracing-0.1.21...tracing-0.1.22)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* contracts: Add `salt` argument to contract instantiation (paritytech#7482)

* pallet-contracts: Fix seal_restore_to to output proper module errors

Those errors where part of the decl_error for some time but where
never actually returned. This allows proper debugging of failed
restorations. Previously, any error did return the misleading
`ContractTrapped`.

* Bind UncheckedFrom<T::Hash> + AsRef<[u8]> everywhere

This allows us to make assumptions about the AccoutId
that are necessary for testing and in order to benchmark
the module properly.

This also groups free standing functions into inherent functions
in order to minimize the places where the new bounds need to
be specified.

* Rework contract address determination

* Do not allow override by runtime author
* Instantiate gained a new parameter "salt"

This change is done now in expecation of the upcoming code rent
which needs to change the instantiation dispatchable and
host function anyways.

The situation in where we have only something that is like CREATE2
makes it impossible for UIs to help the user to create an arbitrary
amount of instantiations from the same code.

With this change we have the same functionality as ethereum with
a CREATE and CREATE2 instantation semantic.

* Remove TrieIdGenerator

The new trait bounds allows us to remove this workaround
from the configuration trait.

* Remove default parameters for config trait

It should be solely the responsiblity to determine proper values for
these parameter. As a matter of fact most runtime weren't using these
values anyways.

* Fix tests for new account id type

Because of the new bounds on the trait tests can't get away by using
u64 as accound id. Replacing the 8 byte value by a 32 byte value
creates out quite a bit of code churn.

* Fix benchmarks

The benchmarks need adaption to the new instantiate semantics.

* Fix compile errors caused by adding new trait bounds
* Fix compile errors caused by renaming storage and rent functions
* Adapt host functions and dispatchables to the new salt
* Add tests for instantiate host functions (was not possible before)

* Add benchmark results

* Adapt to the new WeightInfo

The new benchmarks add a new parameter for salt "s" to the instantiate weights
that needs to be applied.

* Fix deploying_wasm_contract_should_work integration test

This test is adapted to use the new instantiate signature.

* Break overlong line

* Break more long lines

Co-authored-by: Parity Benchmarking Bot <admin@parity.io>

* */Cargo.toml: Remove unused dependencies (paritytech#7590)

* */Cargo.toml: Remove unused dependencies

Using cargo-udeps to detect unused dependencies.

* client/network/Cargo: Revert dependency removal

* Cargo.lock: Update

Co-authored-by: Andrew Plaza <aplaza@liquidthink.net>
Co-authored-by: Qinxuan Chen <koushiro.cqx@gmail.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: Guillaume Thiolliere <gui.thiolliere@gmail.com>
Co-authored-by: Pierre Krieger <pierre.krieger1708@gmail.com>
Co-authored-by: Tomasz Drwięga <tomusdrw@users.noreply.github.com>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Wei Tang <wei@that.world>
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
Co-authored-by: Parity Benchmarking Bot <admin@parity.io>
darkfriend77 pushed a commit to mogwaicoin/substrate that referenced this pull request Jan 11, 2021
…7482)

* pallet-contracts: Fix seal_restore_to to output proper module errors

Those errors where part of the decl_error for some time but where
never actually returned. This allows proper debugging of failed
restorations. Previously, any error did return the misleading
`ContractTrapped`.

* Bind UncheckedFrom<T::Hash> + AsRef<[u8]> everywhere

This allows us to make assumptions about the AccoutId
that are necessary for testing and in order to benchmark
the module properly.

This also groups free standing functions into inherent functions
in order to minimize the places where the new bounds need to
be specified.

* Rework contract address determination

* Do not allow override by runtime author
* Instantiate gained a new parameter "salt"

This change is done now in expecation of the upcoming code rent
which needs to change the instantiation dispatchable and
host function anyways.

The situation in where we have only something that is like CREATE2
makes it impossible for UIs to help the user to create an arbitrary
amount of instantiations from the same code.

With this change we have the same functionality as ethereum with
a CREATE and CREATE2 instantation semantic.

* Remove TrieIdGenerator

The new trait bounds allows us to remove this workaround
from the configuration trait.

* Remove default parameters for config trait

It should be solely the responsiblity to determine proper values for
these parameter. As a matter of fact most runtime weren't using these
values anyways.

* Fix tests for new account id type

Because of the new bounds on the trait tests can't get away by using
u64 as accound id. Replacing the 8 byte value by a 32 byte value
creates out quite a bit of code churn.

* Fix benchmarks

The benchmarks need adaption to the new instantiate semantics.

* Fix compile errors caused by adding new trait bounds
* Fix compile errors caused by renaming storage and rent functions
* Adapt host functions and dispatchables to the new salt
* Add tests for instantiate host functions (was not possible before)

* Add benchmark results

* Adapt to the new WeightInfo

The new benchmarks add a new parameter for salt "s" to the instantiate weights
that needs to be applied.

* Fix deploying_wasm_contract_should_work integration test

This test is adapted to use the new instantiate signature.

* Break overlong line

* Break more long lines

Co-authored-by: Parity Benchmarking Bot <admin@parity.io>
This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-please_review Pull request needs code review. C1-low PR touches the given topic and has a low impact on builders.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

7 participants