From 501f5522c0680c75df6718aeac152de19cb8e5ba Mon Sep 17 00:00:00 2001 From: Zehui Zheng Date: Mon, 12 Jan 2026 13:16:17 -0800 Subject: [PATCH] feat: improve bond refund --- prt/contracts/src/tournament/abstracts/Tournament.sol | 4 ++-- prt/contracts/src/tournament/libs/Gas.sol | 2 +- prt/contracts/test/Tournament.t.sol | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/prt/contracts/src/tournament/abstracts/Tournament.sol b/prt/contracts/src/tournament/abstracts/Tournament.sol index 068022e8..268d3f5a 100644 --- a/prt/contracts/src/tournament/abstracts/Tournament.sol +++ b/prt/contracts/src/tournament/abstracts/Tournament.sol @@ -65,7 +65,7 @@ abstract contract Tournament is ITournament { Time.Instant lastMatchDeleted; uint256 constant MAX_GAS_PRICE = 50 gwei; - uint256 constant MESSAGE_SENDER_PROFIT = 10 gwei; + uint256 constant PRIORITY_FEE_CAP = 10 gwei; bool transient locked; mapping(Tree.Node => Clock.State) clocks; @@ -623,7 +623,7 @@ abstract contract Tournament is ITournament { address(this).balance, bondValue() * gasEstimate / _totalGasEstimate(), (Gas.TX + gasBefore - gasAfter) - * (tx.gasprice + MESSAGE_SENDER_PROFIT) + * tx.gasprice.min(block.basefee + PRIORITY_FEE_CAP) ); (bool status, bytes memory ret) = diff --git a/prt/contracts/src/tournament/libs/Gas.sol b/prt/contracts/src/tournament/libs/Gas.sol index 260a0e73..6ba1a665 100644 --- a/prt/contracts/src/tournament/libs/Gas.sol +++ b/prt/contracts/src/tournament/libs/Gas.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.17; library Gas { - uint256 constant TX = 21000; + uint256 constant TX = 25000; uint256 constant ADVANCE_MATCH = 65175 + TX; uint256 constant WIN_MATCH_BY_TIMEOUT = 86203 + TX; diff --git a/prt/contracts/test/Tournament.t.sol b/prt/contracts/test/Tournament.t.sol index ee49aec0..ca4f4e9e 100644 --- a/prt/contracts/test/Tournament.t.sol +++ b/prt/contracts/test/Tournament.t.sol @@ -295,6 +295,7 @@ contract TournamentTest is Util { uint256 tournamentBalanceBefore = address(topTournament).balance; uint256 callerBalanceBefore = address(this).balance; + vm.txGasPrice(2); topTournament.eliminateMatchByTimeout(_matchId); uint256 tournamentBalanceAfter = address(topTournament).balance; uint256 callerBalanceAfter = address(this).balance;