Fix access list for EIP1559 transactions (#34480)
This commit is contained in:
@@ -269,6 +269,7 @@ std::optional<Eip1559Transaction> Eip1559Transaction::FromValue(
|
||||
tx.v_ = tx_2930->v();
|
||||
tx.r_ = tx_2930->r();
|
||||
tx.s_ = tx_2930->s();
|
||||
tx.access_list_ = std::move(*tx_2930->access_list());
|
||||
|
||||
return tx;
|
||||
}
|
||||
|
||||
@@ -28,23 +28,6 @@ Eip2930Transaction::AccessListItem::~AccessListItem() = default;
|
||||
Eip2930Transaction::AccessListItem::AccessListItem(const AccessListItem&) =
|
||||
default;
|
||||
|
||||
bool Eip2930Transaction::AccessListItem::operator==(
|
||||
const AccessListItem& item) const {
|
||||
if (!std::equal(address.begin(), address.end(), item.address.begin())) {
|
||||
return false;
|
||||
}
|
||||
if (storage_keys.size() != item.storage_keys.size()) {
|
||||
return false;
|
||||
}
|
||||
for (size_t i = 0; i < storage_keys.size(); ++i) {
|
||||
if (!std::equal(storage_keys[i].begin(), storage_keys[i].end(),
|
||||
item.storage_keys[i].begin())) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Eip2930Transaction::Eip2930Transaction(const Eip2930Transaction&) = default;
|
||||
Eip2930Transaction::Eip2930Transaction(
|
||||
std::optional<uint256_t> nonce,
|
||||
@@ -63,12 +46,6 @@ Eip2930Transaction::Eip2930Transaction() : chain_id_(0) {
|
||||
}
|
||||
Eip2930Transaction::~Eip2930Transaction() = default;
|
||||
|
||||
bool Eip2930Transaction::operator==(const Eip2930Transaction& tx) const {
|
||||
return EthTransaction::operator==(tx) && chain_id_ == tx.chain_id_ &&
|
||||
std::equal(access_list_.begin(), access_list_.end(),
|
||||
tx.access_list_.begin());
|
||||
}
|
||||
|
||||
// static
|
||||
std::optional<Eip2930Transaction> Eip2930Transaction::FromTxData(
|
||||
const mojom::TxDataPtr& tx_data,
|
||||
|
||||
@@ -23,7 +23,7 @@ class Eip2930Transaction : public EthTransaction {
|
||||
AccessListItem();
|
||||
~AccessListItem();
|
||||
AccessListItem(const AccessListItem&);
|
||||
bool operator==(const AccessListItem&) const;
|
||||
bool operator==(const AccessListItem&) const = default;
|
||||
|
||||
AccessedAddress address;
|
||||
std::vector<AccessedStorageKey> storage_keys;
|
||||
@@ -34,7 +34,7 @@ class Eip2930Transaction : public EthTransaction {
|
||||
Eip2930Transaction();
|
||||
Eip2930Transaction(const Eip2930Transaction&);
|
||||
~Eip2930Transaction() override;
|
||||
bool operator==(const Eip2930Transaction&) const;
|
||||
bool operator==(const Eip2930Transaction&) const = default;
|
||||
|
||||
static std::optional<Eip2930Transaction> FromTxData(const mojom::TxDataPtr&,
|
||||
uint256_t chain_id,
|
||||
|
||||
Reference in New Issue
Block a user