-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: adjust LSP16 natspec and parameter name (#839)
* refactor: adjust natspec and parameters name for LSP16 * docs: add a README for LSP16 * docs: generate LSP16 docs * docs: Emphasize on bytecode stability in LSP16 --------- Co-authored-by: Jean Cvllr <31145285+CJ42@users.noreply.github.com>
- Loading branch information
1 parent
49a445f
commit 9e1519f
Showing
3 changed files
with
63 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# LSP16UniversalFactory.sol | ||
|
||
## Overview | ||
|
||
According to [LSP16-UniversalFactory](https://github.com/lukso-network/LIPs/blob/main/LSPs/LSP-16-UniversalFactory.md) specification, [`LSP16UniversalFactory.sol`](./LSP16UniversalFactory.sol) is a universal factory smart contract, that will allow to deploy different types of smart contracts using [CREATE2] opcode after being deployed with [Nick Factory] in order to produce the same address on different chains. | ||
|
||
## Bytecode Stability | ||
|
||
**It is crucial to note that the bytecode of this factory must remain unchanged. Therefore, any modifications to the contract's code are not permitted.** While contributions in the form of new features, ideas, or adjustments to the Natspec documentation are appreciated, such changes are unfortunately not feasible. This is because any alteration to the contract would result in a new bytecode, which contradicts the contract's fundamental design principle. | ||
|
||
## Deployment Guidelines | ||
|
||
The factory should not be deployed directly from a floating branch in the repository or the package. Instead, it must be deployed from a specific commit, adhering to the configuration listed below: | ||
|
||
- Openzeppelin package version: `"@openzeppelin/contracts": "^4.9.2"` | ||
- The source code is generated with `0.8.17` compiler version and with `9999999` optimization runs. | ||
- Checkout to `PLACE_HOLDER` commit in the [lsp-smart-contract](https://github.com/lukso-network/lsp-smart-contracts) repo to obtain the exact copy of the code, change the compiler settings in `hardhat.config.ts` and compile to produce the same bytecode. | ||
|
||
[CREATE2]: https://eips.ethereum.org/EIPS/eip-1014 | ||
[Nick Factory]: https://github.com/Arachnid/deterministic-deployment-proxy |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.