ERC5564Announcer
Inherits: IERC5564Announcer
Title: ERC5564Announcer
Authors: David Dada <daveproxy80@gmail.com> (https://github.com/dadadave80), Modified from ScopeLift (https://github.com/ScopeLift/stealth-address-erc-contracts), Conforms to ERC-5564 (https://eips.ethereum.org/EIPS/eip-5564)
Stateless Diamond facet implementing the ERC-5564 stealth-address announcer.
All logic lives in ERC5564AnnouncerLib. Inherit this in your Diamond to let any account broadcast stealth payments via announce. Permissionless by design — no access control.
Notes:
- lattice-version: 0.1.0
- lattice-source: Lattice original
Functions
announce
Emits an Announcement broadcasting a stealth payment.
Permissionless and stateless; caller in the event is forced to msg.sender.
function announce(uint256 schemeId, address stealthAddress, bytes calldata ephemeralPubKey, bytes calldata metadata)
external
virtual;Parameters
| Name | Type | Description |
|---|---|---|
| schemeId | uint256 | The stealth-address scheme id (1 == SECP256k1 with view tags). |
| stealthAddress | address | The destination stealth address. |
| ephemeralPubKey | bytes | The sender's ephemeral public key. |
| metadata | bytes | Scheme-specific metadata (view tag + optional transfer hints for scheme 1). |
exportSelectors
ERC-8153 selector export: this facet's cuttable selectors, tightly packed (4 bytes each).
Excludes exportSelectors() itself (0x0ef22643) - it is never cut into a diamond. Order matches
forge inspect ERC5564Announcer methodIdentifiers (alphabetical by signature); kept in exact parity by
ExportSelectorsParityTest. Chunks:
announce(uint256,address,bytes,bytes) 0x4d1f9583
function exportSelectors() external pure virtual returns (bytes memory selectors);Returns
| Name | Type | Description |
|---|---|---|
| selectors | bytes |