Skip to content

Commit 73ea44f

Browse files
authored
16 generic diamond factory (#55)
* 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 * moving distributor to another branch * changeset added * happy linter - happy life * code index test * test type names * update abi * added Code index interface * rm comment * naming stuff * capitlized letters correctly * updated with use of codeIndex instead of addresses * less interfaces * restore abi from main * rm unused * happy linter - happy life
1 parent 569fb0f commit 73ea44f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+733
-478
lines changed

.changeset/odd-queens-hide.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'rankify-contracts': minor
3+
---
4+
5+
generic diamond factory implementation via Ethereum Distribution System

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -272,3 +272,4 @@ build/
272272
types
273273
bin/
274274
/deployments/localhost/
275+
/deployments/hardhat/

deploy/07_codeIndex.ts

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { HardhatRuntimeEnvironment } from 'hardhat/types';
2+
import { DeployFunction } from 'hardhat-deploy/types';
3+
4+
5+
6+
7+
const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => {
8+
const { deployments, getNamedAccounts } = hre;
9+
const { deploy } = deployments;
10+
11+
const { deployer } = await getNamedAccounts();
12+
const bigIntValue = BigInt('32093041992771041886105036204868453160172577249982933515490170998396430950365');
13+
// Convert to a hexadecimal string
14+
const hexValue = "0x" + bigIntValue.toString(16);
15+
// console.log(hexValue);
16+
const result = await deploy('CodeIndex', {
17+
deterministicDeployment: hexValue,
18+
from: deployer,
19+
skipIfAlreadyDeployed: true,
20+
});
21+
console.log('CodeIndex deployed at', result.address);
22+
23+
};
24+
25+
export default func;
26+
func.tags = ['code_index', 'rankify'];

src/abstracts/IInstallerPlugin.sol

-8
This file was deleted.

src/facets/DNSFacet.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import "../interfaces/IMultipass.sol";
88
import "../libraries/LibMultipass.sol";
99
import "../modifiers/OnlyOwnerDiamond.sol";
1010
import "hardhat/console.sol";
11-
import "../vendor/facets/OwnershipFacet.sol";
11+
import "../vendor/diamond/facets/OwnershipFacet.sol";
1212

1313
// Consider upgrade for https://eips.ethereum.org/EIPS/eip-4834
1414

src/facets/RankifyInstanceGameMastersFacet.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {RankToken} from "../tokens/RankToken.sol";
1313
import {LibCoinVending} from "../libraries/LibCoinVending.sol";
1414
import "hardhat/console.sol";
1515
import {IERC20} from "@openzeppelin/contracts/interfaces/IERC20.sol";
16-
import "../vendor/libraries/LibDiamond.sol";
16+
import "../vendor/diamond/libraries/LibDiamond.sol";
1717

1818
contract RankifyInstanceGameMastersFacet is DiamondReentrancyGuard, EIP712 {
1919
using LibTBG for uint256;

src/facets/RankifyInstanceGameOwnersFacet.sol

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {LibTBG} from "../libraries/LibTurnBasedGame.sol";
55
import {IRankifyInstanceCommons} from "../interfaces/IRankifyInstanceCommons.sol";
66

77
import "../abstracts/draft-EIP712Diamond.sol";
8-
import "../vendor/libraries/LibDiamond.sol";
8+
import "../vendor/diamond/libraries/LibDiamond.sol";
99
import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
1010
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
1111

src/initializers/DiamondInit.sol

+5-5
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ pragma solidity ^0.8.20;
88
* Implementation of a diamond.
99
/******************************************************************************/
1010

11-
import {LibDiamond} from "../vendor/libraries/LibDiamond.sol";
12-
import {IDiamondLoupe} from "../vendor/interfaces/IDiamondLoupe.sol";
13-
import {IDiamondCut} from "../vendor/interfaces/IDiamondCut.sol";
14-
import {IERC173} from "../vendor/interfaces/IERC173.sol";
15-
import {IERC165} from "../vendor/interfaces/IERC165.sol";
11+
import {LibDiamond} from "../vendor/diamond/libraries/LibDiamond.sol";
12+
import {IDiamondLoupe} from "../vendor/diamond/interfaces/IDiamondLoupe.sol";
13+
import {IDiamondCut} from "../vendor/diamond/interfaces/IDiamondCut.sol";
14+
import {IERC173} from "../vendor/diamond/interfaces/IERC173.sol";
15+
import {IERC165} from "../vendor/diamond/interfaces/IERC165.sol";
1616

1717
// It is expected that this contract is customized if you want to deploy your diamond
1818
// with data from a deployment script. Use the init function to initialize state variables

src/initializers/MultipassInit.sol

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
pragma solidity ^0.8.0;
2+
pragma solidity ^0.8.20;
33

44
/******************************************************************************\
55
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
@@ -8,11 +8,11 @@ pragma solidity ^0.8.0;
88
* Implementation of a diamond.
99
/******************************************************************************/
1010

11-
import {LibDiamond} from "../vendor/libraries/LibDiamond.sol";
12-
import {IDiamondLoupe} from "../vendor/interfaces/IDiamondLoupe.sol";
13-
import {IDiamondCut} from "../vendor/interfaces/IDiamondCut.sol";
14-
import {IERC173} from "../vendor/interfaces/IERC173.sol";
15-
import {IERC165} from "../vendor/interfaces/IERC165.sol";
11+
import {LibDiamond} from "../vendor/diamond/libraries/LibDiamond.sol";
12+
import {IDiamondLoupe} from "../vendor/diamond/interfaces/IDiamondLoupe.sol";
13+
import {IDiamondCut} from "../vendor/diamond/interfaces/IDiamondCut.sol";
14+
import {IERC173} from "../vendor/diamond/interfaces/IERC173.sol";
15+
import {IERC165} from "../vendor/diamond/interfaces/IERC165.sol";
1616
import {IMultipass} from "../interfaces/IMultipass.sol";
1717
import {LibEIP712WithStorage} from "../libraries/LibEIP712Storage.sol";
1818
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";

src/initializers/RankifyInstanceInit.sol

+5-7
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ pragma solidity ^0.8.20;
88
* Implementation of a diamond.
99
/******************************************************************************/
1010

11-
import {LibDiamond} from "../vendor/libraries/LibDiamond.sol";
12-
import {IDiamondLoupe} from "../vendor/interfaces/IDiamondLoupe.sol";
13-
import {IDiamondCut} from "../vendor/interfaces/IDiamondCut.sol";
14-
import {IERC173} from "../vendor/interfaces/IERC173.sol";
15-
import {IERC165} from "../vendor/interfaces/IERC165.sol";
11+
import {LibDiamond} from "../vendor/diamond/libraries/LibDiamond.sol";
12+
import {IDiamondLoupe} from "../vendor/diamond/interfaces/IDiamondLoupe.sol";
13+
import {IDiamondCut} from "../vendor/diamond/interfaces/IDiamondCut.sol";
14+
import {IERC173} from "../vendor/diamond/interfaces/IERC173.sol";
15+
import {IERC165} from "../vendor/diamond/interfaces/IERC165.sol";
1616
import {LibEIP712WithStorage} from "../libraries/LibEIP712Storage.sol";
1717
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
1818
import {IRankifyInstanceCommons} from "../interfaces/IRankifyInstanceCommons.sol";
@@ -53,7 +53,6 @@ contract RankifyInstanceInit {
5353
uint256 maxTurns;
5454
uint256 numWinners;
5555
uint256 voteCredits;
56-
string subject;
5756
address rankifyToken;
5857
}
5958

@@ -101,7 +100,6 @@ contract RankifyInstanceInit {
101100
settings.timeToJoin = initializer.timeToJoin;
102101
settings.maxTurns = initializer.maxTurns;
103102
settings.numWinners = initializer.numWinners;
104-
settings.subject = initializer.subject;
105103
LibTBG.init(settings);
106104

107105
// add your own state variables

src/initializers/RankifyInstanceMigration.sol

+5-5
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ pragma solidity ^0.8.20;
88
* Implementation of a diamond.
99
/******************************************************************************/
1010
import {LibRankify} from "../libraries/LibRankify.sol";
11-
import {LibDiamond} from "../vendor/libraries/LibDiamond.sol";
12-
import {IDiamondLoupe} from "../vendor/interfaces/IDiamondLoupe.sol";
13-
import {IDiamondCut} from "../vendor/interfaces/IDiamondCut.sol";
14-
import {IERC173} from "../vendor/interfaces/IERC173.sol";
15-
import {IERC165} from "../vendor/interfaces/IERC165.sol";
11+
import {LibDiamond} from "../vendor/diamond/libraries/LibDiamond.sol";
12+
import {IDiamondLoupe} from "../vendor/diamond/interfaces/IDiamondLoupe.sol";
13+
import {IDiamondCut} from "../vendor/diamond/interfaces/IDiamondCut.sol";
14+
import {IERC173} from "../vendor/diamond/interfaces/IERC173.sol";
15+
import {IERC165} from "../vendor/diamond/interfaces/IERC165.sol";
1616
import {LibEIP712WithStorage} from "../libraries/LibEIP712Storage.sol";
1717
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
1818
import {IRankifyInstanceCommons} from "../interfaces/IRankifyInstanceCommons.sol";

src/interfaces/eds/IDistribution.sol

-62
This file was deleted.

src/interfaces/eds/IInstantiator.sol

-127
This file was deleted.

0 commit comments

Comments
 (0)