Skip to content

Commit

Permalink
Merge pull request #27 from raid-guild/fix-char-minting
Browse files Browse the repository at this point in the history
Fix char minting
  • Loading branch information
MrDeadCe11 authored Nov 26, 2023
2 parents d26153a + 73f654b commit 74f9912
Show file tree
Hide file tree
Showing 30 changed files with 776 additions and 467 deletions.
129 changes: 67 additions & 62 deletions .gas-snapshot
Original file line number Diff line number Diff line change
@@ -1,72 +1,77 @@
CharacterAccountTest:testEquipAndUnequipViaMultiSendDelegateCall() (gas: 838323)
CharacterAccountTest:testEquipItemToCharacter() (gas: 850398)
CharacterAccountTest:testEquipViaMultiSendDelegateCall() (gas: 857854)
CharacterAccountTest:testUnequipItemToCharacter() (gas: 846800)
CharacterAccountTest:testEquipAndUnequipViaMultiSendDelegateCall() (gas: 843652)
CharacterAccountTest:testEquipItemToCharacter() (gas: 855727)
CharacterAccountTest:testEquipViaMultiSendDelegateCall() (gas: 863183)
CharacterAccountTest:testUnequipItemToCharacter() (gas: 849886)
CharacterEligibilityAdaptorTest:testIsEligible() (gas: 49781)
CharacterEligibilityAdaptorTest:testSupportsInterface() (gas: 10624)
CharacterSheetsFactoryTest:testCreateAndInitialize() (gas: 3887219)
CharacterSheetsFactoryTest:testCreateAndInitializeWithZeroDao() (gas: 3682948)
CharacterSheetsFactoryTest:testCreateCharacterEligibilityAdaptor() (gas: 111300)
CharacterSheetsFactoryTest:testCreateCharacterSheets() (gas: 109360)
CharacterSheetsFactoryTest:testCreateClassLevelAdaptor() (gas: 111990)
CharacterSheetsFactoryTest:testCreateClasses() (gas: 111233)
CharacterSheetsFactoryTest:testCreateExperience() (gas: 109371)
CharacterSheetsFactoryTest:testCreateItems() (gas: 111207)
CharacterSheetsFactoryTest:testCreateAndInitialize() (gas: 3882617)
CharacterSheetsFactoryTest:testCreateAndInitializeWithZeroDao() (gas: 3678369)
CharacterSheetsFactoryTest:testCreateCharacterEligibilityAdaptor() (gas: 111277)
CharacterSheetsFactoryTest:testCreateCharacterSheets() (gas: 109404)
CharacterSheetsFactoryTest:testCreateClassLevelAdaptor() (gas: 111988)
CharacterSheetsFactoryTest:testCreateClasses() (gas: 111277)
CharacterSheetsFactoryTest:testCreateExperience() (gas: 109413)
CharacterSheetsFactoryTest:testCreateItems() (gas: 111163)
CharacterSheetsFactoryTest:testDeployment() (gas: 9899)
CharacterSheetsFactoryTest:testDeploymentRevert() (gas: 16036)
CharacterSheetsFactoryTest:testInitializeContracts() (gas: 3838335)
CharacterSheetsFactoryTest:testInitializeContracts() (gas: 3833849)
CharacterSheetsFactoryTest:testUpdateImplementationAddressStorage() (gas: 21216)
CharacterSheetsTest:testChangeBaseUri() (gas: 71436)
CharacterSheetsTest:testChangeBaseUriRevertNotAdmin() (gas: 71358)
CharacterSheetsTest:testEquipItemToCharacter() (gas: 326535)
CharacterSheetsTest:testEquipItemToCharacterReverts() (gas: 217549)
CharacterSheetsTest:testGetCharacterSheetByCharacterId() (gas: 31450)
CharacterSheetsTest:testGetPlayerIdFromAccountAddress() (gas: 26436)
CharacterSheetsTest:testRemovePlayer() (gas: 925604)
CharacterSheetsTest:testRenounceSheet() (gas: 72481)
CharacterSheetsTest:testRenounceSheetReverts() (gas: 72153)
CharacterSheetsTest:testRestoreSheetAfterRemove() (gas: 762134)
CharacterSheetsTest:testRestoreSheetAfterRenounce() (gas: 696893)
CharacterSheetsTest:testRollCharacterSheet() (gas: 568757)
CharacterSheetsTest:testRollCharacterSheetFailNonMember() (gas: 58939)
CharacterSheetsTest:testRollCharacterSheetRevertAlreadyACharacter() (gas: 67743)
CharacterSheetsTest:testChangeBaseUri() (gas: 71392)
CharacterSheetsTest:testChangeBaseUriRevertNotAdmin() (gas: 71270)
CharacterSheetsTest:testEquipItemToCharacter() (gas: 323994)
CharacterSheetsTest:testEquipItemToCharacterReverts() (gas: 214820)
CharacterSheetsTest:testGetCharacterSheetByCharacterId() (gas: 20415)
CharacterSheetsTest:testGetPlayerIdFromAccountAddress() (gas: 24193)
CharacterSheetsTest:testRemovePlayer() (gas: 924795)
CharacterSheetsTest:testRenounceSheet() (gas: 72503)
CharacterSheetsTest:testRenounceSheetReverts() (gas: 72240)
CharacterSheetsTest:testRestoreSheetAfterRemove() (gas: 765034)
CharacterSheetsTest:testRestoreSheetAfterRenounce() (gas: 702823)
CharacterSheetsTest:testRollCharacterSheet() (gas: 574908)
CharacterSheetsTest:testRollCharacterSheetFailNonMember() (gas: 61098)
CharacterSheetsTest:testRollCharacterSheetRevertAlreadyACharacter() (gas: 67800)
CharacterSheetsTest:testRollFailsForRenouncedSheet() (gas: 117890)
CharacterSheetsTest:testTransferFrom() (gas: 441458)
CharacterSheetsTest:testUnequipItemFromCharacter() (gas: 309269)
CharacterSheetsTest:testUpdateCharacterMetadata() (gas: 98340)
CharacterSheetsTest:testUpdateContractImplementation() (gas: 5191262)
ClassLevelAdaptorTest:testLevelRequirementsMet() (gas: 304476)
CharacterSheetsTest:testSafeTransferFrom() (gas: 452979)
CharacterSheetsTest:testSafeTransferFromBackAndForth() (gas: 248600)
CharacterSheetsTest:testTransferFrom() (gas: 446036)
CharacterSheetsTest:testUnequipItemFromCharacter() (gas: 306485)
CharacterSheetsTest:testUpdateCharacterMetadata() (gas: 98384)
CharacterSheetsTest:testUpdateContractImplementation() (gas: 5065067)
ClassLevelAdaptorTest:testLevelRequirementsMet() (gas: 304432)
ClassLevelAdaptorTest:testSupportsInterface() (gas: 10602)
ClassesTest:testAssignClass() (gas: 253986)
ClassesTest:testClaimClass() (gas: 135787)
ClassesTest:testCreateClass() (gas: 131530)
ClassesTest:testFuzz_DeLevelClass(uint256) (runs: 256, μ: 390218, ~: 376879)
ClassesTest:testLevelClass() (gas: 282272)
ClassesTest:testRenounceClass() (gas: 215624)
ClassesTest:testRevokeClass() (gas: 187844)
ClassesTest:testTransferClass() (gas: 716482)
ExperienceTest:testBurnExp() (gas: 194278)
ExperienceTest:testDropExp() (gas: 250751)
ClassesTest:testAssignClass() (gas: 253854)
ClassesTest:testClaimClass() (gas: 135793)
ClassesTest:testCreateClass() (gas: 131486)
ClassesTest:testFuzz_DeLevelClass(uint256) (runs: 256, μ: 390385, ~: 376747)
ClassesTest:testLevelClass() (gas: 282184)
ClassesTest:testRenounceClass() (gas: 215536)
ClassesTest:testRevokeClass() (gas: 187712)
ClassesTest:testTransferClass() (gas: 722170)
ExperienceTest:testBurnExp() (gas: 194190)
ExperienceTest:testDropExp() (gas: 250663)
ExperienceTest:testExperienceDeployment() (gas: 18173)
HatsAdaptorTest:testHatsAdaptorDeployment() (gas: 115516)
HatsAdaptorTest:testIsCharacter() (gas: 79317)
HatsAdaptorTest:testIsGameMaster() (gas: 59677)
HatsAdaptorTest:testIsPlayer() (gas: 81791)
HatsAdaptorTest:testMintCharacterHat() (gas: 172810)
HatsAdaptorTest:testMintPlayerHat() (gas: 679774)
HatsEligibilityModulesTest:testAddNewAdmin() (gas: 2678138)
HatsEligibilityModulesTest:testAddNewGameMaster() (gas: 2702131)
HatsEligibilityModulesTest:testNewModuleSetup() (gas: 2620832)
HatsEligibilityModulesTest:testRemoveAdmin() (gas: 2676344)
HatsEligibilityModulesTest:testRemoveGameMaster() (gas: 2704333)
ItemsTest:testClaimItem() (gas: 922514)
ItemsTest:testClaimItemRevert() (gas: 1358761)
ItemsTest:testCraftItem() (gas: 517191)
ItemsTest:testCraftItemRevert() (gas: 483593)
HatsAdaptorTest:testAddGameMaster() (gas: 146903)
HatsAdaptorTest:testHatsAdaptorDeployment() (gas: 113039)
HatsAdaptorTest:testIsCharacter() (gas: 79360)
HatsAdaptorTest:testIsGameMaster() (gas: 59545)
HatsAdaptorTest:testIsPlayer() (gas: 81923)
HatsAdaptorTest:testMintCharacterHat() (gas: 170310)
HatsAdaptorTest:testMintPlayerHat() (gas: 683403)
HatsEligibilityModulesTest:testAddClassToElderModule() (gas: 1765612)
HatsEligibilityModulesTest:testAddNewAdmin() (gas: 2684753)
HatsEligibilityModulesTest:testAddNewGameMaster() (gas: 2708790)
HatsEligibilityModulesTest:testElderEligibilityModule() (gas: 1987871)
HatsEligibilityModulesTest:testNewModuleSetup() (gas: 2627447)
HatsEligibilityModulesTest:testRemoveAdmin() (gas: 2682981)
HatsEligibilityModulesTest:testRemoveGameMaster() (gas: 2710992)
ItemsTest:testClaimItem() (gas: 922291)
ItemsTest:testClaimItemRevert() (gas: 1358494)
ItemsTest:testCraftItem() (gas: 517103)
ItemsTest:testCraftItemRevert() (gas: 483549)
ItemsTest:testCreateCraftableItem() (gas: 59691)
ItemsTest:testCreateItemTypeRevert() (gas: 67254)
ItemsTest:testDeleteItem() (gas: 267255)
ItemsTest:testDismantleItems() (gas: 1060025)
ItemsTest:testDropLoot() (gas: 1347446)
ItemsTest:testDropLootRevert() (gas: 289097)
ItemsTest:testCreateItemTypeRevert() (gas: 67210)
ItemsTest:testDeleteItem() (gas: 267184)
ItemsTest:testDismantleItems() (gas: 1055955)
ItemsTest:testDropLoot() (gas: 1353090)
ItemsTest:testDropLootRevert() (gas: 288965)
ItemsTest:testURI() (gas: 17797)
1 change: 0 additions & 1 deletion .solhint.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
"rules": {
"compiler-version": ["error", "^0.8.0"],
"func-visibility": ["warn", { "ignoreConstructors": true }],
"one-contract-per-file": "off",
"ordering": "error"
}
}
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,9 @@ once new contracts are deployed you can...
```sh
make execute network=<sepolia/gnosis>
```

Pumpedlunch's Hats Module addresses: from https://github.com/pumpedlunch/HatsEligibilityModules/releases

- Gnosis
- AddressHatsEligiblityModule: 0x9AaF0df5657b634131784523F4F5e83459c61986
- ERC721HatsEligibilityModule: 0x6bAa65D3E024D8ebA717085691dd8A985e9F267E
78 changes: 53 additions & 25 deletions addresses.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,22 @@
"chainId": "100",
"network": "gnosis",
"Erc6551Registry": "0x02101dfB77FDE026414827Fdc604ddAF224F0921",
"Dao": "0xfe1084bC16427e5EB7f13Fc19bCD4E641F7d571f",
"CharacterAccount": "",
"CharacterSheetsImplementation": "",
"ClassesImplementation": "",
"CharacterSheetsFactory": "",
"CharacterEligibilityAdaptor": "",
"ClassLevelAdaptor": "",
"HatsAdaptor": "",
"AddressHatsEligibilityModule": "0x9AaF0df5657b634131784523F4F5e83459c61986",
"ERC721HatsEligibilityModule": "0x6bAa65D3E024D8ebA717085691dd8A985e9F267E",
"ERC6551HatsEligibilityModule": "",
"ExperienceImplementation": "",
"ItemsManagerImplementation": "",
"ClonesAddressStorage": "",
"ImplementationAddressStorage": "",
"ItemsImplementation": "",
"HatsContract": "0x3bc1A0Ad72417f2d411118085256fC53CBdDd137",
"HatsModuleFactory": "0xfE661c01891172046feE16D3a57c3Cf456729efA",
"CharacterAccount": "0xe12974EaCB122b098165396DC16dF433017111ca",
Expand All @@ -15,10 +31,6 @@
"MolochV3EligibilityAdaptor": "0x620646b1E1b27b56afDaf87eE13CA727F4E87cC8",
"ClassLevelAdaptor": "0x8aBcdc5B54f8F85eAB5eE21EF4123a78dEd24E6a",
"HatsAdaptor": "0xBe7A3fcE59A44F9a025352F2e0f6e7a97e4b83a9",
"AdminHatEligibilityModule": "0x802dD2a5B6E5484F08D1730aF14432502f27938f",
"GameMasterHatEligibilityModule": "0xACaA422e8bc5a1d7810F5A3923564885B4614c1d",
"PlayerHatEligibilityModule": "0xe44680218B2f68a03Df29583B48cA2179044b300",
"CharacterHatEligibilityModule": "0xEeDb1BeB64dBc0f8B7FF9f967A4687e30b57b977",
"ClonesAddressStorageImplementation": "0x20C270dD8F5F8A341AA90fB8Eb0B3bc44237cc29",
"ImplementationAddressStorage": "0xB554A4Cc89047419cf8Eb6230d6fea6Fd37C6c42",
"CharacterSheetsFactory": "0x734f6333ADbE88064a5fFdEbb487f59063Ba4068"
Expand All @@ -29,28 +41,44 @@
"Erc6551Registry": "0x02101dfB77FDE026414827Fdc604ddAF224F0921",
"HatsContract": "0x3bc1A0Ad72417f2d411118085256fC53CBdDd137",
"HatsModuleFactory": "0xfE661c01891172046feE16D3a57c3Cf456729efA",
"CharacterAccount": "0x45f024d04b2160851382A427Ae5791D57096ccDc",
"CharacterSheetsImplementation": "0x541234Da2553C470f37EAC20d159df0B77e1DDC1",
"ExperienceImplementation": "0xD285F614548fF4A1eB5Bf628B4865111f4fc94b4",
"ItemsImplementation": "0xB1301d84E4D2491bA7530c8B669CB03acE161959",
"ItemsManagerImplementation": "0x078E047c0A6593dAbed005B9da145d3f61aB9eEd",
"ClassesImplementation": "0x498FF778C7c89bfb726fDd5dF7d179856f7065f4",
"MolochV2EligibilityAdaptor": "0x176E07EcE8E59BF2d74793c68e2ddE694C61dE52",
"MolochV3EligibilityAdaptor": "0x8902F04Cd28c3866bC5eA8E033946C3F5D3Be579",
"ClassLevelAdaptor": "0x617E5E4463b40f81A4066f738E754F7bb5ebcdeb",
"HatsAdaptor": "0xa8a24c75877177EA0BF623E7a8b05Fa5f69C323D",
"AdminHatEligibilityModule": "0xEBcFFF189182Ff51265B4962c96B5cc60D99C43E",
"GameMasterHatEligibilityModule": "0x658Bdc9B6bEB602Cd48A7984D6B86938e43f8dC9",
"PlayerHatEligibilityModule": "0xf875BfFA59cd7321b72E43A78c7F4A92A8d6374A",
"CharacterHatEligibilityModule": "0x2527dd012d404fc10cc05597A27F94aA02e7FCF5",
"ClonesAddressStorageImplementation": "0x0188f5F5CB84E83865e21b2A9247Cb98A8398535",
"ImplementationAddressStorage": "0x64088cb956004763DFb5ed11A29C07B54ccfD7d7",
"CharacterSheetsFactory": "0xbF9ED7A8Ee913a4d6e3007421a63C1fe9A8569b8"
"CharacterAccount": "0x3cD942A7902b955E0a5222d80376B29062Ea9DaA",
"ClassesImplementation": "0x62b97b232Ed8b11409ff8a7648214010426355ed",
"CharacterSheetsFactory": "0x570F219D3FA620E7Fd48ff4787F2Da169Ed12244",
"ExperienceImplementation": "0x8065d9c66d41bF35473B71D17aCBD535dd2a3488",
"ItemsManagerImplementation": "0xEC48EB7BE3B867cB9Af481533008752d64514d84",
"CloneAddressStorage": "0xbc0A467b8100c87282988c6ff71d4227C822bF2e",
"ImplementationAddressStorage": "0x07ECa0752E074C981fB0a5eE16E7114d809ed3ff",
"ItemsImplementation": "0x8117C81B65dF2d899E413F65dd1230Ccd92Ea80a",
"CharacterSheetsImplementation": "0x5d429668Cc7FAE3657359548B413Ced02398F030",
"CharacterEligibilityAdaptor": "0xc94eb020b474a8320a7500CcC0E29cb5Aa86BD34",
"CharacterEligibilityAdaptorV2": "",
"CharacterEligibilityAdaptorV3": "0xC557D0a20e0BfC06adFA2eD0503523dF011E850B",
"ClassLevelAdaptor": "0x1F4Bf13C531f4875fb5d2859dCD88591b8d471f1",
"HatsAdaptor": "0x163920D269760feB9eD161601648832d963e4143",
"AddressHatsEligibilityModule": "0x9AaF0df5657b634131784523F4F5e83459c61986",
"ERC721HatsEligibilityModule": "0x6bAa65D3E024D8ebA717085691dd8A985e9F267E",
"ERC6551HatsEligibilityModule": "0xa25B005B82209B2D2dC6E86006ae75649b1dAb5b",
"ClonesAddressStorageImplementation": "0xfFE77f170cEFcC2248e6697c32ef665FcF685E14"
},
"sepolia": {
"chainId": "11155111",
"network": "sepolia",
"Erc6551Registry": "0x02101dfB77FDE026414827Fdc604ddAF224F0921",
"CharacterAccount": "",
"CharacterSheetsImplementation": "",
"ClassesImplementation": "",
"CharacterSheetsFactory": "",
"CharacterEligibilityAdaptor": "",
"ClassLevelAdaptor": "",
"HatsAdaptor": "",
"AddressHatsEligibilityModule": "",
"ERC721HatsEligibilityModule": "",
"ERC6551HatsEligibilityModule": "",
"ExperienceImplementation": "",
"ItemsManagerImplementation": "",
"ClonesAddressStorage": "",
"ImplementationAddressStorage": "",
"ItemsImplementation": "",
"HatsContract": "0x3bc1A0Ad72417f2d411118085256fC53CBdDd137",
"HatsModuleFactory": "0xfE661c01891172046feE16D3a57c3Cf456729efA"
},
Expand All @@ -72,11 +100,11 @@
"ClassLevelAdaptor": "0x8A791620dd6260079BF849Dc5567aDC3F2FdC318",
"HatsAdaptor": "0x610178dA211FEF7D417bC0e6FeD39F05609AD788",
"AdminHatEligibilityModule": "0xB7f8BC63BbcaD18155201308C8f3540b07f84F5e",
"GameMasterHatEligibilityModule": "0xA51c1fc2f0D1a1b8494Ed1FE312d7C3a78Ed91C0",
"PlayerHatEligibilityModule": "0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82",
"CharacterHatEligibilityModule": "0x9A676e781A523b5d0C0e43731313A708CB607508",
"ClonesAddressStorageImplementation": "0x0B306BF915C4d645ff596e518fAf3F9669b97016",
"ImplementationAddressStorage": "0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1",
"CharacterSheetsFactory": "0x68B1D87F95878fE05B998F19b66F4baba5De1aed"
"CharacterSheetsFactory": "0x68B1D87F95878fE05B998F19b66F4baba5De1aed",
"AddressHatsEligibilityModule": "0x9AaF0df5657b634131784523F4F5e83459c61986",
"ERC721HatsEligibilityModule": "0x6bAa65D3E024D8ebA717085691dd8A985e9F267E",
"ERC6551HatsEligibilityModule": ""
}
}
2 changes: 1 addition & 1 deletion lib/openzeppelin-contracts-upgradeable
24 changes: 0 additions & 24 deletions scripts/CharacterHatEligibilityModule.s.sol

This file was deleted.

24 changes: 24 additions & 0 deletions scripts/ERC6551HatsEligibilityModule.s.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;

import {ERC6551HatsEligibilityModule} from "../src/adaptors/hats-modules/ERC6551HatsEligibilityModule.sol";

import {BaseDeployer} from "./BaseDeployer.sol";
import "forge-std/Script.sol";
import "forge-std/StdJson.sol";

contract DeployERC6551HatsEligibilityModule is BaseDeployer {
using stdJson for string;

ERC6551HatsEligibilityModule public erc6551HatsEligibilityModule;

function deploy() internal override returns (address) {
vm.startBroadcast(deployerPrivateKey);

erc6551HatsEligibilityModule = new ERC6551HatsEligibilityModule(_version);

vm.stopBroadcast();

return address(erc6551HatsEligibilityModule);
}
}
24 changes: 0 additions & 24 deletions scripts/GameMasterHatEligibilityModule.s.sol

This file was deleted.

Loading

0 comments on commit 74f9912

Please sign in to comment.