Skip to content
Lattice

ERC5564Announcer

Git Source

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

NameTypeDescription
schemeIduint256The stealth-address scheme id (1 == SECP256k1 with view tags).
stealthAddressaddressThe destination stealth address.
ephemeralPubKeybytesThe sender's ephemeral public key.
metadatabytesScheme-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

NameTypeDescription
selectorsbytes