|Proxy contracts and their documentation have moved to Contracts.|
Contract for upgradeable applications. It handles the creation of proxies.
Returns the provider for a given package name, or zero if not set.
Returns information on a package given its name.
Sets a package in a specific version as a dependency for this application. Requires the version to be present in the package.
Unsets a package given its name. Reverts if the package is not set in the application.
Returns the implementation address for a given contract name, provided by the
create(string packageName, string contractName, address admin, bytes data) → contract AdminUpgradeabilityProxy public
Creates a new proxy for the given contract and forwards a function call to it. This is useful to initialize the proxied contract.
Implementation provider that stores contract implementations in a mapping.
Modifier that allows functions to be called only before the contract is frozen.
Makes the directory irreversibly immutable. It can only be called once, by the owner.
Returns the implementation address of a contract.
Sets the address of the implementation of a contract in the directory.
Removes the address of a contract implementation from the directory.
Emitted when the implementation of a contract is changed.
Abstract contract for providing implementation addresses for other contracts by name.
A package is composed by a set of versions, identified via semantic versioning, where each version has a contract address that refers to a reusable implementation, plus an optional content URI with metadata. Note that the semver identifier is restricted to major, minor, and patch, as prerelease tags are not supported.
Returns a version given its semver identifier.
Returns a contract for a version given its semver identifier.
This method is equivalent to
getVersion, but returns only the contract address.
Adds a new version to the package. Only the Owner can add new versions.
Reverts if the specified semver identifier already exists.
VersionAdded event if successful.
Checks whether a version is present in the package.
Returns the version with the highest semver identifier registered in the package.
For instance, if
2.0.0 are present, will always return
of the order in which they were registered. Returns zero if no versions are registered.
getLatestByMajor(uint64 major) → uint64 semanticVersion, address contractAddress, bytes contentURI public
Returns the version with the highest semver identifier for the given major.
For instance, if
2.0.0 are present, will return
1.3.0 for major
regardless of the order in which they were registered. Returns zero if no versions are registered
for the specified major.
Helper contract to support initializer functions. To use it, replace
the constructor with a function that has the
WARNING: Unlike constructors, initializer functions must be manually
invoked. This applies both to deploying an Initializable contract, as well
as extending an Initializable contract via inheritance.
WARNING: When used with inheritance, manual care must be taken to not invoke
a parent initializer twice, or ensure that all initializers are idempotent,
because this is not dealt with automatically as with constructors.