You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-5Lines changed: 10 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -71,9 +71,9 @@ What we are dealing with:
71
71
1.**Smart contracts are immutable.** Once deployed, the source code for a smart contract doesn't change.
72
72
2.**Smart contracts are forever.** Once deployed, smart contracts can run or exist forever.
73
73
3.**Smart contracts are shared.** Once deployed, smart contracts can be seen and accessed by anyone.
74
-
4.**Smart contracts run on a distributed network.** Once deployed, smart contracts are running within the capabilities and constraints of the Ethereum Virtual Machine (EVM) and the blockchain network it was deployed on.
74
+
4.**Smart contracts run on a distributed network.** Once deployed, smart contracts are running within the capabilities and constraints of the Ethereum Virtual Machine (EVM) and the blockchain network it is deployed on.
75
75
5.**Smart contracts must be secure.** Once deployed, there can be very serious consequences if their is a bug or security vulnerability in a smart contract.
76
-
6.**Smart contracts are written in a specific language** In our case our library is written in the Solidity programming language.
76
+
6.**Smart contracts are written in a specific language** In our case our Compose is written in the Solidity programming language.
77
77
78
78
If we gather all knowledge about programming and software engineering that has ever existed and will exist, including what you know and what you will soon learn or know, and we evaluate that knowledge as it can best apply specifically to a smart contract library, to create the best smart contract library possible, what do we end up with? Hopefully we end up with what Compose becomes.
79
79
@@ -82,21 +82,26 @@ If we gather all knowledge about programming and software engineering that has e
82
82
The design and implementation of Compose is based on the following design principles, given in order of importance and emphasis by the project.
83
83
84
84
1.### Understanding
85
-
This is the top design and guiding principle of this project. We help our users *understand* the things they want to know so they can *confidently* achieve what they are trying to do. This is why we must have very good documentation, and why we write easy to read and understand code. Understanding leads to solutions, creates confidence, kills bugs and gets things done. Understanding is everything. So let's nurture it and create it.
85
+
This is the top design and guiding principle of this project. We help our users *understand* the things they want to know so they can *confidently* achieve what they are trying to do. This is why we must have very good documentation, and why we write easy to read and understand code. Understanding leads to solutions, creates confidence, kills bugs and gets things done. Understanding is everything. So we nurture it and create it.
86
86
87
87
1.### The code is written to be read
88
88
The code in this library is written to be read and understood by others easily. We want our users to understand our library and be confident with it. We help them do that with code that is easy to read and understand.
89
89
90
-
We hope thousands of smart contract systems use our smart contracts. We say in advance to thousands of people in the future, over tens or hundreds of years, who are reading the verified source code of deployed smart contract systems that use our library, **your welcome**, for making it easy to read and understand.
90
+
We hope thousands of smart contract systems use our smart contracts. We say in advance to thousands of people in the future, over tens or hundreds of years, who are reading the verified source code of deployed smart contract systems that use our library, **YOU'RE WELCOME**, for making it easy to read and understand.
91
91
92
92
1.### Compose makes diamonds
93
93
94
-
A diamond contract is a smart contract that utilizes for its functionality other smart contracts called facets. Functionality of facets can be added, replaced or removed from a diamond contract. This enables people to build modular, composable smart contract systems -- diamonds -- that can be incrementally developed and deployed. [EIP-2535 Diamonds](https://eips.ethereum.org/EIPS/eip-2535) is the standard for diamond contracts.
94
+
A diamond contract is a smart contract that utilizes for its functionality other smart contracts called facets. Functionality of facets can be added, replaced or removed from a diamond contract. This enables people to build modular, composable smart contract systems -- diamonds -- that can be incrementally developed and deployed. [ERC-2535 Diamonds](https://eips.ethereum.org/EIPS/eip-2535) is the standard for diamond contracts.
95
95
96
96
Compose is specifically designed to help users develop and deploy [diamond contracts](https://eips.ethereum.org/EIPS/eip-2535). A major part of this project is creating an onchain diamond factory that makes it easy to deploy diamonds that use facets provided by this library and elsewhere.
97
97
98
98
Much of Compose consists of facets and Solidity libraries that are used by users to create diamond contracts.
99
99
100
+
1. Onchain Composability
101
+
102
+
103
+
104
+
100
105
1.### Repeat yourself
101
106
The DRY principle — *Don’t Repeat Yourself* — is a well-known rule in software development. We **intentionally** break that rule.
0 commit comments