Summary
A current ~46KB Intelligent Contract (the Governor) cannot be deployed to Bradbury through either the standard SDK automatic-gas path or the manual transaction path tested. Bradbury rejects the transaction before acceptance with gas limit too high.
This appears to be a distinct hard ceiling finding, separate from the gas-underestimation behavior reported in #402.
Reproduction
Environment:
- Network: Bradbury, chain ID 4221
- Source: contracts/governor.py
- Source size: 46,535 bytes
- SHA-256: 87c21436acbd4079a30ee3b7bf9ad5c12ef8c69b180750983dd2aba8ebfa6c02
- Governor source includes enrollment, review, claim, halt, and mandate-promotion logic
- Upgrade/deploy payload: approximately 41KB
Manual path:
- A gas limit based on an estimated requirement of approximately 32,489,986 was rejected with gas limit too high.
- An explicit gas limit of 16,777,216 was rejected with gas limit too high.
- An explicit gas limit of 16,000,000 was rejected with gas limit too high.
Standard SDK path:
The current source was then submitted once through the normal genlayer-js deployment path using automatic gas handling, with no manual gas override. It used a separately funded raw-key wallet:
- Wallet nonce before submission: latest=0, pending=0
- RPC returned identifier: 0xe4d645bf55acb1c661b1704428436a2330c1d56c6b06ce800185f610328b2703c
- RPC error: gas limit too high
- eth_getTransactionByHash: null
- Receipt lookup: null
- Wallet nonce afterward: latest=0, pending=0
No contract was created and no Intelligent Contract state changed.
Conclusion
Across the tested manual and automatic transaction-construction paths, this Governor-sized deployment is rejected at a gas limit below 16,000,000. The fresh wallet and clean nonce rule out the earlier stuck-nonce wallet as the cause, and the automatic path rules out a manually guessed gas limit as the sole cause.
This may affect other sizably-sized Intelligent Contract deployments or upgrades on Bradbury, not only this Governor. We are not claiming every contract has the same gas requirement; the exact Bradbury ceiling remains to be determined.
Question
What is Bradbury's actual per-transaction gas ceiling, and what is the supported route for deploying or upgrading Intelligent Contracts that require more gas? Is there a chunked deployment, protocol-specific upgrade route, different transaction type, or documented contract-size/gas guidance?
Summary
A current ~46KB Intelligent Contract (the Governor) cannot be deployed to Bradbury through either the standard SDK automatic-gas path or the manual transaction path tested. Bradbury rejects the transaction before acceptance with gas limit too high.
This appears to be a distinct hard ceiling finding, separate from the gas-underestimation behavior reported in #402.
Reproduction
Environment:
Manual path:
Standard SDK path:
The current source was then submitted once through the normal genlayer-js deployment path using automatic gas handling, with no manual gas override. It used a separately funded raw-key wallet:
No contract was created and no Intelligent Contract state changed.
Conclusion
Across the tested manual and automatic transaction-construction paths, this Governor-sized deployment is rejected at a gas limit below 16,000,000. The fresh wallet and clean nonce rule out the earlier stuck-nonce wallet as the cause, and the automatic path rules out a manually guessed gas limit as the sole cause.
This may affect other sizably-sized Intelligent Contract deployments or upgrades on Bradbury, not only this Governor. We are not claiming every contract has the same gas requirement; the exact Bradbury ceiling remains to be determined.
Question
What is Bradbury's actual per-transaction gas ceiling, and what is the supported route for deploying or upgrading Intelligent Contracts that require more gas? Is there a chunked deployment, protocol-specific upgrade route, different transaction type, or documented contract-size/gas guidance?