From 1f20be502235fa734006a0c6e17363bf8df7ebf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Keszey=20D=C3=A1niel?= Date: Tue, 22 Apr 2025 10:29:05 +0200 Subject: [PATCH 1/4] some updates --- .../protocol/contracts/layer1/based/TaikoInbox.sol | 14 +++++++------- .../layer1/prover-market/ProverMarket.sol | 5 ----- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/packages/protocol/contracts/layer1/based/TaikoInbox.sol b/packages/protocol/contracts/layer1/based/TaikoInbox.sol index 58f6f3712c9..60c4744da01 100644 --- a/packages/protocol/contracts/layer1/based/TaikoInbox.sol +++ b/packages/protocol/contracts/layer1/based/TaikoInbox.sol @@ -203,7 +203,6 @@ abstract contract TaikoInbox is EssentialContract, ITaikoInbox, IProposeBatch, I uint256 proverFee; (meta_.prover, proverFee) = proverMarket.getCurrentProver(); require(meta_.prover != address(0), NoProverAvailable()); - if (info_.proposer == meta_.prover) { // proposer is the same as the prover, no need to pay the prover fee. _debitBond(meta_.prover, config.livenessBondBase); @@ -211,15 +210,16 @@ abstract contract TaikoInbox is EssentialContract, ITaikoInbox, IProposeBatch, I // proposer pay the prover fee. _debitBond(info_.proposer, proverFee); - if (proverFee < config.livenessBondBase) { - _debitBond(meta_.prover, config.livenessBondBase - proverFee); - } else { - _creditBond(meta_.prover, proverFee - config.livenessBondBase); - } + // if bondDelta is negative (proverFee < livenessBondBase), deduct the diff + // if not then add the diff to the bond balance + int256 bondDelta = int256(proverFee) - int256(uint256(config.livenessBondBase)); + bondDelta < 0 + ? _debitBond(meta_.prover, uint256(-bondDelta)) + : _creditBond(meta_.prover, uint256(bondDelta)); + proverMarket.onProverAssigned(meta_.prover, proverFee, meta_.batchId); } } else { - // proposer is the same as the prover, no need to pay the prover fee. _debitBond(meta_.prover, config.livenessBondBase); } diff --git a/packages/protocol/contracts/layer1/prover-market/ProverMarket.sol b/packages/protocol/contracts/layer1/prover-market/ProverMarket.sol index 72d269b94d3..5637b841fee 100644 --- a/packages/protocol/contracts/layer1/prover-market/ProverMarket.sol +++ b/packages/protocol/contracts/layer1/prover-market/ProverMarket.sol @@ -158,11 +158,6 @@ contract ProverMarket is EssentialContract, IProverMarket { { emit ProverAssigned(msg.sender, _fee, _batchId); - if (assignmentCount > FEE_CHANGE_THRESHOLD) { - // No need to update assignmentCount nor avgFee - return; - } - if (++assignmentCount <= FEE_CHANGE_THRESHOLD) { uint64 _avgFeeInGwei = avgFeeInGwei; uint64 _feeInGwei = uint64(_fee / GWEI); From 5954ac4cc1805c0ac8c8333867a7bd72c74f4db4 Mon Sep 17 00:00:00 2001 From: adaki2004 <51912515+adaki2004@users.noreply.github.com> Date: Tue, 22 Apr 2025 08:36:28 +0000 Subject: [PATCH 2/4] forge fmt & update contract layout tables --- ...nbox_with_provermarket_diff_prover_and_proposer.txt | 4 ++-- ...ket_diff_prover_and_proposer_fee_above_liveness.txt | 4 ++-- packages/protocol/gas-reports/layer1-contracts.txt | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer.txt b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer.txt index abbb74fc6bb..a927910d801 100644 --- a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer.txt +++ b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer.txt @@ -1,5 +1,5 @@ See `test_inbox_with_provermarket_diff_prover_and_proposer_measure_gas_used` in InboxTest_ProposeAndProve.t.sol -Gas per proposing: 189605 +Gas per proposing: 189419 Gas per proving + verification: 158541 -Total: 348146 \ No newline at end of file +Total: 347960 \ No newline at end of file diff --git a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt index d0e66aa44fc..b08126a5f39 100644 --- a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt +++ b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt @@ -1,5 +1,5 @@ See `test_inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness_measure_gas_used` in InboxTest_ProposeAndProve.t.sol -Gas per proposing: 189454 +Gas per proposing: 189285 Gas per proving + verification: 158547 -Total: 348001 \ No newline at end of file +Total: 347832 \ No newline at end of file diff --git a/packages/protocol/gas-reports/layer1-contracts.txt b/packages/protocol/gas-reports/layer1-contracts.txt index 4962744367c..c7162d77257 100644 --- a/packages/protocol/gas-reports/layer1-contracts.txt +++ b/packages/protocol/gas-reports/layer1-contracts.txt @@ -69,21 +69,21 @@ InboxTest_ProposeAndProve:test_inbox_reprove_by_transition_with_same_parent_hash InboxTest_ProposeAndProve:test_inbox_reprove_by_transition_with_same_parent_hash_but_different_block_hash_will_pause_inbox() (gas: 7823621) InboxTest_ProposeAndProve:test_inbox_reprove_the_same_batch_with_same_transition_will_do_nothing() (gas: 1223576) InboxTest_ProposeAndProve:test_inbox_ring_buffer_will_be_reused() (gas: 15112348) -InboxTest_ProposeAndProve:test_inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness_measure_gas_used() (gas: 9458460) -InboxTest_ProposeAndProve:test_inbox_with_provermarket_diff_prover_and_proposer_measure_gas_used() (gas: 9458507) +InboxTest_ProposeAndProve:test_inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness_measure_gas_used() (gas: 9458291) +InboxTest_ProposeAndProve:test_inbox_with_provermarket_diff_prover_and_proposer_measure_gas_used() (gas: 9458321) InboxTest_ProposeAndProve:test_inbox_with_provermarket_same_prover_as_proposer_measure_gas_used() (gas: 9372313) InboxTest_StopBatch:test_inbox_num_batches_verified() (gas: 8375381) PreconfRouterTest:test_preconfRouter_proposeBatch() (gas: 375143) PreconfRouterTest:test_preconfRouter_proposeBatch_notOperator() (gas: 325702) PreconfRouterTest:test_preconfRouter_proposeBatch_proposerNotSender() (gas: 373818) ProverMarketTest:test_FeeLargerThanAllowed_reverts() (gas: 116105) -ProverMarketTest:test_averageFeeCalculation() (gas: 155249) +ProverMarketTest:test_averageFeeCalculation() (gas: 153709) ProverMarketTest:test_bid() (gas: 90169) ProverMarketTest:test_bid_with_insufficientBondBalance() (gas: 40622) ProverMarketTest:test_cannotFitToUint64_reverts() (gas: 37213) -ProverMarketTest:test_feeLargerThanMax_reverts() (gas: 179645) +ProverMarketTest:test_feeLargerThanMax_reverts() (gas: 178105) ProverMarketTest:test_feeNotDivisibleByUnit_reverts() (gas: 37008) -ProverMarketTest:test_getMaxFee() (gas: 155506) +ProverMarketTest:test_getMaxFee() (gas: 153966) ProverMarketTest:test_invalidThresholds_reverts() (gas: 63631) ProverMarketTest:test_outbidWithHigherBond() (gas: 150911) ProverMarketTest:test_outbidWithLowerBond() (gas: 144589) From 69003790fa5cf2efb65ae38aa48f661bc646f4c4 Mon Sep 17 00:00:00 2001 From: D <51912515+adaki2004@users.noreply.github.com> Date: Tue, 22 Apr 2025 11:22:53 +0200 Subject: [PATCH 3/4] feat(protocol): provermarket updates 2 (#19320) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Keszey Dániel --- .../protocol/contracts/layer1/prover-market/ProverMarket.sol | 3 ++- ...overmarket_diff_prover_and_proposer_fee_above_liveness.txt | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/protocol/contracts/layer1/prover-market/ProverMarket.sol b/packages/protocol/contracts/layer1/prover-market/ProverMarket.sol index 5637b841fee..c021f7f9eb7 100644 --- a/packages/protocol/contracts/layer1/prover-market/ProverMarket.sol +++ b/packages/protocol/contracts/layer1/prover-market/ProverMarket.sol @@ -158,11 +158,12 @@ contract ProverMarket is EssentialContract, IProverMarket { { emit ProverAssigned(msg.sender, _fee, _batchId); - if (++assignmentCount <= FEE_CHANGE_THRESHOLD) { + if (assignmentCount < FEE_CHANGE_THRESHOLD) { uint64 _avgFeeInGwei = avgFeeInGwei; uint64 _feeInGwei = uint64(_fee / GWEI); unchecked { + assignmentCount++; avgFeeInGwei = _avgFeeInGwei == 0 ? _feeInGwei : uint64(((FEE_CHANGE_FACTOR - 1) * _avgFeeInGwei + _feeInGwei) / FEE_CHANGE_FACTOR); diff --git a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt index b08126a5f39..6b485992e03 100644 --- a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt +++ b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt @@ -1,5 +1,5 @@ See `test_inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness_measure_gas_used` in InboxTest_ProposeAndProve.t.sol -Gas per proposing: 189285 +Gas per proposing: 189172 Gas per proving + verification: 158547 -Total: 347832 \ No newline at end of file +Total: 347719 From 28bb8e46aef1436aba203b4424b38fdb0ec8ac6d Mon Sep 17 00:00:00 2001 From: adaki2004 <51912515+adaki2004@users.noreply.github.com> Date: Tue, 22 Apr 2025 09:26:45 +0000 Subject: [PATCH 4/4] forge fmt & update contract layout tables --- ..._provermarket_diff_prover_and_proposer.txt | 4 +-- ...prover_and_proposer_fee_above_liveness.txt | 2 +- .../protocol/gas-reports/layer1-contracts.txt | 26 +++++++++---------- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer.txt b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer.txt index a927910d801..9ada0e153df 100644 --- a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer.txt +++ b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer.txt @@ -1,5 +1,5 @@ See `test_inbox_with_provermarket_diff_prover_and_proposer_measure_gas_used` in InboxTest_ProposeAndProve.t.sol -Gas per proposing: 189419 +Gas per proposing: 189306 Gas per proving + verification: 158541 -Total: 347960 \ No newline at end of file +Total: 347847 \ No newline at end of file diff --git a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt index 6b485992e03..4fdc8f9a6ce 100644 --- a/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt +++ b/packages/protocol/gas-reports/inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness.txt @@ -2,4 +2,4 @@ See `test_inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness_me Gas per proposing: 189172 Gas per proving + verification: 158547 -Total: 347719 +Total: 347719 \ No newline at end of file diff --git a/packages/protocol/gas-reports/layer1-contracts.txt b/packages/protocol/gas-reports/layer1-contracts.txt index c7162d77257..c472ab54bd4 100644 --- a/packages/protocol/gas-reports/layer1-contracts.txt +++ b/packages/protocol/gas-reports/layer1-contracts.txt @@ -69,26 +69,26 @@ InboxTest_ProposeAndProve:test_inbox_reprove_by_transition_with_same_parent_hash InboxTest_ProposeAndProve:test_inbox_reprove_by_transition_with_same_parent_hash_but_different_block_hash_will_pause_inbox() (gas: 7823621) InboxTest_ProposeAndProve:test_inbox_reprove_the_same_batch_with_same_transition_will_do_nothing() (gas: 1223576) InboxTest_ProposeAndProve:test_inbox_ring_buffer_will_be_reused() (gas: 15112348) -InboxTest_ProposeAndProve:test_inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness_measure_gas_used() (gas: 9458291) -InboxTest_ProposeAndProve:test_inbox_with_provermarket_diff_prover_and_proposer_measure_gas_used() (gas: 9458321) -InboxTest_ProposeAndProve:test_inbox_with_provermarket_same_prover_as_proposer_measure_gas_used() (gas: 9372313) +InboxTest_ProposeAndProve:test_inbox_with_provermarket_diff_prover_and_proposer_fee_above_liveness_measure_gas_used() (gas: 9458184) +InboxTest_ProposeAndProve:test_inbox_with_provermarket_diff_prover_and_proposer_measure_gas_used() (gas: 9458214) +InboxTest_ProposeAndProve:test_inbox_with_provermarket_same_prover_as_proposer_measure_gas_used() (gas: 9372319) InboxTest_StopBatch:test_inbox_num_batches_verified() (gas: 8375381) PreconfRouterTest:test_preconfRouter_proposeBatch() (gas: 375143) PreconfRouterTest:test_preconfRouter_proposeBatch_notOperator() (gas: 325702) PreconfRouterTest:test_preconfRouter_proposeBatch_proposerNotSender() (gas: 373818) -ProverMarketTest:test_FeeLargerThanAllowed_reverts() (gas: 116105) -ProverMarketTest:test_averageFeeCalculation() (gas: 153709) -ProverMarketTest:test_bid() (gas: 90169) +ProverMarketTest:test_FeeLargerThanAllowed_reverts() (gas: 116111) +ProverMarketTest:test_averageFeeCalculation() (gas: 152585) +ProverMarketTest:test_bid() (gas: 90175) ProverMarketTest:test_bid_with_insufficientBondBalance() (gas: 40622) ProverMarketTest:test_cannotFitToUint64_reverts() (gas: 37213) -ProverMarketTest:test_feeLargerThanMax_reverts() (gas: 178105) +ProverMarketTest:test_feeLargerThanMax_reverts() (gas: 176981) ProverMarketTest:test_feeNotDivisibleByUnit_reverts() (gas: 37008) -ProverMarketTest:test_getMaxFee() (gas: 153966) -ProverMarketTest:test_invalidThresholds_reverts() (gas: 63631) -ProverMarketTest:test_outbidWithHigherBond() (gas: 150911) -ProverMarketTest:test_outbidWithLowerBond() (gas: 144589) -ProverMarketTest:test_outbidWithSameBond() (gas: 144610) -ProverMarketTest:test_requestExit() (gas: 95451) +ProverMarketTest:test_getMaxFee() (gas: 152842) +ProverMarketTest:test_invalidThresholds_reverts() (gas: 63613) +ProverMarketTest:test_outbidWithHigherBond() (gas: 150923) +ProverMarketTest:test_outbidWithLowerBond() (gas: 144601) +ProverMarketTest:test_outbidWithSameBond() (gas: 144622) +ProverMarketTest:test_requestExit() (gas: 95457) SendMessageToDelegateOwner:testAddress1() (gas: 2391) TestAutomataDcapV3Attestation:testAttestation() (gas: 4848498) TestAutomataDcapV3Attestation:testParsedCustomQuoteBinAttestation() (gas: 4553350)