diff --git op-geth/core/state_transition.go Celo/core/state_transition.go
+
index 2de1cad7626c317894ed184a19daecc4f5e44c4b..edd0bd5eae19a835eb3135712d267289bbe89cb1 100644
--- op-geth/core/state_transition.go
+++ Celo/core/state_transition.go
@@ -22,11 +22,13 @@ "math"
@@ -2124,10 +2141,10 @@
if accessList != nil {
gas += uint64(len(accessList)) * params.TxAccessListAddressGas
gas += uint64(accessList.StorageKeys()) * params.TxAccessListStorageKeyGas
-
@@ -151,10 +179,18 @@ IsSystemTx bool // IsSystemTx indicates the message, if also a deposit, does not emit gas usage.
- IsDepositTx bool // IsDepositTx indicates the message is force-included and can persist a mint.
- Mint *big.Int // Mint is the amount to mint before EVM processing, or nil if there is no minting.
+
@@ -156,10 +184,18 @@ Mint *big.Int // Mint is the amount to mint before EVM processing, or nil if there is no minting.
RollupCostData types.RollupCostData // RollupCostData caches data to compute the fee we charge for data availability
+
+ PostValidation func(evm *vm.EVM, result *ExecutionResult) error
+
+ // Celo additions
+
@@ -2142,12 +2159,12 @@
-func TransactionToMessage(tx *types.Transaction, s types.Signer, baseFee *big.Int) (*Message, error) {
+func TransactionToMessage(tx *types.Transaction, s types.Signer, baseFee *big.Int, exchangeRates map[common.Address]*big.Rat) (*Message, error) {
msg := &Message{
- Nonce: tx.Nonce(),
- GasLimit: tx.Gas(),
-
@@ -173,9 +209,19 @@
- SkipAccountChecks: false,
- BlobHashes: tx.BlobHashes(),
- BlobGasFeeCap: tx.BlobGasFeeCap(),
+ Nonce: tx.Nonce(),
+ GasLimit: tx.Gas(),
+
@@ -179,9 +215,19 @@ IsSystemTx: tx.IsSystemTx(),
+ IsDepositTx: tx.IsDepositTx(),
+ Mint: tx.Mint(),
+ RollupCostData: tx.RollupCostData(),
+
+ FeeCurrency: tx.FeeCurrency(),
+ MaxFeeInFeeCurrency: nil, // Will only be set once CIP-66 is implemented
@@ -2164,7 +2181,21 @@
msg.GasPrice = cmath.BigMin(msg.GasPrice.Add(msg.GasTipCap, baseFee), msg.GasFeeCap)
}
var err error
-
@@ -191,6 +237,7 @@ // the gas used (which includes gas refunds) and an error if it failed. An error always
+
@@ -189,6 +235,13 @@ msg.From, err = types.Sender(s, tx)
+ return msg, err
+ }
+
+
+// IsFeeCurrencyDenominated returns whether the gas-price related
+
+// fields are denominated in a given fee currency or in the native token.
+
+// This effectively is only true for CIP-64 transactions.
+
+func (msg *Message) IsFeeCurrencyDenominated() bool {
+
+ return msg.FeeCurrency != nil && msg.MaxFeeInFeeCurrency == nil
+
+}
+
+
+ // ApplyMessage computes the new state by applying the given message
+ // against the old state within the environment.
+ //
+
@@ -197,6 +250,7 @@ // the gas used (which includes gas refunds) and an error if it failed. An error always
// indicates a core error meaning that the message would always fail for that particular
// state and would never be accepted within a block.
func ApplyMessage(evm *vm.EVM, msg *Message, gp *GasPool) (*ExecutionResult, error) {
@@ -2172,7 +2203,7 @@
return NewStateTransition(evm, msg, gp).TransitionDb()
}
-
@@ -223,6 +270,8 @@ gasRemaining uint64
+
@@ -229,6 +283,8 @@ gasRemaining uint64
initialGas uint64
state vm.StateDB
evm *vm.EVM
@@ -2181,17 +2212,17 @@
}
// NewStateTransition initialises and returns a new state transition object.
-
@@ -258,7 +307,8 @@ if st.msg.GasFeeCap != nil {
- balanceCheck.SetUint64(st.msg.GasLimit)
- balanceCheck = balanceCheck.Mul(balanceCheck, st.msg.GasFeeCap)
+
@@ -267,7 +323,8 @@ if l1Cost != nil {
+ balanceCheck.Add(balanceCheck, l1Cost)
+ }
}
- balanceCheck.Add(balanceCheck, st.msg.Value)
+ // Moved to canPayFee
+ // balanceCheck.Add(balanceCheck, st.msg.Value)
- if l1Cost != nil {
- balanceCheck.Add(balanceCheck, l1Cost)
- }
-
@@ -275,12 +325,8 @@ blobFee.Mul(blobFee, st.evm.Context.BlobBaseFee)
+
+ if st.evm.ChainConfig().IsCancun(st.evm.Context.BlockNumber, st.evm.Context.Time) {
+ if blobGas := st.blobGasUsed(); blobGas > 0 {
+
@@ -281,12 +338,8 @@ blobFee.Mul(blobFee, st.evm.Context.BlobBaseFee)
mgval.Add(mgval, blobFee)
}
}
@@ -2206,7 +2237,7 @@
}
if err := st.gp.SubGas(st.msg.GasLimit); err != nil {
return err
-
@@ -292,9 +338,8 @@ }
+
@@ -298,9 +351,8 @@ }
st.gasRemaining = st.msg.GasLimit
st.initialGas = st.msg.GasLimit
@@ -2218,7 +2249,7 @@
}
func (st *StateTransition) preCheck() error {
-
@@ -335,6 +380,19 @@ return fmt.Errorf("%w: address %v, codehash: %s", ErrSenderNoEOA,
+
@@ -343,6 +395,19 @@ return fmt.Errorf("%w: address %v, codehash: %s", ErrSenderNoEOA,
msg.From.Hex(), codeHash)
}
}
@@ -2238,7 +2269,7 @@
// Make sure that transaction gasFeeCap is greater than the baseFee (post london)
if st.evm.ChainConfig().IsLondon(st.evm.Context.BlockNumber) {
// Skip the checks if gas fields are zero and baseFee was explicitly disabled (eth_call)
-
@@ -352,14 +410,20 @@ if msg.GasFeeCap.Cmp(msg.GasTipCap) < 0 {
+
@@ -360,14 +425,20 @@ if msg.GasFeeCap.Cmp(msg.GasTipCap) < 0 {
return fmt.Errorf("%w: address %v, maxPriorityFeePerGas: %s, maxFeePerGas: %s", ErrTipAboveFeeCap,
msg.From.Hex(), msg.GasTipCap, msg.GasFeeCap)
}
@@ -2261,7 +2292,7 @@
// Check the blob version validity
if msg.BlobHashes != nil {
// The to field of a blob tx type is mandatory, and a `BlobTx` transaction internally
-
@@ -455,20 +519,34 @@ // 4. the purchased gas is enough to cover intrinsic usage
+
@@ -470,11 +541,6 @@ // 4. the purchased gas is enough to cover intrinsic usage
// 5. there is no overflow when calculating intrinsic gas
// 6. caller has enough balance to cover asset transfer for **topmost** call
@@ -2273,10 +2304,10 @@
var (
msg = st.msg
sender = vm.AccountRef(msg.From)
- rules = st.evm.ChainConfig().Rules(st.evm.Context.BlockNumber, st.evm.Context.Random != nil, st.evm.Context.Time)
+
@@ -482,8 +548,27 @@ rules = st.evm.ChainConfig().Rules(st.evm.Context.BlockNumber, st.evm.Context.Random != nil, st.evm.Context.Time)
contractCreation = msg.To == nil
)
-
+
+
+ // Execute the preparatory steps for state transition which includes:
+ // - prepare accessList(post-berlin)
+ // - reset transient storage(eip 1153)
@@ -2286,7 +2317,7 @@
+ if err := st.preCheck(); err != nil {
+ return nil, err
+ }
-
+
+
// Check clauses 4-5, subtract intrinsic gas if everything is correct
- gas, err := IntrinsicGas(msg.Data, msg.AccessList, contractCreation, rules.IsHomestead, rules.IsIstanbul, rules.IsShanghai)
+ gas, err := IntrinsicGas(
@@ -2302,7 +2333,7 @@
if err != nil {
return nil, err
}
-
@@ -505,11 +583,6 @@ // Check whether the init code size has been exceeded.
+
@@ -520,11 +605,6 @@ // Check whether the init code size has been exceeded.
if rules.IsShanghai && contractCreation && len(msg.Data) > params.MaxInitCodeSize {
return nil, fmt.Errorf("%w: code size %v limit %v", ErrMaxInitCodeSizeExceeded, len(msg.Data), params.MaxInitCodeSize)
}
@@ -2314,7 +2345,7 @@
var (
ret []byte
-
@@ -558,43 +631,9 @@ Err: vmerr,
+
@@ -573,43 +653,9 @@ Err: vmerr,
ReturnData: ret,
}, nil
}
@@ -2335,32 +2366,32 @@
-
- // add the coinbase to the witness iff the fee is greater than 0
- if rules.IsEIP4762 && fee.Sign() != 0 {
-
- st.evm.AccessEvents.BalanceGas(st.evm.Context.Coinbase, true)
+
- st.evm.AccessEvents.AddAccount(st.evm.Context.Coinbase, true)
- }
-
- }
-
-
- // Check that we are post bedrock to enable op-geth to be able to create pseudo pre-bedrock blocks (these are pre-bedrock, but don't follow l2 geth rules)
-
- // Note optimismConfig will not be nil if rules.IsOptimismBedrock is true
-
- if optimismConfig := st.evm.ChainConfig().Optimism; optimismConfig != nil && rules.IsOptimismBedrock && !st.msg.IsDepositTx {
-
- gasCost := new(big.Int).Mul(new(big.Int).SetUint64(st.gasUsed()), st.evm.Context.BaseFee)
-
- amtU256, overflow := uint256.FromBig(gasCost)
-
- if overflow {
-
- return nil, fmt.Errorf("optimism gas cost overflows U256: %d", gasCost)
-
- }
-
- st.state.AddBalance(params.OptimismBaseFeeRecipient, amtU256, tracing.BalanceIncreaseRewardTransactionFee)
-
- if l1Cost := st.evm.Context.L1CostFunc(st.msg.RollupCostData, st.evm.Context.Time); l1Cost != nil {
-
- amtU256, overflow = uint256.FromBig(l1Cost)
+
- // Check that we are post bedrock to enable op-geth to be able to create pseudo pre-bedrock blocks (these are pre-bedrock, but don't follow l2 geth rules)
+
- // Note optimismConfig will not be nil if rules.IsOptimismBedrock is true
+
- if optimismConfig := st.evm.ChainConfig().Optimism; optimismConfig != nil && rules.IsOptimismBedrock && !st.msg.IsDepositTx {
+
- gasCost := new(big.Int).Mul(new(big.Int).SetUint64(st.gasUsed()), st.evm.Context.BaseFee)
+
- amtU256, overflow := uint256.FromBig(gasCost)
- if overflow {
-
- return nil, fmt.Errorf("optimism l1 cost overflows U256: %d", l1Cost)
+
- return nil, fmt.Errorf("optimism gas cost overflows U256: %d", gasCost)
+
- }
+
- st.state.AddBalance(params.OptimismBaseFeeRecipient, amtU256, tracing.BalanceIncreaseRewardTransactionFee)
+
- if l1Cost := st.evm.Context.L1CostFunc(st.msg.RollupCostData, st.evm.Context.Time); l1Cost != nil {
+
- amtU256, overflow = uint256.FromBig(l1Cost)
+
- if overflow {
+
- return nil, fmt.Errorf("optimism l1 cost overflows U256: %d", l1Cost)
+
- }
+
- st.state.AddBalance(params.OptimismL1FeeRecipient, amtU256, tracing.BalanceIncreaseRewardTransactionFee)
- }
-
- st.state.AddBalance(params.OptimismL1FeeRecipient, amtU256, tracing.BalanceIncreaseRewardTransactionFee)
- }
+ if err := st.distributeTxFees(); err != nil {
+ return nil, err
}
return &ExecutionResult{
-
@@ -618,14 +657,7 @@ }
+
@@ -633,14 +679,7 @@ }
st.gasRemaining += refund
@@ -2382,8 +2413,8 @@
-
diff --git op-geth/core/txpool/blobpool/blobpool.go Celo/core/txpool/blobpool/blobpool.go
-
index dc2a6c051ad30274ed3e5c5094b9bda6ebb51286..d252f1d4e874376d70d631ade60d51a2f5bc3899 100644
+
diff --git op-geth/core/txpool/blobpool/blobpool.go Celo/core/txpool/blobpool/blobpool.go
+
index 19908d9e8fb61078ff0242728bbc89cac0c2371f..e94a6d69c7225ecd996a7f939bfa59b02354d444 100644
--- op-geth/core/txpool/blobpool/blobpool.go
+++ Celo/core/txpool/blobpool/blobpool.go
@@ -32,6 +32,7 @@
@@ -2521,8 +2552,8 @@
-
diff --git op-geth/core/txpool/blobpool/celo_blobpool.go Celo/core/txpool/blobpool/celo_blobpool.go
+
diff --git op-geth/core/txpool/blobpool/celo_blobpool.go Celo/core/txpool/blobpool/celo_blobpool.go
new file mode 100644
index 0000000000000000000000000000000000000000..7b453a3ca44edcc8b4e218ea1c4233f38c3c1ae8
--- /dev/null
@@ -2585,8 +2616,8 @@
-
diff --git op-geth/core/txpool/celo_validation.go Celo/core/txpool/celo_validation.go
+
diff --git op-geth/core/txpool/celo_validation.go Celo/core/txpool/celo_validation.go
new file mode 100644
index 0000000000000000000000000000000000000000..91e2025ff51f02337af5e6a39a5f74be008aea8f
--- /dev/null
@@ -2691,8 +2722,8 @@
-
diff --git op-geth/core/txpool/legacypool/celo_legacypool.go Celo/core/txpool/legacypool/celo_legacypool.go
+
diff --git op-geth/core/txpool/legacypool/celo_legacypool.go Celo/core/txpool/legacypool/celo_legacypool.go
new file mode 100644
index 0000000000000000000000000000000000000000..a6f4da7a2ba8874ecf70e055188f66bf256db896
--- /dev/null
@@ -2780,8 +2811,8 @@
-
diff --git op-geth/core/txpool/legacypool/celo_list.go Celo/core/txpool/legacypool/celo_list.go
+
diff --git op-geth/core/txpool/legacypool/celo_list.go Celo/core/txpool/legacypool/celo_list.go
new file mode 100644
index 0000000000000000000000000000000000000000..b1c5594e743fbab0c52ea00e0c6d79aea1b8edc9
--- /dev/null
@@ -2960,8 +2991,8 @@
-
diff --git op-geth/core/txpool/legacypool/celo_list_test.go Celo/core/txpool/legacypool/celo_list_test.go
+
diff --git op-geth/core/txpool/legacypool/celo_list_test.go Celo/core/txpool/legacypool/celo_list_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..86782f41ded861297605af14b37556b510b96c0e
--- /dev/null
@@ -3205,8 +3236,8 @@
-
diff --git op-geth/core/txpool/legacypool/legacypool.go Celo/core/txpool/legacypool/legacypool.go
-
index 6e004ed3568af17b2f0959c5641390d1ef3e1ff3..07921ba1249caa383790c43dc737012080a632a6 100644
+
diff --git op-geth/core/txpool/legacypool/legacypool.go Celo/core/txpool/legacypool/legacypool.go
+
index 2579104e5a4e1aae06f9f3f9da0ddd50600df506..c73c95b052817d10519bcee9902a917d7ff21134 100644
--- op-geth/core/txpool/legacypool/legacypool.go
+++ Celo/core/txpool/legacypool/legacypool.go
@@ -19,6 +19,7 @@ package legacypool
@@ -3334,17 +3365,17 @@
txs = txs[:i]
break
}
-
@@ -580,6 +595,9 @@ GasFeeCap: uint256.MustFromBig(txs[i].GasFeeCap()),
- GasTipCap: uint256.MustFromBig(txs[i].GasTipCap()),
+
@@ -593,6 +608,9 @@ GasTipCap: uint256.MustFromBig(txs[i].GasTipCap()),
Gas: txs[i].Gas(),
BlobGas: txs[i].BlobGas(),
+ DABytes: daBytes,
+
+ // Celo specific
+ FeeCurrency: txs[i].FeeCurrency(),
}
}
pending[addr] = lazies
-
@@ -634,12 +652,13 @@ // rules, but does not check state-dependent validation such as sufficient balance.
+
@@ -647,12 +665,13 @@ // rules, but does not check state-dependent validation such as sufficient balance.
// This check is meant as an early check which only needs to be performed once,
// and does not require the pool mutex to be held.
func (pool *LegacyPool) validateTxBasics(tx *types.Transaction, local bool) error {
@@ -3363,7 +3394,7 @@
MaxSize: txMaxSize,
MinTip: pool.gasTip.Load().ToBig(),
EffectiveGasCeil: pool.config.EffectiveGasCeil,
-
@@ -647,7 +666,7 @@ }
+
@@ -660,7 +679,7 @@ }
if local {
opts.MinTip = new(big.Int)
}
@@ -3372,7 +3403,7 @@
return err
}
return nil
-
@@ -670,31 +689,68 @@ have += list.Len()
+
@@ -683,31 +702,68 @@ have += list.Len()
}
return have, math.MaxInt
},
@@ -3449,7 +3480,7 @@
return nil
}
-
@@ -813,7 +869,7 @@
+
@@ -826,7 +882,7 @@
// Try to replace an existing transaction in the pending pool
if list := pool.pending[from]; list != nil && list.Contains(tx.Nonce()) {
// Nonce already pending, check if required price bump is met
@@ -3458,7 +3489,7 @@
if !inserted {
pendingDiscardMeter.Mark(1)
return false, txpool.ErrReplaceUnderpriced
-
@@ -887,7 +943,7 @@ from, _ := types.Sender(pool.signer, tx) // already validated
+
@@ -900,7 +956,7 @@ from, _ := types.Sender(pool.signer, tx) // already validated
if pool.queue[from] == nil {
pool.queue[from] = newList(false)
}
@@ -3467,7 +3498,7 @@
if !inserted {
// An older transaction was better, discard this
queuedDiscardMeter.Mark(1)
-
@@ -941,7 +997,7 @@ pool.pending[addr] = newList(true)
+
@@ -954,7 +1010,7 @@ pool.pending[addr] = newList(true)
}
list := pool.pending[addr]
@@ -3476,7 +3507,7 @@
if !inserted {
// An older transaction was better, discard this
pool.all.Remove(hash)
-
@@ -1074,6 +1130,19 @@ replaced, err := pool.add(tx, local)
+
@@ -1087,6 +1143,19 @@ replaced, err := pool.add(tx, local)
errs[i] = err
if err == nil && !replaced {
dirty.addTx(tx)
@@ -3496,7 +3527,7 @@
}
}
validTxMeter.Mark(int64(len(dirty.accounts)))
-
@@ -1337,7 +1406,7 @@ pool.demoteUnexecutables()
+
@@ -1350,7 +1419,7 @@ pool.demoteUnexecutables()
if reset.newHead != nil {
if pool.chainconfig.IsLondon(new(big.Int).Add(reset.newHead.Number, big.NewInt(1))) {
pendingBaseFee := eip1559.CalcBaseFee(pool.chainconfig, reset.newHead, reset.newHead.Time+1)
@@ -3505,7 +3536,7 @@
} else {
pool.priced.Reheap()
}
-
@@ -1467,6 +1536,7 @@ }
+
@@ -1480,6 +1549,7 @@ }
pool.currentHead.Store(newHead)
pool.currentState = statedb
pool.pendingNonces = newNoncer(statedb)
@@ -3513,7 +3544,7 @@
if costFn := types.NewL1CostFunc(pool.chainconfig, statedb); costFn != nil {
pool.l1CostFn = func(rollupCostData types.RollupCostData) *big.Int {
-
@@ -1480,24 +1550,6 @@ core.SenderCacher.Recover(pool.signer, reinject)
+
@@ -1493,24 +1563,6 @@ core.SenderCacher.Recover(pool.signer, reinject)
pool.addTxsLocked(reinject, false)
}
@@ -3538,7 +3569,7 @@
// promoteExecutables moves transactions that have become processable from the
// future queue to the set of pending transactions. During this process, all
// invalidated transactions (low nonce, low balance) are deleted.
-
@@ -1519,10 +1571,9 @@ hash := tx.Hash()
+
@@ -1532,10 +1584,9 @@ hash := tx.Hash()
pool.all.Remove(hash)
}
log.Trace("Removed old queued transactions", "count", len(forwards))
@@ -3551,7 +3582,7 @@
for _, tx := range drops {
hash := tx.Hash()
pool.all.Remove(hash)
-
@@ -1722,10 +1773,9 @@ hash := tx.Hash()
+
@@ -1735,10 +1786,9 @@ hash := tx.Hash()
pool.all.Remove(hash)
log.Trace("Removed old pending transaction", "hash", hash)
}
@@ -3570,8 +3601,8 @@
-
diff --git op-geth/core/txpool/legacypool/legacypool_test.go Celo/core/txpool/legacypool/legacypool_test.go
-
index c71544b48cd80152306c33dd63864258646e5c65..bc6341d710ed1da09121181074e4432a93924748 100644
+
diff --git op-geth/core/txpool/legacypool/legacypool_test.go Celo/core/txpool/legacypool/legacypool_test.go
+
index 2aecb3f2e7ddf3e80f4e898e00f8e67d19c9453d..10112b868e920d336eae817d83db753dd86edf8a 100644
--- op-geth/core/txpool/legacypool/legacypool_test.go
+++ Celo/core/txpool/legacypool/legacypool_test.go
-
@@ -200,6 +200,9 @@ }
+
@@ -199,6 +199,9 @@ }
if nonce := pool.pendingNonces.get(addr); nonce != last+1 {
return fmt.Errorf("pending nonce mismatch: have %v, want %v", nonce, last+1)
}
@@ -3618,7 +3649,7 @@
}
return nil
}
-
@@ -2073,7 +2076,7 @@ }
+
@@ -2105,7 +2108,7 @@ }
add(false)
for baseFee = 0; baseFee <= 1000; baseFee += 100 {
@@ -3627,7 +3658,7 @@
add(true)
check(highCap, "fee cap")
add(false)
-
@@ -2229,6 +2232,50 @@ t.Fatalf("queued replacement event firing failed: %v", err)
+
@@ -2261,6 +2264,50 @@ t.Fatalf("queued replacement event firing failed: %v", err)
}
if err := validatePoolInternals(pool); err != nil {
t.Fatalf("pool internal state corrupted: %v", err)
@@ -3639,7 +3670,7 @@
+ t.Parallel()
+
+ // Create the pool to test the pricing enforcement with
-
+ statedb, _ := state.New(types.EmptyRootHash, state.NewDatabase(rawdb.NewMemoryDatabase()), nil)
+
+ statedb, _ := state.New(types.EmptyRootHash, state.NewDatabaseForTesting())
+ blockchain := newTestBlockChain(params.TestChainConfig, 1000000, statedb, new(event.Feed))
+
+ pool := New(testTxPoolConfig, blockchain)
@@ -3684,8 +3715,8 @@
-
diff --git op-geth/core/txpool/legacypool/list.go Celo/core/txpool/legacypool/list.go
+
diff --git op-geth/core/txpool/legacypool/list.go Celo/core/txpool/legacypool/list.go
index 24b18d2273252af4115825c94aaf6f9d8904dd1f..f8d0d399716fc5f7a2d23623d23ff9afcd2901f4 100644
--- op-geth/core/txpool/legacypool/list.go
+++ Celo/core/txpool/legacypool/list.go
@@ -3942,8 +3973,8 @@
-
diff --git op-geth/core/txpool/legacypool/list_test.go Celo/core/txpool/legacypool/list_test.go
+
diff --git op-geth/core/txpool/legacypool/list_test.go Celo/core/txpool/legacypool/list_test.go
index 9f341a7f2026a9ef79944f542fbde08d558c21e2..55537e5965f1b33e905d4c6e933e8d500342ab31 100644
--- op-geth/core/txpool/legacypool/list_test.go
+++ Celo/core/txpool/legacypool/list_test.go
@@ -4039,8 +4070,8 @@
-
diff --git op-geth/core/txpool/subpool.go Celo/core/txpool/subpool.go
-
index 9881ed1b8f960f0a61b7666a5a22412fa0228779..5e0c850fd01cc70eaa271c7fb050126593aeeff3 100644
+
diff --git op-geth/core/txpool/subpool.go Celo/core/txpool/subpool.go
+
index 4e2a0133f33fb592666404afbec7a9898125c7d5..aa02faaa8dcc71c379b56d30dd5881d41b4b3755 100644
--- op-geth/core/txpool/subpool.go
+++ Celo/core/txpool/subpool.go
-
@@ -41,6 +41,9 @@ GasTipCap *uint256.Int // Maximum miner tip per gas the transaction can pay
-
- Gas uint64 // Amount of gas required by the transaction
+
@@ -43,6 +43,9 @@ Gas uint64 // Amount of gas required by the transaction
BlobGas uint64 // Amount of blob gas required by the transaction
+
+ DABytes *big.Int // Amount of data availability bytes this transaction may require if this is a rollup
+
+ // Celo
+ FeeCurrency *common.Address
@@ -4093,8 +4124,8 @@
-
diff --git op-geth/core/txpool/validation.go Celo/core/txpool/validation.go
+
diff --git op-geth/core/txpool/validation.go Celo/core/txpool/validation.go
index 17de989ad309ccd58a547d7538d9df410a6d4e31..1c2d0eb424addb7c75747c17872564ccef4ebfe3 100644
--- op-geth/core/txpool/validation.go
+++ Celo/core/txpool/validation.go
@@ -4279,8 +4310,8 @@
-
diff --git op-geth/core/types/celo_dynamic_fee_tx.go Celo/core/types/celo_dynamic_fee_tx.go
+
diff --git op-geth/core/types/celo_dynamic_fee_tx.go Celo/core/types/celo_dynamic_fee_tx.go
new file mode 100644
index 0000000000000000000000000000000000000000..f1fab1f4d8ce6e078311d6335e6fb117404cf019
--- /dev/null
@@ -4461,8 +4492,8 @@
-
diff --git op-geth/core/types/celo_transaction_signing.go Celo/core/types/celo_transaction_signing.go
+
diff --git op-geth/core/types/celo_transaction_signing.go Celo/core/types/celo_transaction_signing.go
new file mode 100644
index 0000000000000000000000000000000000000000..823d9212d52cf6687625c889a872808777bc1fbb
--- /dev/null
@@ -4625,8 +4656,8 @@
-
diff --git op-geth/core/types/receipt.go Celo/core/types/receipt.go
+
diff --git op-geth/core/types/receipt.go Celo/core/types/receipt.go
index 4bc83bf988f84dbe37f3fc0a04577c2838f9363a..7b2befc199c8e276e34a6d8d30741c659c13ca0d 100644
--- op-geth/core/types/receipt.go
+++ Celo/core/types/receipt.go
@@ -4825,8 +4856,8 @@
-
diff --git op-geth/core/types/receipt_test.go Celo/core/types/receipt_test.go
+
diff --git op-geth/core/types/receipt_test.go Celo/core/types/receipt_test.go
index 76599fdd323980c098bca80d62393ec0bd945dae..49d23ace0c0c56888511c71942d85a86ec2c4e99 100644
--- op-geth/core/types/receipt_test.go
+++ Celo/core/types/receipt_test.go
@@ -4945,8 +4976,8 @@
-
diff --git op-geth/core/types/transaction.go Celo/core/types/transaction.go
-
index d0fa5308f0cbd1088287a197a65a67b18b48ca0d..917fc42c11634a9f5f5026e08df1a594ad815566 100644
+
diff --git op-geth/core/types/transaction.go Celo/core/types/transaction.go
+
index 3c94261061476ac453aaf252e49e0b66d8635cd9..b5ee77df6d141f61cac05eb22bb4c5a76d236992 100644
--- op-geth/core/types/transaction.go
+++ Celo/core/types/transaction.go
-
@@ -203,6 +203,11 @@ func (tx *Transaction) decodeTyped(b []byte) (TxData, error) {
+
@@ -209,6 +209,11 @@ func (tx *Transaction) decodeTyped(b []byte) (TxData, error) {
if len(b) <= 1 {
return nil, errShortTypedTx
}
@@ -4995,7 +5026,7 @@
var inner TxData
switch b[0] {
case AccessListTxType:
-
@@ -360,14 +365,29 @@ func (tx *Transaction) IsSystemTx() bool {
+
@@ -372,14 +377,29 @@ func (tx *Transaction) IsSystemTx() bool {
return tx.inner.isSystemTx()
}
@@ -5035,8 +5066,8 @@
-
diff --git op-geth/core/types/transaction_marshalling.go Celo/core/types/transaction_marshalling.go
-
index 253e4f03de82c53bfe2b48037a728d6397e1a6ec..5062bf808e24c573dbd0b8e875200d8f25fc70bc 100644
+
diff --git op-geth/core/types/transaction_marshalling.go Celo/core/types/transaction_marshalling.go
+
index a07d65414c3846e49412a3083371e93b843d2553..a9dd124ceb500e033c40b9f374f8c8c5ba41e073 100644
--- op-geth/core/types/transaction_marshalling.go
+++ Celo/core/types/transaction_marshalling.go
@@ -63,6 +63,13 @@ Proofs []kzg4844.Proof `json:"proofs,omitempty"`
@@ -5097,7 +5128,7 @@
var enc txJSON
// These are set for all tx types.
enc.Hash = tx.Hash()
-
@@ -188,6 +198,12 @@ }
+
@@ -202,6 +212,12 @@ }
// Decode / verify fields according to transaction type.
var inner TxData
@@ -5116,8 +5147,8 @@
-
diff --git op-geth/core/types/transaction_signing.go Celo/core/types/transaction_signing.go
-
index 4bf41bf0af264b82bf4a51d0351e3f33bd39f318..7e7719173470e9b8ae7daea10d157435093fa19f 100644
+
diff --git op-geth/core/types/transaction_signing.go Celo/core/types/transaction_signing.go
+index 1238c9a6c38d7a5485f4ccf2b8c9b95ea7e5b48a..2bbb92afd758217d979fe0eb278ac70653c66f6c 100644
--- op-geth/core/types/transaction_signing.go
+++ Celo/core/types/transaction_signing.go
@@ -53,6 +53,10 @@ signer = HomesteadSigner{}
@@ -5165,38 +5196,37 @@
return signer
}
-@@ -65,6 +69,14 @@ // Use this in transaction-handling code where the current block number is unknown. If you
- // have the current block number available, use MakeSigner instead.
- func LatestSigner(config *params.ChainConfig) Signer {
+@@ -67,6 +71,13 @@ func LatestSigner(config *params.ChainConfig) Signer {
+ var signer Signer
if config.ChainID != nil {
-+ if config.Cel2Time != nil {
+ switch {
++ case config.Cel2Time != nil:
+ if config.CancunTime != nil {
+ // This branch is only used in testing
+ return latestCeloSigner(config.ChainID, NewCancunSigner(config.ChainID))
+ } else {
+ return latestCeloSigner(config.ChainID, NewLondonSigner(config.ChainID))
+ }
-+ }
- if config.CancunTime != nil && !config.IsOptimism() {
- return NewCancunSigner(config.ChainID)
- }
-@@ -92,7 +104,7 @@ func LatestSignerForChainID(chainID *big.Int) Signer {
- if chainID == nil {
- return HomesteadSigner{}
- }
-- return NewCancunSigner(chainID)
-+ return latestCeloSigner(chainID, NewCancunSigner(chainID))
- }
-
- // SignTx signs the transaction using the given signer and private key.
+ case config.CancunTime != nil && !config.IsOptimism():
+ signer = NewCancunSigner(config.ChainID)
+ case config.LondonBlock != nil:
+
@@ -94,7 +105,7 @@ // If you have a ChainConfig and know the current block number, use MakeSigner instead.
+ func LatestSignerForChainID(chainID *big.Int) Signer {
+ var signer Signer
+ if chainID != nil {
+
- signer = NewCancunSigner(chainID)
+
+ signer = latestCeloSigner(chainID, NewCancunSigner(chainID))
+ } else {
+ signer = HomesteadSigner{}
+ }
-
diff --git op-geth/core/types/tx_legacy.go Celo/core/types/tx_legacy.go
+
diff --git op-geth/core/types/tx_legacy.go Celo/core/types/tx_legacy.go
index bcb65c39349a3a1bef78948af48a30a1e14c71ba..782c3934c74eff4cbd26c290f72073be92c0d528 100644
--- op-geth/core/types/tx_legacy.go
+++ Celo/core/types/tx_legacy.go
@@ -5291,7 +5321,7 @@
-
+
Celo contracts
@@ -5313,7 +5343,7 @@
-
+
Contract bindings are necessary for token duality and gas currencies.
The corresponding contracts are included to generate the bindings and test these features.
@@ -5322,8 +5352,8 @@
-
diff --git op-geth/contracts/celo/README.md Celo/contracts/celo/README.md
+
diff --git op-geth/contracts/celo/README.md Celo/contracts/celo/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..3a0735f1fecc93d0c9e1f5932a755c022d139ad2
--- /dev/null
@@ -5386,8 +5416,8 @@
-
diff --git op-geth/contracts/celo/abigen/FeeCurrency.go Celo/contracts/celo/abigen/FeeCurrency.go
+
diff --git op-geth/contracts/celo/abigen/FeeCurrency.go Celo/contracts/celo/abigen/FeeCurrency.go
new file mode 100644
index 0000000000000000000000000000000000000000..64b51d54185afdb0838eda5b80a8c9728b3e56e3
--- /dev/null
@@ -6254,8 +6284,8 @@
-
diff --git op-geth/contracts/celo/abigen/FeeCurrencyDirectory.go Celo/contracts/celo/abigen/FeeCurrencyDirectory.go
+
diff --git op-geth/contracts/celo/abigen/FeeCurrencyDirectory.go Celo/contracts/celo/abigen/FeeCurrencyDirectory.go
new file mode 100644
index 0000000000000000000000000000000000000000..d79c9bba15b1259761880cdeded76868b1c7108f
--- /dev/null
@@ -6594,8 +6624,8 @@
-
diff --git op-geth/contracts/celo/celo.go Celo/contracts/celo/celo.go
+
diff --git op-geth/contracts/celo/celo.go Celo/contracts/celo/celo.go
new file mode 100644
index 0000000000000000000000000000000000000000..eee8c63da824cc170cbabbe8e6f17f199d10ab2f
--- /dev/null
@@ -6658,8 +6688,8 @@
-
diff --git op-geth/contracts/celo/compiled/FeeCurrency.abi Celo/contracts/celo/compiled/FeeCurrency.abi
+
diff --git op-geth/contracts/celo/compiled/FeeCurrency.abi Celo/contracts/celo/compiled/FeeCurrency.abi
new file mode 100644
index 0000000000000000000000000000000000000000..279f6f754ab9192a2b8eb5f90a3aec6639c5e551
--- /dev/null
@@ -7058,8 +7088,8 @@
-
diff --git op-geth/contracts/celo/compiled/FeeCurrency.bin-runtime Celo/contracts/celo/compiled/FeeCurrency.bin-runtime
+
diff --git op-geth/contracts/celo/compiled/FeeCurrency.bin-runtime Celo/contracts/celo/compiled/FeeCurrency.bin-runtime
new file mode 100644
index 0000000000000000000000000000000000000000..236826b180339f87deee821e74369a225b3d85db
--- /dev/null
@@ -7105,8 +7135,8 @@
-
diff --git op-geth/contracts/celo/compiled/FeeCurrencyDirectory.bin-runtime Celo/contracts/celo/compiled/FeeCurrencyDirectory.bin-runtime
+
diff --git op-geth/contracts/celo/compiled/FeeCurrencyDirectory.bin-runtime Celo/contracts/celo/compiled/FeeCurrencyDirectory.bin-runtime
new file mode 100644
index 0000000000000000000000000000000000000000..79b9c0731e3d8bb39908819291fcd1f31d5d2ce0
--- /dev/null
@@ -7152,8 +7182,8 @@
-
diff --git op-geth/contracts/celo/compiled/GoldToken.abi Celo/contracts/celo/compiled/GoldToken.abi
+
diff --git op-geth/contracts/celo/compiled/GoldToken.abi Celo/contracts/celo/compiled/GoldToken.abi
new file mode 100644
index 0000000000000000000000000000000000000000..d0d8926dac24f7446be224c6d0494d6bf799c8cd
--- /dev/null
@@ -7867,8 +7897,8 @@
-
diff --git op-geth/contracts/celo/compiled/GoldToken.bin-runtime Celo/contracts/celo/compiled/GoldToken.bin-runtime
+
diff --git op-geth/contracts/celo/compiled/GoldToken.bin-runtime Celo/contracts/celo/compiled/GoldToken.bin-runtime
new file mode 100644
index 0000000000000000000000000000000000000000..6417be2913ecbddc6540400a74de1524bf696bc1
--- /dev/null
@@ -7914,8 +7944,8 @@
-
diff --git op-geth/contracts/celo/compiled/IFeeCurrencyDirectory.abi Celo/contracts/celo/compiled/IFeeCurrencyDirectory.abi
+
diff --git op-geth/contracts/celo/compiled/IFeeCurrencyDirectory.abi Celo/contracts/celo/compiled/IFeeCurrencyDirectory.abi
new file mode 100644
index 0000000000000000000000000000000000000000..90e071e994d161090a9347dfc7cf32ad918153d7
--- /dev/null
@@ -8030,8 +8060,8 @@
-
diff --git op-geth/contracts/celo/compiled/MockOracle.abi Celo/contracts/celo/compiled/MockOracle.abi
+
diff --git op-geth/contracts/celo/compiled/MockOracle.abi Celo/contracts/celo/compiled/MockOracle.abi
new file mode 100644
index 0000000000000000000000000000000000000000..76bb6049a808f525e8460cd3ee1547e64de327c4
--- /dev/null
@@ -8125,8 +8155,8 @@
-
diff --git op-geth/contracts/celo/compiled/MockOracle.bin-runtime Celo/contracts/celo/compiled/MockOracle.bin-runtime
+
diff --git op-geth/contracts/celo/compiled/MockOracle.bin-runtime Celo/contracts/celo/compiled/MockOracle.bin-runtime
new file mode 100644
index 0000000000000000000000000000000000000000..a82a67d31ce2048d3b6579467d5fbc8ec83df59f
--- /dev/null
@@ -8172,8 +8202,8 @@
-
diff --git op-geth/contracts/celo/compiled/update.sh Celo/contracts/celo/compiled/update.sh
+
diff --git op-geth/contracts/celo/compiled/update.sh Celo/contracts/celo/compiled/update.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d0f32423e162f3c0a479ef29dd41472c8566b148
--- /dev/null
@@ -8245,8 +8275,8 @@
-
diff --git op-geth/core/celo_genesis.go Celo/core/celo_genesis.go
+
diff --git op-geth/core/celo_genesis.go Celo/core/celo_genesis.go
new file mode 100644
index 0000000000000000000000000000000000000000..1d9192772c701daa359b9ce7a9724d5205e4b510
--- /dev/null
@@ -8462,7 +8492,7 @@
-
+
Chain config
@@ -8476,7 +8506,7 @@
-
+105
+
+102
-9
@@ -8484,15 +8514,15 @@
-
+
-
diff --git op-geth/core/genesis.go Celo/core/genesis.go
-
index a7dfef07f5e8a95c4dda985b9f781834884d3d37..5376456eaed8d844870ed2be000b87a98ec71a03 100644
+
diff --git op-geth/core/genesis.go Celo/core/genesis.go
+
index f8032507337e24a6fcd32d8b0eba8c9edf3f6485..9059a3f7c6c638456306020faa2059737866e8ac 100644
--- op-geth/core/genesis.go
+++ Celo/core/genesis.go
@@ -61,8 +61,8 @@ Config *params.ChainConfig `json:"config"`
@@ -8540,7 +8570,7 @@
Mixhash common.Hash `json:"mixHash"`
Coinbase common.Address `json:"coinbase"`
Alloc types.GenesisAlloc `json:"alloc" gencodec:"required"`
-
@@ -265,6 +265,8 @@ OverrideOptimismGranite *uint64
+
@@ -258,6 +258,8 @@ OverrideOptimismGranite *uint64
OverrideOptimismHolocene *uint64
OverrideOptimismInterop *uint64
ApplySuperchainUpgrades bool
@@ -8549,7 +8579,7 @@
}
// SetupGenesisBlock writes or updates the genesis block in db.
-
@@ -340,6 +342,9 @@ config.HoloceneTime = overrides.OverrideOptimismHolocene
+
@@ -324,6 +326,9 @@ config.HoloceneTime = overrides.OverrideOptimismHolocene
}
if overrides != nil && overrides.OverrideOptimismInterop != nil {
config.InteropTime = overrides.OverrideOptimismInterop
@@ -8559,7 +8589,7 @@
}
}
}
-
@@ -520,11 +525,19 @@ MixDigest: g.Mixhash,
+
@@ -507,11 +512,19 @@ MixDigest: g.Mixhash,
Coinbase: g.Coinbase,
Root: root,
}
@@ -8584,7 +8614,7 @@
}
if g.Config != nil && g.Config.IsLondon(common.Big0) {
if g.BaseFee != nil {
-
@@ -680,6 +693,12 @@ }
+
@@ -681,6 +694,12 @@ }
if faucet != nil {
genesis.Alloc[*faucet] = types.Account{Balance: new(big.Int).Sub(new(big.Int).Lsh(big.NewInt(1), 256), big.NewInt(9))}
}
@@ -8603,8 +8633,8 @@
-
diff --git op-geth/params/config.go Celo/params/config.go
-
index e5ec0272f3a4e0c8f4bca155c8ee7980f91f7d2c..1377b8e7b6e15686c84af7ca17f4ea714c1a6279 100644
+
diff --git op-geth/params/config.go Celo/params/config.go
+
index 04cc43a8403775a9e9ba9ddf7c537535c437ced2..eea0f167cadeb77af39d3b1b9ed29dbf5417aa50 100644
--- op-geth/params/config.go
+++ Celo/params/config.go
-
@@ -35,6 +35,9 @@
- const (
- OPMainnetChainID = 10
- OPGoerliChainID = 420
-
+ CeloMainnetChainID = 42220
-
+ CeloBaklavaChainID = 62320
-
+ CeloAlfajoresChainID = 44787
- BaseMainnetChainID = 8453
- BaseGoerliChainID = 84531
- baseSepoliaChainID = 84532
-
@@ -210,6 +213,8 @@ ArrowGlacierBlock: big.NewInt(0),
+
@@ -164,6 +164,8 @@ ArrowGlacierBlock: big.NewInt(0),
GrayGlacierBlock: big.NewInt(0),
ShanghaiTime: newUint64(0),
CancunTime: newUint64(0),
@@ -8660,7 +8680,7 @@
TerminalTotalDifficulty: big.NewInt(0),
TerminalTotalDifficultyPassed: true,
}
-
@@ -268,6 +273,39 @@ ShanghaiTime: nil,
+
@@ -222,6 +224,39 @@ ShanghaiTime: nil,
CancunTime: nil,
PragueTime: nil,
VerkleTime: nil,
@@ -8700,7 +8720,7 @@
TerminalTotalDifficulty: nil,
TerminalTotalDifficultyPassed: false,
Ethash: new(EthashConfig),
-
@@ -294,6 +332,7 @@ LondonBlock: big.NewInt(0),
+
@@ -248,6 +283,7 @@ LondonBlock: big.NewInt(0),
ArrowGlacierBlock: big.NewInt(0),
GrayGlacierBlock: big.NewInt(0),
MergeNetsplitBlock: big.NewInt(0),
@@ -8708,7 +8728,7 @@
ShanghaiTime: newUint64(0),
CancunTime: newUint64(0),
PragueTime: nil,
-
@@ -390,6 +429,8 @@ CancunTime *uint64 `json:"cancunTime,omitempty"` // Cancun switch time (nil = no fork, 0 = already on cancun)
+
@@ -343,6 +379,8 @@ CancunTime *uint64 `json:"cancunTime,omitempty"` // Cancun switch time (nil = no fork, 0 = already on cancun)
PragueTime *uint64 `json:"pragueTime,omitempty"` // Prague switch time (nil = no fork, 0 = already on prague)
VerkleTime *uint64 `json:"verkleTime,omitempty"` // Verkle switch time (nil = no fork, 0 = already on verkle)
@@ -8717,17 +8737,17 @@
BedrockBlock *big.Int `json:"bedrockBlock,omitempty"` // Bedrock switch block (nil = no fork, 0 = already on optimism bedrock)
RegolithTime *uint64 `json:"regolithTime,omitempty"` // Regolith switch time (nil = no fork, 0 = already on optimism regolith)
CanyonTime *uint64 `json:"canyonTime,omitempty"` // Canyon switch time (nil = no fork, 0 = already on optimism canyon)
-
@@ -400,6 +441,9 @@ GraniteTime *uint64 `json:"graniteTime,omitempty"` // Granite switch time (nil = no fork, 0 = already on Optimism Granite)
- HoloceneTime *uint64 `json:"holoceneTime,omitempty"` // Holocene switch time (nil = no fork, 0 = already on Optimism Holocene)
+
@@ -354,6 +392,9 @@ HoloceneTime *uint64 `json:"holoceneTime,omitempty"` // Holocene switch time (nil = no fork, 0 = already on Optimism Holocene)
InteropTime *uint64 `json:"interopTime,omitempty"` // Interop switch time (nil = no fork, 0 = already on optimism interop)
-
+
+
+ Cel2Time *uint64 `json:"cel2Time,omitempty"` // Cel2 switch time (nil = no fork, 0 = already on optimism cel2)
+ GingerbreadBlock *big.Int `json:"gingerbreadBlock,omitempty"` // Gingerbread switch block (nil = no fork, 0 = already activated)
-
+
+
// TerminalTotalDifficulty is the amount of total difficulty reached by
// the network that triggers the consensus upgrade.
-
@@ -418,6 +462,8 @@ Clique *CliqueConfig `json:"clique,omitempty"`
+ TerminalTotalDifficulty *big.Int `json:"terminalTotalDifficulty,omitempty"`
+
@@ -373,6 +414,8 @@ Clique *CliqueConfig `json:"clique,omitempty"`
// Optimism config, nil if not active
Optimism *OptimismConfig `json:"optimism,omitempty"`
@@ -8736,7 +8756,7 @@
}
// EthashConfig is the consensus engine configs for proof-of-work based sealing.
-
@@ -448,7 +494,21 @@ }
+
@@ -403,7 +446,21 @@ }
// String implements the stringer interface, returning the optimism fee config details.
func (o *OptimismConfig) String() string {
@@ -8759,7 +8779,7 @@
}
// Description returns a human-readable description of ChainConfig.
-
@@ -464,6 +524,8 @@ banner += fmt.Sprintf("Chain ID: %v (%s)\n", c.ChainID, network)
+
@@ -419,6 +476,8 @@ banner += fmt.Sprintf("Chain ID: %v (%s)\n", c.ChainID, network)
switch {
case c.Optimism != nil:
banner += "Consensus: Optimism\n"
@@ -8768,7 +8788,7 @@
case c.Ethash != nil:
if c.TerminalTotalDifficulty == nil {
banner += "Consensus: Ethash (proof-of-work)\n"
-
@@ -562,6 +624,9 @@ banner += fmt.Sprintf(" - Holocene: @%-10v\n", *c.HoloceneTime)
+
@@ -517,6 +576,9 @@ banner += fmt.Sprintf(" - Holocene: @%-10v\n", *c.HoloceneTime)
}
if c.InteropTime != nil {
banner += fmt.Sprintf(" - Interop: @%-10v\n", *c.InteropTime)
@@ -8778,7 +8798,7 @@
}
return banner
}
-
@@ -702,6 +767,15 @@ }
+
@@ -657,6 +719,15 @@ }
func (c *ChainConfig) IsInterop(time uint64) bool {
return isTimestampForked(c.InteropTime, time)
@@ -8794,7 +8814,7 @@
}
// IsOptimism returns whether the node is an optimism node or not.
-
@@ -1123,6 +1197,7 @@ IsVerkle bool
+
@@ -1078,6 +1149,7 @@ IsVerkle bool
IsOptimismBedrock, IsOptimismRegolith bool
IsOptimismCanyon, IsOptimismFjord bool
IsOptimismGranite, IsOptimismHolocene bool
@@ -8802,7 +8822,7 @@
}
// Rules ensures c's ChainID is not nil.
-
@@ -1160,5 +1235,7 @@ IsOptimismCanyon: isMerge && c.IsOptimismCanyon(timestamp),
+
@@ -1115,5 +1187,7 @@ IsOptimismCanyon: isMerge && c.IsOptimismCanyon(timestamp),
IsOptimismFjord: isMerge && c.IsOptimismFjord(timestamp),
IsOptimismGranite: isMerge && c.IsOptimismGranite(timestamp),
IsOptimismHolocene: isMerge && c.IsOptimismHolocene(timestamp),
@@ -8816,8 +8836,8 @@
-
diff --git op-geth/params/protocol_params.go Celo/params/protocol_params.go
-
index b07ab17dd93b3978f9e97f314f3a0f484afcdf82..2d8a37f46132754f0641e6bdf10a48be4fea0f4c 100644
+
diff --git op-geth/params/protocol_params.go Celo/params/protocol_params.go
+index 107a9fecfcb245c0c5f223ccc8ef0f9cb2e93ff8..16afc3b5ef147d9a768622447a59ae254c0948a3 100644
--- op-geth/params/protocol_params.go
+++ Celo/params/protocol_params.go
@@ -136,7 +136,7 @@ DefaultBaseFeeChangeDenominator = 8 // Bounds the amount the base fee can change between blocks.
@@ -8875,7 +8895,7 @@
-
+
E2E tests
@@ -8897,15 +8917,15 @@
-
+
-
diff --git op-geth/e2e_test/.gitignore Celo/e2e_test/.gitignore
+
diff --git op-geth/e2e_test/.gitignore Celo/e2e_test/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..d93e90bc6936c69f4976f29030cd041295ba09cb
--- /dev/null
@@ -8953,8 +8973,8 @@
-
diff --git op-geth/e2e_test/debug-fee-currency/DebugFeeCurrency.sol Celo/e2e_test/debug-fee-currency/DebugFeeCurrency.sol
+
diff --git op-geth/e2e_test/debug-fee-currency/DebugFeeCurrency.sol Celo/e2e_test/debug-fee-currency/DebugFeeCurrency.sol
new file mode 100644
index 0000000000000000000000000000000000000000..7f269dd5f20b56904ec98212b8ec93b212c0d83b
--- /dev/null
@@ -9769,8 +9789,8 @@
-
diff --git op-geth/e2e_test/debug-fee-currency/deploy_and_send_tx.sh Celo/e2e_test/debug-fee-currency/deploy_and_send_tx.sh
+
diff --git op-geth/e2e_test/debug-fee-currency/deploy_and_send_tx.sh Celo/e2e_test/debug-fee-currency/deploy_and_send_tx.sh
new file mode 100755
index 0000000000000000000000000000000000000000..258b3b013c19dfab84dcc239d9b7bf0cf256f402
--- /dev/null
@@ -9823,8 +9843,8 @@
-
diff --git op-geth/e2e_test/debug-fee-currency/lib.sh Celo/e2e_test/debug-fee-currency/lib.sh
+
diff --git op-geth/e2e_test/debug-fee-currency/lib.sh Celo/e2e_test/debug-fee-currency/lib.sh
new file mode 100755
index 0000000000000000000000000000000000000000..a7077c774e4976801a07ce7e0efd4b17ede0dce9
--- /dev/null
@@ -9947,8 +9967,8 @@
-
diff --git op-geth/e2e_test/js-tests/Makefile Celo/e2e_test/js-tests/Makefile
+
diff --git op-geth/e2e_test/js-tests/Makefile Celo/e2e_test/js-tests/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..69555e594b4419c7c012ddc56d5403d88f4cd142
--- /dev/null
@@ -9995,8 +10015,8 @@
-
diff --git op-geth/e2e_test/js-tests/package-lock.json Celo/e2e_test/js-tests/package-lock.json
+
diff --git op-geth/e2e_test/js-tests/package-lock.json Celo/e2e_test/js-tests/package-lock.json
new file mode 100644
index 0000000000000000000000000000000000000000..6c7d7ab2e55228f86c952d6804c40abe28fdb456
--- /dev/null
@@ -11273,8 +11293,8 @@
-
diff --git op-geth/e2e_test/js-tests/package.json Celo/e2e_test/js-tests/package.json
+
diff --git op-geth/e2e_test/js-tests/package.json Celo/e2e_test/js-tests/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..16167bf83aadfc6ad05bc4568a177e94173522bc
--- /dev/null
@@ -11336,8 +11356,8 @@
-
diff --git op-geth/e2e_test/js-tests/send_tx.mjs Celo/e2e_test/js-tests/send_tx.mjs
+
diff --git op-geth/e2e_test/js-tests/send_tx.mjs Celo/e2e_test/js-tests/send_tx.mjs
new file mode 100755
index 0000000000000000000000000000000000000000..0e6122810461981b464338c40d82719e99da52cb
--- /dev/null
@@ -11494,8 +11514,8 @@
-
diff --git op-geth/e2e_test/js-tests/test_ethers_tx.mjs Celo/e2e_test/js-tests/test_ethers_tx.mjs
+
diff --git op-geth/e2e_test/js-tests/test_ethers_tx.mjs Celo/e2e_test/js-tests/test_ethers_tx.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..3faf2d9cdf29fd0ca19d44803c77e0bd4e0895d1
--- /dev/null
@@ -11592,8 +11612,8 @@
-
diff --git op-geth/e2e_test/js-tests/test_viem_smoketest.mjs Celo/e2e_test/js-tests/test_viem_smoketest.mjs
+
diff --git op-geth/e2e_test/js-tests/test_viem_smoketest.mjs Celo/e2e_test/js-tests/test_viem_smoketest.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..ce7cdaa1c591a6e1f41f22e800adf01a2dc0a5f8
--- /dev/null
@@ -11724,8 +11744,8 @@
-
diff --git op-geth/e2e_test/js-tests/test_viem_tx.mjs Celo/e2e_test/js-tests/test_viem_tx.mjs
+
diff --git op-geth/e2e_test/js-tests/test_viem_tx.mjs Celo/e2e_test/js-tests/test_viem_tx.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..a15dd8cf1b053048bb9c025605d6f9570f73efcf
--- /dev/null
@@ -12092,8 +12112,8 @@
-
diff --git op-geth/e2e_test/js-tests/viem_setup.mjs Celo/e2e_test/js-tests/viem_setup.mjs
+
diff --git op-geth/e2e_test/js-tests/viem_setup.mjs Celo/e2e_test/js-tests/viem_setup.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..664f1f75f2ce6a580dc6b0e935c8e746b4b91c23
--- /dev/null
@@ -12183,8 +12203,8 @@
-
diff --git op-geth/e2e_test/run_all_tests.sh Celo/e2e_test/run_all_tests.sh
+
diff --git op-geth/e2e_test/run_all_tests.sh Celo/e2e_test/run_all_tests.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9d0675abd15b2c291a8f648712fdc597daad0d96
--- /dev/null
@@ -12300,8 +12320,8 @@
-
diff --git op-geth/e2e_test/shared.sh Celo/e2e_test/shared.sh
+
diff --git op-geth/e2e_test/shared.sh Celo/e2e_test/shared.sh
new file mode 100644
index 0000000000000000000000000000000000000000..2a4207bb9ae5e9c2dae5c485a8903393927ded98
--- /dev/null
@@ -12385,8 +12405,8 @@
-
diff --git op-geth/e2e_test/smoketest_unsupported_txs/unsupported_txs_test.go Celo/e2e_test/smoketest_unsupported_txs/unsupported_txs_test.go
+
diff --git op-geth/e2e_test/smoketest_unsupported_txs/unsupported_txs_test.go Celo/e2e_test/smoketest_unsupported_txs/unsupported_txs_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..781e520b153e1e905387fb3b983764f18b340157
--- /dev/null
@@ -12536,8 +12556,8 @@
-
diff --git op-geth/e2e_test/test_base_fee_recipient.sh Celo/e2e_test/test_base_fee_recipient.sh
+
diff --git op-geth/e2e_test/test_base_fee_recipient.sh Celo/e2e_test/test_base_fee_recipient.sh
new file mode 100755
index 0000000000000000000000000000000000000000..030c130bf25e769f4ff6eca8d8806ad012c8de76
--- /dev/null
@@ -12609,8 +12629,8 @@
-
diff --git op-geth/e2e_test/test_ethers_tx.sh Celo/e2e_test/test_ethers_tx.sh
+
diff --git op-geth/e2e_test/test_ethers_tx.sh Celo/e2e_test/test_ethers_tx.sh
new file mode 100755
index 0000000000000000000000000000000000000000..8c94521b73ab4e314f2b965fa9896b4f39d538cd
--- /dev/null
@@ -12662,8 +12682,8 @@
-
diff --git op-geth/e2e_test/test_fee_currency_fails_intrinsic.sh Celo/e2e_test/test_fee_currency_fails_intrinsic.sh
+
diff --git op-geth/e2e_test/test_fee_currency_fails_intrinsic.sh Celo/e2e_test/test_fee_currency_fails_intrinsic.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b34a2b0e742e5045f641d7473470ffc328f98174
--- /dev/null
@@ -12741,8 +12761,8 @@
-
diff --git op-geth/e2e_test/test_fee_currency_fails_on_credit.sh Celo/e2e_test/test_fee_currency_fails_on_credit.sh
+
diff --git op-geth/e2e_test/test_fee_currency_fails_on_credit.sh Celo/e2e_test/test_fee_currency_fails_on_credit.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cea2f470a332cdd25a3c4fd998705366e327f651
--- /dev/null
@@ -12820,8 +12840,8 @@
-
diff --git op-geth/e2e_test/test_fee_currency_fails_on_debit.sh Celo/e2e_test/test_fee_currency_fails_on_debit.sh
+
diff --git op-geth/e2e_test/test_fee_currency_fails_on_debit.sh Celo/e2e_test/test_fee_currency_fails_on_debit.sh
new file mode 100755
index 0000000000000000000000000000000000000000..4285e61753f74da1b82826d9583a82de5f926dd2
--- /dev/null
@@ -12880,8 +12900,8 @@
-
diff --git op-geth/e2e_test/test_smoketest.sh Celo/e2e_test/test_smoketest.sh
+
diff --git op-geth/e2e_test/test_smoketest.sh Celo/e2e_test/test_smoketest.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7358d314a404ed0e80b385ac8f5c97ebed8b057b
--- /dev/null
@@ -12937,8 +12957,8 @@
-
diff --git op-geth/e2e_test/test_token_duality.sh Celo/e2e_test/test_token_duality.sh
+
diff --git op-geth/e2e_test/test_token_duality.sh Celo/e2e_test/test_token_duality.sh
new file mode 100755
index 0000000000000000000000000000000000000000..355afef8c7ca71f39454d1e452c60d2046b6ebf8
--- /dev/null
@@ -12995,8 +13015,8 @@
-
diff --git op-geth/e2e_test/test_value_and_fee_currency_balance_check.sh Celo/e2e_test/test_value_and_fee_currency_balance_check.sh
+
diff --git op-geth/e2e_test/test_value_and_fee_currency_balance_check.sh Celo/e2e_test/test_value_and_fee_currency_balance_check.sh
new file mode 100755
index 0000000000000000000000000000000000000000..7384f067b9234d9f5301265bc6a0abe04ef90aa9
--- /dev/null
@@ -13065,8 +13085,8 @@
-
diff --git op-geth/e2e_test/test_viem_tx.sh Celo/e2e_test/test_viem_tx.sh
+
diff --git op-geth/e2e_test/test_viem_tx.sh Celo/e2e_test/test_viem_tx.sh
new file mode 100755
index 0000000000000000000000000000000000000000..0e4d001eda411d32e1bbca49ed3e98fbe72dc23d
--- /dev/null
@@ -13129,7 +13149,7 @@
-
+
Other changes
@@ -13143,23 +13163,23 @@
-
+7149
-
-300
+
+7160
+
-312
-
+
-
+
.gitignore
@@ -13169,13 +13189,13 @@
@@ -13192,8 +13212,8 @@
-
diff --git op-geth/.gitignore Celo/.gitignore
-
index 3f27cdc00f0746c28f7e79285a50425f435bd0ef..3196c8484819fab224b735ea82e44396c4d3d0a8 100644
+
diff --git op-geth/.gitignore Celo/.gitignore
+
index a1d48cc72b4d31752bc89708f24d83c6e50255cd..dc42ea9429c5a2e7e435ed7827c289f5b546be53 100644
--- op-geth/.gitignore
+++ Celo/.gitignore
@@ -14,6 +14,7 @@ .ethtest
@@ -13204,7 +13224,7 @@
#*
.#*
-
@@ -50,3 +51,4 @@ **/yarn-error.log
+
@@ -58,3 +59,4 @@ **/yarn-error.log
logs/
tests/spec-tests/
@@ -13215,8 +13235,8 @@
-
diff --git op-geth/Dockerfile.bootnode Celo/Dockerfile.bootnode
+
diff --git op-geth/Dockerfile.bootnode Celo/Dockerfile.bootnode
new file mode 100644
index 0000000000000000000000000000000000000000..53f5cbeb56e9732dc410bc3d6757fee24530f607
--- /dev/null
@@ -13294,8 +13314,8 @@
-
diff --git op-geth/accounts/external/backend.go Celo/accounts/external/backend.go
+
diff --git op-geth/accounts/external/backend.go Celo/accounts/external/backend.go
index 62322753daa8df4fecb640aba637ac97e202327d..3289bb0a6e700363c2114f7c3cb472b849af701e 100644
--- op-geth/accounts/external/backend.go
+++ Celo/accounts/external/backend.go
@@ -13347,8 +13367,8 @@
-
diff --git op-geth/beacon/blsync/block_sync_test.go Celo/beacon/blsync/block_sync_test.go
-
index 3d3b9e5e8d5b84f360a807ccb2735dec88a65637..ce2cbdd8b928c17e4da6694570751dadb773bfa4 100644
+
diff --git op-geth/beacon/blsync/block_sync_test.go Celo/beacon/blsync/block_sync_test.go
+index e7c2c4d1631113a754cbbf0e1f52b749c74b11c6..ce2cbdd8b928c17e4da6694570751dadb773bfa4 100644
--- op-geth/beacon/blsync/block_sync_test.go
+++ Celo/beacon/blsync/block_sync_test.go
@@ -36,7 +36,7 @@ Slot: 123,
@@ -13402,27 +13422,15 @@
+ BlockHash: zrntcommon.Hash32(common.HexToHash("e77f66ebcf4cc17211cd725ca563646d5d48f39b72de1cc233b8f0b4084fa641")),
},
},
- })
-@@ -70,7 +70,10 @@ expHeadBlock := func(expHead *types.BeaconBlock) {
- t.Helper()
- var expNumber, headNumber uint64
- if expHead != nil {
-- p, _ := expHead.ExecutionPayload()
-+ p, err := expHead.ExecutionPayload()
-+ if err != nil {
-+ t.Fatalf("expHead.ExecutionPayload() failed: %v", err)
-+ }
- expNumber = p.NumberU64()
- }
- select {
+ })
-
diff --git op-geth/cmd/celotool/main.go Celo/cmd/celotool/main.go
+
diff --git op-geth/cmd/celotool/main.go Celo/cmd/celotool/main.go
new file mode 100644
index 0000000000000000000000000000000000000000..4397c43551e884832434982e167167471b38e384
--- /dev/null
@@ -13508,8 +13516,8 @@
-
diff --git op-geth/cmd/celotool/send-tx.go Celo/cmd/celotool/send-tx.go
+
diff --git op-geth/cmd/celotool/send-tx.go Celo/cmd/celotool/send-tx.go
new file mode 100644
index 0000000000000000000000000000000000000000..d72003f8a17b8f6300f2e6bca2bfc182f721f218
--- /dev/null
@@ -13695,8 +13703,8 @@
-
diff --git op-geth/cmd/evm/internal/t8ntool/execution.go Celo/cmd/evm/internal/t8ntool/execution.go
-
index a4c5f6efcb0af4ab08cd38bb4cedb0a0fb472848..d76b8c4dae0dc56bfc361397a9ba164a77256b61 100644
+
diff --git op-geth/cmd/evm/internal/t8ntool/execution.go Celo/cmd/evm/internal/t8ntool/execution.go
+
index 5fd1d6a4a6adfa13f712683bd7a8a15d8bd21dbb..7bce224ba0c01a4be57d29a57487ba2f091309e5 100644
--- op-geth/cmd/evm/internal/t8ntool/execution.go
+++ Celo/cmd/evm/internal/t8ntool/execution.go
-
@@ -210,7 +210,12 @@ log.Warn("rejected tx", "index", i, "hash", tx.Hash(), "error", errMsg)
+
@@ -219,7 +219,12 @@ log.Warn("rejected tx", "index", i, "hash", tx.Hash(), "error", errMsg)
rejectedTxs = append(rejectedTxs, &rejectedTx{i, errMsg})
continue
}
@@ -13753,8 +13761,8 @@
-
diff --git op-geth/cmd/evm/internal/t8ntool/transaction.go Celo/cmd/evm/internal/t8ntool/transaction.go
+
diff --git op-geth/cmd/evm/internal/t8ntool/transaction.go Celo/cmd/evm/internal/t8ntool/transaction.go
index 7f66ba4d85d69122049536e9a3d32934543d8231..9e63988d370040f6b755ca6647768bc9bba61d78 100644
--- op-geth/cmd/evm/internal/t8ntool/transaction.go
+++ Celo/cmd/evm/internal/t8ntool/transaction.go
@@ -13813,8 +13821,8 @@
-
diff --git op-geth/cmd/geth/config.go Celo/cmd/geth/config.go
-
index c76db472bb420cedc999ca761d8ac6bb6a86d58a..9a8dffe81d8cc3de07618e25df5a94dbcc40f421 100644
+
diff --git op-geth/cmd/geth/config.go Celo/cmd/geth/config.go
+
index df12a831b62fc21d4b73a6b56d50b82888b857de..486f06e4459fb5e8c3158339187ca4693a29e0be 100644
--- op-geth/cmd/geth/config.go
+++ Celo/cmd/geth/config.go
-
@@ -210,6 +210,11 @@ v := ctx.Uint64(utils.OverrideVerkle.Name)
+
@@ -223,6 +223,11 @@ v := ctx.Uint64(utils.OverrideVerkle.Name)
cfg.Eth.OverrideVerkle = &v
}
@@ -13869,8 +13877,8 @@
-
diff --git op-geth/cmd/geth/main.go Celo/cmd/geth/main.go
-
index 085b892059183a8a2b46a91e10925d293cff53df..cbfbc5f17a0aff2a964422aab7685be67f771a50 100644
+
diff --git op-geth/cmd/geth/main.go Celo/cmd/geth/main.go
+
index 30c7df3b84c347e116ddd3b74de1a9bd9dfc1c79..c698b12f4efc0cd5509813afb5c8fdef02dba6fe 100644
--- op-geth/cmd/geth/main.go
+++ Celo/cmd/geth/main.go
@@ -72,6 +72,7 @@ utils.OverrideOptimismFjord,
@@ -13930,8 +13938,8 @@
-
diff --git op-geth/cmd/utils/flags.go Celo/cmd/utils/flags.go
-
index f894a118347f64ae0265d3a916dff110240f9dfc..f7a0e92a036b054e6ad43ff36afba4517a0548c5 100644
+
diff --git op-geth/cmd/utils/flags.go Celo/cmd/utils/flags.go
+
index 8eda534783632a780823c576fd0389dbdddd8148..e935772b62a83c240cb14d8947625eb8ca6d33e2 100644
--- op-geth/cmd/utils/flags.go
+++ Celo/cmd/utils/flags.go
-
@@ -294,6 +294,11 @@ Name: "override.interop",
+
@@ -289,6 +289,11 @@ Name: "override.interop",
Usage: "Manually specify the Optimsim Interop feature-set fork timestamp, overriding the bundled setting",
Category: flags.EthCategory,
}
@@ -13980,7 +13988,7 @@
SyncModeFlag = &flags.TextMarshalerFlag{
Name: "syncmode",
Usage: `Blockchain sync mode ("snap" or "full")`,
-
@@ -556,6 +561,17 @@ }
+
@@ -551,6 +556,17 @@ }
MinerPendingFeeRecipientFlag = &cli.StringFlag{
Name: "miner.pending.feeRecipient",
Usage: "0x prefixed public address for the pending block producer (not used for actual block production)",
@@ -13998,7 +14006,7 @@
Category: flags.MinerCategory,
}
-
@@ -1719,6 +1735,39 @@ cfg.RollupComputePendingBlock = ctx.Bool(RollupComputePendingBlock.Name)
+
@@ -1724,6 +1740,39 @@ cfg.RollupComputePendingBlock = ctx.Bool(RollupComputePendingBlock.Name)
}
}
@@ -14038,7 +14046,7 @@
func setRequiredBlocks(ctx *cli.Context, cfg *ethconfig.Config) {
requiredBlocks := ctx.String(EthRequiredBlocksFlag.Name)
if requiredBlocks == "" {
-
@@ -2089,6 +2138,8 @@ cfg.VMTrace = name
+
@@ -2094,6 +2143,8 @@ cfg.VMTrace = name
cfg.VMTraceJsonConfig = config
}
}
@@ -14053,8 +14061,8 @@
-
diff --git op-geth/common/celo_types.go Celo/common/celo_types.go
+
diff --git op-geth/common/celo_types.go Celo/common/celo_types.go
new file mode 100644
index 0000000000000000000000000000000000000000..8bbb341a2710b19a93746edd12b56988f8184c85
--- /dev/null
@@ -14217,8 +14225,8 @@
-
diff --git op-geth/common/celo_types_test.go Celo/common/celo_types_test.go
+
diff --git op-geth/common/celo_types_test.go Celo/common/celo_types_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..4db38cdf1461834fe78e34a867749662b0ccaf58
--- /dev/null
@@ -14310,8 +14318,8 @@
-
diff --git op-geth/common/exchange/rates.go Celo/common/exchange/rates.go
+
diff --git op-geth/common/exchange/rates.go Celo/common/exchange/rates.go
new file mode 100644
index 0000000000000000000000000000000000000000..221ba480ef7765df71f731c33932173ae14bdc26
--- /dev/null
@@ -14524,8 +14532,8 @@
-
diff --git op-geth/common/exchange/rates_test.go Celo/common/exchange/rates_test.go
+
diff --git op-geth/common/exchange/rates_test.go Celo/common/exchange/rates_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..3cda8eb530ff2a9df75aebad4619d76c52aab558
--- /dev/null
@@ -14741,8 +14749,8 @@
-
diff --git op-geth/compat_test/compat_test.go Celo/compat_test/compat_test.go
+
diff --git op-geth/compat_test/compat_test.go Celo/compat_test/compat_test.go
new file mode 100644
index 0000000000000000000000000000000000000000..164ea96aaeb808ad51922530652c2bc4279a31d7
--- /dev/null
@@ -15786,8 +15794,8 @@
-
diff --git op-geth/compat_test/objdiff.go Celo/compat_test/objdiff.go
+
diff --git op-geth/compat_test/objdiff.go Celo/compat_test/objdiff.go
new file mode 100644
index 0000000000000000000000000000000000000000..d69d877ca737ec7ce1f9c273d5bdbdccafa448bd
--- /dev/null
@@ -16225,8 +16233,8 @@
-
diff --git op-geth/consensus/misc/eip1559/eip1559.go Celo/consensus/misc/eip1559/eip1559.go
-
index a66298af692fbb7bb477847452aff5937af55c83..0a88bd66a1b502d4a5a0e11ac3fc69b1fb51a8c8 100644
+
diff --git op-geth/consensus/misc/eip1559/eip1559.go Celo/consensus/misc/eip1559/eip1559.go
+index a970bdcd31b3bed1ff75e6e2647c16a3cee024ad..af8f59d9352642de17d7bb4d5c4ea927f6fe1d39 100644
--- op-geth/consensus/misc/eip1559/eip1559.go
+++ Celo/consensus/misc/eip1559/eip1559.go
-@@ -57,9 +57,21 @@ }
+@@ -135,9 +135,21 @@ }
// CalcBaseFee calculates the basefee of the header.
- // The time belongs to the new block to check if Canyon is activted or not
+ // The time belongs to the new block to check which upgrades are active.
-func CalcBaseFee(config *params.ChainConfig, parent *types.Header, time uint64) *big.Int {
+// **Notice** that the return value is catched by the deferred function which can change the return value
+func CalcBaseFee(config *params.ChainConfig, parent *types.Header, time uint64) (response *big.Int) {
@@ -16286,15 +16294,15 @@
+ if !config.IsLondon(parent.Number) && !config.IsGingerbread(parent.Number) {
return new(big.Int).SetUint64(params.InitialBaseFee)
}
-
+ elasticity := config.ElasticityMultiplier()
-
diff --git op-geth/consensus/misc/eip1559/eip1559_test.go Celo/consensus/misc/eip1559/eip1559_test.go
-
index 39766b57cc18f9e1e433495cff8183cd7e0984b4..726440ce390f1e3982c38bcb5d8f795f2add920b 100644
+
diff --git op-geth/consensus/misc/eip1559/eip1559_test.go Celo/consensus/misc/eip1559/eip1559_test.go
+
index c69dc80f93ac9e040e6a10e420ceaffb5a892724..8dabf1f8a79013052a2504db1844484ac3e5268e 100644
--- op-geth/consensus/misc/eip1559/eip1559_test.go
+++ Celo/consensus/misc/eip1559/eip1559_test.go
-
@@ -69,6 +69,15 @@ }
+
@@ -71,6 +71,15 @@ }
return config
}
@@ -16347,7 +16355,7 @@
// TestBlockGasLimits tests the gasLimit checks for blocks both across
// the EIP-1559 boundary and post-1559 blocks
func TestBlockGasLimits(t *testing.T) {
-
@@ -176,3 +185,30 @@ t.Errorf("test %d: have %d want %d, ", i, have, want)
+
@@ -218,3 +227,30 @@ t.Errorf("test %d: have %d want %d, ", i, have, want)
}
}
}
@@ -16384,8 +16392,8 @@
-
diff --git op-geth/contracts/addresses/addresses.go Celo/contracts/addresses/addresses.go
+
diff --git op-geth/contracts/addresses/addresses.go Celo/contracts/addresses/addresses.go
new file mode 100644
index 0000000000000000000000000000000000000000..4cfa57a71a556adcbf78fd141cf5ce8bf743d8cf
--- /dev/null
@@ -16481,8 +16489,8 @@