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

DVM support EIP1559 #1040

Merged
merged 64 commits into from
Mar 2, 2022
Merged

DVM support EIP1559 #1040

merged 64 commits into from
Mar 2, 2022

Conversation

boundless-forest
Copy link
Member

@boundless-forest boundless-forest commented Jan 13, 2022

Companion for polkadot-evm/frontier#527 and polkadot-evm/frontier#429

What contains in this pr:

  1. Update frontier branch to include EIP1559 support
  2. Upgrade crate evm version from patched version to v0.33.0, no patched crated needed.
  3. Replace dp-consensus with upstream fp-consensus, dvm-rpc-runtime-api with fp-rpc.
  4. Upgrade dvm transaction type from LegacyTransaction(V0) to TransactionV2
pub type TransactionV0 = LegacyTransaction;

pub struct LegacyTransaction {
	pub nonce: U256,
	pub gas_price: U256,
	pub gas_limit: U256,
	pub action: TransactionAction,
	pub value: U256,
	pub input: Bytes,
	pub signature: TransactionSignature,
  }

pub enum TransactionV2 {
	/// Legacy transaction type
	Legacy(LegacyTransaction),
	/// EIP-2930 transaction
	EIP2930(EIP2930Transaction),
	/// EIP-1559 transaction
	EIP1559(EIP1559Transaction),
}

pub struct EIP2930Transaction {
	pub chain_id: u64,
	pub nonce: U256,
	pub gas_price: U256,
	pub gas_limit: U256,
	pub action: TransactionAction,
	pub value: U256,
	pub input: Bytes,
	pub access_list: AccessList,
	pub odd_y_parity: bool,
	pub r: H256,
	pub s: H256,
}

pub struct EIP1559Transaction {
	pub chain_id: u64,
	pub nonce: U256,
	pub max_priority_fee_per_gas: U256,
	pub max_fee_per_gas: U256,
	pub gas_limit: U256,
	pub action: TransactionAction,
	pub value: U256,
	pub input: Bytes,
	pub access_list: AccessList,
	pub odd_y_parity: bool,
	pub r: H256,
	pub s: H256,
}
  1. Upgrade dvm block type from BlockV0 to BlockV2.
pub type BlockV0 = Block<TransactionV0>;
pub type BlockV2 = Block<TransactionV2>;
  1. Add storage overrides schema v2 and upgrade EthereumStorageSchema to V2.
  2. Introduce AdvancedTransaction in DVM transaction execution, which can be think of a wrapper for RPC transaction and internal transaction.
pub enum AdvancedTransaction {
	Ethereum(Transaction),
	// The internal transaction is an special LegacyTransaction
	Internal(ethereum::TransactionV0),
}
  1. Upgrade precompile interface, introduce a new input param is_static and update the return type to PrecompileResult.
  2. Introduce OnChargeTransaction to evm pallet to handle withdraw_fee, correct_and_deposit_fee, pay_priority_fee.
  3. Add base-fee pallet, which will replace FixedGasPrice in the next prs.

Other

  • Have discussed with AurevoirXavier, using branch=eip-1559 in this pr is ok, we'll replace it with a more proper name before the next public release.

Base automatically changed from bear-dvm-update-to-509 to main January 17, 2022 08:01
@boundless-forest boundless-forest force-pushed the bear-dvm-support-eip1559 branch from 2ae17ff to 65e0086 Compare January 24, 2022 13:10
@github-actions
Copy link

github-actions bot commented Feb 15, 2022

Commit dc6f5cf

Pangolin

Check Runtime Version

Check Storage Prefix

+ Pallet: "BaseFee"

+ Pallet: "Beefy"

+ Pallet: "BeefyGadget"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 624, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 611, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 630, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 617, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 618, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 605, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }

+ Pallet: "Mmr"

+ Pallet: "MmrLeaf"

Pallet Session:
+ 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 334, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
- 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 332, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
+ 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 332, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }
- 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 330, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }​

Pangoro

Check Runtime Version

Check Storage Prefix

+ Pallet: "BaseFee"

+ Pallet: "Beefy"

+ Pallet: "BeefyGadget"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 402, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 389, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 408, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 395, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 396, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 383, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }

+ Pallet: "Mmr"

+ Pallet: "MmrLeaf"

Pallet Session:
+ 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 270, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
- 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 268, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
+ 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 268, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }
- 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 266, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }​
Commit b0521bf

Pangolin

Check Runtime Version

Runtime Version {
	spec_name: Pangolin
	impl_name: Pangolin
	authoring_version: 0
-	spec_version: 28030
+	spec_version: 28040
	impl_version: 0
	transaction_version: 0
}​

Check Storage Prefix

+ Pallet: "BaseFee"

+ Pallet: "Beefy"

+ Pallet: "BeefyGadget"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 624, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 611, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 630, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 617, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 618, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 605, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }

+ Pallet: "Mmr"

+ Pallet: "MmrLeaf"

Pallet Session:
+ 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 334, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
- 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 332, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
+ 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 332, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }
- 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 330, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }​

Pangoro

Check Runtime Version

Runtime Version {
	spec_name: Pangoro
	impl_name: Pangoro
	authoring_version: 0
-	spec_version: 28030
+	spec_version: 28040
	impl_version: 0
	transaction_version: 0
}​

Check Storage Prefix

+ Pallet: "BaseFee"

+ Pallet: "Beefy"

+ Pallet: "BeefyGadget"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 402, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 389, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 408, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 395, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 396, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 383, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }

+ Pallet: "Mmr"

+ Pallet: "MmrLeaf"

Pallet Session:
+ 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 270, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
- 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 268, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
+ 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 268, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }
- 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 266, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }​
Commit aec0114

Pangolin

Check Runtime Version

Runtime Version {
	spec_name: Pangolin
	impl_name: Pangolin
	authoring_version: 0
-	spec_version: 28030
+	spec_version: 28040
	impl_version: 0
	transaction_version: 0
}​

Check Storage Prefix

+ Pallet: "BaseFee"

+ Pallet: "Beefy"

+ Pallet: "BeefyGadget"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 624, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 611, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 630, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 617, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 618, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 605, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }

+ Pallet: "Mmr"

+ Pallet: "MmrLeaf"

Pallet Session:
+ 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 334, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
- 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 332, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
+ 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 332, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }
- 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 330, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }​

Pangoro

Check Runtime Version

Runtime Version {
	spec_name: Pangoro
	impl_name: Pangoro
	authoring_version: 0
-	spec_version: 28030
+	spec_version: 28040
	impl_version: 0
	transaction_version: 0
}​

Check Storage Prefix

+ Pallet: "BaseFee"

+ Pallet: "Beefy"

+ Pallet: "BeefyGadget"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 402, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 389, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 408, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 395, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 396, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 383, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }

+ Pallet: "Mmr"

+ Pallet: "MmrLeaf"

Pallet Session:
+ 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 270, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
- 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 268, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
+ 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 268, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }
- 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 266, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }​
Commit 06cd016

Pangolin

Check Runtime Version

Runtime Version {
	spec_name: Pangolin
	impl_name: Pangolin
	authoring_version: 0
-	spec_version: 28030
+	spec_version: 28040
	impl_version: 0
	transaction_version: 0
}​

Check Storage Prefix

+ Pallet: "BaseFee"

+ Pallet: "Beefy"

+ Pallet: "BeefyGadget"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 624, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 611, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 630, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 617, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 618, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 605, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }

+ Pallet: "Mmr"

+ Pallet: "MmrLeaf"

Pallet Session:
+ 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 334, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
- 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 332, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
+ 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 332, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }
- 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 330, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }​

Pangoro

Check Runtime Version

Runtime Version {
	spec_name: Pangoro
	impl_name: Pangoro
	authoring_version: 0
-	spec_version: 28030
+	spec_version: 28040
	impl_version: 0
	transaction_version: 0
}​

Check Storage Prefix

+ Pallet: "BaseFee"

+ Pallet: "Beefy"

+ Pallet: "BeefyGadget"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 402, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 389, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 408, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 395, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 396, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 383, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }

+ Pallet: "Mmr"

+ Pallet: "MmrLeaf"

Pallet Session:
+ 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 270, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
- 	Entry: StorageEntryMetadata { name: "NextKeys", modifier: Optional, ty: Map { hashers: [Twox64Concat], key: UntrackedSymbol { id: 0, marker: PhantomData }, value: UntrackedSymbol { id: 268, marker: PhantomData } }, default: [0], docs: [" The next session keys for a validator."] }
+ 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 268, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }
- 	Entry: StorageEntryMetadata { name: "QueuedKeys", modifier: Default, ty: Plain(UntrackedSymbol { id: 266, marker: PhantomData }), default: [0], docs: [" The queued keys for the next session. When the next session begins, these keys", " will be used to determine the validator's session keys."] }​
Commit e67be9a

Pangolin

Check Runtime Version

Check Storage Prefix

+ Pallet: "BaseFee"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 624, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 615, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 630, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 621, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 618, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 609, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }​

Pangoro

Check Runtime Version

Check Storage Prefix

+ Pallet: "BaseFee"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 402, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 393, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 408, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 399, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 396, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 387, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }​
Commit b4e7c7e

Pangolin

Check Runtime Version

Check Storage Prefix

+ Pallet: "BaseFee"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 624, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 615, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 630, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 621, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 618, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 609, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }​

Pangoro

Check Runtime Version

Check Storage Prefix

+ Pallet: "BaseFee"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 402, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 393, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 408, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 399, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 396, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 387, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }​
Commit c1d181b

Pangolin

Check Runtime Version

Check Storage Prefix

+ Pallet: "BaseFee"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 624, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 615, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 630, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 621, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 618, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 609, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }​

Pangoro

Check Runtime Version

Check Storage Prefix

+ Pallet: "BaseFee"

Pallet Ethereum:
+ 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 402, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
- 	Entry: StorageEntryMetadata { name: "CurrentBlock", modifier: Optional, ty: Plain(UntrackedSymbol { id: 393, marker: PhantomData }), default: [0], docs: [" The current Ethereum block."] }
+ 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 408, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
- 	Entry: StorageEntryMetadata { name: "CurrentTransactionStatuses", modifier: Optional, ty: Plain(UntrackedSymbol { id: 399, marker: PhantomData }), default: [0], docs: [" The current transaction statuses."] }
+ 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 396, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }
- 	Entry: StorageEntryMetadata { name: "Pending", modifier: Default, ty: Plain(UntrackedSymbol { id: 387, marker: PhantomData }), default: [0], docs: [" Current building block's transactions and receipts."] }​

@boundless-forest
Copy link
Member Author

@hackfisher @AurevoirXavier @xiaoch05 There is an issue to track some known issues with this pull request #1082. And prefer to solve them later in separate prs. Thus, Please take a review as soon as possible.

@xiaoch05
Copy link
Contributor

LGTM,except the known issues. Should be fixed before next runtime upgrade.

@boundless-forest
Copy link
Member Author

Can we merge this today?

@boundless-forest boundless-forest changed the title DVM support EIP1559 DVM support EIP1559[Do not merge until Beef stable] Feb 18, 2022
@boundless-forest boundless-forest changed the title DVM support EIP1559[Do not merge until Beef stable] DVM support EIP1559 *[Do not merge until Beef stable]* Feb 18, 2022
@boundless-forest boundless-forest changed the title DVM support EIP1559 *[Do not merge until Beef stable]* DVM support EIP1559 [ Do not merge until Beef stable ] Feb 18, 2022
@boundless-forest boundless-forest mentioned this pull request Feb 22, 2022
@boundless-forest boundless-forest changed the title DVM support EIP1559 [ Do not merge until Beef stable ] DVM support EIP1559 Mar 1, 2022
Signed-off-by: Xavier Lau <xavier@inv.cafe>
@aurexav aurexav force-pushed the bear-dvm-support-eip1559 branch from ffd99f4 to b4e7c7e Compare March 2, 2022 06:50
@aurexav aurexav added C-EVM [Component] Something about EVM and removed P9 High labels Mar 2, 2022
@aurexav aurexav merged commit 58fdfc4 into main Mar 2, 2022
@aurexav aurexav deleted the bear-dvm-support-eip1559 branch March 2, 2022 07:59
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C-EVM [Component] Something about EVM
Projects
None yet
4 participants