Skip to content

Commit f054b3b

Browse files
Add Calibur to EIP-7702 delegator whitelist
Add Uniswap Wallet's EIP-7702 delegator contract (Calibur) to the on-device whitelist, allowing Ledger users to delegate their EOA to the Calibur implementation with a recognizable name shown on the device display. The contract is deployed at the same deterministic address across all supported chains, so a single chain_id = 0 (CHAIN_ID_ALL) entry covers them all. The address was verified byte-by-byte against the upstream deployment: 0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00 Source and audits: https://github.com/Uniswap/calibur https://github.com/Uniswap/calibur/tree/main/audits Changes: - src/features/sign_authorization_eip7702/whitelist_7702.c: add a single CHAIN_ID_ALL entry for "Calibur" with the verified 20-byte address array. - tests/ragger/test_eip7702.py: add test_eip7702_calibur_in_whitelist, which exercises the happy-path sign flow with the Calibur address on chain_id 1, verifying the whitelist match and that the signed authorization recovers to the device address.
1 parent 3d653f8 commit f054b3b

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

src/features/sign_authorization_eip7702/whitelist_7702.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ static const eip7702_whitelist_t EIP7702_WHITELIST[] = {
2727
.name = "Simple7702Account",
2828
.address = {0x4C, 0xd2, 0x41, 0xE8, 0xd1, 0x51, 0x0e, 0x30, 0xb2, 0x07,
2929
0x63, 0x97, 0xaf, 0xc7, 0x50, 0x8A, 0xe5, 0x9C, 0x66, 0xc9}},
30+
{.chain_id = 0,
31+
.name = "Calibur",
32+
.address = {0x00, 0x00, 0x00, 0x00, 0x9B, 0x1D, 0x0a, 0xF2, 0x0D, 0x8C,
33+
0x6d, 0x0A, 0x44, 0xe1, 0x62, 0xd1, 0x1F, 0x9b, 0x8f, 0x00}},
3034
};
3135

3236
const char *get_delegate_name(const uint64_t *chain_id, const uint8_t *address) {

tests/ragger/test_eip7702.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,3 +149,13 @@ def test_eip7702_revocation(scenario_navigator: NavigateWithScenario, test_name:
149149
ADDRESS_REVOCATION,
150150
NONCE,
151151
CHAIN_ID_1)
152+
153+
154+
def test_eip7702_calibur_in_whitelist(scenario_navigator: NavigateWithScenario, test_name: str):
155+
device = scenario_navigator.backend.device
156+
settings_toggle(device, scenario_navigator.navigator, [SettingID.EIP7702])
157+
common(scenario_navigator,
158+
test_name,
159+
bytes.fromhex("000000009B1D0aF20D8C6d0A44e162d11F9b8f00"),
160+
NONCE,
161+
CHAIN_ID_1)

0 commit comments

Comments
 (0)