IDiamondCut
Asset Tokenization Studio Team
IDiamondCut
Interface for upgrading the Diamond proxy's Business Logic Resolver (BLR), configuration identifier, and version in a single or multi-step operation.
Methods
getConfigInfo
function getConfigInfo() external view returns (address resolver_, bytes8 proxyVersion_, bytes32 configurationId_, uint256 configurationVersion_, bool replacementEnabled_)
Returns the active resolver address, configuration identifier, and version.
Returns
| Name | Type | Description |
|---|---|---|
| resolver_ | address | Address of the current Business Logic Resolver. |
| proxyVersion_ | bytes8 | proxy version. |
| configurationId_ | bytes32 | Identifier of the active configuration. |
| configurationVersion_ | uint256 | Version number of the active configuration. |
| replacementEnabled_ | bool | Whether replacement is enabled. |
getStaticFunctionSelectors
function getStaticFunctionSelectors() external pure returns (bytes4[] staticFunctionSelectors_)
Gets all function selectors of a facet
Returns
| Name | Type | Description |
|---|---|---|
| staticFunctionSelectors_ | bytes4[] | Face functions selectors |
getStaticInterfaceIds
function getStaticInterfaceIds() external pure returns (bytes4[] staticInterfaceIds_)
Gets all interfaces ids of a facet.
Returns
| Name | Type | Description |
|---|---|---|
| staticInterfaceIds_ | bytes4[] | Face interface ids |
getStaticResolverKey
function getStaticResolverKey() external pure returns (bytes32 staticResolverKey_)
Gets the static resolver key
Returns
| Name | Type | Description |
|---|---|---|
| staticResolverKey_ | bytes32 | Static resolver key |
updateConfig
function updateConfig(bytes32 _newConfigurationId, uint256 _newVersion) external nonpayable
For the current BLR, update its configuration identifier and version.
Parameters
| Name | Type | Description |
|---|---|---|
| _newConfigurationId | bytes32 | The new configuration identifier to apply. |
| _newVersion | uint256 | The version number associated with the new configuration. |
updateConfigVersion
function updateConfigVersion(uint256 _newVersion) external nonpayable
For the current BLR and configuration, update the used version.
Parameters
| Name | Type | Description |
|---|---|---|
| _newVersion | uint256 | The new version number to set for the current configuration. |
updateReplacementEnabled
function updateReplacementEnabled(bool _newReplacementEnabled) external nonpayable
For the current BLR update its configuration
Parameters
| Name | Type | Description |
|---|---|---|
| _newReplacementEnabled | bool | The replacement enabled flag to set* |
updateResolver
function updateResolver(contract IBusinessLogicResolver _newResolver, bytes32 _newConfigurationId, uint256 _newVersion, bool _newReplacementEnabled) external nonpayable
Replaces the Business Logic Resolver with a new one, setting configuration and version.
Parameters
| Name | Type | Description |
|---|---|---|
| _newResolver | contract IBusinessLogicResolver | The new BLR contract address to wire into the proxy. |
| _newConfigurationId | bytes32 | The configuration identifier to activate on the new resolver. |
| _newVersion | uint256 | The version number associated with the new configuration. |
| _newReplacementEnabled | bool | The replacement enabled flag to set. |
Events
ConfigUpdated
event ConfigUpdated(address indexed caller, bytes32 oldConfigurationId, bytes32 newConfigurationId, uint256 oldConfigurationVersion, uint256 newConfigurationVersion)
Emitted when the active configuration identifier is replaced.
updateConfig() combines an id change and a version change in one call; both get a complete old/new pair here.
Parameters
| Name | Type | Description |
|---|---|---|
caller indexed | address | Account that performed the update. |
| oldConfigurationId | bytes32 | Previous configuration identifier. |
| newConfigurationId | bytes32 | New configuration identifier. |
| oldConfigurationVersion | uint256 | Previous configuration version. |
| newConfigurationVersion | uint256 | Version activated for the new configuration. |
ConfigVersionUpdated
event ConfigVersionUpdated(address indexed caller, uint256 oldConfigurationVersion, uint256 newConfigurationVersion)
Emitted when the pinned version of the active configuration is replaced.
Parameters
| Name | Type | Description |
|---|---|---|
caller indexed | address | Account that performed the update. |
| oldConfigurationVersion | uint256 | Previous configuration version. |
| newConfigurationVersion | uint256 | New configuration version. |
ReplacementEnabledUpdated
event ReplacementEnabledUpdated(address indexed caller, bool oldReplacementEnabled, bool newReplacementEnabled)
Emitted when the replacement-enabled flag is replaced.
Parameters
| Name | Type | Description |
|---|---|---|
caller indexed | address | Account that performed the update. |
| oldReplacementEnabled | bool | Previous replacement-enabled flag. |
| newReplacementEnabled | bool | New replacement-enabled flag. |
ResolverUpdated
event ResolverUpdated(address indexed caller, address oldResolver, address newResolver, bytes32 oldConfigurationId, bytes32 newConfigurationId, uint256 oldConfigurationVersion, uint256 newConfigurationVersion, bool oldReplacementEnabled, bool newReplacementEnabled)
Emitted when the resolver-proxy's Business Logic Resolver is replaced.
updateResolver() combines four changes in one call; every one of them gets a complete old/new pair here rather than only the fields that happen to differ.
Parameters
| Name | Type | Description |
|---|---|---|
caller indexed | address | Account that performed the update. |
| oldResolver | address | Previous Business Logic Resolver address. |
| newResolver | address | New Business Logic Resolver address. |
| oldConfigurationId | bytes32 | Previous configuration identifier. |
| newConfigurationId | bytes32 | Configuration identifier activated on the new resolver. |
| oldConfigurationVersion | uint256 | Previous configuration version. |
| newConfigurationVersion | uint256 | Configuration version activated on the new resolver. |
| oldReplacementEnabled | bool | Previous replacement-enabled flag. |
| newReplacementEnabled | bool | Replacement-enabled flag activated on the new resolver. |
Errors
InvalidBusinessLogicResolver
error InvalidBusinessLogicResolver(address invalidResolver)
Thrown when a candidate resolver is the zero address or fails the isBusinessLogicResolver() identity check.
Parameters
| Name | Type | Description |
|---|---|---|
| invalidResolver | address | The address that failed validation. |