Maple
Search…
⌃K

Maple Proxy Factory

A Maple factory for Proxy contracts that proxy MapleProxied implementations.

Constructor

constructor(
address mapleGlobals_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
mapleGlobals_
address
address
The address of a Maple Globals contract.

Functions

createInstance

Deploys a new instance proxying the default implementation version, with some initialization arguments. Uses a nonce and `msg.sender` as a salt for the CREATE2 opcode during instantiation to produce deterministic addresses.
function createInstance(
bytes arguments_,
bytes32 salt_
)
nonpayable
returns (
address instance_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
arguments_
bytes
bytes
The initialization arguments to use for the instance deployment, if any.
1
salt_
bytes32
bytes32
The salt to use in the contract creation process.

Return Values:

Index
Name
Type
Internal Type
Description
0
instance_
address
address
The address of the deployed proxy contract.

defaultImplementation

The address of an implementation for proxies.
function defaultImplementation()
view
returns (
address defaultImplementation_
);

Return Values:

Index
Name
Type
Internal Type
Description
0
defaultImplementation_
address
address

defaultVersion [state variable]

The default version.
function defaultVersion()
view
returns (
uint256 defaultVersion_
);

Return Values:

Index
Name
Type
Internal Type
Description
0
defaultVersion_
uint256
uint256

disableUpgradePath

Disables upgrading from a version to a version of a implementation. Only the Governor can call this function.
function disableUpgradePath(
uint256 fromVersion_,
uint256 toVersion_
)
nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description
0
fromVersion_
uint256
uint256
The starting version of the upgrade path.
1
toVersion_
uint256
uint256
The destination version of the upgrade path.

enableUpgradePath

Enables upgrading from a version to a version of an implementation, with an optional migrator. Only the Governor can call this function.
function enableUpgradePath(
uint256 fromVersion_,
uint256 toVersion_,
address migrator_
)
nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description
0
fromVersion_
uint256
uint256
The starting version of the upgrade path.
1
toVersion_
uint256
uint256
The destination version of the upgrade path.
2
migrator_
address
address
The address of the migrator, if any.

getInstanceAddress

Returns the deterministic address of a potential proxy, given some arguments and salt.
function getInstanceAddress(
bytes arguments_,
bytes32 salt_
)
view
returns (
address instanceAddress_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
arguments_
bytes
bytes
The initialization arguments to be used when deploying the proxy.
1
salt_
bytes32
bytes32
The salt to be used when deploying the proxy.

Return Values:

Index
Name
Type
Internal Type
Description
0
instanceAddress_
address
address
The deterministic address of a potential proxy.

implementationOf

Returns the address of an implementation version.
function implementationOf(
uint256 version_
)
view
returns (
address implementation_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
version_
uint256
uint256
The implementation version.

Return Values:

Index
Name
Type
Internal Type
Description
0
implementation_
address
address
The address of the implementation.

mapleGlobals [state variable]

The address of the MapleGlobals contract.
function mapleGlobals()
view
returns (
address mapleGlobals_
);

Return Values:

Index
Name
Type
Internal Type
Description
0
mapleGlobals_
address
address

migratorForPath

Returns the address of a migrator contract for a migration path (from version, to version). If oldVersion_ == newVersion_, the migrator is an initializer.
function migratorForPath(
uint256 oldVersion_,
uint256 newVersion_
)
view
returns (
address migrator_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
oldVersion_
uint256
uint256
The old version.
1
newVersion_
uint256
uint256
The new version.

Return Values:

Index
Name
Type
Internal Type
Description
0
migrator_
address
address
The address of a migrator contract.

registerImplementation

Registers the address of an implementation contract as a version, with an optional initializer. Only the Governor can call this function.
function registerImplementation(
uint256 version_,
address implementationAddress_,
address initializer_
)
nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description
0
version_
uint256
uint256
The version to register.
1
implementationAddress_
address
address
The address of the implementation.
2
initializer_
address
address
The address of the initializer, if any.

setDefaultVersion

Sets the default version. Only the Governor can call this function.
function setDefaultVersion(
uint256 version_
)
nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description
0
version_
uint256
uint256
The implementation version to set as the default.

setGlobals

Sets the Maple Globals contract. Only the Governor can call this function.
function setGlobals(
address mapleGlobals_
)
nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description
0
mapleGlobals_
address
address
The address of a Maple Globals contract.

upgradeEnabledForPath [state variable]

Whether the upgrade is enabled for a path from a version to another version.
function upgradeEnabledForPath(
uint256 toVersion_,
uint256 fromVersion_
)
view
returns (
bool allowed_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
toVersion_
uint256
uint256
The initial version.
1
fromVersion_
uint256
uint256
The destination version.

Return Values:

Index
Name
Type
Internal Type
Description
0
allowed_
bool
bool
Whether the upgrade is enabled.

upgradeInstance

Upgrades the calling proxy contract's implementation, with some migration arguments.
function upgradeInstance(
uint256 toVersion_,
bytes arguments_
)
nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description
0
toVersion_
uint256
uint256
The implementation version to upgrade the proxy contract to.
1
arguments_
bytes
bytes
The migration arguments, if any.

versionOf

Returns the version of an implementation contract.
function versionOf(
address implementation_
)
view
returns (
uint256 version_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
implementation_
address
address
The address of an implementation contract.

Return Values:

Index
Name
Type
Internal Type
Description
0
version_
uint256
uint256
The version of the implementation contract.

Events

DefaultVersionSet

A default version was set.
event DefaultVersionSet(
uint256 version_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
version_
uint256
uint256
The default version.

ImplementationRegistered

A version of an implementation, at some address, was registered, with an optional initializer.
event ImplementationRegistered(
uint256 version_,
address implementationAddress_,
address initializer_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
version_
uint256
uint256
The version registered.
1
implementationAddress_
address
address
The address of the implementation.
2
initializer_
address
address
The address of the initializer, if any.

InstanceDeployed

A proxy contract was deployed with some initialization arguments.
event InstanceDeployed(
uint256 version_,
address instance_,
bytes initializationArguments_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
version_
uint256
uint256
The version of the implementation being proxied by the deployed proxy contract.
1
instance_
address
address
The address of the proxy contract deployed.
2
initializationArguments_
bytes
bytes
The arguments used to initialize the proxy contract, if any.

InstanceUpgraded

A instance has upgraded by proxying to a new implementation, with some migration arguments.
event InstanceUpgraded(
address instance_,
uint256 fromVersion_,
uint256 toVersion_,
bytes migrationArguments_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
instance_
address
address
The address of the proxy contract.
1
fromVersion_
uint256
uint256
The initial implementation version being proxied.
2
toVersion_
uint256
uint256
The new implementation version being proxied.
3
migrationArguments_
bytes
bytes
The arguments used to migrate, if any.

MapleGlobalsSet

The MapleGlobals was set.
event MapleGlobalsSet(
address mapleGlobals_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
mapleGlobals_
address
address
The address of a Maple Globals contract.

UpgradePathDisabled

An upgrade path was disabled, with an optional migrator contract.
event UpgradePathDisabled(
uint256 fromVersion_,
uint256 toVersion_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
fromVersion_
uint256
uint256
The starting version of the upgrade path.
1
toVersion_
uint256
uint256
The destination version of the upgrade path.

UpgradePathEnabled

An upgrade path was enabled, with an optional migrator contract.
event UpgradePathEnabled(
uint256 fromVersion_,
uint256 toVersion_,
address migrator_
);

Parameters:

Index
Name
Type
Internal Type
Description
0
fromVersion_
uint256
uint256
The starting version of the upgrade path.
1
toVersion_
uint256
uint256
The destination version of the upgrade path.
2
migrator_
address
address
The address of the migrator, if any.
Last modified 10mo ago