Conversation
📊 Tempo Precompiles CoverageprecompilesCoverage: 6442/10623 lines (60.64%) File details
contractsCoverage: 1/223 lines (0.45%) File details
Total: 6443/10846 lines (59.40%) |
|
|
||
| ```text | ||
| before T11: words * 6 | ||
| T11 onward: words * 30 |
There was a problem hiding this comment.
can we add some justification for why the 5x number was chosen
| const PRE_T11_INPUT_PER_WORD_COST: u64 = 6; | ||
|
|
||
| /// Input per word cost starting at T11. | ||
| const T11_INPUT_PER_WORD_COST: u64 = 30; |
There was a problem hiding this comment.
nit: POST_T11_INPUT_PER_WORD_COST for consistency?
|
cyclops audit fast |
tempoxyz-bot
left a comment
There was a problem hiding this comment.
👁️ Cyclops Review
TIP-1100 correctly fork-gates the higher calldata charge, but one verified high-severity denial-of-service finding remains: linear word pricing does not bound nested ABI decode expansion.
Reviewer Callouts
- ⚡ TIP-1020 gas documentation:
tips/tip-1020.md:89and:97still state that all Tempo precompiles cost 6 gas per calldata word. Amend the text or reference TIP-1100. - ⚡ Hard-coded caller stipends: Confirm first-party contracts and SDKs do not forward fixed gas sized for the old schedule.
- ⚡ Snapshot coverage: Confirm CI exercises the complete gas-snapshot suite under T11.
|
Hi @legion2002 — your review approval was detected by Voight-Kampff and a prompt was sent to your registered device, but no response came back before the approval window closed. Your review did not count toward this PR. You can also try approving the PR directly via CLI with |
|
Hi @legion2002 — your review approval was detected by Voight-Kampff but no live Voight-Kampff agent connection received it, and no push fallback was sent before the approval window closed. Your review did not count toward this PR. You can also try approving the PR directly via CLI with |
| #[inline] | ||
| pub fn charge_input_cost(storage: &mut StorageCtx, calldata: &[u8]) -> Option<PrecompileResult> { | ||
| if storage.deduct_gas(input_cost(calldata.len())).is_err() { | ||
| let cost = input_cost(storage.spec(), calldata.len()); |
There was a problem hiding this comment.
nit: Could we make the conversion explicit with u64::try_from(calldata_len) and map failure to OOG, instead of doing the arithmetic in usize and casting with as in input_cost?
|
+1 |
Voight-Kampff: dismissing this approval review — it was never confirmed through a Voight-Kampff prompt, so it must not count toward merging this pull request. Re-submit the review and complete the Voight-Kampff prompt if you want this verdict to count.
There was a problem hiding this comment.
Approving on behalf of @0xalpharush, who approved this pull request with a +1 comment via Voight-Kampff (head 782d6a2dcf0f).
GitHub branch protection considers pull request reviews, not +1 comments. Voight-Kampff is recording this approval on the reviewer's behalf so branch protection requirements are met.
…empoxyz#7269) Depends on tempoxyz#7281. Removes the direct AccountKeychain authorization entrypoints and replaces nested setAllowedCalls ABI input with TIP-1011 RLP. The RLP payload pays another 50 gas per 32-byte word on top of TIP-1100 input pricing. --------- Co-authored-by: Arsenii Kulikov <62447812+klkvr@users.noreply.github.com> Co-authored-by: Tanishk Goyal <64212892+legion2002@users.noreply.github.com> Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
Prerequisite for #7269.
Adds TIP-1100 and raises the precompile input charge from 6 to 30 gas per 32-byte word at T11 while preserving pre-T11 replay behavior.