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
* merge main
* contracts - yay! Tests - Nay :(
* clonedist unit test
* cleanup
* diamondDistribution tests
* moved diamond code to /vendor/diamond, modified imports accordingly, removed initDiamond bytecode check
* modified import paths of facets
* improved eds and moved it in to /vendor/eds directory
* added mock files for eds
* removed old eds files from interfaces
* tests
* better naming
* restore pnpm lock file
* updated abi's
* initial commit
* use eds as dependency
* remove abis from src control
* dirty commit to share wip /w aragon team
* concept compiles
* remove compositeERC1155, make RankToken clonable, use layers for Rank Token permission checks
* remove get rank interfaces from rank token
* remove composite functionality from ranking instance for now
* Distributable Governance token, with ERC7746 middleware
* mao distribution instantiate does not revert anymore
* playbooks
* clean up deployment script
* remove storage pattern
* move distribution pattern to test setup routine
* deployment pipeline and MAO distr unit test seems to work
* hotfixed some tests
* parametrize fork block number
* fix typo
* remove some logs
* tdd, cleanup, specific fork block number
* rank token tests pass
* restore pnpm files, cleanup unused packages
* cleanup deploy scripts
* add tracer to deps
* bump hh dep to meet tracer reqs
* fix workflow (hopefully)
* basic changeset info
* env for both jobs
* happy linter - happy life
* force node env to test during tests and linting
* rm unused
* use stable osx ether version
* seems like ethers 2.22.11 has bug
* improved docs generation format
* update docstrings
* fix test types
* add readme
* happy linter - happy life
* changeset elaborated
* canonical names for standard defined methods
* canonical names for standard defined methods
* fix interface id name
* removed compiler warnings, improved doc generation, defined scope to variables
* happy linter - happy life
* Update README.md
* upd readme
* migrated to eds 2.0, added sample dev env file
* added sample env and updated readme
-**Feature**: Integrated the Ethereum Distribution System (EDS) for distributing Rankify contracts.
8
+
-**Description**: Rankify contracts are now distributed via the Ethereum Distribution System, enhancing the efficiency and security of the distribution process.
9
+
10
+
## Redesign of Contracts
11
+
12
+
-**Feature**: Redesigned contracts to work seamlessly as part of the Ethereum Distribution System.
13
+
-**Description**: The contracts have been restructured and optimized to ensure compatibility and smooth operation within the EDS framework. This redesign includes:
14
+
- Improved contract architecture for better integration with EDS.
15
+
- Enhanced security measures to protect against potential vulnerabilities.
16
+
- Optimized performance to handle the distribution process more efficiently.
17
+
18
+
## Impact
19
+
20
+
-**Users**:
21
+
- Can create new subjects that are called Meritocratic Autonomous Organizations (MAOs).
22
+
- Will benefit from a more secure and efficient distribution process.
23
+
-**Developers**: Developers will need to familiarize themselves with the new contract architecture and EDS integration.
24
+
-**Operations**: The distribution process will be streamlined, reducing the potential for errors and improving overall system reliability.
25
+
26
+
## Next Steps
27
+
28
+
-**Documentation**: Update the documentation to include details on the new EDS integration and contract redesign.
29
+
-**Testing**: Conduct thorough testing to ensure the new system operates as expected.
30
+
-**Deployment**: Plan and execute the deployment of the updated contracts and distribution system.
Rankify is a decentralized platform that leverages blockchain technology to provide generic, transparent and sybil resistent rating systems for various applications. The platform allows users to create and participate in rankings, and earn rewards based on their contributions.
10
+
2. Install dependencies:
9
11
12
+
```sh
13
+
pnpm install
14
+
```
10
15
11
-
## Getting Started
16
+
3. Setup environment variables
12
17
13
-
To get started with Rankify smart contracts, follow the instructions below.
We are using [Ethereum Distribution System](https://github.com/peeramid-labs/eds) to enable users to deploy their own infrastructure in transparent and decentralized way.
38
+
39
+
In order to be out of box compatible with the interfaces & notifications of the Rankify platform, any deployment should should be done from the Peeramid Labs Distributor contract ([PeeramidLabsDistributor.sol](./src/distributors/PeeramidLabsDistributor.sol)).
40
+
41
+
Specific address for distributor deployment can be found in the [deployments](./deployments) folder.
42
+
43
+
### Meritocratic Autonomous Organization (MAO)
44
+
45
+
[MAODistribution.sol](./src/distributions/MAODistribution.sol) is used to create a new Meritocratic Autonomous Organization (MAO).
28
46
29
-
3. Compile the smart contracts:
30
-
```sh
31
-
pnpm hardhat compile
32
-
```
47
+
This deployment will create following infrastructure:
-[RankToken](./src/tokens/RankToken.sol) - ERC1155 token used to represent the ranks in the MAO.
50
+
-[Governance token](./src/tokens/DistributableGovernanceERC20.sol) - ERC20 token used to represent the governance in the MAO.
51
+
-[ACID Distribution](./src/distributions/ArguableVotingTournament.sol) - Arguable Voting Tournament contract used to distribute governance tokens.
52
+
-[Aragon OSx DAO](https://aragon.org/) - Aragon DAO used as wrapped smart account that represents the MAO.
53
+
-[Aragon Token Voting Plugin](https://github.com/aragon/token-voting-plugin) - Aragon plugin used to vote on proposals within the DAO.
54
+
55
+
#### How to instantiate
56
+
57
+
In order to instantiate the MAO distribution, you don't need to deploy a thing. You just need to call the `instantiate` function of the the [PeeramidLabsDistributor.sol](./src/distributors/PeeramidLabsDistributor.sol) contract and specify proper distribution Id and arguments.
In order to get `distributorsDistId` you can call `getDistributions` at `PeeramidLabsDistributor` contract and look for. We will host a public API to get the list of distributions soon.
95
+
96
+
### ACID distribution
97
+
98
+
[ArguableVotingTournament.sol](./src/distributions/ArguableVotingTournament.sol) is used to distribute governance tokens to the participants of the MAO by conducting autonomous competence identification tournaments.
99
+
100
+
This distribution deploys the Diamond Proxy that contains the following facets:
101
+
102
+
-[EIP712InspectorFacet](./src/facets/EIP712InspectorFacet.sol) - Facet that contains the main logic of the distribution.
103
+
-[RankifyInstanceMainFacet](./src/facets//RankifyInstanceMainFacet.sol) - Facet that contains the main logic of the distribution.
104
+
-[RankifyGameMastersFacetFacet](./src/facets/RankifyInstanceGameMastersFacet.sol) - Facet that contains the main logic of the distribution.
105
+
-[RankifyInstanceGameOwnersFacet](./src/facets/RankifyInstanceGameOwnersFacet.sol) - Facet that contains the ownable logic of the distribution. (NB this will be deprecated)
106
+
-[RankifyInstanceRequirementsFacet](./src/facets/RankifyInstanceRequirementsFacet.sol) - Facet that contains the requirements logic of the distribution.
107
+
108
+
To understand how it works further please refer to [docs.rankify.it](https://docs.rankify.it/governance) or ask us a question in [Discord](https://discord.gg/EddGgGUuWC)
38
109
39
110
## Contributing
40
111
@@ -43,4 +114,3 @@ We welcome contributions to improve the Rankify smart contracts. Please fork the
0 commit comments