Skip to content

Omnigraph: Smart Account Handling #1813

@shrugs

Description

@shrugs

ENSv2 has first-party support for smart accounts, which affects usage of the native msg.sender.

the sender (and ERC1155 operator) arguments used in ENSv2 events is already smart-account-adjusted (thank god) so we DON'T need to do anything special to support smart accounts.

we do use the transaction sender within the Event model, which requires additional thought, and depends on how the frontends wish to use the Account.events or *.events(where: { from: Address }) filter — the indexed value, currently, is the actual sender of the transaction (i.e. could be anything), NOT the smart account's address.

So we may need to provide an optional sender override in the ensure*Event helpers such that events created in the context of an ENSv2 event that has a smart account are appropriately attributed.

One nuance: the NameRegistered event's sender (line 179) is explicitly commented as "the registrar, not the registrant" -- meaning when registration goes through ETHRegistrar, the sender will be the registrar contract's resolved _msgSender(), not the end user. The end user appears in the owner parameter instead.

Metadata

Metadata

Assignees

Labels

Projects

Status

No status

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions