Skip to content

docs(tip-1099): replace nested AccountKeychain ABI inputs with RLP - #7269

Merged
klkvr merged 10 commits into
mainfrom
tip/1099
Aug 28, 2026
Merged

docs(tip-1099): replace nested AccountKeychain ABI inputs with RLP#7269
klkvr merged 10 commits into
mainfrom
tip/1099

Conversation

@decofe

@decofe decofe commented Aug 21, 2026

Copy link
Copy Markdown
Member

Depends on #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.

Comment thread tips/tip-1099.md

The old selector must revert as an unknown function selector after activation.

`scopes` uses the existing TIP-1011 schema:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to bench if this RLP decoding needs to be metered, or existing input gas is enough

@klkvr
klkvr changed the base branch from main to tip/1100 August 23, 2026 17:38
@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

📊 Tempo Precompiles Coverage

precompiles

Coverage: 6452/10597 lines (60.89%)

File details
File Lines Coverage
src/account_keychain/dispatch.rs 16/42 38.10%
src/account_keychain/mod.rs 310/896 34.60%
src/address_registry/dispatch.rs 21/27 77.78%
src/address_registry/mod.rs 50/60 83.33%
src/current_committee/dispatch.rs 0/9 0.00%
src/current_committee/mod.rs 0/18 0.00%
src/dispatch.rs 127/153 83.01%
src/error.rs 52/166 31.33%
src/ip_validation.rs 10/10 100.00%
src/lib.rs 129/146 88.36%
src/nonce/dispatch.rs 6/7 85.71%
src/nonce/mod.rs 44/58 75.86%
src/receive_policy_guard/dispatch.rs 0/12 0.00%
src/receive_policy_guard/mod.rs 0/139 0.00%
src/signature_verifier/dispatch.rs 15/23 65.22%
src/signature_verifier/mod.rs 13/55 23.64%
src/stablecoin_dex/dispatch.rs 59/71 83.10%
src/stablecoin_dex/mod.rs 1001/1097 91.25%
src/stablecoin_dex/order/mod.rs 120/154 77.92%
src/stablecoin_dex/order/storage.rs 178/249 71.49%
src/stablecoin_dex/orderbook.rs 183/242 75.62%
src/storage/actions.rs 11/90 12.22%
src/storage/evm.rs 390/437 89.24%
src/storage/hashmap.rs 0/241 0.00%
src/storage/mod.rs 27/69 39.13%
src/storage/packing.rs 68/93 73.12%
src/storage/thread_local.rs 200/296 67.57%
src/storage/types/array.rs 0/72 0.00%
src/storage/types/bytes_like.rs 135/179 75.42%
src/storage/types/cache.rs 65/122 53.28%
src/storage/types/mapping.rs 27/48 56.25%
src/storage/types/mod.rs 47/71 66.20%
src/storage/types/primitives.rs 21/24 87.50%
src/storage/types/set.rs 28/192 14.58%
src/storage/types/slot.rs 80/101 79.21%
src/storage/types/vec.rs 103/261 39.46%
src/storage_credits/accounting.rs 79/92 85.87%
src/storage_credits/dispatch.rs 16/16 100.00%
src/storage_credits/mod.rs 138/193 71.50%
src/tip20/dispatch.rs 64/73 87.67%
src/tip20/mod.rs 657/801 82.02%
src/tip20/rewards.rs 242/260 93.08%
src/tip20/roles.rs 85/88 96.59%
src/tip20_channel_reserve/dispatch.rs 0/42 0.00%
src/tip20_channel_reserve/mod.rs 3/548 0.55%
src/tip20_factory/dispatch.rs 9/11 81.82%
src/tip20_factory/mod.rs 117/140 83.57%
src/tip403_registry/dispatch.rs 29/46 63.04%
src/tip403_registry/mod.rs 347/544 63.79%
src/tip_fee_manager/amm.rs 295/465 63.44%
src/tip_fee_manager/dispatch.rs 35/37 94.59%
src/tip_fee_manager/mod.rs 58/155 37.42%
src/validator_config/dispatch.rs 18/28 64.29%
src/validator_config/mod.rs 171/227 75.33%
src/validator_config_v2/dispatch.rs 30/33 90.91%
src/validator_config_v2/mod.rs 523/581 90.02%
src/zone_factory/dispatch.rs 0/15 0.00%
src/zone_factory/mod.rs 0/215 0.00%
src/zone_factory/portal.rs 0/57 0.00%

contracts

Coverage: 1/202 lines (0.50%)

File details
File Lines Coverage
src/lib.rs 1/1 100.00%
src/precompiles/receive_policy_guard.rs 0/78 0.00%
src/precompiles/storage_credits.rs 0/7 0.00%
src/precompiles/tip20.rs 0/50 0.00%
src/precompiles/tip20_channel_reserve.rs 0/27 0.00%
src/precompiles/tip403_registry.rs 0/9 0.00%
src/precompiles/validator_config_v2.rs 0/3 0.00%
src/precompiles/zone_factory.rs 0/27 0.00%

Total: 6453/10799 lines (59.76%)

📦 Download full HTML report

@klkvr
klkvr marked this pull request as ready for review August 24, 2026 08:40
legion2002
legion2002 previously approved these changes Aug 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Changelog not found.

A changelog entry is required before merging. We've generated a suggested changelog based on your changes:

Preview
---
tempo-hardfork: minor
---

Added T11 precompile calldata pricing at 30 gas per 32-byte word and updated gas expectations.

Add changelog to commit this to your branch.

@klkvr

klkvr commented Aug 25, 2026

Copy link
Copy Markdown
Member

cyclops audit super-fast

@tempoxyz-bot tempoxyz-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👁️ Cyclops Review — No actionable findings.

Comment thread tips/tip-1099.md
/// @notice Creates or replaces call scopes for an existing key.
/// @param keyId The key whose scopes are updated.
/// @param scopes Canonical RLP encoding of a non-empty CallScope list.
function setAllowedCalls(address keyId, bytes calldata scopes) external;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it may be worth noting for integrators that calldata decoding is insufficient e.g. explorer can no longer render args. maybe we should add events in t11 for setAllowedCalls?

ofc there is getAllowedCalls

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah but we don't emit the configured scopes during key authorization either so this feels like a separate issue

@0xalpharush

Copy link
Copy Markdown
Contributor

+1

tempo-voight-kampff[bot]
tempo-voight-kampff Bot previously approved these changes Aug 27, 2026

@tempo-voight-kampff tempo-voight-kampff Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving on behalf of @0xalpharush, who approved this pull request with a +1 comment via Voight-Kampff (head 0a23e1610591).

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.

Thegreatsura pushed a commit to Thegreatsura/tempo that referenced this pull request Aug 28, 2026
Prerequisite for tempoxyz#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.
@tempo-voight-kampff

Copy link
Copy Markdown

Hi @klkvr — your review approval was detected by Voight-Kampff, but this repository configures allow-self-reviews: false, so the current head commit author cannot approve their own changes. Your review did not trigger an approval prompt and is not counted toward this PR.

Ask another reviewer to +1 the PR (or submit an "Approve" review) to satisfy the gate.

@klkvr
klkvr added this pull request to the merge queue Aug 28, 2026
Merged via the queue into main with commit 1b625d5 Aug 28, 2026
50 checks passed
@klkvr
klkvr deleted the tip/1099 branch August 28, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants