Skip to content

Commit

Permalink
migrated to eds 2.0, added sample dev env file
Browse files Browse the repository at this point in the history
  • Loading branch information
peersky committed Oct 1, 2024
1 parent ebd6e21 commit e773b6d
Show file tree
Hide file tree
Showing 11 changed files with 49 additions and 29 deletions.
6 changes: 1 addition & 5 deletions deploy/sacm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,7 @@ const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => {

const sacmDeployment = await deploy('SimpleAccessManager', {
from: deployer,
args: [
[], // methodSettings
'0x0000000000000000000000000000000000000000', // target
PeeramidLabsDistributor.address, // distributor
],
args: [],
skipIfAlreadyDeployed: true,
});

Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"@nomiclabs/buidler-web3": "^1.3.4",
"@nomiclabs/hardhat-ethers": "^2.0.6",
"@nomiclabs/hardhat-etherscan": "^3.1.8",
"@peeramid-labs/eds": "^1.0.0",
"@peeramid-labs/eds": "^2.0.0",
"@shopify/eslint-plugin": "^43.0.0",
"@solidstate/contracts": "^0.0.35",
"@typechain/ethers-v5": "^11.1.2",
Expand All @@ -54,7 +54,7 @@
"eth-create2-calculator": "^1.1.5",
"ethers": "^5.6.6",
"globals": "^15.9.0",
"hardhat": "=2.22.11",
"hardhat": "2.22.11",
"hardhat-abi-exporter": "^2.9.0",
"hardhat-contract-sizer": "^2.6.1",
"hardhat-deploy": "^0.12.2",
Expand Down
12 changes: 6 additions & 6 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion scripts/playbooks/addDistribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@ export const addDistribution =
signer,
) as PeeramidLabsDistributor;
const distributionsLengthBefore = (await distributorContract.getDistributions()).length;
const receipt = await distributorContract.addDistribution(distrId, initializer ?? ethers.constants.AddressZero);
const receipt = await distributorContract['addDistribution(bytes32,address)'](
distrId,
initializer ?? ethers.constants.AddressZero,
);

const distributorsId = await distributorContract.getDistributions();
if (distributorsId.length !== distributionsLengthBefore + 1)
Expand Down
8 changes: 4 additions & 4 deletions src/distributions/ArguableVotingTournament.sol
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ contract ArguableVotingTournament is InitializedDiamondDistribution {
* @return distributionName: bytes32 encoded name to be used in EIP712 signing flow
* @return distributionVersion: uint256 encoded distribution version. Can be parsed to eip712 signature with EDS LibSemver
*/
function instantiate(bytes memory) public override returns (address[] memory instances, bytes32, uint256) {
(address[] memory _instances, , ) = super.instantiate("");
function instantiate(bytes memory) external override returns (address[] memory instances, bytes32, uint256) {
(address[] memory _instances, , ) = super._instantiate();
address diamond = _instances[0];
IDiamondCut.FacetCut[] memory facetCuts = new IDiamondCut.FacetCut[](8);

Expand Down Expand Up @@ -207,8 +207,8 @@ contract ArguableVotingTournament is InitializedDiamondDistribution {
return (returnValue, distributionName, distributionVersion);
}

function getMetadata() public pure virtual override returns (string memory) {
return string(abi.encodePacked(super.getMetadata(), ";", "ArguableVotingTournament"));
function contractURI() public pure virtual override returns (string memory) {
return string(abi.encodePacked(super.contractURI(), ";", "ArguableVotingTournament"));
}

function sources() internal view virtual override returns (address[] memory, bytes32, uint256) {
Expand Down
8 changes: 6 additions & 2 deletions src/distributions/DiamondDistribution.sol
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,17 @@ contract DiamondDistribution is CloneDistribution {
_reference = diamondProxy;
}

function instantiate(bytes memory) external virtual override returns (address[] memory, bytes32, uint256) {
return super._instantiate();
}

function sources() internal view virtual override returns (address[] memory, bytes32 name, uint256 version) {
address[] memory _sources = new address[](1);
_sources[0] = _reference;
return (_sources, bytes32(abi.encodePacked("DiamondDistribution")), uint256(0));
}

function getMetadata() public pure virtual override returns (string memory) {
return "Diamond Distributor"; //ToDo: Add IPFS link with readme!
function contractURI() public pure virtual override returns (string memory) {
return "";
}
}
4 changes: 2 additions & 2 deletions src/distributions/InitializedDiamondDistribution.sol
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ abstract contract InitializedDiamondDistribution is DiamondDistribution {
return (srcs, bytes32(abi.encodePacked("InitializedDiamondDistribution")), uint256(0));
}

function getMetadata() public pure virtual override returns (string memory) {
return string(abi.encodePacked(super.getMetadata(), ";", "InitializedDiamondDistribution")); //ToDo: Add IPFS link with readme!
function contractURI() public pure virtual override returns (string memory) {
return string(abi.encodePacked(super.contractURI(), ";", "InitializedDiamondDistribution")); //ToDo: Add IPFS link with readme!
}
}
2 changes: 1 addition & 1 deletion src/distributions/MAODistribution.sol
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ contract MAODistribution is IDistribution, CodeIndexer {
return (returnValue, _distributionName, _distributionVersion);
}

function getMetadata() public pure virtual override returns (string memory) {
function contractURI() public pure virtual override returns (string memory) {
return "";
}

Expand Down
16 changes: 16 additions & 0 deletions src/distributors/PeeramidLabsDistributor.sol
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,20 @@ contract PeeramidLabsDistributor is Distributor, AccessControlDefaultAdminRules
return
AccessControlDefaultAdminRules.supportsInterface(interfaceId) || Distributor.supportsInterface(interfaceId);
}

function changeVersion(
bytes32 distributionId,
LibSemver.VersionRequirement memory newRequirement
) public override onlyRole(DEFAULT_ADMIN_ROLE) {
super._changeVersion(distributionId, newRequirement);
}

// @inheritdoc IDistributor
function addDistribution(
IRepository repository,
address initializer,
LibSemver.VersionRequirement memory requirement
) external override onlyRole(DEFAULT_ADMIN_ROLE) {
super._addDistribution(address(repository), initializer, requirement);
}
}
2 changes: 1 addition & 1 deletion src/repos/Repo.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ pragma solidity ^0.8.20;
import "@peeramid-labs/eds/src/repositories/OwnableRepository.sol";

contract Repo is OwnableRepository {
constructor(address owner, bytes32 name) OwnableRepository(owner, name) {}
constructor(address owner, bytes32 name, string memory contractURI) OwnableRepository(owner, name, contractURI) {}
}
11 changes: 6 additions & 5 deletions test/MAODistribution.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,13 @@ describe('MAODistribution', async function () {
rankify = setup.env.rankifyToken;
});
it('only owner can add distribution', async () => {
await expect(distributorContract.addDistribution(maoId, ethers.constants.AddressZero)).to.revertedWithCustomError(
distributorContract,
'AccessControlUnauthorizedAccount',
);
await expect(
distributorContract.connect(addr.gameOwner.wallet).addDistribution(maoId, ethers.constants.AddressZero),
distributorContract['addDistribution(bytes32,address)'](maoId, ethers.constants.AddressZero),
).to.revertedWithCustomError(distributorContract, 'AccessControlUnauthorizedAccount');
await expect(
distributorContract
.connect(addr.gameOwner.wallet)
['addDistribution(bytes32,address)'](maoId, ethers.constants.AddressZero),
).to.emit(distributorContract, 'DistributionAdded');
});
describe('when distribution was added', async () => {
Expand Down

0 comments on commit e773b6d

Please sign in to comment.