Skip to content

Commit dde69b3

Browse files
kupermindclaude
andcommitted
fix(proposal-24): bake buffered SDK maxFeePerGas into Arbitrum retryable
Overfunding msg.value does not change the retryable ticket's gas bid: the ticket uses the explicit maxFeePerGas argument. The estimator was baking the raw current L2 gas price (~0.02 gwei) instead of the SDK's buffered p.maxFeePerGas (+1000%), so a rise in Arbitrum L2 gas before execution could leave the retryable underbid and not auto-redeemed (still manually redeemable, but not the intended behaviour for a governance action). Now bakes the buffered maxFeePerGas (220_000_000 ~ 0.22 gwei) and refreshes maxSubmissionCost/value from a fresh estimate; value (deposit*10) already covered the buffered deposit. estimate_arb_submission_cost.js now uses p.maxFeePerGas (not getGasPrice). Regenerated calldata.json + HTML. New proposalId 0x73e8480bad6a2e344017aeeb789a356653a82d275cba156c8a889c0d5f1a7f49. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 1090c2e commit dde69b3

4 files changed

Lines changed: 14 additions & 11 deletions

File tree

scripts/proposals/proposal_24_dewhitelist_sameaddr_and_unnominate/Proposal24DewhitelistAndUnnominate.s.sol

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@ abstract contract Proposal24Builder {
9898
// autonolas-registries/scripts/proposals/proposal_15 (default base + maxSubmissionFee/maxFeePerGas
9999
// +1000% buffers, gasLimit min 2M +30%), then value = deposit * 10. Concrete baked values from
100100
// scripts/proposals/_estimate_arb_proposal24.js (re-run right before submission to refresh).
101-
uint256 internal constant ARB_MAX_SUBMISSION_COST = 3_076_886_361_824; // SDK maxSubmissionCost (already +1000%)
101+
uint256 internal constant ARB_MAX_SUBMISSION_COST = 4_944_601_833_776; // SDK maxSubmissionCost (already +1000%)
102102
uint256 internal constant ARB_GAS_LIMIT = 2_000_000; // SDK gasLimit (2M min)
103-
uint256 internal constant ARB_MAX_FEE_PER_GAS = 20_190_000; // live L2 gas price bid
104-
uint256 internal constant ARB_RETRYABLE_VALUE = 4_432_968_863_618_240; // SDK deposit * 10
103+
uint256 internal constant ARB_MAX_FEE_PER_GAS = 220_000_000; // SDK BUFFERED maxFeePerGas (+1000%), not the raw gas price
104+
uint256 internal constant ARB_RETRYABLE_VALUE = 4_449_446_018_337_760; // SDK deposit * 10
105105

106106
// NOTE: regenerate description.txt to match this byte-for-byte before submission.
107107
string internal constant DESCRIPTION =

scripts/proposals/proposal_24_dewhitelist_sameaddr_and_unnominate/calldata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
{
2121
"index": 3,
2222
"target": "0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f",
23-
"value": "4432968863618240",
24-
"calldata": "0x679b6ded000000000000000000000000e3607b00e75f6405248323a9417ff6b39b244b500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002cc64b7f6e00000000000000000000000004d30f68f5aa342d296d4dee4bb1cacca912da70f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e848000000000000000000000000000000000000000000000000000000000013413300000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000004482694b1d000000000000000000000000bb7e1d6cb6f243d6bde81ce92a9f2aff7fbe7eac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
23+
"value": "4449446018337760",
24+
"calldata": "0x679b6ded000000000000000000000000e3607b00e75f6405248323a9417ff6b39b244b5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047f413c61300000000000000000000000004d30f68f5aa342d296d4dee4bb1cacca912da70f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e8480000000000000000000000000000000000000000000000000000000000d1cef000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000004482694b1d000000000000000000000000bb7e1d6cb6f243d6bde81ce92a9f2aff7fbe7eac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
2525
},
2626
{
2727
"index": 4,

scripts/proposals/proposal_24_dewhitelist_sameaddr_and_unnominate/estimate_arb_submission_cost.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,16 @@ async function main() {
4040
excessFeeRefundAddress: ARB_MEDIATOR_L2, callValueRefundAddress: AddressZero, data: calldata },
4141
await getBaseFee(mainnetProvider), mainnetProvider, overrides);
4242

43-
const gasPriceBid = await arbitrumProvider.getGasPrice();
44-
const value = p.deposit.mul(10);
43+
// Bake the SDK's BUFFERED maxFeePerGas (the maxFeePerGas override above is +1000%), NOT the raw current
44+
// L2 gas price: msg.value being overfunded does not change the ticket's gas bid, so the explicit
45+
// maxFeePerGas argument must itself carry headroom or the retryable can fail to auto-redeem if L2 gas rises.
46+
const gasPriceBid = await arbitrumProvider.getGasPrice(); // raw, for reference only
47+
const value = p.deposit.mul(10); // deposit already uses the buffered maxFeePerGas
4548

4649
console.log("inbox:", inboxAddress);
4750
console.log("ARB_MAX_SUBMISSION_COST =", p.maxSubmissionCost.toString());
4851
console.log("ARB_GAS_LIMIT =", p.gasLimit.toString());
49-
console.log("ARB_MAX_FEE_PER_GAS =", gasPriceBid.toString());
52+
console.log("ARB_MAX_FEE_PER_GAS =", p.maxFeePerGas.toString(), "(buffered; raw gasPrice =", gasPriceBid.toString() + ")");
5053
console.log("deposit =", p.deposit.toString());
5154
console.log("ARB_RETRYABLE_VALUE = deposit*10 =", value.toString());
5255
}

scripts/proposals/proposal_24_dewhitelist_sameaddr_and_unnominate/proposal_24_dewhitelist_sameaddr_and_unnominate.html

Lines changed: 3 additions & 3 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)