Skip to content

Latest commit

 

History

History
138 lines (121 loc) · 4.75 KB

UpgradableProxy.md

File metadata and controls

138 lines (121 loc) · 4.75 KB

Upgradable Proxy contract.

Adapted version of https://github.com/DistributedCollective/Sovryn-smart-contracts/blob/development/contracts/proxy/UpgradableProxy.sol (UpgradableProxy.sol)

View Source: contracts/Proxy/UpgradableProxy.sol

↗ Extends: Proxy

UpgradableProxy

A disadvantage of the immutable ledger is that nobody can change the source code of a smart contract after it’s been deployed. In order to fix bugs or introduce new features, smart contracts need to be upgradable somehow. Although it is not possible to upgrade the code of an already deployed smart contract, it is possible to set-up a proxy contract architecture that will allow to use new deployed contracts as if the main logic had been upgraded. A proxy architecture pattern is such that all message calls go through a Proxy contract that will redirect them to the latest deployed contract logic. To upgrade, a new version of the contract is deployed, and the Proxy is updated to reference the new contract address.

Functions


setImplementation

Set address of the implementation.

function setImplementation(address _implementation) public nonpayable onlyOwner 

Arguments

Name Type Description
_implementation address Address of the implementation.
Source Code
nction setImplementation(address _implementation) public onlyOwner {
        _setImplementation(_implementation);
    }

Contracts