Skip to main content

CoreAdjustedFacet

CoreAdjustedFacet

Diamond facet for the CoreAdjusted domain. Registers the single selector that exposes time-adjusted ERC-20 decimal reads (decimalsAt) to the Diamond proxy.

Implements IStaticFunctionSelectors so the BusinessLogicResolver can register the facet without an off-chain deployment step. The resolver key is RESOLVER_KEY_CORE_ADJUSTED,

Methods​

decimalsAt​

function decimalsAt(uint256 _timestamp) external view returns (uint8)

Returns the effective token decimals at the given timestamp, simulating pending scheduled balance adjustments (ABAFs) up to and including that timestamp.

Forwards to ERC20StorageWrapper.decimalsAdjustedAt. No state is mutated.

Parameters​

NameTypeDescription
_timestampuint256The Unix timestamp up to which pending ABAFs are simulated.

Returns​

NameTypeDescription
_0uint8The effective decimal precision of the token at the specified timestamp.

getStaticFunctionSelectors​

function getStaticFunctionSelectors() external pure returns (bytes4[])

Returns the list of function selectors provided by this facet.

Returns​

NameTypeDescription
_0bytes4[]staticFunctionSelectors_ Array containing the decimalsAt selector.

getStaticInterfaceIds​

function getStaticInterfaceIds() external pure returns (bytes4[])

Returns the list of interface identifiers supported by this facet.

Returns​

NameTypeDescription
_0bytes4[]staticInterfaceIds_ Array containing the ICoreAdjusted interface ID.

getStaticResolverKey​

function getStaticResolverKey() external pure returns (bytes32 staticResolverKey_)

Returns the resolver key that identifies this facet within the BusinessLogicResolver.

Returns​

NameTypeDescription
staticResolverKey_bytes32The keccak256 hash of the CoreAdjusted resolver key string.

initializeCoreAdjusted​

function initializeCoreAdjusted() external nonpayable

Initialises the core adjusted capability on the token.

Callable once; subsequent calls revert with FacetAlreadyRegistered. Requires DEFAULT_ADMIN_ROLE. Called by the factory during deployment.

Events​

CoreAdjustedInitialized​

event CoreAdjustedInitialized()

Emitted once when the core adjusted capability is initialised on a token.

Fires exclusively from initializeCoreAdjusted.

Errors​

AccountHasNoRole​

error AccountHasNoRole(address account, bytes32 role)

Thrown when an account does not hold a required role.

Parameters​

NameTypeDescription
accountaddressThe account that lacks the role.
rolebytes32The role that is not held.

FacetAlreadyRegistered​

error FacetAlreadyRegistered(bytes32 facetId, uint256 lastVersion)

Raised when an initialiser tries to register a facet that already has a non-zero last registered version (i.e. the facet is being re-initialised on a fresh install).

Parameters​

NameTypeDescription
facetIdbytes32Identifier of the offending facet.
lastVersionuint256Last version recorded for that facet at the time of the check.

UnrecognizedResolverProxyVersion​

error UnrecognizedResolverProxyVersion(bytes8 _resolverProxyVersion)

Thrown when the provided proxy version does not match any BLR compatible standard.

Parameters​

NameTypeDescription
_resolverProxyVersionbytes8proxy version that is not compatible with the BLR.

WalletRecovered​

error WalletRecovered()

Thrown when attempting to recover a wallet that has already been recovered.