@dedot/chaintypes 0.211.0 → 0.212.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  // Generated by dedot cli
2
2
 
3
3
  import type { GenericChainConsts } from 'dedot/types';
4
- import type { RuntimeVersion, Bytes, AccountId32, Permill, Perbill } from 'dedot/codecs';
4
+ import type { RuntimeVersion, Bytes, AccountId32, Permill, Perbill, FixedU128 } from 'dedot/codecs';
5
5
  import type {
6
6
  FrameSystemLimitsBlockWeights,
7
7
  FrameSystemLimitsBlockLength,
@@ -1561,6 +1561,19 @@ export interface ChainConsts extends GenericChainConsts {
1561
1561
  **/
1562
1562
  depositPerItem: bigint;
1563
1563
 
1564
+ /**
1565
+ * The amount of balance a caller has to pay for each child trie storage item.
1566
+ *
1567
+ * Those are the items created by a contract. In Solidity each value is a single
1568
+ * storage item. This is why we need to set a lower value here than for the main
1569
+ * trie items. Otherwise the storage deposit is too high.
1570
+ *
1571
+ * # Note
1572
+ *
1573
+ * It is safe to change this value on a live chain as all refunds are pro rata.
1574
+ **/
1575
+ depositPerChildTrieItem: bigint;
1576
+
1564
1577
  /**
1565
1578
  * The percentage of the storage deposit that should be held for using a code hash.
1566
1579
  * Instantiating a contract, protects the code from being removed. In order to prevent
@@ -1581,6 +1594,11 @@ export interface ChainConsts extends GenericChainConsts {
1581
1594
  **/
1582
1595
  unsafeUnstableInterface: boolean;
1583
1596
 
1597
+ /**
1598
+ * Allow EVM bytecode to be uploaded and instantiated.
1599
+ **/
1600
+ allowEVMBytecode: boolean;
1601
+
1584
1602
  /**
1585
1603
  * The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) chain ID.
1586
1604
  *
@@ -1594,6 +1612,48 @@ export interface ChainConsts extends GenericChainConsts {
1594
1612
  **/
1595
1613
  nativeToEthRatio: number;
1596
1614
 
1615
+ /**
1616
+ * The fraction the maximum extrinsic weight `eth_transact` extrinsics are capped to.
1617
+ *
1618
+ * This is not a security measure but a requirement due to how we map gas to `(Weight,
1619
+ * StorageDeposit)`. The mapping might derive a `Weight` that is too large to fit into an
1620
+ * extrinsic. In this case we cap it to the limit specified here.
1621
+ *
1622
+ * `eth_transact` transactions that use more weight than specified will fail with an out of
1623
+ * gas error during execution. Larger fractions will allow more transactions to run.
1624
+ * Smaller values waste less block space: Choose as small as possible and as large as
1625
+ * necessary.
1626
+ *
1627
+ * Default: `0.5`.
1628
+ **/
1629
+ maxEthExtrinsicWeight: FixedU128;
1630
+
1631
+ /**
1632
+ * Allows debug-mode configuration, such as enabling unlimited contract size.
1633
+ **/
1634
+ debugEnabled: boolean;
1635
+
1636
+ /**
1637
+ * This determines the relative scale of our gas price and gas estimates.
1638
+ *
1639
+ * By default, the gas price (in wei) is `FeeInfo::next_fee_multiplier()` multiplied by
1640
+ * `NativeToEthRatio`. `GasScale` allows to scale this value: the actual gas price is the
1641
+ * default gas price multiplied by `GasScale`.
1642
+ *
1643
+ * As a consequence, gas cost (gas estimates and actual gas usage during transaction) is
1644
+ * scaled down by the same factor. Thus, the total transaction cost is not affected by
1645
+ * `GasScale` – apart from rounding differences: the transaction cost is always a multiple
1646
+ * of the gas price and is derived by rounded up, so that with higher `GasScales` this can
1647
+ * lead to higher gas cost as the rounding difference would be larger.
1648
+ *
1649
+ * The main purpose of changing the `GasScale` is to tune the gas cost so that it is closer
1650
+ * to standard EVM gas cost and contracts will not run out of gas when tools or code
1651
+ * assume hard coded gas limits.
1652
+ *
1653
+ * Requirement: `GasScale` must not be 0
1654
+ **/
1655
+ gasScale: number;
1656
+
1597
1657
  /**
1598
1658
  * Generic pallet constant
1599
1659
  **/
@@ -2888,7 +2888,7 @@ export interface ChainErrors extends GenericChainErrors {
2888
2888
  ContractTrapped: GenericPalletError;
2889
2889
 
2890
2890
  /**
2891
- * Event body or storage item exceeds [`limits::PAYLOAD_BYTES`].
2891
+ * Event body or storage item exceeds [`limits::STORAGE_BYTES`].
2892
2892
  **/
2893
2893
  ValueTooLarge: GenericPalletError;
2894
2894
 
@@ -3074,6 +3074,66 @@ export interface ChainErrors extends GenericChainErrors {
3074
3074
  **/
3075
3075
  ReturnDataTooLarge: GenericPalletError;
3076
3076
 
3077
+ /**
3078
+ * Invalid jump destination. Dynamic jumps points to invalid not jumpdest opcode.
3079
+ **/
3080
+ InvalidJump: GenericPalletError;
3081
+
3082
+ /**
3083
+ * Attempting to pop a value from an empty stack.
3084
+ **/
3085
+ StackUnderflow: GenericPalletError;
3086
+
3087
+ /**
3088
+ * Attempting to push a value onto a full stack.
3089
+ **/
3090
+ StackOverflow: GenericPalletError;
3091
+
3092
+ /**
3093
+ * Too much deposit was drawn from the shared txfee and deposit credit.
3094
+ *
3095
+ * This happens if the passed `gas` inside the ethereum transaction is too low.
3096
+ **/
3097
+ TxFeeOverdraw: GenericPalletError;
3098
+
3099
+ /**
3100
+ * When calling an EVM constructor `data` has to be empty.
3101
+ *
3102
+ * EVM constructors do not accept data. Their input data is part of the code blob itself.
3103
+ **/
3104
+ EvmConstructorNonEmptyData: GenericPalletError;
3105
+
3106
+ /**
3107
+ * Tried to construct an EVM contract via code hash.
3108
+ *
3109
+ * EVM contracts can only be instantiated via code upload as no initcode is
3110
+ * stored on-chain.
3111
+ **/
3112
+ EvmConstructedFromHash: GenericPalletError;
3113
+
3114
+ /**
3115
+ * The contract does not have enough balance to refund the storage deposit.
3116
+ *
3117
+ * This is a bug and should never happen. It means the accounting got out of sync.
3118
+ **/
3119
+ StorageRefundNotEnoughFunds: GenericPalletError;
3120
+
3121
+ /**
3122
+ * This means there are locks on the contracts storage deposit that prevents refunding it.
3123
+ *
3124
+ * This would be the case if the contract used its storage deposits for governance
3125
+ * or other pallets that allow creating locks over held balance.
3126
+ **/
3127
+ StorageRefundLocked: GenericPalletError;
3128
+
3129
+ /**
3130
+ * Called a pre-compile that is not allowed to be delegate called.
3131
+ *
3132
+ * Some pre-compile functions will trap the caller context if being delegate
3133
+ * called or if their caller was being delegate called.
3134
+ **/
3135
+ PrecompileDelegateDenied: GenericPalletError;
3136
+
3077
3137
  /**
3078
3138
  * Generic pallet error
3079
3139
  **/
@@ -4147,6 +4147,16 @@ export interface ChainEvents extends GenericChainEvents {
4147
4147
  **/
4148
4148
  Instantiated: GenericPalletEvent<'Revive', 'Instantiated', { deployer: H160; contract: H160 }>;
4149
4149
 
4150
+ /**
4151
+ * Emitted when an Ethereum transaction reverts.
4152
+ *
4153
+ * Ethereum transactions always complete successfully at the extrinsic level,
4154
+ * as even reverted calls must store their `ReceiptInfo`.
4155
+ * To distinguish reverted calls from successful ones, this event is emitted
4156
+ * for failed Ethereum transactions.
4157
+ **/
4158
+ EthExtrinsicRevert: GenericPalletEvent<'Revive', 'EthExtrinsicRevert', { dispatchError: DispatchError }>;
4159
+
4150
4160
  /**
4151
4161
  * Generic pallet event
4152
4162
  **/
@@ -15,6 +15,7 @@ import type {
15
15
  FrameSystemExtensionsCheckWeight,
16
16
  PalletAssetConversionTxPaymentChargeAssetTxPayment,
17
17
  FrameMetadataHashExtensionCheckMetadataHash,
18
+ PalletReviveEvmTxExtensionSetOrigin,
18
19
  StagingXcmV5Location,
19
20
  } from './types.js';
20
21
  import { ChainConsts } from './consts.js';
@@ -42,6 +43,7 @@ interface ChainKnownTypes extends GenericChainKnownTypes {
42
43
  FrameSystemExtensionsCheckWeight,
43
44
  PalletAssetConversionTxPaymentChargeAssetTxPayment,
44
45
  FrameMetadataHashExtensionCheckMetadataHash,
46
+ PalletReviveEvmTxExtensionSetOrigin,
45
47
  ];
46
48
  AssetId: StagingXcmV5Location;
47
49
  EventRecord: FrameSystemEventRecord;
@@ -49,7 +51,7 @@ interface ChainKnownTypes extends GenericChainKnownTypes {
49
51
 
50
52
  /**
51
53
  * @name: PaseoAssetHubApi
52
- * @specVersion: 2000002
54
+ * @specVersion: 2000004
53
55
  **/
54
56
  export interface PaseoAssetHubApi extends GenericSubstrateApi {
55
57
  rpc: ChainJsonRpcApis;
@@ -49,6 +49,7 @@ import type {
49
49
  FrameSupportTokensMiscIdAmountRuntimeHoldReason,
50
50
  FrameSupportTokensMiscIdAmountRuntimeFreezeReason,
51
51
  PalletTransactionPaymentReleases,
52
+ FrameSupportStorageNoDrop,
52
53
  PalletVestingVestingInfo,
53
54
  PalletVestingReleases,
54
55
  PolkadotRuntimeCommonClaimsStatementKind,
@@ -139,6 +140,10 @@ import type {
139
140
  PalletReviveVmCodeInfo,
140
141
  PalletReviveStorageAccountInfo,
141
142
  PalletReviveStorageDeletionQueueManager,
143
+ PalletReviveEvmApiRpcTypesGenBlock,
144
+ PalletReviveEvmBlockHashReceiptGasInfo,
145
+ PalletReviveEvmBlockHashBlockBuilderEthereumBlockBuilderIR,
146
+ PalletReviveDebugDebugSettings,
142
147
  PalletRcMigratorAccountsAccount,
143
148
  PalletAhMigratorMigrationStage,
144
149
  PalletAhMigratorBalancesBefore,
@@ -862,6 +867,15 @@ export interface ChainStorage extends GenericChainStorage {
862
867
  **/
863
868
  storageVersion: GenericStorageQuery<() => PalletTransactionPaymentReleases>;
864
869
 
870
+ /**
871
+ * The `OnChargeTransaction` stores the withdrawn tx fee here.
872
+ *
873
+ * Use `withdraw_txfee` and `remaining_txfee` to access from outside the crate.
874
+ *
875
+ * @param {Callback<FrameSupportStorageNoDrop | undefined> =} callback
876
+ **/
877
+ txPaymentCredit: GenericStorageQuery<() => FrameSupportStorageNoDrop | undefined>;
878
+
865
879
  /**
866
880
  * Generic pallet storage query
867
881
  **/
@@ -3380,6 +3394,8 @@ export interface ChainStorage extends GenericChainStorage {
3380
3394
  revive: {
3381
3395
  /**
3382
3396
  * A mapping from a contract's code hash to its code.
3397
+ * The code's size is bounded by [`crate::limits::BLOB_BYTES`] for PVM and
3398
+ * [`revm::primitives::eip170::MAX_CODE_SIZE`] for EVM bytecode.
3383
3399
  *
3384
3400
  * @param {H256} arg
3385
3401
  * @param {Callback<Bytes | undefined> =} callback
@@ -3442,6 +3458,67 @@ export interface ChainStorage extends GenericChainStorage {
3442
3458
  **/
3443
3459
  originalAccount: GenericStorageQuery<(arg: H160) => AccountId32 | undefined, H160>;
3444
3460
 
3461
+ /**
3462
+ * The current Ethereum block that is stored in the `on_finalize` method.
3463
+ *
3464
+ * # Note
3465
+ *
3466
+ * This could be further optimized into the future to store only the minimum
3467
+ * information needed to reconstruct the Ethereum block at the RPC level.
3468
+ *
3469
+ * Since the block is convenient to have around, and the extra details are capped
3470
+ * by a few hashes and the vector of transaction hashes, we store the block here.
3471
+ *
3472
+ * @param {Callback<PalletReviveEvmApiRpcTypesGenBlock> =} callback
3473
+ **/
3474
+ ethereumBlock: GenericStorageQuery<() => PalletReviveEvmApiRpcTypesGenBlock>;
3475
+
3476
+ /**
3477
+ * Mapping for block number and hashes.
3478
+ *
3479
+ * The maximum number of elements stored is capped by the block hash count `BLOCK_HASH_COUNT`.
3480
+ *
3481
+ * @param {number} arg
3482
+ * @param {Callback<H256> =} callback
3483
+ **/
3484
+ blockHash: GenericStorageQuery<(arg: number) => H256, number>;
3485
+
3486
+ /**
3487
+ * The details needed to reconstruct the receipt info offchain.
3488
+ *
3489
+ * This contains valuable information about the gas used by the transaction.
3490
+ *
3491
+ * NOTE: The item is unbound and should therefore never be read on chain.
3492
+ * It could otherwise inflate the PoV size of a block.
3493
+ *
3494
+ * @param {Callback<Array<PalletReviveEvmBlockHashReceiptGasInfo>> =} callback
3495
+ **/
3496
+ receiptInfoData: GenericStorageQuery<() => Array<PalletReviveEvmBlockHashReceiptGasInfo>>;
3497
+
3498
+ /**
3499
+ * Incremental ethereum block builder.
3500
+ *
3501
+ * @param {Callback<PalletReviveEvmBlockHashBlockBuilderEthereumBlockBuilderIR> =} callback
3502
+ **/
3503
+ ethBlockBuilderIR: GenericStorageQuery<() => PalletReviveEvmBlockHashBlockBuilderEthereumBlockBuilderIR>;
3504
+
3505
+ /**
3506
+ * The first transaction and receipt of the ethereum block.
3507
+ *
3508
+ * These values are moved out of the `EthBlockBuilderIR` to avoid serializing and
3509
+ * deserializing them on every transaction. Instead, they are loaded when needed.
3510
+ *
3511
+ * @param {Callback<[Bytes, Bytes] | undefined> =} callback
3512
+ **/
3513
+ ethBlockBuilderFirstValues: GenericStorageQuery<() => [Bytes, Bytes] | undefined>;
3514
+
3515
+ /**
3516
+ * Debugging settings that can be configured when DebugEnabled config is true.
3517
+ *
3518
+ * @param {Callback<PalletReviveDebugDebugSettings> =} callback
3519
+ **/
3520
+ debugSettingsOf: GenericStorageQuery<() => PalletReviveDebugDebugSettings>;
3521
+
3445
3522
  /**
3446
3523
  * Generic pallet storage query
3447
3524
  **/
@@ -55,16 +55,20 @@ import type {
55
55
  StagingXcmV5Location,
56
56
  PolkadotParachainPrimitivesPrimitivesId,
57
57
  SystemParachainsCommonApisInflationInfo,
58
+ PalletReviveEvmApiRpcTypesGenBlock,
59
+ PalletReviveEvmBlockHashReceiptGasInfo,
58
60
  PalletRevivePrimitivesContractResult,
59
61
  PalletRevivePrimitivesContractResultInstantiateReturnValue,
60
62
  PalletRevivePrimitivesCode,
61
63
  PalletRevivePrimitivesEthTransactInfo,
62
64
  PalletRevivePrimitivesEthTransactError,
63
65
  PalletReviveEvmApiRpcTypesGenGenericTransaction,
66
+ PalletReviveEvmApiRpcTypesDryRunConfig,
64
67
  PalletRevivePrimitivesCodeUploadReturnValue,
65
68
  PalletRevivePrimitivesContractAccessError,
66
69
  PalletReviveEvmApiDebugRpcTypesTrace,
67
70
  PalletReviveEvmApiDebugRpcTypesTracerType,
71
+ PalletRevivePrimitivesBalanceConversionError,
68
72
  } from './types.js';
69
73
 
70
74
  export interface RuntimeApis extends GenericRuntimeApis {
@@ -1024,6 +1028,34 @@ export interface RuntimeApis extends GenericRuntimeApis {
1024
1028
  * @runtimeapi: ReviveApi - 0x8c403e5c4a9fd442
1025
1029
  **/
1026
1030
  reviveApi: {
1031
+ /**
1032
+ * Returns the current ETH block.
1033
+ *
1034
+ * This is one block behind the substrate block.
1035
+ *
1036
+ * @callname: ReviveApi_eth_block
1037
+ **/
1038
+ ethBlock: GenericRuntimeApiMethod<() => Promise<PalletReviveEvmApiRpcTypesGenBlock>>;
1039
+
1040
+ /**
1041
+ * Returns the ETH block hash for the given block number.
1042
+ *
1043
+ * @callname: ReviveApi_eth_block_hash
1044
+ * @param {U256} number
1045
+ **/
1046
+ ethBlockHash: GenericRuntimeApiMethod<(number: U256) => Promise<H256 | undefined>>;
1047
+
1048
+ /**
1049
+ * The details needed to reconstruct the receipt information offchain.
1050
+ *
1051
+ * # Note
1052
+ *
1053
+ * Each entry corresponds to the appropriate Ethereum transaction in the current block.
1054
+ *
1055
+ * @callname: ReviveApi_eth_receipt_data
1056
+ **/
1057
+ ethReceiptData: GenericRuntimeApiMethod<() => Promise<Array<PalletReviveEvmBlockHashReceiptGasInfo>>>;
1058
+
1027
1059
  /**
1028
1060
  * Returns the block gas limit.
1029
1061
  *
@@ -1107,6 +1139,7 @@ export interface RuntimeApis extends GenericRuntimeApis {
1107
1139
  /**
1108
1140
  * Perform an Ethereum call.
1109
1141
  *
1142
+ * Deprecated use `v2` version instead.
1110
1143
  * See [`crate::Pallet::dry_run_eth_transact`]
1111
1144
  *
1112
1145
  * @callname: ReviveApi_eth_transact
@@ -1118,6 +1151,22 @@ export interface RuntimeApis extends GenericRuntimeApis {
1118
1151
  ) => Promise<Result<PalletRevivePrimitivesEthTransactInfo, PalletRevivePrimitivesEthTransactError>>
1119
1152
  >;
1120
1153
 
1154
+ /**
1155
+ * Perform an Ethereum call.
1156
+ *
1157
+ * See [`crate::Pallet::dry_run_eth_transact`]
1158
+ *
1159
+ * @callname: ReviveApi_eth_transact_with_config
1160
+ * @param {PalletReviveEvmApiRpcTypesGenGenericTransaction} tx
1161
+ * @param {PalletReviveEvmApiRpcTypesDryRunConfig} config
1162
+ **/
1163
+ ethTransactWithConfig: GenericRuntimeApiMethod<
1164
+ (
1165
+ tx: PalletReviveEvmApiRpcTypesGenGenericTransaction,
1166
+ config: PalletReviveEvmApiRpcTypesDryRunConfig,
1167
+ ) => Promise<Result<PalletRevivePrimitivesEthTransactInfo, PalletRevivePrimitivesEthTransactError>>
1168
+ >;
1169
+
1121
1170
  /**
1122
1171
  * Upload new code without instantiating a contract from it.
1123
1172
  *
@@ -1230,7 +1279,7 @@ export interface RuntimeApis extends GenericRuntimeApis {
1230
1279
  *
1231
1280
  * @callname: ReviveApi_block_author
1232
1281
  **/
1233
- blockAuthor: GenericRuntimeApiMethod<() => Promise<H160 | undefined>>;
1282
+ blockAuthor: GenericRuntimeApiMethod<() => Promise<H160>>;
1234
1283
 
1235
1284
  /**
1236
1285
  * Get the H160 address associated to this account id
@@ -1240,6 +1289,14 @@ export interface RuntimeApis extends GenericRuntimeApis {
1240
1289
  **/
1241
1290
  address: GenericRuntimeApiMethod<(accountId: AccountId32Like) => Promise<H160>>;
1242
1291
 
1292
+ /**
1293
+ * Get the account id associated to this H160 address.
1294
+ *
1295
+ * @callname: ReviveApi_account_id
1296
+ * @param {H160} address
1297
+ **/
1298
+ accountId: GenericRuntimeApiMethod<(address: H160) => Promise<AccountId32>>;
1299
+
1243
1300
  /**
1244
1301
  * The address used to call the runtime's pallets dispatchables
1245
1302
  *
@@ -1255,6 +1312,16 @@ export interface RuntimeApis extends GenericRuntimeApis {
1255
1312
  **/
1256
1313
  code: GenericRuntimeApiMethod<(address: H160) => Promise<Bytes>>;
1257
1314
 
1315
+ /**
1316
+ * Construct the new balance and dust components of this EVM balance.
1317
+ *
1318
+ * @callname: ReviveApi_new_balance_with_dust
1319
+ * @param {U256} balance
1320
+ **/
1321
+ newBalanceWithDust: GenericRuntimeApiMethod<
1322
+ (balance: U256) => Promise<Result<[bigint, number], PalletRevivePrimitivesBalanceConversionError>>
1323
+ >;
1324
+
1258
1325
  /**
1259
1326
  * Generic runtime api call
1260
1327
  **/