mirror of
https://github.com/status-im/EIPs.git
synced 2025-01-14 00:45:05 +00:00
Fixes markdown reference
This commit is contained in:
parent
63feeb7bea
commit
6435654419
@ -1,6 +1,6 @@
|
||||
---
|
||||
eip: 1822
|
||||
title: Universal Upgradeable Proxy Standard
|
||||
title: Universal Upgradeable Proxy Standard (UUPS)
|
||||
authors: Gabriel Barros <gabriel@terminal.co>, Patrick Gallagher <patrick@terminal.co>
|
||||
discussions-to: [Ethereum Magicians Forum](https://ethereum-magicians.org/t/eip-universal-upgradeable-proxy-standard-uups)
|
||||
status: Draft
|
||||
@ -188,7 +188,7 @@ To facilitate this practice, we recommend utilizing a single "base" contract whi
|
||||
|
||||
The compatibility check in the Proxiable Contract is a safety mechanism to prevent upgrading to a Logic Contract which does not implement the Universal Upgradeable Proxy Standard. However, as occurred in the parity wallet hack, it is still possible to perform irreparable damage to the Logic Contract itself.
|
||||
|
||||
In order to prevent damage to the Logic Contract, we recommend restricting permissions for any potentially damaging functions to `onlyOwner`, and giving away ownership of the Logic Contract immediately upon deployment to a null address (e.g., address(1)). Potentially damaging functions include native functions such as `SELFDESTRUCT`, as well functions whose code may originate externally such as `CALLCODE`, and `delegatecall()`. In the [ERC-20 Token](#erc20-token) example below, a `LibraryLock` contract is used to prevent destruction of the logic contract.
|
||||
In order to prevent damage to the Logic Contract, we recommend restricting permissions for any potentially damaging functions to `onlyOwner`, and giving away ownership of the Logic Contract immediately upon deployment to a null address (e.g., address(1)). Potentially damaging functions include native functions such as `SELFDESTRUCT`, as well functions whose code may originate externally such as `CALLCODE`, and `delegatecall()`. In the [ERC-20 Token](#erc-20-token) example below, a `LibraryLock` contract is used to prevent destruction of the logic contract.
|
||||
|
||||
## Examples
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user