diff --git a/.openzeppelin/avalanche.json b/.openzeppelin/avalanche.json index 003840e..5c327c4 100644 --- a/.openzeppelin/avalanche.json +++ b/.openzeppelin/avalanche.json @@ -118,7 +118,7 @@ "label": "badgeModelControllers", "offset": 0, "slot": "7", - "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15599_storage)", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:100" }, @@ -126,7 +126,7 @@ "label": "badgeModelControllersByAddress", "offset": 0, "slot": "8", - "type": "t_mapping(t_address,t_struct(BadgeModelController)15599_storage)", + "type": "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:101" }, @@ -134,7 +134,7 @@ "label": "badgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(BadgeModel)15633_storage)", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:102" }, @@ -142,7 +142,7 @@ "label": "badges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(Badge)15642_storage)", + "type": "t_mapping(t_uint256,t_struct(Badge)10831_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:103" }, @@ -196,7 +196,7 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(BadgeModelController)15599_storage)": { + "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -204,7 +204,7 @@ "label": "mapping(string => address)", "numberOfBytes": "32" }, - "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15599_storage)": { + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -212,11 +212,11 @@ "label": "mapping(uint256 => mapping(address => uint256[]))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(Badge)15642_storage)": { + "t_mapping(t_uint256,t_struct(Badge)10831_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.Badge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(BadgeModel)15633_storage)": { + "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", "numberOfBytes": "32" }, @@ -228,7 +228,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(Badge)15642_storage": { + "t_struct(Badge)10831_storage": { "label": "struct TheBadgeStore.Badge", "members": [ { @@ -258,7 +258,7 @@ ], "numberOfBytes": "128" }, - "t_struct(BadgeModel)15633_storage": { + "t_struct(BadgeModel)10822_storage": { "label": "struct TheBadgeStore.BadgeModel", "members": [ { @@ -330,7 +330,7 @@ ], "numberOfBytes": "320" }, - "t_struct(BadgeModelController)15599_storage": { + "t_struct(BadgeModelController)10788_storage": { "label": "struct TheBadgeStore.BadgeModelController", "members": [ { @@ -395,7 +395,7 @@ "label": "registeredUsers", "offset": 0, "slot": "3", - "type": "t_mapping(t_address,t_struct(User)17712_storage)", + "type": "t_mapping(t_address,t_struct(User)12901_storage)", "contract": "TheBadgeUsersStore", "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:83" }, @@ -403,7 +403,7 @@ "label": "verifiedUsersByControllerAddress", "offset": 0, "slot": "4", - "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17727_storage))", + "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)12916_storage))", "contract": "TheBadgeUsersStore", "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:84" }, @@ -429,7 +429,7 @@ "label": "bool", "numberOfBytes": "1" }, - "t_enum(VerificationStatus)9454": { + "t_enum(VerificationStatus)7661": { "label": "enum LibTheBadgeUsers.VerificationStatus", "members": ["VerificationSubmitted", "Verified", "VerificationRejected"], "numberOfBytes": "1" @@ -438,15 +438,15 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17727_storage))": { + "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)12916_storage))": { "label": "mapping(address => mapping(address => struct TheBadgeUsersStore.UserVerification))", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(User)17712_storage)": { + "t_mapping(t_address,t_struct(User)12901_storage)": { "label": "mapping(address => struct TheBadgeUsersStore.User)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(UserVerification)17727_storage)": { + "t_mapping(t_address,t_struct(UserVerification)12916_storage)": { "label": "mapping(address => struct TheBadgeUsersStore.UserVerification)", "numberOfBytes": "32" }, @@ -462,7 +462,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(User)17712_storage": { + "t_struct(User)12901_storage": { "label": "struct TheBadgeUsersStore.User", "members": [ { @@ -498,7 +498,7 @@ ], "numberOfBytes": "64" }, - "t_struct(UserVerification)17727_storage": { + "t_struct(UserVerification)12916_storage": { "label": "struct TheBadgeUsersStore.UserVerification", "members": [ { @@ -521,7 +521,7 @@ }, { "label": "verificationStatus", - "type": "t_enum(VerificationStatus)9454", + "type": "t_enum(VerificationStatus)7661", "offset": 0, "slot": "3" }, @@ -557,7 +557,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)16478", + "type": "t_contract(TheBadgeStore)11667", "contract": "TheBadgeUsers", "src": "src/contracts/thebadge/TheBadgeUsers.sol:20" }, @@ -565,7 +565,7 @@ "label": "_badgeUsersStore", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsersStore)18157", + "type": "t_contract(TheBadgeUsersStore)13346", "contract": "TheBadgeUsers", "src": "src/contracts/thebadge/TheBadgeUsers.sol:21" }, @@ -583,11 +583,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)16478": { + "t_contract(TheBadgeStore)11667": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsersStore)18157": { + "t_contract(TheBadgeUsersStore)13346": { "label": "contract TheBadgeUsersStore", "numberOfBytes": "20" }, @@ -608,7 +608,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)16478", + "type": "t_contract(TheBadgeStore)11667", "contract": "TheBadgeModels", "src": "src/contracts/thebadge/TheBadgeModels.sol:21" }, @@ -616,7 +616,7 @@ "label": "_theBadgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)17647", + "type": "t_contract(TheBadgeUsers)12836", "contract": "TheBadgeModels", "src": "src/contracts/thebadge/TheBadgeModels.sol:22" }, @@ -634,11 +634,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)16478": { + "t_contract(TheBadgeStore)11667": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)17647": { + "t_contract(TheBadgeUsers)12836": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, @@ -659,7 +659,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)16478", + "type": "t_contract(TheBadgeStore)11361", "contract": "TheBadge", "src": "src/contracts/thebadge/TheBadge.sol:30" }, @@ -667,7 +667,7 @@ "label": "_badgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)17647", + "type": "t_contract(TheBadgeUsers)12530", "contract": "TheBadge", "src": "src/contracts/thebadge/TheBadge.sol:31" }, @@ -701,11 +701,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)16478": { + "t_contract(TheBadgeStore)11361": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)17647": { + "t_contract(TheBadgeUsers)12530": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, @@ -1031,7 +1031,7 @@ "label": "thirdPartyModelController", "offset": 0, "slot": "2", - "type": "t_contract(TpBadgeModelController)8679", + "type": "t_contract(TpBadgeModelController)6612", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" }, @@ -1087,7 +1087,7 @@ "label": "thirdPartyBadgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8782_storage)", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6715_storage)", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" }, @@ -1095,7 +1095,7 @@ "label": "thirdPartyBadges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8794_storage)", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6727_storage)", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" }, @@ -1137,7 +1137,7 @@ "label": "contract IArbitrator", "numberOfBytes": "20" }, - "t_contract(TpBadgeModelController)8679": { + "t_contract(TpBadgeModelController)6612": { "label": "contract TpBadgeModelController", "numberOfBytes": "20" }, @@ -1153,11 +1153,11 @@ "label": "mapping(uint256 => mapping(address => bool))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8794_storage)": { + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6727_storage)": { "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8782_storage)": { + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6715_storage)": { "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", "numberOfBytes": "32" }, @@ -1169,7 +1169,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(ThirdPartyBadge)8794_storage": { + "t_struct(ThirdPartyBadge)6727_storage": { "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", "members": [ { @@ -1205,7 +1205,7 @@ ], "numberOfBytes": "160" }, - "t_struct(ThirdPartyBadgeModel)8782_storage": { + "t_struct(ThirdPartyBadgeModel)6715_storage": { "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", "members": [ { @@ -1270,7 +1270,7 @@ "label": "tpBadgeModelControllerStore", "offset": 0, "slot": "0", - "type": "t_contract(TpBadgeModelControllerStore)9310", + "type": "t_contract(TpBadgeModelControllerStore)7243", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" }, @@ -1278,7 +1278,7 @@ "label": "theBadgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)17647", + "type": "t_contract(TheBadgeUsers)12530", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" }, @@ -1286,7 +1286,7 @@ "label": "theBadge", "offset": 0, "slot": "2", - "type": "t_contract(TheBadge)14441", + "type": "t_contract(TheBadge)9324", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" }, @@ -1294,7 +1294,7 @@ "label": "theBadgeModels", "offset": 0, "slot": "3", - "type": "t_contract(TheBadgeModels)15491", + "type": "t_contract(TheBadgeModels)10374", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" }, @@ -1312,19 +1312,19 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadge)14441": { + "t_contract(TheBadge)9324": { "label": "contract TheBadge", "numberOfBytes": "20" }, - "t_contract(TheBadgeModels)15491": { + "t_contract(TheBadgeModels)10374": { "label": "contract TheBadgeModels", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)17647": { + "t_contract(TheBadgeUsers)12530": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, - "t_contract(TpBadgeModelControllerStore)9310": { + "t_contract(TpBadgeModelControllerStore)7243": { "label": "contract TpBadgeModelControllerStore", "numberOfBytes": "20" }, @@ -1334,6 +1334,1004 @@ } } } + }, + "8ce49e43f44726aaf4a715b4ce76f20297378ce4234e6e81849feab50ed9dec1": { + "address": "0xEa7484510ac6272553f98d71Deb0F9f419eF376a", + "txHash": "0x3184a66f0c2331884226916c484a7452d703075cb5cef030c930c7ff73978ad0", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:40" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:41" + }, + { + "label": "createBadgeModelProtocolFee", + "offset": 0, + "slot": "2", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:42" + }, + { + "label": "mintBadgeProtocolDefaultFeeInBps", + "offset": 0, + "slot": "3", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:43" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:44" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:98" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:99" + }, + { + "label": "badgeModelControllers", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:100" + }, + { + "label": "badgeModelControllersByAddress", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:101" + }, + { + "label": "badgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:102" + }, + { + "label": "badges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(Badge)15744_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:103" + }, + { + "label": "userMintedBadgesByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:104" + }, + { + "label": "claimBadgeProtocolFee", + "offset": 0, + "slot": "12", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:106" + }, + { + "label": "__gap", + "offset": 0, + "slot": "13", + "type": "t_array(t_uint256)49_storage", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:369" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_array(t_uint256)dyn_storage)": { + "label": "mapping(address => uint256[])", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))": { + "label": "mapping(uint256 => mapping(address => uint256[]))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Badge)15744_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.Badge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Badge)15744_storage": { + "label": "struct TheBadgeStore.Badge", + "members": [ + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "account", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "dueDate", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_struct(BadgeModel)15735_storage": { + "label": "struct TheBadgeStore.BadgeModel", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "controllerName", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 0, + "slot": "2" + }, + { + "label": "mintCreatorFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "validFor", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "mintProtocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "6" + }, + { + "label": "version", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 0, + "slot": "8" + }, + { + "label": "deprecated", + "type": "t_bool", + "offset": 1, + "slot": "8" + }, + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(BadgeModelController)15701_storage": { + "label": "struct TheBadgeStore.BadgeModelController", + "members": [ + { + "label": "controller", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 20, + "slot": "0" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "5051ccb5e82dc1d42ed8110cb4d3f2323e19498365848034e0912f902cd0071e": { + "address": "0x6a89539E3f4502a1eE55526f7e9C8824B09B11ef", + "txHash": "0xe2cac821fa343012fd167d07ad1da73f736fa6a3a2947f70f3918feac3a51fc1", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "registerUserProtocolFee", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:40" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "1", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:81" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:82" + }, + { + "label": "registeredUsers", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_struct(User)17814_storage)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:83" + }, + { + "label": "verifiedUsersByControllerAddress", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17829_storage))", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:84" + }, + { + "label": "__gap", + "offset": 0, + "slot": "5", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:247" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_enum(VerificationStatus)9495": { + "label": "enum LibTheBadgeUsers.VerificationStatus", + "members": ["VerificationSubmitted", "Verified", "VerificationRejected"], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17829_storage))": { + "label": "mapping(address => mapping(address => struct TheBadgeUsersStore.UserVerification))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(User)17814_storage)": { + "label": "mapping(address => struct TheBadgeUsersStore.User)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(UserVerification)17829_storage)": { + "label": "mapping(address => struct TheBadgeUsersStore.UserVerification)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(User)17814_storage": { + "label": "struct TheBadgeUsersStore.User", + "members": [ + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "0" + }, + { + "label": "isCompany", + "type": "t_bool", + "offset": 0, + "slot": "1" + }, + { + "label": "isCreator", + "type": "t_bool", + "offset": 1, + "slot": "1" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 2, + "slot": "1" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 3, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_struct(UserVerification)17829_storage": { + "label": "struct TheBadgeUsersStore.UserVerification", + "members": [ + { + "label": "user", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "userMetadata", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "verificationEvidence", + "type": "t_string_storage", + "offset": 0, + "slot": "2" + }, + { + "label": "verificationStatus", + "type": "t_enum(VerificationStatus)9495", + "offset": 0, + "slot": "3" + }, + { + "label": "verificationController", + "type": "t_address", + "offset": 1, + "slot": "3" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "d7263a309c5016a0f83e750298e3a6921605432cd0650c9282674af4b5696ccf": { + "address": "0x0B0FE57e7dE06014aD0E5f6eDc252ABA9fACD7aF", + "txHash": "0xf0bb6e461e602e8405f98c4d9c87298e8c3cc6ee239680a6e17743ad62d78a24", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:20" + }, + { + "label": "_badgeUsersStore", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsersStore)18259", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:421" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsersStore)18259": { + "label": "contract TheBadgeUsersStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "f2fc9c4fa082730d0acbbe612b9602a6178130da7663841223cc60c424c87d9c": { + "address": "0x88744139EcF97c9Ffb7A65624A7fA4B847f4Ac8E", + "txHash": "0xe57c6c319136ce1d075c709538109bd3fe2c06394f8b381fea6382e4022c75e3", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:21" + }, + { + "label": "_theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:390" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "aeb9e610ea95bc3b9fbb2c8941d9325e32c1eef36b917e5e8b0a0b165aeeedac": { + "address": "0xE7f5dE2dafc9B5Fc954C1b800D82E7868EdF2c07", + "txHash": "0xf6f1f6bff24cab18341389df3967435b0a5b86e1c67022ec30eba4426567d309", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:30" + }, + { + "label": "_badgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:31" + }, + { + "label": "name", + "offset": 0, + "slot": "2", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:32" + }, + { + "label": "symbol", + "offset": 0, + "slot": "3", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:33" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:728" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "a95f63f3c00517c7167c4bee88ea2b60c0a337665d972a780aa56c30dc602178": { + "address": "0xaDe4Dcc3613dc0b77593adb3D694F2F6f71E4125", + "txHash": "0x73ffe38baa458590908e70fb148116135bc1fc6d6f86d2964fed35df6fff7247", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "tpBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TpBadgeModelControllerStore)9351", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" + }, + { + "label": "theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadge)14538", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "3", + "type": "t_contract(TheBadgeModels)15588", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:429" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadge)14538": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)15588": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelControllerStore)9351": { + "label": "contract TpBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "104cca78380ab56354d117c6de7d774b6b18d23fd7cbf43a92a7909c5ca405dd": { + "address": "0x9316b09049c432E9F69e7d2f613036d936332Ad1", + "txHash": "0x474eb14c925d66e135cdf8f38439fa867917a42cbfab783652ae5b3194d96a54", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:110" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:111" + }, + { + "label": "thirdPartyModelController", + "offset": 0, + "slot": "2", + "type": "t_contract(TpBadgeModelController)8707", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" + }, + { + "label": "arbitrator", + "offset": 0, + "slot": "3", + "type": "t_contract(IArbitrator)5575", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:114" + }, + { + "label": "tcrFactory", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:115" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "5", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:116" + }, + { + "label": "verifyUserProtocolFee", + "offset": 0, + "slot": "6", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:117" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_address,t_bool)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:120" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:121" + }, + { + "label": "thirdPartyBadgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8810_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" + }, + { + "label": "thirdPartyBadges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8822_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" + }, + { + "label": "thirdPartyAdministratorsByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_bool))", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:125" + }, + { + "label": "__gap", + "offset": 0, + "slot": "12", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:315" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IArbitrator)5575": { + "label": "contract IArbitrator", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelController)8707": { + "label": "contract TpBadgeModelController", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_bool))": { + "label": "mapping(uint256 => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8822_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8810_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(ThirdPartyBadge)8822_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", + "members": [ + { + "label": "itemID", + "type": "t_bytes32", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "badgeId", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + }, + { + "label": "badgeDataUri", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_struct(ThirdPartyBadgeModel)8810_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", + "members": [ + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "tcrList", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "governor", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "admin", + "type": "t_address", + "offset": 0, + "slot": "4" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 20, + "slot": "4" + }, + { + "label": "requirementsIPFSHash", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } } } } diff --git a/.openzeppelin/optimism.json b/.openzeppelin/optimism.json index cdd5000..2a1a3b9 100644 --- a/.openzeppelin/optimism.json +++ b/.openzeppelin/optimism.json @@ -108,7 +108,7 @@ "label": "badgeModelControllers", "offset": 0, "slot": "7", - "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15599_storage)", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:100" }, @@ -116,7 +116,7 @@ "label": "badgeModelControllersByAddress", "offset": 0, "slot": "8", - "type": "t_mapping(t_address,t_struct(BadgeModelController)15599_storage)", + "type": "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:101" }, @@ -124,7 +124,7 @@ "label": "badgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(BadgeModel)15633_storage)", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:102" }, @@ -132,7 +132,7 @@ "label": "badges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(Badge)15642_storage)", + "type": "t_mapping(t_uint256,t_struct(Badge)10831_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:103" }, @@ -186,7 +186,7 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(BadgeModelController)15599_storage)": { + "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -194,7 +194,7 @@ "label": "mapping(string => address)", "numberOfBytes": "32" }, - "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15599_storage)": { + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -202,11 +202,11 @@ "label": "mapping(uint256 => mapping(address => uint256[]))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(Badge)15642_storage)": { + "t_mapping(t_uint256,t_struct(Badge)10831_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.Badge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(BadgeModel)15633_storage)": { + "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", "numberOfBytes": "32" }, @@ -218,7 +218,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(Badge)15642_storage": { + "t_struct(Badge)10831_storage": { "label": "struct TheBadgeStore.Badge", "members": [ { @@ -248,7 +248,7 @@ ], "numberOfBytes": "128" }, - "t_struct(BadgeModel)15633_storage": { + "t_struct(BadgeModel)10822_storage": { "label": "struct TheBadgeStore.BadgeModel", "members": [ { @@ -320,7 +320,7 @@ ], "numberOfBytes": "320" }, - "t_struct(BadgeModelController)15599_storage": { + "t_struct(BadgeModelController)10788_storage": { "label": "struct TheBadgeStore.BadgeModelController", "members": [ { @@ -385,7 +385,7 @@ "label": "registeredUsers", "offset": 0, "slot": "3", - "type": "t_mapping(t_address,t_struct(User)17712_storage)", + "type": "t_mapping(t_address,t_struct(User)12901_storage)", "contract": "TheBadgeUsersStore", "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:83" }, @@ -393,7 +393,7 @@ "label": "verifiedUsersByControllerAddress", "offset": 0, "slot": "4", - "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17727_storage))", + "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)12916_storage))", "contract": "TheBadgeUsersStore", "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:84" }, @@ -419,7 +419,7 @@ "label": "bool", "numberOfBytes": "1" }, - "t_enum(VerificationStatus)9454": { + "t_enum(VerificationStatus)7661": { "label": "enum LibTheBadgeUsers.VerificationStatus", "members": ["VerificationSubmitted", "Verified", "VerificationRejected"], "numberOfBytes": "1" @@ -428,15 +428,15 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17727_storage))": { + "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)12916_storage))": { "label": "mapping(address => mapping(address => struct TheBadgeUsersStore.UserVerification))", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(User)17712_storage)": { + "t_mapping(t_address,t_struct(User)12901_storage)": { "label": "mapping(address => struct TheBadgeUsersStore.User)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(UserVerification)17727_storage)": { + "t_mapping(t_address,t_struct(UserVerification)12916_storage)": { "label": "mapping(address => struct TheBadgeUsersStore.UserVerification)", "numberOfBytes": "32" }, @@ -452,7 +452,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(User)17712_storage": { + "t_struct(User)12901_storage": { "label": "struct TheBadgeUsersStore.User", "members": [ { @@ -488,7 +488,7 @@ ], "numberOfBytes": "64" }, - "t_struct(UserVerification)17727_storage": { + "t_struct(UserVerification)12916_storage": { "label": "struct TheBadgeUsersStore.UserVerification", "members": [ { @@ -511,7 +511,7 @@ }, { "label": "verificationStatus", - "type": "t_enum(VerificationStatus)9454", + "type": "t_enum(VerificationStatus)7661", "offset": 0, "slot": "3" }, @@ -547,7 +547,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)16478", + "type": "t_contract(TheBadgeStore)11667", "contract": "TheBadgeUsers", "src": "src/contracts/thebadge/TheBadgeUsers.sol:20" }, @@ -555,7 +555,7 @@ "label": "_badgeUsersStore", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsersStore)18157", + "type": "t_contract(TheBadgeUsersStore)13346", "contract": "TheBadgeUsers", "src": "src/contracts/thebadge/TheBadgeUsers.sol:21" }, @@ -573,11 +573,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)16478": { + "t_contract(TheBadgeStore)11667": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsersStore)18157": { + "t_contract(TheBadgeUsersStore)13346": { "label": "contract TheBadgeUsersStore", "numberOfBytes": "20" }, @@ -598,7 +598,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)16478", + "type": "t_contract(TheBadgeStore)11667", "contract": "TheBadgeModels", "src": "src/contracts/thebadge/TheBadgeModels.sol:21" }, @@ -606,7 +606,7 @@ "label": "_theBadgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)17647", + "type": "t_contract(TheBadgeUsers)12836", "contract": "TheBadgeModels", "src": "src/contracts/thebadge/TheBadgeModels.sol:22" }, @@ -624,11 +624,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)16478": { + "t_contract(TheBadgeStore)11667": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)17647": { + "t_contract(TheBadgeUsers)12836": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, @@ -649,7 +649,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)16478", + "type": "t_contract(TheBadgeStore)11361", "contract": "TheBadge", "src": "src/contracts/thebadge/TheBadge.sol:30" }, @@ -657,7 +657,7 @@ "label": "_badgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)17647", + "type": "t_contract(TheBadgeUsers)12530", "contract": "TheBadge", "src": "src/contracts/thebadge/TheBadge.sol:31" }, @@ -691,11 +691,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)16478": { + "t_contract(TheBadgeStore)11361": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)17647": { + "t_contract(TheBadgeUsers)12530": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, @@ -736,7 +736,7 @@ "label": "thirdPartyModelController", "offset": 0, "slot": "2", - "type": "t_contract(TpBadgeModelController)8679", + "type": "t_contract(TpBadgeModelController)6612", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" }, @@ -792,7 +792,7 @@ "label": "thirdPartyBadgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8782_storage)", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6715_storage)", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" }, @@ -800,7 +800,7 @@ "label": "thirdPartyBadges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8794_storage)", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6727_storage)", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" }, @@ -842,7 +842,7 @@ "label": "contract IArbitrator", "numberOfBytes": "20" }, - "t_contract(TpBadgeModelController)8679": { + "t_contract(TpBadgeModelController)6612": { "label": "contract TpBadgeModelController", "numberOfBytes": "20" }, @@ -858,11 +858,11 @@ "label": "mapping(uint256 => mapping(address => bool))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8794_storage)": { + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6727_storage)": { "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8782_storage)": { + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6715_storage)": { "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", "numberOfBytes": "32" }, @@ -874,7 +874,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(ThirdPartyBadge)8794_storage": { + "t_struct(ThirdPartyBadge)6727_storage": { "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", "members": [ { @@ -910,7 +910,7 @@ ], "numberOfBytes": "160" }, - "t_struct(ThirdPartyBadgeModel)8782_storage": { + "t_struct(ThirdPartyBadgeModel)6715_storage": { "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", "members": [ { @@ -975,7 +975,7 @@ "label": "tpBadgeModelControllerStore", "offset": 0, "slot": "0", - "type": "t_contract(TpBadgeModelControllerStore)9310", + "type": "t_contract(TpBadgeModelControllerStore)7243", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" }, @@ -983,7 +983,7 @@ "label": "theBadgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)17647", + "type": "t_contract(TheBadgeUsers)12530", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" }, @@ -991,7 +991,7 @@ "label": "theBadge", "offset": 0, "slot": "2", - "type": "t_contract(TheBadge)14441", + "type": "t_contract(TheBadge)9324", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" }, @@ -999,7 +999,7 @@ "label": "theBadgeModels", "offset": 0, "slot": "3", - "type": "t_contract(TheBadgeModels)15491", + "type": "t_contract(TheBadgeModels)10374", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" }, @@ -1017,19 +1017,19 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadge)14441": { + "t_contract(TheBadge)9324": { "label": "contract TheBadge", "numberOfBytes": "20" }, - "t_contract(TheBadgeModels)15491": { + "t_contract(TheBadgeModels)10374": { "label": "contract TheBadgeModels", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)17647": { + "t_contract(TheBadgeUsers)12530": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, - "t_contract(TpBadgeModelControllerStore)9310": { + "t_contract(TpBadgeModelControllerStore)7243": { "label": "contract TpBadgeModelControllerStore", "numberOfBytes": "20" }, @@ -1039,6 +1039,1004 @@ } } } + }, + "8ce49e43f44726aaf4a715b4ce76f20297378ce4234e6e81849feab50ed9dec1": { + "address": "0x62A796dC269a3d8Fa0FEb9dd2261c2CC7F1A22f4", + "txHash": "0x8c33966b85a17a701b34603bfebc1cec4504fb8a5380aa2ede88fd5367cfc630", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:40" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:41" + }, + { + "label": "createBadgeModelProtocolFee", + "offset": 0, + "slot": "2", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:42" + }, + { + "label": "mintBadgeProtocolDefaultFeeInBps", + "offset": 0, + "slot": "3", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:43" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:44" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:98" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:99" + }, + { + "label": "badgeModelControllers", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:100" + }, + { + "label": "badgeModelControllersByAddress", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:101" + }, + { + "label": "badgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:102" + }, + { + "label": "badges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(Badge)15744_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:103" + }, + { + "label": "userMintedBadgesByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:104" + }, + { + "label": "claimBadgeProtocolFee", + "offset": 0, + "slot": "12", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:106" + }, + { + "label": "__gap", + "offset": 0, + "slot": "13", + "type": "t_array(t_uint256)49_storage", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:369" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_array(t_uint256)dyn_storage)": { + "label": "mapping(address => uint256[])", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))": { + "label": "mapping(uint256 => mapping(address => uint256[]))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Badge)15744_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.Badge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Badge)15744_storage": { + "label": "struct TheBadgeStore.Badge", + "members": [ + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "account", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "dueDate", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_struct(BadgeModel)15735_storage": { + "label": "struct TheBadgeStore.BadgeModel", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "controllerName", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 0, + "slot": "2" + }, + { + "label": "mintCreatorFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "validFor", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "mintProtocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "6" + }, + { + "label": "version", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 0, + "slot": "8" + }, + { + "label": "deprecated", + "type": "t_bool", + "offset": 1, + "slot": "8" + }, + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(BadgeModelController)15701_storage": { + "label": "struct TheBadgeStore.BadgeModelController", + "members": [ + { + "label": "controller", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 20, + "slot": "0" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "5051ccb5e82dc1d42ed8110cb4d3f2323e19498365848034e0912f902cd0071e": { + "address": "0x7808B0320a21851139207EdAaAAfb1dc4039ceC2", + "txHash": "0x5c368472a7c29977c33b441646a305929cbf3d39c5c60bfdf6d5550c2faccdd2", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "registerUserProtocolFee", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:40" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "1", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:81" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:82" + }, + { + "label": "registeredUsers", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_struct(User)17814_storage)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:83" + }, + { + "label": "verifiedUsersByControllerAddress", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17829_storage))", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:84" + }, + { + "label": "__gap", + "offset": 0, + "slot": "5", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:247" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_enum(VerificationStatus)9495": { + "label": "enum LibTheBadgeUsers.VerificationStatus", + "members": ["VerificationSubmitted", "Verified", "VerificationRejected"], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17829_storage))": { + "label": "mapping(address => mapping(address => struct TheBadgeUsersStore.UserVerification))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(User)17814_storage)": { + "label": "mapping(address => struct TheBadgeUsersStore.User)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(UserVerification)17829_storage)": { + "label": "mapping(address => struct TheBadgeUsersStore.UserVerification)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(User)17814_storage": { + "label": "struct TheBadgeUsersStore.User", + "members": [ + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "0" + }, + { + "label": "isCompany", + "type": "t_bool", + "offset": 0, + "slot": "1" + }, + { + "label": "isCreator", + "type": "t_bool", + "offset": 1, + "slot": "1" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 2, + "slot": "1" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 3, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_struct(UserVerification)17829_storage": { + "label": "struct TheBadgeUsersStore.UserVerification", + "members": [ + { + "label": "user", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "userMetadata", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "verificationEvidence", + "type": "t_string_storage", + "offset": 0, + "slot": "2" + }, + { + "label": "verificationStatus", + "type": "t_enum(VerificationStatus)9495", + "offset": 0, + "slot": "3" + }, + { + "label": "verificationController", + "type": "t_address", + "offset": 1, + "slot": "3" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "d7263a309c5016a0f83e750298e3a6921605432cd0650c9282674af4b5696ccf": { + "address": "0x3C838b8571c53D29108F69b98145f8FcC446Fa5a", + "txHash": "0x5f0990483226db015086e4e044e2948a32c13b2cea4842ac9525c75ecc288a4e", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:20" + }, + { + "label": "_badgeUsersStore", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsersStore)18259", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:421" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsersStore)18259": { + "label": "contract TheBadgeUsersStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "f2fc9c4fa082730d0acbbe612b9602a6178130da7663841223cc60c424c87d9c": { + "address": "0x46d5469385C4Af4a3dd858AA839fc49d1f6c485f", + "txHash": "0xf2fbdc49facbfb99dc50b10b0563a0be2e48bfdac704759fcf846b215acca318", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:21" + }, + { + "label": "_theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:390" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "aeb9e610ea95bc3b9fbb2c8941d9325e32c1eef36b917e5e8b0a0b165aeeedac": { + "address": "0xd0Abf7D7A7A12Cca32F97665A95932B53565D8cB", + "txHash": "0xde3a042c925ebd474b9806d9523b50d8ab2b33f11a431adc3861204d7f548a69", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:30" + }, + { + "label": "_badgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:31" + }, + { + "label": "name", + "offset": 0, + "slot": "2", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:32" + }, + { + "label": "symbol", + "offset": 0, + "slot": "3", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:33" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:728" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "a95f63f3c00517c7167c4bee88ea2b60c0a337665d972a780aa56c30dc602178": { + "address": "0x492C9307330ecBd48342A37e6670b78808EEDeb0", + "txHash": "0x61020581e56239e183751b75a918fd0b69e903f64cbe7eeb9cd49f073a232fd4", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "tpBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TpBadgeModelControllerStore)9351", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" + }, + { + "label": "theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadge)14538", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "3", + "type": "t_contract(TheBadgeModels)15588", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:429" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadge)14538": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)15588": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelControllerStore)9351": { + "label": "contract TpBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "104cca78380ab56354d117c6de7d774b6b18d23fd7cbf43a92a7909c5ca405dd": { + "address": "0xEa7484510ac6272553f98d71Deb0F9f419eF376a", + "txHash": "0xc2ad328e828857a76a913db8517f7de51a2fe30dd7a69fa9d40b7a7f81d040d5", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:110" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:111" + }, + { + "label": "thirdPartyModelController", + "offset": 0, + "slot": "2", + "type": "t_contract(TpBadgeModelController)8707", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" + }, + { + "label": "arbitrator", + "offset": 0, + "slot": "3", + "type": "t_contract(IArbitrator)5575", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:114" + }, + { + "label": "tcrFactory", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:115" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "5", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:116" + }, + { + "label": "verifyUserProtocolFee", + "offset": 0, + "slot": "6", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:117" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_address,t_bool)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:120" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:121" + }, + { + "label": "thirdPartyBadgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8810_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" + }, + { + "label": "thirdPartyBadges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8822_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" + }, + { + "label": "thirdPartyAdministratorsByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_bool))", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:125" + }, + { + "label": "__gap", + "offset": 0, + "slot": "12", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:315" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IArbitrator)5575": { + "label": "contract IArbitrator", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelController)8707": { + "label": "contract TpBadgeModelController", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_bool))": { + "label": "mapping(uint256 => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8822_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8810_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(ThirdPartyBadge)8822_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", + "members": [ + { + "label": "itemID", + "type": "t_bytes32", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "badgeId", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + }, + { + "label": "badgeDataUri", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_struct(ThirdPartyBadgeModel)8810_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", + "members": [ + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "tcrList", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "governor", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "admin", + "type": "t_address", + "offset": 0, + "slot": "4" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 20, + "slot": "4" + }, + { + "label": "requirementsIPFSHash", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } } } } diff --git a/.openzeppelin/polygon.json b/.openzeppelin/polygon.json index dfd9be8..5fd91ad 100644 --- a/.openzeppelin/polygon.json +++ b/.openzeppelin/polygon.json @@ -173,7 +173,7 @@ "label": "badgeModelControllers", "offset": 0, "slot": "7", - "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)12557_storage)", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:100" }, @@ -181,7 +181,7 @@ "label": "badgeModelControllersByAddress", "offset": 0, "slot": "8", - "type": "t_mapping(t_address,t_struct(BadgeModelController)12557_storage)", + "type": "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:101" }, @@ -189,7 +189,7 @@ "label": "badgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(BadgeModel)12591_storage)", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:102" }, @@ -197,7 +197,7 @@ "label": "badges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(Badge)12600_storage)", + "type": "t_mapping(t_uint256,t_struct(Badge)10831_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:103" }, @@ -251,7 +251,7 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(BadgeModelController)12557_storage)": { + "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -259,7 +259,7 @@ "label": "mapping(string => address)", "numberOfBytes": "32" }, - "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)12557_storage)": { + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -267,11 +267,11 @@ "label": "mapping(uint256 => mapping(address => uint256[]))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(Badge)12600_storage)": { + "t_mapping(t_uint256,t_struct(Badge)10831_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.Badge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(BadgeModel)12591_storage)": { + "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", "numberOfBytes": "32" }, @@ -283,7 +283,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(Badge)12600_storage": { + "t_struct(Badge)10831_storage": { "label": "struct TheBadgeStore.Badge", "members": [ { @@ -313,7 +313,7 @@ ], "numberOfBytes": "128" }, - "t_struct(BadgeModel)12591_storage": { + "t_struct(BadgeModel)10822_storage": { "label": "struct TheBadgeStore.BadgeModel", "members": [ { @@ -385,7 +385,7 @@ ], "numberOfBytes": "320" }, - "t_struct(BadgeModelController)12557_storage": { + "t_struct(BadgeModelController)10788_storage": { "label": "struct TheBadgeStore.BadgeModelController", "members": [ { @@ -450,7 +450,7 @@ "label": "registeredUsers", "offset": 0, "slot": "3", - "type": "t_mapping(t_address,t_struct(User)14670_storage)", + "type": "t_mapping(t_address,t_struct(User)12901_storage)", "contract": "TheBadgeUsersStore", "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:83" }, @@ -458,7 +458,7 @@ "label": "verifiedUsersByControllerAddress", "offset": 0, "slot": "4", - "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)14685_storage))", + "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)12916_storage))", "contract": "TheBadgeUsersStore", "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:84" }, @@ -484,7 +484,7 @@ "label": "bool", "numberOfBytes": "1" }, - "t_enum(VerificationStatus)9418": { + "t_enum(VerificationStatus)7661": { "label": "enum LibTheBadgeUsers.VerificationStatus", "members": ["VerificationSubmitted", "Verified", "VerificationRejected"], "numberOfBytes": "1" @@ -493,15 +493,15 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)14685_storage))": { + "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)12916_storage))": { "label": "mapping(address => mapping(address => struct TheBadgeUsersStore.UserVerification))", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(User)14670_storage)": { + "t_mapping(t_address,t_struct(User)12901_storage)": { "label": "mapping(address => struct TheBadgeUsersStore.User)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(UserVerification)14685_storage)": { + "t_mapping(t_address,t_struct(UserVerification)12916_storage)": { "label": "mapping(address => struct TheBadgeUsersStore.UserVerification)", "numberOfBytes": "32" }, @@ -517,7 +517,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(User)14670_storage": { + "t_struct(User)12901_storage": { "label": "struct TheBadgeUsersStore.User", "members": [ { @@ -553,7 +553,7 @@ ], "numberOfBytes": "64" }, - "t_struct(UserVerification)14685_storage": { + "t_struct(UserVerification)12916_storage": { "label": "struct TheBadgeUsersStore.UserVerification", "members": [ { @@ -576,7 +576,7 @@ }, { "label": "verificationStatus", - "type": "t_enum(VerificationStatus)9418", + "type": "t_enum(VerificationStatus)7661", "offset": 0, "slot": "3" }, @@ -801,7 +801,7 @@ "label": "thirdPartyModelController", "offset": 0, "slot": "2", - "type": "t_contract(TpBadgeModelController)8643", + "type": "t_contract(TpBadgeModelController)6612", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" }, @@ -857,7 +857,7 @@ "label": "thirdPartyBadgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8746_storage)", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6715_storage)", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" }, @@ -865,7 +865,7 @@ "label": "thirdPartyBadges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8758_storage)", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6727_storage)", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" }, @@ -907,7 +907,7 @@ "label": "contract IArbitrator", "numberOfBytes": "20" }, - "t_contract(TpBadgeModelController)8643": { + "t_contract(TpBadgeModelController)6612": { "label": "contract TpBadgeModelController", "numberOfBytes": "20" }, @@ -923,11 +923,11 @@ "label": "mapping(uint256 => mapping(address => bool))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8758_storage)": { + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6727_storage)": { "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8746_storage)": { + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6715_storage)": { "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", "numberOfBytes": "32" }, @@ -939,7 +939,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(ThirdPartyBadge)8758_storage": { + "t_struct(ThirdPartyBadge)6727_storage": { "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", "members": [ { @@ -975,7 +975,7 @@ ], "numberOfBytes": "160" }, - "t_struct(ThirdPartyBadgeModel)8746_storage": { + "t_struct(ThirdPartyBadgeModel)6715_storage": { "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", "members": [ { @@ -1471,7 +1471,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)13436", + "type": "t_contract(TheBadgeStore)11667", "contract": "TheBadgeModels", "src": "src/contracts/thebadge/TheBadgeModels.sol:21" }, @@ -1479,7 +1479,7 @@ "label": "_theBadgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)14605", + "type": "t_contract(TheBadgeUsers)12836", "contract": "TheBadgeModels", "src": "src/contracts/thebadge/TheBadgeModels.sol:22" }, @@ -1497,11 +1497,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)13436": { + "t_contract(TheBadgeStore)11667": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)14605": { + "t_contract(TheBadgeUsers)12836": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, @@ -1597,7 +1597,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)13436", + "type": "t_contract(TheBadgeStore)11361", "contract": "TheBadge", "src": "src/contracts/thebadge/TheBadge.sol:30" }, @@ -1605,7 +1605,7 @@ "label": "_badgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)14605", + "type": "t_contract(TheBadgeUsers)12530", "contract": "TheBadge", "src": "src/contracts/thebadge/TheBadge.sol:31" }, @@ -1639,11 +1639,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)13436": { + "t_contract(TheBadgeStore)11361": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)14605": { + "t_contract(TheBadgeUsers)12530": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, @@ -1668,7 +1668,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)13436", + "type": "t_contract(TheBadgeStore)11667", "contract": "TheBadgeUsers", "src": "src/contracts/thebadge/TheBadgeUsers.sol:20" }, @@ -1676,7 +1676,7 @@ "label": "_badgeUsersStore", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsersStore)15115", + "type": "t_contract(TheBadgeUsersStore)13346", "contract": "TheBadgeUsers", "src": "src/contracts/thebadge/TheBadgeUsers.sol:21" }, @@ -1694,11 +1694,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)13436": { + "t_contract(TheBadgeStore)11667": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsersStore)15115": { + "t_contract(TheBadgeUsersStore)13346": { "label": "contract TheBadgeUsersStore", "numberOfBytes": "20" }, @@ -1719,7 +1719,7 @@ "label": "tpBadgeModelControllerStore", "offset": 0, "slot": "0", - "type": "t_contract(TpBadgeModelControllerStore)9274", + "type": "t_contract(TpBadgeModelControllerStore)7243", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" }, @@ -1727,7 +1727,7 @@ "label": "theBadgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)14605", + "type": "t_contract(TheBadgeUsers)12530", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" }, @@ -1735,7 +1735,7 @@ "label": "theBadge", "offset": 0, "slot": "2", - "type": "t_contract(TheBadge)11399", + "type": "t_contract(TheBadge)9324", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" }, @@ -1743,7 +1743,7 @@ "label": "theBadgeModels", "offset": 0, "slot": "3", - "type": "t_contract(TheBadgeModels)12449", + "type": "t_contract(TheBadgeModels)10374", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" }, @@ -1761,19 +1761,19 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadge)11399": { + "t_contract(TheBadge)9324": { "label": "contract TheBadge", "numberOfBytes": "20" }, - "t_contract(TheBadgeModels)12449": { + "t_contract(TheBadgeModels)10374": { "label": "contract TheBadgeModels", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)14605": { + "t_contract(TheBadgeUsers)12530": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, - "t_contract(TpBadgeModelControllerStore)9274": { + "t_contract(TpBadgeModelControllerStore)7243": { "label": "contract TpBadgeModelControllerStore", "numberOfBytes": "20" }, @@ -1783,6 +1783,1004 @@ } } } + }, + "8ce49e43f44726aaf4a715b4ce76f20297378ce4234e6e81849feab50ed9dec1": { + "address": "0xA478b381b441b8BC934934c23D838a1A75364FE3", + "txHash": "0xa83eb9e833e56e4e8afd19f3984946ae448169329dc04fb1ed9d326e52cc098c", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:40" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:41" + }, + { + "label": "createBadgeModelProtocolFee", + "offset": 0, + "slot": "2", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:42" + }, + { + "label": "mintBadgeProtocolDefaultFeeInBps", + "offset": 0, + "slot": "3", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:43" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:44" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:98" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:99" + }, + { + "label": "badgeModelControllers", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:100" + }, + { + "label": "badgeModelControllersByAddress", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:101" + }, + { + "label": "badgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:102" + }, + { + "label": "badges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(Badge)15744_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:103" + }, + { + "label": "userMintedBadgesByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:104" + }, + { + "label": "claimBadgeProtocolFee", + "offset": 0, + "slot": "12", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:106" + }, + { + "label": "__gap", + "offset": 0, + "slot": "13", + "type": "t_array(t_uint256)49_storage", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:369" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_array(t_uint256)dyn_storage)": { + "label": "mapping(address => uint256[])", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))": { + "label": "mapping(uint256 => mapping(address => uint256[]))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Badge)15744_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.Badge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Badge)15744_storage": { + "label": "struct TheBadgeStore.Badge", + "members": [ + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "account", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "dueDate", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_struct(BadgeModel)15735_storage": { + "label": "struct TheBadgeStore.BadgeModel", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "controllerName", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 0, + "slot": "2" + }, + { + "label": "mintCreatorFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "validFor", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "mintProtocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "6" + }, + { + "label": "version", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 0, + "slot": "8" + }, + { + "label": "deprecated", + "type": "t_bool", + "offset": 1, + "slot": "8" + }, + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(BadgeModelController)15701_storage": { + "label": "struct TheBadgeStore.BadgeModelController", + "members": [ + { + "label": "controller", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 20, + "slot": "0" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "5051ccb5e82dc1d42ed8110cb4d3f2323e19498365848034e0912f902cd0071e": { + "address": "0x0b5109744a9011f809d59b98bEF8485E0FA7D52f", + "txHash": "0x11a00a3f55c35948651cbb7ceaaaed85a2a4153365bc58e0b91a94339636b912", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "registerUserProtocolFee", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:40" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "1", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:81" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:82" + }, + { + "label": "registeredUsers", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_struct(User)17814_storage)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:83" + }, + { + "label": "verifiedUsersByControllerAddress", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17829_storage))", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:84" + }, + { + "label": "__gap", + "offset": 0, + "slot": "5", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:247" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_enum(VerificationStatus)9495": { + "label": "enum LibTheBadgeUsers.VerificationStatus", + "members": ["VerificationSubmitted", "Verified", "VerificationRejected"], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17829_storage))": { + "label": "mapping(address => mapping(address => struct TheBadgeUsersStore.UserVerification))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(User)17814_storage)": { + "label": "mapping(address => struct TheBadgeUsersStore.User)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(UserVerification)17829_storage)": { + "label": "mapping(address => struct TheBadgeUsersStore.UserVerification)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(User)17814_storage": { + "label": "struct TheBadgeUsersStore.User", + "members": [ + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "0" + }, + { + "label": "isCompany", + "type": "t_bool", + "offset": 0, + "slot": "1" + }, + { + "label": "isCreator", + "type": "t_bool", + "offset": 1, + "slot": "1" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 2, + "slot": "1" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 3, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_struct(UserVerification)17829_storage": { + "label": "struct TheBadgeUsersStore.UserVerification", + "members": [ + { + "label": "user", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "userMetadata", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "verificationEvidence", + "type": "t_string_storage", + "offset": 0, + "slot": "2" + }, + { + "label": "verificationStatus", + "type": "t_enum(VerificationStatus)9495", + "offset": 0, + "slot": "3" + }, + { + "label": "verificationController", + "type": "t_address", + "offset": 1, + "slot": "3" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "d7263a309c5016a0f83e750298e3a6921605432cd0650c9282674af4b5696ccf": { + "address": "0xd69aAaCbcCB756B3005E35be2B474b00537883B5", + "txHash": "0x956cdc05e88318577a4cce4956e36a4730f99c013e199f515c8395ba8153a0c3", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:20" + }, + { + "label": "_badgeUsersStore", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsersStore)18259", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:421" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsersStore)18259": { + "label": "contract TheBadgeUsersStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "f2fc9c4fa082730d0acbbe612b9602a6178130da7663841223cc60c424c87d9c": { + "address": "0x1dD4B5a4885B46555fffaDA49EAD8e1E48Cd60d3", + "txHash": "0x1c271776c76325dbd625e6ac0350a76bf8f4efece6f999535c8d0f33e47833f7", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:21" + }, + { + "label": "_theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:390" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "aeb9e610ea95bc3b9fbb2c8941d9325e32c1eef36b917e5e8b0a0b165aeeedac": { + "address": "0xf906c4BE507cBc47dDF8385fbcCFc9cb86a12042", + "txHash": "0xba25fe95fac27c4312950f5dbeb7aba33cad09000b91a3a341debc12bedee3d1", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:30" + }, + { + "label": "_badgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:31" + }, + { + "label": "name", + "offset": 0, + "slot": "2", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:32" + }, + { + "label": "symbol", + "offset": 0, + "slot": "3", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:33" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:728" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "a95f63f3c00517c7167c4bee88ea2b60c0a337665d972a780aa56c30dc602178": { + "address": "0x0477a20ccE620B887EA1c6F3aD15c39F951c6d3f", + "txHash": "0x844fb246419b5adaace6918e512deb783106c32b0422ce8692273d4182d5152b", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "tpBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TpBadgeModelControllerStore)9351", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" + }, + { + "label": "theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadge)14538", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "3", + "type": "t_contract(TheBadgeModels)15588", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:429" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadge)14538": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)15588": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelControllerStore)9351": { + "label": "contract TpBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "104cca78380ab56354d117c6de7d774b6b18d23fd7cbf43a92a7909c5ca405dd": { + "address": "0xd95ceE72423FF1A0EBBbf24f96282987291b10c9", + "txHash": "0xb0ca1c1d02b7399d7503e029949b9665fdfb4218569207e78ddf4decefa938aa", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:110" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:111" + }, + { + "label": "thirdPartyModelController", + "offset": 0, + "slot": "2", + "type": "t_contract(TpBadgeModelController)8707", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" + }, + { + "label": "arbitrator", + "offset": 0, + "slot": "3", + "type": "t_contract(IArbitrator)5575", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:114" + }, + { + "label": "tcrFactory", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:115" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "5", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:116" + }, + { + "label": "verifyUserProtocolFee", + "offset": 0, + "slot": "6", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:117" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_address,t_bool)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:120" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:121" + }, + { + "label": "thirdPartyBadgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8810_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" + }, + { + "label": "thirdPartyBadges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8822_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" + }, + { + "label": "thirdPartyAdministratorsByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_bool))", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:125" + }, + { + "label": "__gap", + "offset": 0, + "slot": "12", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:315" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IArbitrator)5575": { + "label": "contract IArbitrator", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelController)8707": { + "label": "contract TpBadgeModelController", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_bool))": { + "label": "mapping(uint256 => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8822_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8810_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(ThirdPartyBadge)8822_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", + "members": [ + { + "label": "itemID", + "type": "t_bytes32", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "badgeId", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + }, + { + "label": "badgeDataUri", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_struct(ThirdPartyBadgeModel)8810_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", + "members": [ + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "tcrList", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "governor", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "admin", + "type": "t_address", + "offset": 0, + "slot": "4" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 20, + "slot": "4" + }, + { + "label": "requirementsIPFSHash", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } } } } diff --git a/.openzeppelin/sepolia.json b/.openzeppelin/sepolia.json index 19a515a..49a80a6 100644 --- a/.openzeppelin/sepolia.json +++ b/.openzeppelin/sepolia.json @@ -9710,7 +9710,7 @@ "label": "registeredUsers", "offset": 0, "slot": "3", - "type": "t_mapping(t_address,t_struct(User)14670_storage)", + "type": "t_mapping(t_address,t_struct(User)12901_storage)", "contract": "TheBadgeUsersStore", "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:83" }, @@ -9718,7 +9718,7 @@ "label": "verifiedUsersByControllerAddress", "offset": 0, "slot": "4", - "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)14685_storage))", + "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)12916_storage))", "contract": "TheBadgeUsersStore", "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:84" }, @@ -9744,7 +9744,7 @@ "label": "bool", "numberOfBytes": "1" }, - "t_enum(VerificationStatus)9418": { + "t_enum(VerificationStatus)7661": { "label": "enum LibTheBadgeUsers.VerificationStatus", "members": ["VerificationSubmitted", "Verified", "VerificationRejected"], "numberOfBytes": "1" @@ -9753,15 +9753,15 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)14685_storage))": { + "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)12916_storage))": { "label": "mapping(address => mapping(address => struct TheBadgeUsersStore.UserVerification))", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(User)14670_storage)": { + "t_mapping(t_address,t_struct(User)12901_storage)": { "label": "mapping(address => struct TheBadgeUsersStore.User)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(UserVerification)14685_storage)": { + "t_mapping(t_address,t_struct(UserVerification)12916_storage)": { "label": "mapping(address => struct TheBadgeUsersStore.UserVerification)", "numberOfBytes": "32" }, @@ -9777,7 +9777,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(User)14670_storage": { + "t_struct(User)12901_storage": { "label": "struct TheBadgeUsersStore.User", "members": [ { @@ -9813,7 +9813,7 @@ ], "numberOfBytes": "64" }, - "t_struct(UserVerification)14685_storage": { + "t_struct(UserVerification)12916_storage": { "label": "struct TheBadgeUsersStore.UserVerification", "members": [ { @@ -9836,7 +9836,7 @@ }, { "label": "verificationStatus", - "type": "t_enum(VerificationStatus)9418", + "type": "t_enum(VerificationStatus)7661", "offset": 0, "slot": "3" }, @@ -10061,7 +10061,7 @@ "label": "arbitrator", "offset": 0, "slot": "2", - "type": "t_contract(IArbitrator)5575", + "type": "t_contract(IArbitrator)5477", "contract": "KlerosBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:124" }, @@ -10101,7 +10101,7 @@ "label": "klerosBadgeModels", "offset": 0, "slot": "7", - "type": "t_mapping(t_uint256,t_struct(KlerosBadgeModel)7092_storage)", + "type": "t_mapping(t_uint256,t_struct(KlerosBadgeModel)7003_storage)", "contract": "KlerosBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:131" }, @@ -10109,7 +10109,7 @@ "label": "klerosBadges", "offset": 0, "slot": "8", - "type": "t_mapping(t_uint256,t_struct(KlerosBadge)7106_storage)", + "type": "t_mapping(t_uint256,t_struct(KlerosBadge)7017_storage)", "contract": "KlerosBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:132" }, @@ -10139,7 +10139,7 @@ "label": "bytes32", "numberOfBytes": "32" }, - "t_contract(IArbitrator)5575": { + "t_contract(IArbitrator)5477": { "label": "contract IArbitrator", "numberOfBytes": "20" }, @@ -10151,11 +10151,11 @@ "label": "mapping(string => address)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(KlerosBadge)7106_storage)": { + "t_mapping(t_uint256,t_struct(KlerosBadge)7017_storage)": { "label": "mapping(uint256 => struct KlerosBadgeModelControllerStore.KlerosBadge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(KlerosBadgeModel)7092_storage)": { + "t_mapping(t_uint256,t_struct(KlerosBadgeModel)7003_storage)": { "label": "mapping(uint256 => struct KlerosBadgeModelControllerStore.KlerosBadgeModel)", "numberOfBytes": "32" }, @@ -10163,7 +10163,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(KlerosBadge)7106_storage": { + "t_struct(KlerosBadge)7017_storage": { "label": "struct KlerosBadgeModelControllerStore.KlerosBadge", "members": [ { @@ -10205,7 +10205,7 @@ ], "numberOfBytes": "160" }, - "t_struct(KlerosBadgeModel)7092_storage": { + "t_struct(KlerosBadgeModel)7003_storage": { "label": "struct KlerosBadgeModelControllerStore.KlerosBadgeModel", "members": [ { @@ -10267,7 +10267,7 @@ "label": "klerosBadgeModelControllerStore", "offset": 0, "slot": "0", - "type": "t_contract(KlerosBadgeModelControllerStore)7606", + "type": "t_contract(KlerosBadgeModelControllerStore)7642", "contract": "KlerosBadgeModelController", "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:30" }, @@ -10275,7 +10275,7 @@ "label": "theBadge", "offset": 0, "slot": "1", - "type": "t_contract(TheBadge)11399", + "type": "t_contract(TheBadge)14506", "contract": "KlerosBadgeModelController", "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:31" }, @@ -10283,7 +10283,7 @@ "label": "theBadgeModels", "offset": 0, "slot": "2", - "type": "t_contract(TheBadgeModels)12449", + "type": "t_contract(TheBadgeModels)15556", "contract": "KlerosBadgeModelController", "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:32" }, @@ -10301,15 +10301,15 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(KlerosBadgeModelControllerStore)7606": { + "t_contract(KlerosBadgeModelControllerStore)7642": { "label": "contract KlerosBadgeModelControllerStore", "numberOfBytes": "20" }, - "t_contract(TheBadge)11399": { + "t_contract(TheBadge)14506": { "label": "contract TheBadge", "numberOfBytes": "20" }, - "t_contract(TheBadgeModels)12449": { + "t_contract(TheBadgeModels)15556": { "label": "contract TheBadgeModels", "numberOfBytes": "20" }, @@ -11164,7 +11164,7 @@ "label": "thirdPartyModelController", "offset": 0, "slot": "2", - "type": "t_contract(TpBadgeModelController)8643", + "type": "t_contract(TpBadgeModelController)6612", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" }, @@ -11220,7 +11220,7 @@ "label": "thirdPartyBadgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8746_storage)", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6715_storage)", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" }, @@ -11228,7 +11228,7 @@ "label": "thirdPartyBadges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8758_storage)", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6727_storage)", "contract": "TpBadgeModelControllerStore", "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" }, @@ -11270,7 +11270,7 @@ "label": "contract IArbitrator", "numberOfBytes": "20" }, - "t_contract(TpBadgeModelController)8643": { + "t_contract(TpBadgeModelController)6612": { "label": "contract TpBadgeModelController", "numberOfBytes": "20" }, @@ -11286,11 +11286,11 @@ "label": "mapping(uint256 => mapping(address => bool))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8758_storage)": { + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6727_storage)": { "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8746_storage)": { + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6715_storage)": { "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", "numberOfBytes": "32" }, @@ -11302,7 +11302,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(ThirdPartyBadge)8758_storage": { + "t_struct(ThirdPartyBadge)6727_storage": { "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", "members": [ { @@ -11338,7 +11338,7 @@ ], "numberOfBytes": "160" }, - "t_struct(ThirdPartyBadgeModel)8746_storage": { + "t_struct(ThirdPartyBadgeModel)6715_storage": { "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", "members": [ { @@ -11459,7 +11459,7 @@ "label": "badgeModelControllers", "offset": 0, "slot": "7", - "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)12557_storage)", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:100" }, @@ -11467,7 +11467,7 @@ "label": "badgeModelControllersByAddress", "offset": 0, "slot": "8", - "type": "t_mapping(t_address,t_struct(BadgeModelController)12557_storage)", + "type": "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:101" }, @@ -11475,7 +11475,7 @@ "label": "badgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(BadgeModel)12591_storage)", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:102" }, @@ -11483,7 +11483,7 @@ "label": "badges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(Badge)12600_storage)", + "type": "t_mapping(t_uint256,t_struct(Badge)10831_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:103" }, @@ -11537,7 +11537,7 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(BadgeModelController)12557_storage)": { + "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -11545,7 +11545,7 @@ "label": "mapping(string => address)", "numberOfBytes": "32" }, - "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)12557_storage)": { + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -11553,11 +11553,11 @@ "label": "mapping(uint256 => mapping(address => uint256[]))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(Badge)12600_storage)": { + "t_mapping(t_uint256,t_struct(Badge)10831_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.Badge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(BadgeModel)12591_storage)": { + "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", "numberOfBytes": "32" }, @@ -11569,7 +11569,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(Badge)12600_storage": { + "t_struct(Badge)10831_storage": { "label": "struct TheBadgeStore.Badge", "members": [ { @@ -11599,7 +11599,7 @@ ], "numberOfBytes": "128" }, - "t_struct(BadgeModel)12591_storage": { + "t_struct(BadgeModel)10822_storage": { "label": "struct TheBadgeStore.BadgeModel", "members": [ { @@ -11671,7 +11671,7 @@ ], "numberOfBytes": "320" }, - "t_struct(BadgeModelController)12557_storage": { + "t_struct(BadgeModelController)10788_storage": { "label": "struct TheBadgeStore.BadgeModelController", "members": [ { @@ -11854,7 +11854,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)13436", + "type": "t_contract(TheBadgeStore)11667", "contract": "TheBadgeModels", "src": "src/contracts/thebadge/TheBadgeModels.sol:21" }, @@ -11862,7 +11862,7 @@ "label": "_theBadgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)14605", + "type": "t_contract(TheBadgeUsers)12836", "contract": "TheBadgeModels", "src": "src/contracts/thebadge/TheBadgeModels.sol:22" }, @@ -11880,11 +11880,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)13436": { + "t_contract(TheBadgeStore)11667": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)14605": { + "t_contract(TheBadgeUsers)12836": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, @@ -11980,7 +11980,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)13436", + "type": "t_contract(TheBadgeStore)11361", "contract": "TheBadge", "src": "src/contracts/thebadge/TheBadge.sol:30" }, @@ -11988,7 +11988,7 @@ "label": "_badgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)14605", + "type": "t_contract(TheBadgeUsers)12530", "contract": "TheBadge", "src": "src/contracts/thebadge/TheBadge.sol:31" }, @@ -12022,11 +12022,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)13436": { + "t_contract(TheBadgeStore)11361": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)14605": { + "t_contract(TheBadgeUsers)12530": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, @@ -12051,7 +12051,7 @@ "label": "_badgeStore", "offset": 0, "slot": "0", - "type": "t_contract(TheBadgeStore)13436", + "type": "t_contract(TheBadgeStore)11667", "contract": "TheBadgeUsers", "src": "src/contracts/thebadge/TheBadgeUsers.sol:20" }, @@ -12059,7 +12059,7 @@ "label": "_badgeUsersStore", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsersStore)15115", + "type": "t_contract(TheBadgeUsersStore)13346", "contract": "TheBadgeUsers", "src": "src/contracts/thebadge/TheBadgeUsers.sol:21" }, @@ -12077,11 +12077,11 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadgeStore)13436": { + "t_contract(TheBadgeStore)11667": { "label": "contract TheBadgeStore", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsersStore)15115": { + "t_contract(TheBadgeUsersStore)13346": { "label": "contract TheBadgeUsersStore", "numberOfBytes": "20" }, @@ -12102,7 +12102,7 @@ "label": "tpBadgeModelControllerStore", "offset": 0, "slot": "0", - "type": "t_contract(TpBadgeModelControllerStore)9274", + "type": "t_contract(TpBadgeModelControllerStore)7243", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" }, @@ -12110,7 +12110,7 @@ "label": "theBadgeUsers", "offset": 0, "slot": "1", - "type": "t_contract(TheBadgeUsers)14605", + "type": "t_contract(TheBadgeUsers)12530", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" }, @@ -12118,7 +12118,7 @@ "label": "theBadge", "offset": 0, "slot": "2", - "type": "t_contract(TheBadge)11399", + "type": "t_contract(TheBadge)9324", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" }, @@ -12126,7 +12126,7 @@ "label": "theBadgeModels", "offset": 0, "slot": "3", - "type": "t_contract(TheBadgeModels)12449", + "type": "t_contract(TheBadgeModels)10374", "contract": "TpBadgeModelController", "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" }, @@ -12144,19 +12144,165 @@ "label": "uint256[50]", "numberOfBytes": "1600" }, - "t_contract(TheBadge)11399": { + "t_contract(TheBadge)9324": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)10374": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)12530": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelControllerStore)7243": { + "label": "contract TpBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "ca2bf9306446261d5b4b47a4d8aeaa846a1d79bfe6a6f84685d0c00b9183deac": { + "address": "0x7fbD3837F5b36B28610BEC8452aFb53dc16892Be", + "txHash": "0x0de8e85ec57eab52ada5d01b82c077af03664460cb6e34e6b0249997074b655d", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)11426", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:30" + }, + { + "label": "_badgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)12595", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:31" + }, + { + "label": "name", + "offset": 0, + "slot": "2", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:32" + }, + { + "label": "symbol", + "offset": 0, + "slot": "3", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:33" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:716" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)11426": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)12595": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "4ecf06ec7aa5330a4d6945a0e8aae76958e0fdb06f0fc13f2483376e3ce6d3bc": { + "address": "0xF7241F4AA2d3aE4eD0A2546E0b9Bcb4205EE3499", + "txHash": "0x372cb1ea505c80b45cb34cefa3a3f76148d5c050aefc4088845544519e23fc1f", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "tpBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TpBadgeModelControllerStore)7266", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" + }, + { + "label": "theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)12595", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadge)9389", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "3", + "type": "t_contract(TheBadgeModels)10439", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:422" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadge)9389": { "label": "contract TheBadge", "numberOfBytes": "20" }, - "t_contract(TheBadgeModels)12449": { + "t_contract(TheBadgeModels)10439": { "label": "contract TheBadgeModels", "numberOfBytes": "20" }, - "t_contract(TheBadgeUsers)14605": { + "t_contract(TheBadgeUsers)12595": { "label": "contract TheBadgeUsers", "numberOfBytes": "20" }, - "t_contract(TpBadgeModelControllerStore)9274": { + "t_contract(TpBadgeModelControllerStore)7266": { "label": "contract TpBadgeModelControllerStore", "numberOfBytes": "20" }, @@ -12166,6 +12312,2083 @@ } } } + }, + "5be0303caa4efe555f85d7194458c5fc94ba77244c61482773b9b2404ef3df51": { + "address": "0xd054EbC8228988aC5cAB0bb66Dd13c99e9924990", + "txHash": "0x37462141258d8fce6d8188084bb6bdda28b5c6645a8677ceea7748b2228f2b54", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:110" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:111" + }, + { + "label": "thirdPartyModelController", + "offset": 0, + "slot": "2", + "type": "t_contract(TpBadgeModelController)6631", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" + }, + { + "label": "arbitrator", + "offset": 0, + "slot": "3", + "type": "t_contract(IArbitrator)5575", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:114" + }, + { + "label": "tcrFactory", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:115" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "5", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:116" + }, + { + "label": "verifyUserProtocolFee", + "offset": 0, + "slot": "6", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:117" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_address,t_bool)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:120" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:121" + }, + { + "label": "thirdPartyBadgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6734_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" + }, + { + "label": "thirdPartyBadges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6746_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" + }, + { + "label": "thirdPartyAdministratorsByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_bool))", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:125" + }, + { + "label": "__gap", + "offset": 0, + "slot": "12", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:315" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IArbitrator)5575": { + "label": "contract IArbitrator", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelController)6631": { + "label": "contract TpBadgeModelController", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_bool))": { + "label": "mapping(uint256 => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6746_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6734_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(ThirdPartyBadge)6746_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", + "members": [ + { + "label": "itemID", + "type": "t_bytes32", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "badgeId", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + }, + { + "label": "badgeDataUri", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_struct(ThirdPartyBadgeModel)6734_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", + "members": [ + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "tcrList", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "governor", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "admin", + "type": "t_address", + "offset": 0, + "slot": "4" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 20, + "slot": "4" + }, + { + "label": "requirementsIPFSHash", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "e3102edba2334045b69dcb9b01012f99a81c2e33820b06fb751fa6ab1a38da7b": { + "address": "0xdD313a032A0F833158F9c89e67950444cC4e1C01", + "txHash": "0x2f558c8252945ba56cb27f043462a871760b801057e5fb4a1669894e973cc3bb", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)11667", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:30" + }, + { + "label": "_badgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)12836", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:31" + }, + { + "label": "name", + "offset": 0, + "slot": "2", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:32" + }, + { + "label": "symbol", + "offset": 0, + "slot": "3", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:33" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:728" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)11667": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)12836": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "5f30ef357beabb8357d25ed79df1b2af366e22bafff89c4f0b9e02d442bb9a2f": { + "address": "0x48f2C3E1B5AB4C4242D787ACeb575688Ae43fe49", + "txHash": "0x46b4bb128e540953f2814667152158038af969d61e8d667fe239dfef624156c2", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "tpBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TpBadgeModelControllerStore)7275", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" + }, + { + "label": "theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)12618", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadge)9412", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "3", + "type": "t_contract(TheBadgeModels)10462", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:429" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadge)9412": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)10462": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)12618": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelControllerStore)7275": { + "label": "contract TpBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "fe1e51940c3221944fe838cf9c660726df04404ac5e5a18e0181d6b329cd4399": { + "address": "0x51D67282DF04BF401F2aA534F04a03a510e12c28", + "txHash": "0x9eb283bd045ec1b38823956e5ad5551f99bfcc77c7e8bd9e4b3bb7c4477e2a21", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "klerosBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(KlerosBadgeModelControllerStore)7517", + "contract": "KlerosBadgeModelController", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:30" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadge)9630", + "contract": "KlerosBadgeModelController", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:31" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadgeModels)10680", + "contract": "KlerosBadgeModelController", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:32" + }, + { + "label": "__gap", + "offset": 0, + "slot": "3", + "type": "t_array(t_uint256)50_storage", + "contract": "KlerosBadgeModelController", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:541" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(KlerosBadgeModelControllerStore)7517": { + "label": "contract KlerosBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadge)9630": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)10680": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "8ce49e43f44726aaf4a715b4ce76f20297378ce4234e6e81849feab50ed9dec1": { + "address": "0xfcE4E0960576428258AFf7ac99F8Ba80DC8e0D7E", + "txHash": "0x73f5cff9894bc9f6b9071abe7e2eda9b9c8d2f29494bfa33fc3ac9060a6ce29b", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:40" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:41" + }, + { + "label": "createBadgeModelProtocolFee", + "offset": 0, + "slot": "2", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:42" + }, + { + "label": "mintBadgeProtocolDefaultFeeInBps", + "offset": 0, + "slot": "3", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:43" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:44" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:98" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:99" + }, + { + "label": "badgeModelControllers", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:100" + }, + { + "label": "badgeModelControllersByAddress", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:101" + }, + { + "label": "badgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:102" + }, + { + "label": "badges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(Badge)15744_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:103" + }, + { + "label": "userMintedBadgesByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:104" + }, + { + "label": "claimBadgeProtocolFee", + "offset": 0, + "slot": "12", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:106" + }, + { + "label": "__gap", + "offset": 0, + "slot": "13", + "type": "t_array(t_uint256)49_storage", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:369" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_array(t_uint256)dyn_storage)": { + "label": "mapping(address => uint256[])", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))": { + "label": "mapping(uint256 => mapping(address => uint256[]))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Badge)15744_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.Badge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Badge)15744_storage": { + "label": "struct TheBadgeStore.Badge", + "members": [ + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "account", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "dueDate", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_struct(BadgeModel)15735_storage": { + "label": "struct TheBadgeStore.BadgeModel", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "controllerName", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 0, + "slot": "2" + }, + { + "label": "mintCreatorFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "validFor", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "mintProtocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "6" + }, + { + "label": "version", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 0, + "slot": "8" + }, + { + "label": "deprecated", + "type": "t_bool", + "offset": 1, + "slot": "8" + }, + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(BadgeModelController)15701_storage": { + "label": "struct TheBadgeStore.BadgeModelController", + "members": [ + { + "label": "controller", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 20, + "slot": "0" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "5051ccb5e82dc1d42ed8110cb4d3f2323e19498365848034e0912f902cd0071e": { + "address": "0xd2d13eD25ebE94eB650752bECD42F8e574681151", + "txHash": "0xc8e442caced1d76351eda9cc5d6154324a61b1ddba464bd2485f844402de7e77", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "registerUserProtocolFee", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:40" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "1", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:81" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "2", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:82" + }, + { + "label": "registeredUsers", + "offset": 0, + "slot": "3", + "type": "t_mapping(t_address,t_struct(User)17814_storage)", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:83" + }, + { + "label": "verifiedUsersByControllerAddress", + "offset": 0, + "slot": "4", + "type": "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17829_storage))", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:84" + }, + { + "label": "__gap", + "offset": 0, + "slot": "5", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeUsersStore", + "src": "src/contracts/thebadge/TheBadgeUsersStore.sol:247" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_enum(VerificationStatus)9495": { + "label": "enum LibTheBadgeUsers.VerificationStatus", + "members": ["VerificationSubmitted", "Verified", "VerificationRejected"], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_mapping(t_address,t_struct(UserVerification)17829_storage))": { + "label": "mapping(address => mapping(address => struct TheBadgeUsersStore.UserVerification))", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(User)17814_storage)": { + "label": "mapping(address => struct TheBadgeUsersStore.User)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(UserVerification)17829_storage)": { + "label": "mapping(address => struct TheBadgeUsersStore.UserVerification)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(User)17814_storage": { + "label": "struct TheBadgeUsersStore.User", + "members": [ + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "0" + }, + { + "label": "isCompany", + "type": "t_bool", + "offset": 0, + "slot": "1" + }, + { + "label": "isCreator", + "type": "t_bool", + "offset": 1, + "slot": "1" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 2, + "slot": "1" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 3, + "slot": "1" + } + ], + "numberOfBytes": "64" + }, + "t_struct(UserVerification)17829_storage": { + "label": "struct TheBadgeUsersStore.UserVerification", + "members": [ + { + "label": "user", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "userMetadata", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "verificationEvidence", + "type": "t_string_storage", + "offset": 0, + "slot": "2" + }, + { + "label": "verificationStatus", + "type": "t_enum(VerificationStatus)9495", + "offset": 0, + "slot": "3" + }, + { + "label": "verificationController", + "type": "t_address", + "offset": 1, + "slot": "3" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "d7263a309c5016a0f83e750298e3a6921605432cd0650c9282674af4b5696ccf": { + "address": "0x26CA8177F55674e65318ee3f3ec588F662430093", + "txHash": "0x27375c7f999ea75e758eb612b8bdaf03e63090c507344985e14406cb1089bfda", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:20" + }, + { + "label": "_badgeUsersStore", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsersStore)18259", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:21" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeUsers", + "src": "src/contracts/thebadge/TheBadgeUsers.sol:421" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsersStore)18259": { + "label": "contract TheBadgeUsersStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "f2fc9c4fa082730d0acbbe612b9602a6178130da7663841223cc60c424c87d9c": { + "address": "0xD78dEF0274051285201E25F9a8Afb64B8C2c92E7", + "txHash": "0xd3065a6bd1b0d0ac387d42ecdb8036d80e33db100e50a8909730bd3698b324ae", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:21" + }, + { + "label": "_theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadgeModels", + "src": "src/contracts/thebadge/TheBadgeModels.sol:390" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "aeb9e610ea95bc3b9fbb2c8941d9325e32c1eef36b917e5e8b0a0b165aeeedac": { + "address": "0xF771127f9e33D02f516F44D2ACC266b62319065B", + "txHash": "0xaee4dde97060c6ddd0d6ebd9ed4531913fcbd390632850a49de2b7a799715e48", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "_badgeStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TheBadgeStore)16580", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:30" + }, + { + "label": "_badgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:31" + }, + { + "label": "name", + "offset": 0, + "slot": "2", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:32" + }, + { + "label": "symbol", + "offset": 0, + "slot": "3", + "type": "t_string_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:33" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TheBadge", + "src": "src/contracts/thebadge/TheBadge.sol:728" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadgeStore)16580": { + "label": "contract TheBadgeStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "1d8452e9cbc8cf7976f683ee6d4627f81da27ee08168dcf585e5f58126be3ddf": { + "address": "0xa55Ea628BEa552569FbE43E9f9cDF2Ec35D532f2", + "txHash": "0x3f5195222660f886c2c2425eb8f0725cd08739dc4d0de3b13c65ab5e7ae526b9", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "tpBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TpBadgeModelControllerStore)7275", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" + }, + { + "label": "theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)12623", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadge)9412", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "3", + "type": "t_contract(TheBadgeModels)10462", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:429" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadge)9412": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)10462": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)12623": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelControllerStore)7275": { + "label": "contract TpBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "398bb8a2087682ff5f85f35479db0e624d19c1d86fb65650127c235b454828a0": { + "address": "0x873a18c9F91a3e4D69B885EA13857848445b87EE", + "txHash": "0xa333a99e63a0a91cee0aa3283b6eba3b6098765509fb9da190e71060855d09e1", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:110" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:111" + }, + { + "label": "thirdPartyModelController", + "offset": 0, + "slot": "2", + "type": "t_contract(TpBadgeModelController)6631", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" + }, + { + "label": "arbitrator", + "offset": 0, + "slot": "3", + "type": "t_contract(IArbitrator)5575", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:114" + }, + { + "label": "tcrFactory", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:115" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "5", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:116" + }, + { + "label": "verifyUserProtocolFee", + "offset": 0, + "slot": "6", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:117" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_address,t_bool)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:120" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:121" + }, + { + "label": "thirdPartyBadgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6734_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" + }, + { + "label": "thirdPartyBadges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6746_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" + }, + { + "label": "thirdPartyAdministratorsByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_bool))", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:125" + }, + { + "label": "__gap", + "offset": 0, + "slot": "12", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:315" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IArbitrator)5575": { + "label": "contract IArbitrator", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelController)6631": { + "label": "contract TpBadgeModelController", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_bool))": { + "label": "mapping(uint256 => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)6746_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)6734_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(ThirdPartyBadge)6746_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", + "members": [ + { + "label": "itemID", + "type": "t_bytes32", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "badgeId", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + }, + { + "label": "badgeDataUri", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_struct(ThirdPartyBadgeModel)6734_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", + "members": [ + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "tcrList", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "governor", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "admin", + "type": "t_address", + "offset": 0, + "slot": "4" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 20, + "slot": "4" + }, + { + "label": "requirementsIPFSHash", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "ea1b672990a323d7033ff1b0be4a0f919cfc03e46da1e0c0abcd6e86e5f74108": { + "address": "0x76149777Ce10AEd3c39C2D66F0A20E95c4fC2d96", + "txHash": "0xc79cc7069eb3288c4cf5ce08b003880cc2ad90173a159ed4f0d239aa45565c57", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "klerosBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(KlerosBadgeModelControllerStore)7651", + "contract": "KlerosBadgeModelController", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:30" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadge)14538", + "contract": "KlerosBadgeModelController", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:31" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadgeModels)15588", + "contract": "KlerosBadgeModelController", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:32" + }, + { + "label": "__gap", + "offset": 0, + "slot": "3", + "type": "t_array(t_uint256)50_storage", + "contract": "KlerosBadgeModelController", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol:541" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(KlerosBadgeModelControllerStore)7651": { + "label": "contract KlerosBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_contract(TheBadge)14538": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)15588": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "ee3aa83c7a5e81e58c05df066aa65c580aa9398958cb7dcc28bd1f6d9f384e92": { + "address": "0x04F4f4B5D1a15C55c4135FF562Abf699BDe1B2fA", + "txHash": "0x066bc80d172c10f44de858f352315e8776aa74a23e7b9dfac5aeb4057916ff81", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "klerosBadgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:122" + }, + { + "label": "klerosBadgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:123" + }, + { + "label": "arbitrator", + "offset": 0, + "slot": "2", + "type": "t_contract(IArbitrator)5575", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:124" + }, + { + "label": "tcrFactory", + "offset": 0, + "slot": "3", + "type": "t_address", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:125" + }, + { + "label": "verifyUserProtocolFee", + "offset": 0, + "slot": "4", + "type": "t_uint256", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:126" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_bool)", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:129" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:130" + }, + { + "label": "klerosBadgeModels", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_uint256,t_struct(KlerosBadgeModel)7137_storage)", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:131" + }, + { + "label": "klerosBadges", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_uint256,t_struct(KlerosBadge)7151_storage)", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:132" + }, + { + "label": "__gap", + "offset": 0, + "slot": "9", + "type": "t_array(t_uint256)50_storage", + "contract": "KlerosBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol:372" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IArbitrator)5575": { + "label": "contract IArbitrator", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(KlerosBadge)7151_storage)": { + "label": "mapping(uint256 => struct KlerosBadgeModelControllerStore.KlerosBadge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(KlerosBadgeModel)7137_storage)": { + "label": "mapping(uint256 => struct KlerosBadgeModelControllerStore.KlerosBadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(KlerosBadge)7151_storage": { + "label": "struct KlerosBadgeModelControllerStore.KlerosBadge", + "members": [ + { + "label": "itemID", + "type": "t_bytes32", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "callee", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "deposit", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "destinationAddress", + "type": "t_address", + "offset": 0, + "slot": "4" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 20, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_struct(KlerosBadgeModel)7137_storage": { + "label": "struct KlerosBadgeModelControllerStore.KlerosBadgeModel", + "members": [ + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "tcrList", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "governor", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "admin", + "type": "t_address", + "offset": 0, + "slot": "4" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 20, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string" + } + } + } + }, + "a95f63f3c00517c7167c4bee88ea2b60c0a337665d972a780aa56c30dc602178": { + "address": "0xe51e129A36794888D5C64a568ABB7C0bf160a676", + "txHash": "0xb36696b05c5307181ef973e4b5170527fadb718be4c472eb8a77101de6839afb", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "tpBadgeModelControllerStore", + "offset": 0, + "slot": "0", + "type": "t_contract(TpBadgeModelControllerStore)9351", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:31" + }, + { + "label": "theBadgeUsers", + "offset": 0, + "slot": "1", + "type": "t_contract(TheBadgeUsers)17749", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:32" + }, + { + "label": "theBadge", + "offset": 0, + "slot": "2", + "type": "t_contract(TheBadge)14538", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:33" + }, + { + "label": "theBadgeModels", + "offset": 0, + "slot": "3", + "type": "t_contract(TheBadgeModels)15588", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:34" + }, + { + "label": "__gap", + "offset": 0, + "slot": "4", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelController", + "src": "src/contracts/badgeModelControllers/TpBadgeModelController.sol:429" + } + ], + "types": { + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_contract(TheBadge)14538": { + "label": "contract TheBadge", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeModels)15588": { + "label": "contract TheBadgeModels", + "numberOfBytes": "20" + }, + "t_contract(TheBadgeUsers)17749": { + "label": "contract TheBadgeUsers", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelControllerStore)9351": { + "label": "contract TpBadgeModelControllerStore", + "numberOfBytes": "20" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } + }, + "104cca78380ab56354d117c6de7d774b6b18d23fd7cbf43a92a7909c5ca405dd": { + "address": "0x188b110d3b1E2DD350481737F22656A0844ef3cB", + "txHash": "0x212a2539428582eec27df9da3d300254fcdd28a907c0a912a2bf5cd98973091e", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:110" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:111" + }, + { + "label": "thirdPartyModelController", + "offset": 0, + "slot": "2", + "type": "t_contract(TpBadgeModelController)8707", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:113" + }, + { + "label": "arbitrator", + "offset": 0, + "slot": "3", + "type": "t_contract(IArbitrator)5575", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:114" + }, + { + "label": "tcrFactory", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:115" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "5", + "type": "t_address", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:116" + }, + { + "label": "verifyUserProtocolFee", + "offset": 0, + "slot": "6", + "type": "t_uint256", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:117" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_address,t_bool)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:120" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:121" + }, + { + "label": "thirdPartyBadgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8810_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:122" + }, + { + "label": "thirdPartyBadges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8822_storage)", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:123" + }, + { + "label": "thirdPartyAdministratorsByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_bool))", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:125" + }, + { + "label": "__gap", + "offset": 0, + "slot": "12", + "type": "t_array(t_uint256)50_storage", + "contract": "TpBadgeModelControllerStore", + "src": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol:315" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_contract(IArbitrator)5575": { + "label": "contract IArbitrator", + "numberOfBytes": "20" + }, + "t_contract(TpBadgeModelController)8707": { + "label": "contract TpBadgeModelController", + "numberOfBytes": "20" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_bool))": { + "label": "mapping(uint256 => mapping(address => bool))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadge)8822_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(ThirdPartyBadgeModel)8810_storage)": { + "label": "mapping(uint256 => struct TpBadgeModelControllerStore.ThirdPartyBadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(ThirdPartyBadge)8822_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadge", + "members": [ + { + "label": "itemID", + "type": "t_bytes32", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "badgeId", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + }, + { + "label": "badgeDataUri", + "type": "t_string_storage", + "offset": 0, + "slot": "4" + } + ], + "numberOfBytes": "160" + }, + "t_struct(ThirdPartyBadgeModel)8810_storage": { + "label": "struct TpBadgeModelControllerStore.ThirdPartyBadgeModel", + "members": [ + { + "label": "owner", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "1" + }, + { + "label": "tcrList", + "type": "t_address", + "offset": 0, + "slot": "2" + }, + { + "label": "governor", + "type": "t_address", + "offset": 0, + "slot": "3" + }, + { + "label": "admin", + "type": "t_address", + "offset": 0, + "slot": "4" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 20, + "slot": "4" + }, + { + "label": "requirementsIPFSHash", + "type": "t_string_storage", + "offset": 0, + "slot": "5" + } + ], + "numberOfBytes": "192" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } } } } diff --git a/.openzeppelin/unknown-100.json b/.openzeppelin/unknown-100.json index aedad89..8a1f121 100644 --- a/.openzeppelin/unknown-100.json +++ b/.openzeppelin/unknown-100.json @@ -2085,7 +2085,7 @@ "label": "badgeModelControllers", "offset": 0, "slot": "7", - "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)12557_storage)", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:100" }, @@ -2093,7 +2093,7 @@ "label": "badgeModelControllersByAddress", "offset": 0, "slot": "8", - "type": "t_mapping(t_address,t_struct(BadgeModelController)12557_storage)", + "type": "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:101" }, @@ -2101,7 +2101,7 @@ "label": "badgeModels", "offset": 0, "slot": "9", - "type": "t_mapping(t_uint256,t_struct(BadgeModel)12591_storage)", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:102" }, @@ -2109,7 +2109,7 @@ "label": "badges", "offset": 0, "slot": "10", - "type": "t_mapping(t_uint256,t_struct(Badge)12600_storage)", + "type": "t_mapping(t_uint256,t_struct(Badge)10831_storage)", "contract": "TheBadgeStore", "src": "src/contracts/thebadge/TheBadgeStore.sol:103" }, @@ -2163,7 +2163,7 @@ "label": "mapping(address => bool)", "numberOfBytes": "32" }, - "t_mapping(t_address,t_struct(BadgeModelController)12557_storage)": { + "t_mapping(t_address,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -2171,7 +2171,7 @@ "label": "mapping(string => address)", "numberOfBytes": "32" }, - "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)12557_storage)": { + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)10788_storage)": { "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", "numberOfBytes": "32" }, @@ -2179,11 +2179,11 @@ "label": "mapping(uint256 => mapping(address => uint256[]))", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(Badge)12600_storage)": { + "t_mapping(t_uint256,t_struct(Badge)10831_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.Badge)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(BadgeModel)12591_storage)": { + "t_mapping(t_uint256,t_struct(BadgeModel)10822_storage)": { "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", "numberOfBytes": "32" }, @@ -2195,7 +2195,7 @@ "label": "string", "numberOfBytes": "32" }, - "t_struct(Badge)12600_storage": { + "t_struct(Badge)10831_storage": { "label": "struct TheBadgeStore.Badge", "members": [ { @@ -2225,7 +2225,7 @@ ], "numberOfBytes": "128" }, - "t_struct(BadgeModel)12591_storage": { + "t_struct(BadgeModel)10822_storage": { "label": "struct TheBadgeStore.BadgeModel", "members": [ { @@ -2297,7 +2297,7 @@ ], "numberOfBytes": "320" }, - "t_struct(BadgeModelController)12557_storage": { + "t_struct(BadgeModelController)10788_storage": { "label": "struct TheBadgeStore.BadgeModelController", "members": [ { @@ -2721,6 +2721,315 @@ } } } + }, + "8ce49e43f44726aaf4a715b4ce76f20297378ce4234e6e81849feab50ed9dec1": { + "address": "0x22980e9C08e79C5b63aEbeEAF9Bc3292025BbE66", + "txHash": "0x27db64c4b65a3cdfcdfd18f1b1bcb1f64a3205303425c7b950c240692b07a4d4", + "layout": { + "solcVersion": "0.8.20", + "storage": [ + { + "label": "badgeModelIdsCounter", + "offset": 0, + "slot": "0", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:40" + }, + { + "label": "badgeIdsCounter", + "offset": 0, + "slot": "1", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:41" + }, + { + "label": "createBadgeModelProtocolFee", + "offset": 0, + "slot": "2", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:42" + }, + { + "label": "mintBadgeProtocolDefaultFeeInBps", + "offset": 0, + "slot": "3", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:43" + }, + { + "label": "feeCollector", + "offset": 0, + "slot": "4", + "type": "t_address", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:44" + }, + { + "label": "allowedContractAddresses", + "offset": 0, + "slot": "5", + "type": "t_mapping(t_address,t_bool)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:98" + }, + { + "label": "allowedContractAddressesByContractName", + "offset": 0, + "slot": "6", + "type": "t_mapping(t_string_memory_ptr,t_address)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:99" + }, + { + "label": "badgeModelControllers", + "offset": 0, + "slot": "7", + "type": "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:100" + }, + { + "label": "badgeModelControllersByAddress", + "offset": 0, + "slot": "8", + "type": "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:101" + }, + { + "label": "badgeModels", + "offset": 0, + "slot": "9", + "type": "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:102" + }, + { + "label": "badges", + "offset": 0, + "slot": "10", + "type": "t_mapping(t_uint256,t_struct(Badge)15744_storage)", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:103" + }, + { + "label": "userMintedBadgesByBadgeModel", + "offset": 0, + "slot": "11", + "type": "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:104" + }, + { + "label": "claimBadgeProtocolFee", + "offset": 0, + "slot": "12", + "type": "t_uint256", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:106" + }, + { + "label": "__gap", + "offset": 0, + "slot": "13", + "type": "t_array(t_uint256)49_storage", + "contract": "TheBadgeStore", + "src": "src/contracts/thebadge/TheBadgeStore.sol:369" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)dyn_storage": { + "label": "uint256[]", + "numberOfBytes": "32" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_array(t_uint256)dyn_storage)": { + "label": "mapping(address => uint256[])", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(address => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_address)": { + "label": "mapping(string => address)", + "numberOfBytes": "32" + }, + "t_mapping(t_string_memory_ptr,t_struct(BadgeModelController)15701_storage)": { + "label": "mapping(string => struct TheBadgeStore.BadgeModelController)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_mapping(t_address,t_array(t_uint256)dyn_storage))": { + "label": "mapping(uint256 => mapping(address => uint256[]))", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(Badge)15744_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.Badge)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(BadgeModel)15735_storage)": { + "label": "mapping(uint256 => struct TheBadgeStore.BadgeModel)", + "numberOfBytes": "32" + }, + "t_string_memory_ptr": { + "label": "string", + "numberOfBytes": "32" + }, + "t_string_storage": { + "label": "string", + "numberOfBytes": "32" + }, + "t_struct(Badge)15744_storage": { + "label": "struct TheBadgeStore.Badge", + "members": [ + { + "label": "badgeModelId", + "type": "t_uint256", + "offset": 0, + "slot": "0" + }, + { + "label": "account", + "type": "t_address", + "offset": 0, + "slot": "1" + }, + { + "label": "dueDate", + "type": "t_uint256", + "offset": 0, + "slot": "2" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "3" + } + ], + "numberOfBytes": "128" + }, + "t_struct(BadgeModel)15735_storage": { + "label": "struct TheBadgeStore.BadgeModel", + "members": [ + { + "label": "creator", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "controllerName", + "type": "t_string_storage", + "offset": 0, + "slot": "1" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 0, + "slot": "2" + }, + { + "label": "mintCreatorFee", + "type": "t_uint256", + "offset": 0, + "slot": "3" + }, + { + "label": "validFor", + "type": "t_uint256", + "offset": 0, + "slot": "4" + }, + { + "label": "mintProtocolFee", + "type": "t_uint256", + "offset": 0, + "slot": "5" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 0, + "slot": "6" + }, + { + "label": "version", + "type": "t_uint256", + "offset": 0, + "slot": "7" + }, + { + "label": "suspended", + "type": "t_bool", + "offset": 0, + "slot": "8" + }, + { + "label": "deprecated", + "type": "t_bool", + "offset": 1, + "slot": "8" + }, + { + "label": "metadata", + "type": "t_string_storage", + "offset": 0, + "slot": "9" + } + ], + "numberOfBytes": "320" + }, + "t_struct(BadgeModelController)15701_storage": { + "label": "struct TheBadgeStore.BadgeModelController", + "members": [ + { + "label": "controller", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "paused", + "type": "t_bool", + "offset": 20, + "slot": "0" + }, + { + "label": "initialized", + "type": "t_bool", + "offset": 21, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + } + } + } } } } diff --git a/deployments.md b/deployments.md index 009343b..32df237 100644 --- a/deployments.md +++ b/deployments.md @@ -4,98 +4,98 @@ | Network | ChainID | Tag | Address | | -------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0x4e14816A80D7c4FeEeb56C225e821c6374F4AB56 | -| Sepolia | 11155111 | v2.3.5 | 0x4e14816A80D7c4FeEeb56C225e821c6374F4AB56 | -| xDai | 100 | v2.3.5 | 0x5f90580636AE29a9E4CD2AFFCE6d73501cD594F2 | -| Polygon | 137 | v2.3.5 | 0xE6c5c3174439DA7D2D60456Ca7eB97E7Dcd551e6 | -| Mumbai | 80001 | v2.3.5 | 0xBc8B15322279D7DEDfA6f38EC22075491aEDDB0f | -| Avax | 43114 | v2.3.5 | 0xd7859d7f8fc33Eee2df9edbafd247a2F398087a6 | -| Optimism | 10 | v2.3.5 | 0xd7859d7f8fc33Eee2df9edbafd247a2F398087a6 | +| Goerli | 5 | v2.3.6 | 0x4e14816A80D7c4FeEeb56C225e821c6374F4AB56 | +| Sepolia | 11155111 | v2.3.6 | 0x4e14816A80D7c4FeEeb56C225e821c6374F4AB56 | +| xDai | 100 | v2.3.6 | 0x5f90580636AE29a9E4CD2AFFCE6d73501cD594F2 | +| Polygon | 137 | v2.3.6 | 0xE6c5c3174439DA7D2D60456Ca7eB97E7Dcd551e6 | +| Mumbai | 80001 | v2.3.6 | 0xBc8B15322279D7DEDfA6f38EC22075491aEDDB0f | +| Avax | 43114 | v2.3.6 | 0xd7859d7f8fc33Eee2df9edbafd247a2F398087a6 | +| Optimism | 10 | v2.3.6 | 0xd7859d7f8fc33Eee2df9edbafd247a2F398087a6 | ## TheBadgeStore | Network | ChainID | Tag | Address | | -------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0x158A8379071d280e811dC7b670c22a0b46dC582D | -| Sepolia | 11155111 | v2.3.5 | 0x158A8379071d280e811dC7b670c22a0b46dC582D | -| xDai | 100 | v2.3.5 | 0xaDe4Dcc3613dc0b77593adb3D694F2F6f71E4125 | -| Polygon | 137 | v2.3.5 | 0x870cDfe4c9b4FFe0687b7f871f6e96793440B214 | -| Mumbai | 80001 | v2.3.5 | 0xfA31e6E50d2Aa260434A056e7CaA3FD582B1FfE8 | -| Avax | 43114 | v2.3.5 | 0xC1e5906C4bD80787EE859432331B2791bD9BbF12 | -| Optimism | 10 | v2.3.5 | 0xC1e5906C4bD80787EE859432331B2791bD9BbF12 | +| Goerli | 5 | v2.3.6 | 0x158A8379071d280e811dC7b670c22a0b46dC582D | +| Sepolia | 11155111 | v2.3.6 | 0x158A8379071d280e811dC7b670c22a0b46dC582D | +| xDai | 100 | v2.3.6 | 0xaDe4Dcc3613dc0b77593adb3D694F2F6f71E4125 | +| Polygon | 137 | v2.3.6 | 0x870cDfe4c9b4FFe0687b7f871f6e96793440B214 | +| Mumbai | 80001 | v2.3.6 | 0xfA31e6E50d2Aa260434A056e7CaA3FD582B1FfE8 | +| Avax | 43114 | v2.3.6 | 0xC1e5906C4bD80787EE859432331B2791bD9BbF12 | +| Optimism | 10 | v2.3.6 | 0xC1e5906C4bD80787EE859432331B2791bD9BbF12 | ## TheBadgeUsersStore | Network | ChainID | Tag | Address | | -------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0x905a49Ead7540FF8a563EB02F66B5c13c5e8eC71 | -| Sepolia | 11155111 | v2.3.5 | 0x905a49Ead7540FF8a563EB02F66B5c13c5e8eC71 | -| xDai | 100 | v2.3.5 | 0x9316b09049c432E9F69e7d2f613036d936332Ad1 | -| Polygon | 137 | v2.3.5 | 0x7808B0320a21851139207EdAaAAfb1dc4039ceC2 | -| Mumbai | 80001 | v2.3.5 | 0x63e00a9aE661CC88620B5F71FE03DaDa958B5096 | -| Avax | 43114 | v2.3.5 | 0xba42dC1C5aa0f1094806c2914aA916E2cFe3d10E | -| Optimism | 10 | v2.3.5 | 0xba42dC1C5aa0f1094806c2914aA916E2cFe3d10E | +| Goerli | 5 | v2.3.6 | 0x905a49Ead7540FF8a563EB02F66B5c13c5e8eC71 | +| Sepolia | 11155111 | v2.3.6 | 0x905a49Ead7540FF8a563EB02F66B5c13c5e8eC71 | +| xDai | 100 | v2.3.6 | 0x9316b09049c432E9F69e7d2f613036d936332Ad1 | +| Polygon | 137 | v2.3.6 | 0x7808B0320a21851139207EdAaAAfb1dc4039ceC2 | +| Mumbai | 80001 | v2.3.6 | 0x63e00a9aE661CC88620B5F71FE03DaDa958B5096 | +| Avax | 43114 | v2.3.6 | 0xba42dC1C5aa0f1094806c2914aA916E2cFe3d10E | +| Optimism | 10 | v2.3.6 | 0xba42dC1C5aa0f1094806c2914aA916E2cFe3d10E | ## TheBadgeUsers | Network | ChainID | Tag | Address | | -------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0xbAaA5510144470eBE7260B743CA5516596A0250E | -| Sepolia | 11155111 | v2.3.5 | 0xbAaA5510144470eBE7260B743CA5516596A0250E | -| xDai | 100 | v2.3.5 | 0x8C0DcD187127b88665fE8FD4F39Cb18758946C0f | -| Polygon | 137 | v2.3.5 | 0x8Edfc741aED6B2C43485983d4C7b6B095b00500c | -| Mumbai | 80001 | v2.3.5 | 0xAdCd2Cd1249211EeD1D4d72b1E8B53F3A792e5da | -| Avax | 43114 | v2.3.5 | 0xDb5c2bcfD8cc522B8DD634DC507E135383049566 | -| Optimism | 10 | v2.3.5 | 0xDb5c2bcfD8cc522B8DD634DC507E135383049566 | +| Goerli | 5 | v2.3.6 | 0xbAaA5510144470eBE7260B743CA5516596A0250E | +| Sepolia | 11155111 | v2.3.6 | 0xbAaA5510144470eBE7260B743CA5516596A0250E | +| xDai | 100 | v2.3.6 | 0x8C0DcD187127b88665fE8FD4F39Cb18758946C0f | +| Polygon | 137 | v2.3.6 | 0x8Edfc741aED6B2C43485983d4C7b6B095b00500c | +| Mumbai | 80001 | v2.3.6 | 0xAdCd2Cd1249211EeD1D4d72b1E8B53F3A792e5da | +| Avax | 43114 | v2.3.6 | 0xDb5c2bcfD8cc522B8DD634DC507E135383049566 | +| Optimism | 10 | v2.3.6 | 0xDb5c2bcfD8cc522B8DD634DC507E135383049566 | ## TheBadgeModels | Network | ChainID | Tag | Address | | -------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0xDb5c2bcfD8cc522B8DD634DC507E135383049566 | -| Sepolia | 11155111 | v2.3.5 | 0xDb5c2bcfD8cc522B8DD634DC507E135383049566 | -| xDai | 100 | v2.3.5 | 0x277D01AACE02C9e6Fa617Ea61Ece24BEDa46453c | -| Polygon | 137 | v2.3.5 | 0x3C838b8571c53D29108F69b98145f8FcC446Fa5a | -| Mumbai | 80001 | v2.3.5 | 0x3540D8484C5ab270b53e16EDD71791d37A49BBf8 | -| Avax | 43114 | v2.3.5 | 0xd53Ec6aB9242cD8f8A8aa839BA91BDeDe6219475 | -| Optimism | 10 | v2.3.5 | 0xd53Ec6aB9242cD8f8A8aa839BA91BDeDe6219475 | +| Goerli | 5 | v2.3.6 | 0xDb5c2bcfD8cc522B8DD634DC507E135383049566 | +| Sepolia | 11155111 | v2.3.6 | 0xDb5c2bcfD8cc522B8DD634DC507E135383049566 | +| xDai | 100 | v2.3.6 | 0x277D01AACE02C9e6Fa617Ea61Ece24BEDa46453c | +| Polygon | 137 | v2.3.6 | 0x3C838b8571c53D29108F69b98145f8FcC446Fa5a | +| Mumbai | 80001 | v2.3.6 | 0x3540D8484C5ab270b53e16EDD71791d37A49BBf8 | +| Avax | 43114 | v2.3.6 | 0xd53Ec6aB9242cD8f8A8aa839BA91BDeDe6219475 | +| Optimism | 10 | v2.3.6 | 0xd53Ec6aB9242cD8f8A8aa839BA91BDeDe6219475 | ## KlerosBadgeModelController | Network | ChainID | Tag | Address | | ------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0x2C68a077fc4b4e694958A978b409e4127D68f811 | -| Sepolia | 11155111 | v2.3.5 | 0x2C68a077fc4b4e694958A978b409e4127D68f811 | -| xDai | 100 | v2.3.5 | 0x51e6775fFcDc4E7bd819663E9CabD2bE723C4fBf | +| Goerli | 5 | v2.3.6 | 0x2C68a077fc4b4e694958A978b409e4127D68f811 | +| Sepolia | 11155111 | v2.3.6 | 0x2C68a077fc4b4e694958A978b409e4127D68f811 | +| xDai | 100 | v2.3.6 | 0x51e6775fFcDc4E7bd819663E9CabD2bE723C4fBf | ## KlerosBadgeModelControllerStore | Network | ChainID | Tag | Address | | ------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0x5F7BF602cF2cc5f631C639293CA0bC733eCD31A6 | -| Sepolia | 11155111 | v2.3.5 | 0x5F7BF602cF2cc5f631C639293CA0bC733eCD31A6 | -| xDai | 100 | v2.3.5 | 0x86a3C11F2531cb064A4862d371DCB53793E26437 | +| Goerli | 5 | v2.3.6 | 0x5F7BF602cF2cc5f631C639293CA0bC733eCD31A6 | +| Sepolia | 11155111 | v2.3.6 | 0x5F7BF602cF2cc5f631C639293CA0bC733eCD31A6 | +| xDai | 100 | v2.3.6 | 0x86a3C11F2531cb064A4862d371DCB53793E26437 | ## TpBadgeModelController | Network | ChainID | Tag | Address | | -------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0xB085F625E976c913b82Bf291d32Dc0E55566D3Af | -| Sepolia | 11155111 | v2.3.5 | 0xB085F625E976c913b82Bf291d32Dc0E55566D3Af | -| xDai | 100 | v2.3.5 | 0xDd3472bD0B1382e90238D19b5916C71a657eF223 | -| Polygon | 137 | v2.3.5 | 0x4dC5E2FaC3D0254fEF7f40163261b9307c1C9df3 | -| Mumbai | 80001 | v2.3.5 | 0x323370530CC8481Bb1599d4C9d565053c8BADAb1 | -| Avax | 43114 | v2.3.5 | 0xA76ba1A457BBCBc4736D9a9028dD29f4e89322e5 | -| Optimism | 10 | v2.3.5 | 0xf668aff78410CAB48ccEB5c804704050c2096eC2 | +| Goerli | 5 | v2.3.6 | 0xB085F625E976c913b82Bf291d32Dc0E55566D3Af | +| Sepolia | 11155111 | v2.3.6 | 0xB085F625E976c913b82Bf291d32Dc0E55566D3Af | +| xDai | 100 | v2.3.6 | 0xDd3472bD0B1382e90238D19b5916C71a657eF223 | +| Polygon | 137 | v2.3.6 | 0x4dC5E2FaC3D0254fEF7f40163261b9307c1C9df3 | +| Mumbai | 80001 | v2.3.6 | 0x323370530CC8481Bb1599d4C9d565053c8BADAb1 | +| Avax | 43114 | v2.3.6 | 0xA76ba1A457BBCBc4736D9a9028dD29f4e89322e5 | +| Optimism | 10 | v2.3.6 | 0xf668aff78410CAB48ccEB5c804704050c2096eC2 | ## TpBadgeModelControllerStore | Network | ChainID | Tag | Address | | -------- | -------- | ------ | ------------------------------------------ | -| Goerli | 5 | v2.3.5 | 0x9521e582c3d52cF6a8Dd5adc350f66cB0814c281 | -| Sepolia | 11155111 | v2.3.5 | 0x9521e582c3d52cF6a8Dd5adc350f66cB0814c281 | -| xDai | 100 | v2.3.5 | 0x59168cE4F00531D8d86aB1eeBBB670DB537dA8AB | -| Polygon | 137 | v2.3.5 | 0x46d5469385C4Af4a3dd858AA839fc49d1f6c485f | -| Mumbai | 80001 | v2.3.5 | 0x76c422969185675Ec46a80B765621B63451cF9F1 | -| Avax | 43114 | v2.3.5 | 0x24b3111b7C3D922179e4054F41fCb62ec474a872 | -| Optimism | 10 | v2.3.5 | 0x4F82B8F6c299ADd3f45aD0b32fDd49A62d469f57 | +| Goerli | 5 | v2.3.6 | 0x9521e582c3d52cF6a8Dd5adc350f66cB0814c281 | +| Sepolia | 11155111 | v2.3.6 | 0x9521e582c3d52cF6a8Dd5adc350f66cB0814c281 | +| xDai | 100 | v2.3.6 | 0x59168cE4F00531D8d86aB1eeBBB670DB537dA8AB | +| Polygon | 137 | v2.3.6 | 0x46d5469385C4Af4a3dd858AA839fc49d1f6c485f | +| Mumbai | 80001 | v2.3.6 | 0x76c422969185675Ec46a80B765621B63451cF9F1 | +| Avax | 43114 | v2.3.6 | 0x24b3111b7C3D922179e4054F41fCb62ec474a872 | +| Optimism | 10 | v2.3.6 | 0x4F82B8F6c299ADd3f45aD0b32fDd49A62d469f57 | diff --git a/forge-cache/solidity-files-cache.json b/forge-cache/solidity-files-cache.json new file mode 100644 index 0000000..80fdf3e --- /dev/null +++ b/forge-cache/solidity-files-cache.json @@ -0,0 +1,6025 @@ +{ + "_format": "", + "paths": { + "artifacts": "out", + "build_infos": "out/build-info", + "sources": "src", + "tests": "test", + "scripts": "script", + "libraries": ["lib"] + }, + "files": { + "lib/erc-792/contracts/IArbitrable.sol": { + "lastModificationDate": 1707395377186, + "contentHash": "d1a29994bdcffed284665799f03987a9", + "sourceName": "lib/erc-792/contracts/IArbitrable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/erc-792/contracts/IArbitrable.sol", "lib/erc-792/contracts/IArbitrator.sol"], + "versionRequirement": "^0.8.0", + "artifacts": { + "IArbitrable": { + "0.8.20": { "path": "IArbitrable.sol/IArbitrable.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/erc-792/contracts/IArbitrator.sol": { + "lastModificationDate": 1707395377186, + "contentHash": "77a0178e0f7e511634c8622214f204f2", + "sourceName": "lib/erc-792/contracts/IArbitrator.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/erc-792/contracts/IArbitrable.sol", "lib/erc-792/contracts/IArbitrator.sol"], + "versionRequirement": "^0.8.0", + "artifacts": { + "IArbitrator": { + "0.8.20": { "path": "IArbitrator.sol/IArbitrator.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/erc-792/contracts/erc-1497/IEvidence.sol": { + "lastModificationDate": 1707395377186, + "contentHash": "45ca33b3d8d762f1e1439a57c5dcb2c1", + "sourceName": "lib/erc-792/contracts/erc-1497/IEvidence.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/erc-792/contracts/IArbitrable.sol", "lib/erc-792/contracts/IArbitrator.sol"], + "versionRequirement": "^0.8.0", + "artifacts": { + "IEvidence": { + "0.8.20": { "path": "IEvidence.sol/IEvidence.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/lib/ds-test/src/test.sol": { + "lastModificationDate": 1707395378078, + "contentHash": "9febff9d09f18af5306669dc276c4c43", + "sourceName": "lib/forge-std/lib/ds-test/src/test.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.5.0", + "artifacts": { + "DSTest": { "0.8.20": { "path": "test.sol/DSTest.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/Base.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "ee13c050b1914464f1d3f90cde90204b", + "sourceName": "lib/forge-std/src/Base.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/forge-std/src/StdStorage.sol", "lib/forge-std/src/Vm.sol"], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "CommonBase": { + "0.8.20": { "path": "Base.sol/CommonBase.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + }, + "ScriptBase": { + "0.8.20": { "path": "Base.sol/ScriptBase.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + }, + "TestBase": { "0.8.20": { "path": "Base.sol/TestBase.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdAssertions.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "6cc2858240bcd443debbbf075490e325", + "sourceName": "lib/forge-std/src/StdAssertions.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/forge-std/lib/ds-test/src/test.sol", "lib/forge-std/src/StdMath.sol"], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "StdAssertions": { + "0.8.20": { "path": "StdAssertions.sol/StdAssertions.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdChains.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "b0324b2e5a11948f852032aa293b3a05", + "sourceName": "lib/forge-std/src/StdChains.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/forge-std/src/Vm.sol"], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "StdChains": { + "0.8.20": { "path": "StdChains.sol/StdChains.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdCheats.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "d984e2c76dae07bac1e292af2a5d4fd1", + "sourceName": "lib/forge-std/src/StdCheats.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/forge-std/src/StdStorage.sol", "lib/forge-std/src/Vm.sol", "lib/forge-std/src/console2.sol"], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "StdCheats": { + "0.8.20": { "path": "StdCheats.sol/StdCheats.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + }, + "StdCheatsSafe": { + "0.8.20": { "path": "StdCheats.sol/StdCheatsSafe.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdError.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "64c896e1276a291776e5ea5aecb3870a", + "sourceName": "lib/forge-std/src/StdError.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "stdError": { + "0.8.20": { "path": "StdError.sol/stdError.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdInvariant.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "0a580d6fac69e9d4b6504f747f3c0c24", + "sourceName": "lib/forge-std/src/StdInvariant.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "StdInvariant": { + "0.8.20": { "path": "StdInvariant.sol/StdInvariant.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdJson.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "a341308627b7eeab7589534daad58186", + "sourceName": "lib/forge-std/src/StdJson.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/forge-std/src/Vm.sol"], + "versionRequirement": ">=0.6.0, <0.9.0", + "artifacts": { + "stdJson": { "0.8.20": { "path": "StdJson.sol/stdJson.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdMath.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "9da8f453eba6bb98f3d75bc6822bfb29", + "sourceName": "lib/forge-std/src/StdMath.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "stdMath": { "0.8.20": { "path": "StdMath.sol/stdMath.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdStorage.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "abd6f3379e6e2a7979b18abc21aea0c1", + "sourceName": "lib/forge-std/src/StdStorage.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/forge-std/src/Vm.sol"], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "stdStorage": { + "0.8.20": { "path": "StdStorage.sol/stdStorage.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + }, + "stdStorageSafe": { + "0.8.20": { "path": "StdStorage.sol/stdStorageSafe.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdStyle.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "6281165a12aa639705c691fccefd855e", + "sourceName": "lib/forge-std/src/StdStyle.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/forge-std/src/Vm.sol"], + "versionRequirement": ">=0.4.22, <0.9.0", + "artifacts": { + "StdStyle": { + "0.8.20": { "path": "StdStyle.sol/StdStyle.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/StdUtils.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "3ce83748fd76644688f916c9cced545b", + "sourceName": "lib/forge-std/src/StdUtils.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/forge-std/src/Vm.sol", "lib/forge-std/src/interfaces/IMulticall3.sol"], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "StdUtils": { + "0.8.20": { "path": "StdUtils.sol/StdUtils.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/Test.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "15866901137b5670eabf31362523bd28", + "sourceName": "lib/forge-std/src/Test.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol" + ], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "Test": { "0.8.20": { "path": "Test.sol/Test.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/Vm.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "eff2556a384c025f56150fb3f78de858", + "sourceName": "lib/forge-std/src/Vm.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "Vm": { "0.8.20": { "path": "Vm.sol/Vm.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } }, + "VmSafe": { "0.8.20": { "path": "Vm.sol/VmSafe.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/console.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "100b8a33b917da1147740d7ab8b0ded3", + "sourceName": "lib/forge-std/src/console.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.4.22, <0.9.0", + "artifacts": { + "console": { "0.8.20": { "path": "console.sol/console.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/console2.sol": { + "lastModificationDate": 1707395377206, + "contentHash": "491ca717c1915995e78cc361485a3067", + "sourceName": "lib/forge-std/src/console2.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.4.22, <0.9.0", + "artifacts": { + "console2": { + "0.8.20": { "path": "console2.sol/console2.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/interfaces/IMulticall3.sol": { + "lastModificationDate": 1707395377210, + "contentHash": "7b131ca1ca32ef6378b7b9ad5488b901", + "sourceName": "lib/forge-std/src/interfaces/IMulticall3.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "IMulticall3": { + "0.8.20": { "path": "IMulticall3.sol/IMulticall3.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/forge-std/src/safeconsole.sol": { + "lastModificationDate": 1707395377210, + "contentHash": "ac3b1bf5a444db5db3656021830258a8", + "sourceName": "lib/forge-std/src/safeconsole.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": ">=0.6.2, <0.9.0", + "artifacts": { + "safeconsole": { + "0.8.20": { "path": "safeconsole.sol/safeconsole.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol": { + "lastModificationDate": 1707395378110, + "contentHash": "e3a14b0714caaaa82d58fa0bc3756079", + "sourceName": "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "IAccessControl": { + "0.8.20": { "path": "IAccessControl.sol/IAccessControl.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol": { + "lastModificationDate": 1707395378110, + "contentHash": "5a6f0412127636d802db818a7d6ac404", + "sourceName": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "IERC1822Proxiable": { + "0.8.20": { + "path": "draft-IERC1822.sol/IERC1822Proxiable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol": { + "lastModificationDate": 1707395378110, + "contentHash": "4aefc698f77ecbace7f401257dfe182d", + "sourceName": "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "IERC1155Errors": { + "0.8.20": { "path": "draft-IERC6093.sol/IERC1155Errors.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + }, + "IERC20Errors": { + "0.8.20": { "path": "draft-IERC6093.sol/IERC20Errors.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + }, + "IERC721Errors": { + "0.8.20": { "path": "draft-IERC6093.sol/IERC721Errors.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol": { + "lastModificationDate": 1707395378110, + "contentHash": "3f126cc3806f04f2c7530211ada54b1e", + "sourceName": "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "Clones": { "0.8.20": { "path": "Clones.sol/Clones.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol": { + "lastModificationDate": 1707395378110, + "contentHash": "838bc3ef3bcf0376af7d9b2041989b6a", + "sourceName": "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ERC1967Utils": { + "0.8.20": { "path": "ERC1967Utils.sol/ERC1967Utils.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "0a5c323fd908535580597848b8e550fb", + "sourceName": "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "IBeacon": { "0.8.20": { "path": "IBeacon.sol/IBeacon.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "b091cae7bc6a906ec5956ad0dcd55ae0", + "sourceName": "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"], + "versionRequirement": "^0.8.20", + "artifacts": { + "IERC1155": { + "0.8.20": { "path": "IERC1155.sol/IERC1155.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "d14616defa6d417fafa47e416e3cec73", + "sourceName": "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"], + "versionRequirement": "^0.8.20", + "artifacts": { + "IERC1155Receiver": { + "0.8.20": { + "path": "IERC1155Receiver.sol/IERC1155Receiver.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "96903941ac1966aa14e08bd4ab3c264e", + "sourceName": "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "IERC1155MetadataURI": { + "0.8.20": { + "path": "IERC1155MetadataURI.sol/IERC1155MetadataURI.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/utils/Address.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "79c699f80eb8a9b168cb34e37816f894", + "sourceName": "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "Address": { "0.8.20": { "path": "Address.sol/Address.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "fabe6fe8d403b4f72dec1dc585ab1c7a", + "sourceName": "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Arrays": { "0.8.20": { "path": "Arrays.sol/Arrays.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "08cbccfefa284405c12b4bfa8c8c9c2b", + "sourceName": "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "StorageSlot": { + "0.8.20": { "path": "StorageSlot.sol/StorageSlot.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "ba57ff4ddf1d9cae9d2009792795b7f6", + "sourceName": "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Strings": { "0.8.20": { "path": "Strings.sol/Strings.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "de0163561b417b800d01749cbbe2147e", + "sourceName": "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "IERC165": { "0.8.20": { "path": "IERC165.sol/IERC165.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "718fa8ba0ff269c92e364c1429d9de57", + "sourceName": "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "Math": { "0.8.20": { "path": "Math.sol/Math.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { + "lastModificationDate": 1707395378114, + "contentHash": "b6c6bdc7aaca4fe5b680760a72e09d3e", + "sourceName": "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "SignedMath": { + "0.8.20": { "path": "SignedMath.sol/SignedMath.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol": { + "lastModificationDate": 1707395380886, + "contentHash": "61a6b098d98b3b945beb7d9de481c025", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "AccessControlUpgradeable": { + "0.8.20": { + "path": "AccessControlUpgradeable.sol/AccessControlUpgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": { + "lastModificationDate": 1707395380886, + "contentHash": "77d30f3cd93f46b80b6f8f1ebc574ee4", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "OwnableUpgradeable": { + "0.8.20": { + "path": "OwnableUpgradeable.sol/OwnableUpgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": { + "lastModificationDate": 1707395380886, + "contentHash": "f0cedd674b4863ee90d1521a92ab82df", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "Initializable": { + "0.8.20": { "path": "Initializable.sol/Initializable.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol": { + "lastModificationDate": 1707395380886, + "contentHash": "0488cb927068c0c94b864ea40a34d1ea", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UUPSUpgradeable": { + "0.8.20": { + "path": "UUPSUpgradeable.sol/UUPSUpgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol": { + "lastModificationDate": 1707395380886, + "contentHash": "e61f96afa60dd34d72262e40ff9d03ef", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ERC1155Upgradeable": { + "0.8.20": { + "path": "ERC1155Upgradeable.sol/ERC1155Upgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol": { + "lastModificationDate": 1707395380886, + "contentHash": "f165956b00b4de483a90141408402bf8", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ERC1155URIStorageUpgradeable": { + "0.8.20": { + "path": "ERC1155URIStorageUpgradeable.sol/ERC1155URIStorageUpgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol": { + "lastModificationDate": 1707395380890, + "contentHash": "3c0b1d199ee353c00e56a0d35860a287", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ERC1155HolderUpgradeable": { + "0.8.20": { + "path": "ERC1155HolderUpgradeable.sol/ERC1155HolderUpgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": { + "lastModificationDate": 1707395380890, + "contentHash": "0c3c7a637fd6a91b3f5eb94fb6e9fc1f", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"], + "versionRequirement": "^0.8.20", + "artifacts": { + "ContextUpgradeable": { + "0.8.20": { + "path": "ContextUpgradeable.sol/ContextUpgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol": { + "lastModificationDate": 1707395380890, + "contentHash": "ef20fd32f5bdcc50bd466abc8fc7f181", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "PausableUpgradeable": { + "0.8.20": { + "path": "PausableUpgradeable.sol/PausableUpgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol": { + "lastModificationDate": 1707395380890, + "contentHash": "a5bcbeef155f4b5dfb458e420afbaca6", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"], + "versionRequirement": "^0.8.20", + "artifacts": { + "ReentrancyGuardUpgradeable": { + "0.8.20": { + "path": "ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol": { + "lastModificationDate": 1707395380890, + "contentHash": "ea9d297971734d541e82cc31ec88b84f", + "sourceName": "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ERC165Upgradeable": { + "0.8.20": { + "path": "ERC165Upgradeable.sol/ERC165Upgradeable.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol": { + "lastModificationDate": 1724135814006, + "contentHash": "a8c067bd3f1a19e760286558b38cf5b8", + "sourceName": "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "KlerosBadgeModelController": { + "0.8.20": { + "path": "KlerosBadgeModelController.sol/KlerosBadgeModelController.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "f77808f954f6aee2f4220d3eabe59eae", + "sourceName": "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "KlerosBadgeModelControllerStore": { + "0.8.20": { + "path": "KlerosBadgeModelControllerStore.sol/KlerosBadgeModelControllerStore.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/badgeModelControllers/TpBadgeModelController.sol": { + "lastModificationDate": 1724153388984, + "contentHash": "68f96c029e263df63fe9529e28f30670", + "sourceName": "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TpBadgeModelController": { + "0.8.20": { + "path": "TpBadgeModelController.sol/TpBadgeModelController.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol": { + "lastModificationDate": 1724153388964, + "contentHash": "65f59a86bbe9ca82af952b26bcbb2665", + "sourceName": "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TpBadgeModelControllerStore": { + "0.8.20": { + "path": "TpBadgeModelControllerStore.sol/TpBadgeModelControllerStore.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/libraries/LibKlerosBadgeModelController.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "1aa8bd137b5324143d9efcc08e6c1ba8", + "sourceName": "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "LibKlerosBadgeModelController": { + "0.8.20": { + "path": "LibKlerosBadgeModelController.sol/LibKlerosBadgeModelController.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/libraries/LibTheBadge.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "81ef93b3a3ea9a9cf3a9539d3e583700", + "sourceName": "src/contracts/libraries/LibTheBadge.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "LibTheBadge": { + "0.8.20": { "path": "LibTheBadge.sol/LibTheBadge.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "src/contracts/libraries/LibTheBadgeModels.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "7e33bbdb356ae5bf0afc59e78eb7a268", + "sourceName": "src/contracts/libraries/LibTheBadgeModels.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "LibTheBadgeModels": { + "0.8.20": { + "path": "LibTheBadgeModels.sol/LibTheBadgeModels.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/libraries/LibTheBadgeStore.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "6c16f71fc62a7edc4e72478bcb9464e9", + "sourceName": "src/contracts/libraries/LibTheBadgeStore.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "LibTheBadgeStore": { + "0.8.20": { + "path": "LibTheBadgeStore.sol/LibTheBadgeStore.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/libraries/LibTheBadgeUsers.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "25708747bb4e3d41382c59820f44fb2e", + "sourceName": "src/contracts/libraries/LibTheBadgeUsers.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "LibTheBadgeUsers": { + "0.8.20": { + "path": "LibTheBadgeUsers.sol/LibTheBadgeUsers.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/libraries/LibTpBadgeModelController.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "c860fe72d825396742291c23c191dedd", + "sourceName": "src/contracts/libraries/LibTpBadgeModelController.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "LibTpBadgeModelController": { + "0.8.20": { + "path": "LibTpBadgeModelController.sol/LibTpBadgeModelController.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/tcr/LightGTCRFactory.sol": { + "lastModificationDate": 1724091271701, + "contentHash": "072543e160d2f1f138539ca6569988aa", + "sourceName": "src/contracts/tcr/LightGTCRFactory.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/erc-792/contracts/erc-1497/IEvidence.sol", + "src/contracts/tcr/LightGeneralizedTCR.sol", + "src/utils/CappedMath.sol", + "src/utils/CappedMath128.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "LightGTCRFactory": { + "0.8.20": { + "path": "LightGTCRFactory.sol/LightGTCRFactory.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/tcr/LightGeneralizedTCR.sol": { + "lastModificationDate": 1724091271702, + "contentHash": "b238061e9ffddbcb493fc116a1ce73e0", + "sourceName": "src/contracts/tcr/LightGeneralizedTCR.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/erc-792/contracts/erc-1497/IEvidence.sol", + "src/utils/CappedMath.sol", + "src/utils/CappedMath128.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "LightGeneralizedTCR": { + "0.8.20": { + "path": "LightGeneralizedTCR.sol/LightGeneralizedTCR.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/contracts/thebadge/TheBadge.sol": { + "lastModificationDate": 1724157851859, + "contentHash": "5b379786ef2101b6937ba440e05c7154", + "sourceName": "src/contracts/thebadge/TheBadge.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeUsers.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TheBadge": { + "0.8.20": { "path": "TheBadge.sol/TheBadge.json", "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" } + } + }, + "seenByCompiler": true + }, + "src/contracts/thebadge/TheBadgeModels.sol": { + "lastModificationDate": 1724094557281, + "contentHash": "1b7dc0a6d1cb206c538a8ee598e9aa8b", + "sourceName": "src/contracts/thebadge/TheBadgeModels.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TheBadgeModels": { + "0.8.20": { "path": "TheBadgeModels.sol/TheBadgeModels.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "src/contracts/thebadge/TheBadgeRoles.sol": { + "lastModificationDate": 1724150483567, + "contentHash": "6c56c304872657027a7936d306141010", + "sourceName": "src/contracts/thebadge/TheBadgeRoles.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TheBadgeRoles": { + "0.8.20": { "path": "TheBadgeRoles.sol/TheBadgeRoles.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "src/contracts/thebadge/TheBadgeStore.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "d955eb2dbbd9d276f7fda9c454c6ccda", + "sourceName": "src/contracts/thebadge/TheBadgeStore.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeRoles.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TheBadgeStore": { + "0.8.20": { "path": "TheBadgeStore.sol/TheBadgeStore.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "src/contracts/thebadge/TheBadgeUsers.sol": { + "lastModificationDate": 1717765723494, + "contentHash": "af8a6fb892f0774fec7e044db11578c3", + "sourceName": "src/contracts/thebadge/TheBadgeUsers.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ITheBadgeUsers.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TheBadgeUsers": { + "0.8.20": { "path": "TheBadgeUsers.sol/TheBadgeUsers.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "src/contracts/thebadge/TheBadgeUsersStore.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "9415b5fc36ebab89156da49dba6a4d7e", + "sourceName": "src/contracts/thebadge/TheBadgeUsersStore.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TheBadgeUsersStore": { + "0.8.20": { + "path": "TheBadgeUsersStore.sol/TheBadgeUsersStore.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "src/interfaces/IBadgeModelController.sol": { + "lastModificationDate": 1724136302448, + "contentHash": "e4b26fbc567c743eaf0fd890fc397fd9", + "sourceName": "src/interfaces/IBadgeModelController.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "IBadgeModelController": { + "0.8.20": { + "path": "IBadgeModelController.sol/IBadgeModelController.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/interfaces/ILightGTCRFactory.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "2ca11d8873c5be5bee85b099c6b2ec21", + "sourceName": "src/interfaces/ILightGTCRFactory.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "src/interfaces/ILightGeneralizedTCR.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ILightGTCRFactory": { + "0.8.20": { + "path": "ILightGTCRFactory.sol/ILightGTCRFactory.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/interfaces/ILightGeneralizedTCR.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "aad7f9ca1d2b248cb7deadb4d29ba407", + "sourceName": "src/interfaces/ILightGeneralizedTCR.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": ["lib/erc-792/contracts/IArbitrable.sol", "lib/erc-792/contracts/IArbitrator.sol"], + "versionRequirement": "^0.8.20", + "artifacts": { + "ILightGeneralizedTCR": { + "0.8.20": { + "path": "ILightGeneralizedTCR.sol/ILightGeneralizedTCR.json", + "build_id": "18ece5be1dd93edd010307bf3eeac08b" + } + } + }, + "seenByCompiler": true + }, + "src/interfaces/ITheBadge.sol": { + "lastModificationDate": 1724137020317, + "contentHash": "803597ca5b64da681820f07efe4cc449", + "sourceName": "src/interfaces/ITheBadge.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ITheBadge": { + "0.8.20": { "path": "ITheBadge.sol/ITheBadge.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "src/interfaces/ITheBadgeModels.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "2a2f051f55e18654dff9243de2473cd4", + "sourceName": "src/interfaces/ITheBadgeModels.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ITheBadgeModels": { + "0.8.20": { + "path": "ITheBadgeModels.sol/ITheBadgeModels.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "src/interfaces/ITheBadgeUsers.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "77b21e0ee369da39f69bc12c7a889ea4", + "sourceName": "src/interfaces/ITheBadgeUsers.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ITheBadgeUsers": { + "0.8.20": { "path": "ITheBadgeUsers.sol/ITheBadgeUsers.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "src/utils/CappedMath.sol": { + "lastModificationDate": 1704882901419, + "contentHash": "da8d4d140da970721cb131050a3f24ba", + "sourceName": "src/utils/CappedMath.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "CappedMath": { + "0.8.20": { "path": "CappedMath.sol/CappedMath.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "src/utils/CappedMath128.sol": { + "lastModificationDate": 1724091271702, + "contentHash": "82ad1ff0c56fb21631e70047867aa38c", + "sourceName": "src/utils/CappedMath128.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [], + "versionRequirement": "^0.8.20", + "artifacts": { + "CappedMath128": { + "0.8.20": { "path": "CappedMath128.sol/CappedMath128.json", "build_id": "18ece5be1dd93edd010307bf3eeac08b" } + } + }, + "seenByCompiler": true + }, + "test/BadgeModelControllers/KlerosBadgeModelController/Config.sol": { + "lastModificationDate": 1724099024453, + "contentHash": "004db4648e376470bc27de3cdb7171cf", + "sourceName": "test/BadgeModelControllers/KlerosBadgeModelController/Config.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Config": { + "0.8.20": { + "path": "KlerosBadgeModelController/Config.sol/Config.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/BadgeModelControllers/KlerosBadgeModelController/CreateBadgeModel.sol": { + "lastModificationDate": 1724106303699, + "contentHash": "c9c1538dc3f1adf3b10c6b75ed737a3c", + "sourceName": "test/BadgeModelControllers/KlerosBadgeModelController/CreateBadgeModel.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/BadgeModelControllers/KlerosBadgeModelController/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "CreateBadgeModel": { + "0.8.20": { + "path": "CreateBadgeModel.sol/CreateBadgeModel.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/BadgeModelControllers/TpBadgeModelController/Config.sol": { + "lastModificationDate": 1724099024438, + "contentHash": "6aa03fb9a4637bc9463baa996e10d630", + "sourceName": "test/BadgeModelControllers/TpBadgeModelController/Config.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Config": { + "0.8.20": { + "path": "TpBadgeModelController/Config.sol/Config.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/BadgeModelControllers/TpBadgeModelController/CreateBadgeModel.sol": { + "lastModificationDate": 1724106303699, + "contentHash": "ea26439295349094acb07677ced2d762", + "sourceName": "test/BadgeModelControllers/TpBadgeModelController/CreateBadgeModel.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/BadgeModelControllers/TpBadgeModelController/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "CreateBadgeModel": { + "0.8.20": { + "path": "TpBadgeModelController/CreateBadgeModel.sol/CreateBadgeModel.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadge/Config.sol": { + "lastModificationDate": 1724155732458, + "contentHash": "329b06a131833c7da8a9af5fe487af3e", + "sourceName": "test/TheBadge/Config.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Config": { "0.8.20": { "path": "Config.sol/Config.json", "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" } } + }, + "seenByCompiler": true + }, + "test/TheBadge/Mint.t.sol": { + "lastModificationDate": 1724138273847, + "contentHash": "28cd881a929075036561cfded0c232ef", + "sourceName": "test/TheBadge/Mint.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadge/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Mint": { "0.8.20": { "path": "Mint.t.sol/Mint.json", "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" } } + }, + "seenByCompiler": true + }, + "test/TheBadge/MintOnBehalf.t.sol": { + "lastModificationDate": 1724223227902, + "contentHash": "8758362742d1e0efaf3358ff33e8d04b", + "sourceName": "test/TheBadge/MintOnBehalf.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadge/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Mint": { "0.8.20": { "path": "MintOnBehalf.t.sol/Mint.json", "build_id": "994c85694449f5b0f6f2829ef527d25a" } } + }, + "seenByCompiler": true + }, + "test/TheBadge/MintValue.t.sol": { + "lastModificationDate": 1724139602728, + "contentHash": "972afe59b32b50f487b233b5011141e5", + "sourceName": "test/TheBadge/MintValue.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadge/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "MintValue": { + "0.8.20": { "path": "MintValue.t.sol/MintValue.json", "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/AddBadgeModelController.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "7117bb3c91dcc3e28578edc6d97ed82f", + "sourceName": "test/TheBadgeModels/AddBadgeModelController.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeModels/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "AddBadgeModelController": { + "0.8.20": { + "path": "AddBadgeModelController.t.sol/AddBadgeModelController.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/Config.sol": { + "lastModificationDate": 1724099024446, + "contentHash": "33d294562e21643f81d0873e5622809a", + "sourceName": "test/TheBadgeModels/Config.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Config": { + "0.8.20": { "path": "TheBadgeModels/Config.sol/Config.json", "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/CreateBadgeModel.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "0ca28f9ea6ad26edddc4161095696168", + "sourceName": "test/TheBadgeModels/CreateBadgeModel.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeModels/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "CreateBadgeModel": { + "0.8.20": { + "path": "CreateBadgeModel.t.sol/CreateBadgeModel.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/IsBadgeModelSuspended.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "f9c6dd75a2400112cc9722978ae82c2e", + "sourceName": "test/TheBadgeModels/IsBadgeModelSuspended.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeModels/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "IsBadgeModelSuspended": { + "0.8.20": { + "path": "IsBadgeModelSuspended.t.sol/IsBadgeModelSuspended.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/SuspendBadgeModel.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "29a2b13d2c51ceb85b7edfb6d909605d", + "sourceName": "test/TheBadgeModels/SuspendBadgeModel.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeModels/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "SuspendBadgeModel": { + "0.8.20": { + "path": "SuspendBadgeModel.t.sol/SuspendBadgeModel.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/UpdateBadgeModel.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "ad72ea53ba154c4f2cee92cb6ee51a7c", + "sourceName": "test/TheBadgeModels/UpdateBadgeModel.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeModels/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateBadgeModel": { + "0.8.20": { + "path": "UpdateBadgeModel.t.sol/UpdateBadgeModel.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/UpdateBadgeModelController.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "f65d84886deb36aab00ca440fa836e0e", + "sourceName": "test/TheBadgeModels/UpdateBadgeModelController.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeModels/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateBadgeModelController": { + "0.8.20": { + "path": "UpdateBadgeModelController.t.sol/UpdateBadgeModelController.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/UpdateBadgeModelMetadata.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "437cb76d70d8b25ffbc95bfcfec7a40f", + "sourceName": "test/TheBadgeModels/UpdateBadgeModelMetadata.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeModels/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateBadgeModelMetadata": { + "0.8.20": { + "path": "UpdateBadgeModelMetadata.t.sol/UpdateBadgeModelMetadata.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeModels/UpdateBadgeModelProtocolFee.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "5fc2712f90e4fb095d44580cb7891167", + "sourceName": "test/TheBadgeModels/UpdateBadgeModelProtocolFee.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/utils/ERC1155HolderUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/badgeModelControllers/TpBadgeModelController.sol", + "src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/libraries/LibTpBadgeModelController.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeModels/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateBadgeModelProtocolFee": { + "0.8.20": { + "path": "UpdateBadgeModelProtocolFee.t.sol/UpdateBadgeModelProtocolFee.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/AddBadge.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "3bb83813caf0bfbec9101ad68a5e3848", + "sourceName": "test/TheBadgeStore/AddBadge.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "AddBadge": { + "0.8.20": { "path": "AddBadge.t.sol/AddBadge.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/AddBadgeModel.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "3195f49c350aa6b7fb805366628120f8", + "sourceName": "test/TheBadgeStore/AddBadgeModel.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "AddBadgeModel": { + "0.8.20": { "path": "AddBadgeModel.t.sol/AddBadgeModel.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/AddBadgeModelController.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "80e3d9783f8784e9061bf7ed9eeec787", + "sourceName": "test/TheBadgeStore/AddBadgeModelController.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "AddBadgeModelController": { + "0.8.20": { + "path": "TheBadgeStore/AddBadgeModelController.t.sol/AddBadgeModelController.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/AddPermittedContract.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "effa47bddcd0e82139c616368367af95", + "sourceName": "test/TheBadgeStore/AddPermittedContract.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "AddPermittedContract": { + "0.8.20": { + "path": "AddPermittedContract.t.sol/AddPermittedContract.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/Config.sol": { + "lastModificationDate": 1704882901423, + "contentHash": "9b871efda5565cc3b4431450644a875f", + "sourceName": "test/TheBadgeStore/Config.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Config": { + "0.8.20": { "path": "TheBadgeStore/Config.sol/Config.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/CreateUser.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "ef5fa4b1cf56f94a8fd48f7b5384fb49", + "sourceName": "test/TheBadgeStore/CreateUser.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "CreateUser": { + "0.8.20": { "path": "CreateUser.t.sol/CreateUser.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/RemovePermittedContract.t.sol": { + "lastModificationDate": 1724106303700, + "contentHash": "d14ab8910d4a7df6adbc2b31adcab4b3", + "sourceName": "test/TheBadgeStore/RemovePermittedContract.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "RemovePermittedContract": { + "0.8.20": { + "path": "RemovePermittedContract.t.sol/RemovePermittedContract.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/TransferBadge.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "4243b720839778e5aeeda6120c7c7914", + "sourceName": "test/TheBadgeStore/TransferBadge.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "TransferBadge": { + "0.8.20": { "path": "TransferBadge.t.sol/TransferBadge.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/UpdateBadgeModel.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "30238ceb66b3fa825eeeb54acda2e944", + "sourceName": "test/TheBadgeStore/UpdateBadgeModel.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateBadgeModel": { + "0.8.20": { + "path": "TheBadgeStore/UpdateBadgeModel.t.sol/UpdateBadgeModel.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/UpdateBadgeModelController.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "660a22aaf4694c9482facaa2850f0644", + "sourceName": "test/TheBadgeStore/UpdateBadgeModelController.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateBadgeModelController": { + "0.8.20": { + "path": "TheBadgeStore/UpdateBadgeModelController.t.sol/UpdateBadgeModelController.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/UpdateCreateBadgeModelProtocolFee.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "86a57ab515dc119c1f56a0fdb54d05f0", + "sourceName": "test/TheBadgeStore/UpdateCreateBadgeModelProtocolFee.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateCreateBadgeModelProtocolFee": { + "0.8.20": { + "path": "UpdateCreateBadgeModelProtocolFee.t.sol/UpdateCreateBadgeModelProtocolFee.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/UpdateMintBadgeDefaultProtocolFee.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "3c761822e421dbc3b90d8e602a9e75b1", + "sourceName": "test/TheBadgeStore/UpdateMintBadgeDefaultProtocolFee.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateMintBadgeDefaultProtocolFee": { + "0.8.20": { + "path": "UpdateMintBadgeDefaultProtocolFee.t.sol/UpdateMintBadgeDefaultProtocolFee.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/UpdatePermittedContract.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "efecab860c03426302fb22cbb8cb147c", + "sourceName": "test/TheBadgeStore/UpdatePermittedContract.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdatePermittedContract": { + "0.8.20": { + "path": "UpdatePermittedContract.t.sol/UpdatePermittedContract.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/UpdateRegisterCreatorProtocolFee.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "49a59caa88e68fd8b1806c6911f724f7", + "sourceName": "test/TheBadgeStore/UpdateRegisterCreatorProtocolFee.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateRegisterCreatorProtocolFee": { + "0.8.20": { + "path": "UpdateRegisterCreatorProtocolFee.t.sol/UpdateRegisterCreatorProtocolFee.json", + "build_id": "9ef9d11a39e37f5ed5794780655226e3" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeStore/UpdateUser.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "d0eb7129769f2f6c4c2467b62e3fb0eb", + "sourceName": "test/TheBadgeStore/UpdateUser.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "test/TheBadgeStore/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateUser": { + "0.8.20": { "path": "UpdateUser.t.sol/UpdateUser.json", "build_id": "9ef9d11a39e37f5ed5794780655226e3" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeUsers/Config.sol": { + "lastModificationDate": 1724138238360, + "contentHash": "bb71798414df3feab2a83b5d97e94f1a", + "sourceName": "test/TheBadgeUsers/Config.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "Config": { + "0.8.20": { "path": "TheBadgeUsers/Config.sol/Config.json", "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeUsers/ExecuteUserVerification.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "daa988fc665acc085f500e7c2446f9ee", + "sourceName": "test/TheBadgeUsers/ExecuteUserVerification.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeUsers/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "ExecuteUserVerification": { + "0.8.20": { + "path": "ExecuteUserVerification.t.sol/ExecuteUserVerification.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeUsers/MakeUserCreator.t.sol": { + "lastModificationDate": 1724106303701, + "contentHash": "5ef1ceaac6aa0028f96fb83ac856be0a", + "sourceName": "test/TheBadgeUsers/MakeUserCreator.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeUsers/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "MakeUserCreator": { + "0.8.20": { + "path": "MakeUserCreator.t.sol/MakeUserCreator.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeUsers/RegisterUser.t.sol": { + "lastModificationDate": 1724106303702, + "contentHash": "aec2973c81f8f67c8b89c600e5edf189", + "sourceName": "test/TheBadgeUsers/RegisterUser.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeUsers/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "RegisterUser": { + "0.8.20": { "path": "RegisterUser.t.sol/RegisterUser.json", "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeUsers/SubmitUserVerification.t.sol": { + "lastModificationDate": 1724106303702, + "contentHash": "a8952b5989c93967f32724feb7cb3d1a", + "sourceName": "test/TheBadgeUsers/SubmitUserVerification.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeUsers/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "SubmitUserVerification": { + "0.8.20": { + "path": "SubmitUserVerification.t.sol/SubmitUserVerification.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeUsers/SuspendUser.t.sol": { + "lastModificationDate": 1724106303702, + "contentHash": "9046f737596f82382900a4440dfbd62b", + "sourceName": "test/TheBadgeUsers/SuspendUser.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeUsers/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "SuspendUser": { + "0.8.20": { "path": "SuspendUser.t.sol/SuspendUser.json", "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" } + } + }, + "seenByCompiler": true + }, + "test/TheBadgeUsers/UpdateUser.t.sol": { + "lastModificationDate": 1724106303702, + "contentHash": "99e4b02911d1f1d6e98b52b00a1d9f97", + "sourceName": "test/TheBadgeUsers/UpdateUser.t.sol", + "compilerSettings": { + "solc": { + "optimizer": { "enabled": true, "runs": 100 }, + "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, + "outputSelection": { + "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "metadata"] } + }, + "evmVersion": "paris", + "viaIR": true, + "libraries": {} + }, + "vyper": { + "evmVersion": "paris", + "outputSelection": { "*": { "*": ["abi", "evm.bytecode", "evm.deployedBytecode"] } } + } + }, + "imports": [ + "lib/erc-792/contracts/IArbitrable.sol", + "lib/erc-792/contracts/IArbitrator.sol", + "lib/forge-std/lib/ds-test/src/test.sol", + "lib/forge-std/src/Base.sol", + "lib/forge-std/src/StdAssertions.sol", + "lib/forge-std/src/StdChains.sol", + "lib/forge-std/src/StdCheats.sol", + "lib/forge-std/src/StdError.sol", + "lib/forge-std/src/StdInvariant.sol", + "lib/forge-std/src/StdJson.sol", + "lib/forge-std/src/StdMath.sol", + "lib/forge-std/src/StdStorage.sol", + "lib/forge-std/src/StdStyle.sol", + "lib/forge-std/src/StdUtils.sol", + "lib/forge-std/src/Test.sol", + "lib/forge-std/src/Vm.sol", + "lib/forge-std/src/console.sol", + "lib/forge-std/src/console2.sol", + "lib/forge-std/src/interfaces/IMulticall3.sol", + "lib/forge-std/src/safeconsole.sol", + "lib/openzeppelin-contracts/contracts/access/IAccessControl.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol", + "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol", + "lib/openzeppelin-contracts/contracts/proxy/Clones.sol", + "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol", + "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol", + "lib/openzeppelin-contracts/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol", + "lib/openzeppelin-contracts/contracts/utils/Address.sol", + "lib/openzeppelin-contracts/contracts/utils/Arrays.sol", + "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol", + "lib/openzeppelin-contracts/contracts/utils/Strings.sol", + "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol", + "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", + "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/ERC1155Upgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC1155/extensions/ERC1155URIStorageUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardUpgradeable.sol", + "lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelController.sol", + "src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol", + "src/contracts/libraries/LibKlerosBadgeModelController.sol", + "src/contracts/libraries/LibTheBadge.sol", + "src/contracts/libraries/LibTheBadgeModels.sol", + "src/contracts/libraries/LibTheBadgeStore.sol", + "src/contracts/libraries/LibTheBadgeUsers.sol", + "src/contracts/thebadge/TheBadge.sol", + "src/contracts/thebadge/TheBadgeModels.sol", + "src/contracts/thebadge/TheBadgeRoles.sol", + "src/contracts/thebadge/TheBadgeStore.sol", + "src/contracts/thebadge/TheBadgeUsers.sol", + "src/contracts/thebadge/TheBadgeUsersStore.sol", + "src/interfaces/IBadgeModelController.sol", + "src/interfaces/ILightGTCRFactory.sol", + "src/interfaces/ILightGeneralizedTCR.sol", + "src/interfaces/ITheBadge.sol", + "src/interfaces/ITheBadgeModels.sol", + "src/interfaces/ITheBadgeUsers.sol", + "src/utils/CappedMath.sol", + "test/TheBadgeUsers/Config.sol" + ], + "versionRequirement": "^0.8.20", + "artifacts": { + "UpdateUser": { + "0.8.20": { + "path": "TheBadgeUsers/UpdateUser.t.sol/UpdateUser.json", + "build_id": "ef26ad4c7273f5c57dc72b4031f3d088" + } + } + }, + "seenByCompiler": true + } + }, + "builds": [ + "18ece5be1dd93edd010307bf3eeac08b", + "994c85694449f5b0f6f2829ef527d25a", + "9ef9d11a39e37f5ed5794780655226e3", + "ef26ad4c7273f5c57dc72b4031f3d088" + ] +} diff --git a/foundry.toml b/foundry.toml index e6810b2..cb09904 100644 --- a/foundry.toml +++ b/foundry.toml @@ -1,6 +1,21 @@ -[profile.default] +[profile.default] # This is the profile for normal building & deployment, takes a lot of time to compile src = 'src' out = 'out' libs = ['lib'] +viaIR = true +cache_path = "forge-cache" +solc_version = '0.8.20' +optimizer = true +optimizer_runs = 100 + +[profile.test] # This is an optimized profile for running tests, compiles are faster but can't be used for deployment +src = 'src' +out = 'out' +libs = ['lib'] +viaIR = true +cache_path = "forge-cache" +solc_version = '0.8.20' +optimizer = true +optimizer_runs = 100 # See more config options https://github.com/foundry-rs/foundry/tree/master/config \ No newline at end of file diff --git a/package.json b/package.json index c60c0d6..7dacead 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,13 @@ { "name": "hardhat-project", "license": "BUSL-1.1", - "version": "2.3.5", + "version": "2.3.6", "scripts": { "forge": "forge", "build": "forge build", "clean": "forge clean", - "test": "yarn forge test -vvv --via-ir --fork-url https://rpc.ankr.com/eth_sepolia --fork-block-number 3044182", - "test:all": "yarn forge test -vv --fork-url $(grep ALCHEMY_ENDPOINT_URL .env | cut -d '=' -f2) --fork-block-number 3044182", + "test": "FOUNDRY_PROFILE=test forge test -vvv --fork-url https://rpc.ankr.com/eth_sepolia --fork-block-number 4644183", + "test:all": "FOUNDRY_PROFILE=test forge test -vv --via-ir --fork-url $(grep ALCHEMY_ENDPOINT_URL .env | cut -d '=' -f2) --fork-block-number 4644183", "lint": "yarn lint:sol && yarn lint:ts && yarn prettier:check", "lint:sol": "solhint --config ./.solhint.json \"src/**/*.sol\"", "lint:ts": "eslint --config ./.eslintrc.js --ignore-path ./.eslintignore --ext .js,.ts .", @@ -29,7 +29,13 @@ "verify:polygon": "hardhat run --network polygon ./script/03_verify.ts", "deploy:mumbai": "hardhat run --network mumbai ./script/01_deploy.ts", "upgrade:mumbai": "hardhat run --network mumbai ./script/02_upgrade.ts", - "verify:mumbai": "hardhat run --network mumbai ./script/03_verify.ts" + "verify:mumbai": "hardhat run --network mumbai ./script/03_verify.ts", + "deploy:avax": "hardhat run --network snowtrace ./script/01_deploy.ts", + "upgrade:avax": "hardhat run --network snowtrace ./script/02_upgrade.ts", + "verify:avax": "hardhat run --network snowtrace ./script/03_verify.ts", + "deploy:opt": "hardhat run --network optimism ./script/01_deploy.ts", + "upgrade:opt": "hardhat run --network optimism ./script/02_upgrade.ts", + "verify:opt": "hardhat run --network optimism ./script/03_verify.ts" }, "dependencies": { "@kleros/erc-792": "^8.0.0", diff --git a/remappings.txt b/remappings.txt index 9873d53..bf40e44 100644 --- a/remappings.txt +++ b/remappings.txt @@ -2,5 +2,5 @@ ds-test/=lib/forge-std/lib/ds-test/src/ forge-std/=lib/forge-std/src/ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ - -@erc-792/=lib/erc-792/ \ No newline at end of file +@erc-792/=lib/erc-792/ +contracts/=src/contracts/ \ No newline at end of file diff --git a/script/02_upgrade.ts b/script/02_upgrade.ts index 7437cde..0b37b7f 100644 --- a/script/02_upgrade.ts +++ b/script/02_upgrade.ts @@ -86,8 +86,10 @@ const upgradeKlerosControllers = async (hre: HardhatRuntimeEnvironment): Promise const { ethers, network } = hre; const chainId = network.config.chainId; - if (chainId === Chains.polygon || chainId === Chains.mumbai) { - console.warn("Upgrading kleros on Polygon is not allowed, ignoring kleros upgrade..."); + if (chainId !== Chains.gnosis && chainId !== Chains.sepolia) { + console.warn( + "Upgrading kleros on any other chain than sepolia or gnosis is not allowed, ignoring kleros upgrade...", + ); return []; } diff --git a/script/03_verify.ts b/script/03_verify.ts index e02d2f3..fda11db 100644 --- a/script/03_verify.ts +++ b/script/03_verify.ts @@ -31,7 +31,7 @@ const tenderlyVerifyControllers = async (hre: HardhatRuntimeEnvironment) => { ]; await tenderly.verify(...deployedTpControllerContracts); - if (chainId !== Chains.gnosis && chainId == Chains.sepolia) { + if (chainId !== Chains.gnosis && chainId !== Chains.sepolia) { console.log(`Skipping kleros contracts verifications, the network is: ${chainId}...`); return; } @@ -124,7 +124,11 @@ const verifyControllers = async (hre: HardhatRuntimeEnvironment) => { constructorArguments: [], }); - if (chainId !== Chains.polygon && chainId !== Chains.mumbai && chainId !== Chains.avax) { + if (chainId !== Chains.gnosis && chainId !== Chains.sepolia) { + console.warn( + "Verifying kleros on any other chain than sepolia or gnosis is not allowed, ignoring kleros verification...", + ); + } else { const klerosBadgeModelControllerDeployedAddress = contracts.KlerosBadgeModelController.address[chainId as Chains]; const klerosBadgeModelControllerStoreDeployedAddress = contracts.KlerosBadgeModelControllerStore.address[chainId as Chains]; @@ -141,8 +145,6 @@ const verifyControllers = async (hre: HardhatRuntimeEnvironment) => { constructorArguments: [], }); } - - await tenderlyVerifyControllers(hre); }; const verifyMainContracts = async (hre: HardhatRuntimeEnvironment) => { @@ -188,8 +190,6 @@ const verifyMainContracts = async (hre: HardhatRuntimeEnvironment) => { address: theBadgeModels, constructorArguments: [], }); - - await tenderlyVerifyMainContracts(hre); }; async function main() { @@ -201,9 +201,11 @@ async function main() { console.log("Verifying main contracts..."); await verifyMainContracts(hre); + await tenderlyVerifyMainContracts(hre); console.log("Verifying controllers..."); await verifyControllers(hre); + await tenderlyVerifyControllers(hre); } // We recommend this pattern to be able to use async/await everywhere diff --git a/src/contracts/badgeModelControllers/KlerosBadgeModelController.sol b/src/contracts/badgeModelControllers/KlerosBadgeModelController.sol index 20a5636..5471a6c 100644 --- a/src/contracts/badgeModelControllers/KlerosBadgeModelController.sol +++ b/src/contracts/badgeModelControllers/KlerosBadgeModelController.sol @@ -481,6 +481,13 @@ contract KlerosBadgeModelController is return false; } + /** + * @notice It's true if this badgeModel can be minted on behalf of the creator + */ + function isMintableOnBehalf() external pure returns (bool) { + return false; + } + /** * @notice Internal function that returns the TCR contract instance for a given klerosBadgeModel * @param badgeId the klerosBadgeId diff --git a/src/contracts/badgeModelControllers/TpBadgeModelController.sol b/src/contracts/badgeModelControllers/TpBadgeModelController.sol index f341a70..3401db7 100644 --- a/src/contracts/badgeModelControllers/TpBadgeModelController.sol +++ b/src/contracts/badgeModelControllers/TpBadgeModelController.sol @@ -86,7 +86,8 @@ contract TpBadgeModelController is bool isOwner = tpBadgeModelControllerStore.isBadgeModelOwner(badgeModelId, callee); if (!isOwner) { bool isAdministrator = tpBadgeModelControllerStore.isBadgeModelAdministrator(badgeModelId, callee); - if (!isAdministrator) { + bool isTpMinter = tpBadgeModelControllerStore.hasBadgeModelRoleTpMinter(callee); + if (!isAdministrator && !isTpMinter) { revert LibTpBadgeModelController.ThirdPartyModelController__store_OperationNotPermitted(); } } @@ -385,6 +386,13 @@ contract TpBadgeModelController is return true; } + /** + * @notice It's true if this badgeModel can be minted on behalf of the creator + */ + function isMintableOnBehalf() external pure returns (bool) { + return true; + } + /** * @notice Internal function that returns the TCR contract instance for a given badgeId * @param badgeId the badgeId diff --git a/src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol b/src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol index 4fc97de..737b16d 100644 --- a/src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol +++ b/src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol @@ -180,6 +180,10 @@ contract TpBadgeModelControllerStore is OwnableUpgradeable, TheBadgeRoles { return thirdPartyAdministratorsByBadgeModel[badgeModelId][userAddress]; } + function hasBadgeModelRoleTpMinter(address userAddress) external view returns (bool) { + return hasRole(TP_MINTER_ROLE, userAddress); + } + /** * ========================= * Setters diff --git a/src/contracts/thebadge/TheBadge.sol b/src/contracts/thebadge/TheBadge.sol index e7244d5..1632220 100644 --- a/src/contracts/thebadge/TheBadge.sol +++ b/src/contracts/thebadge/TheBadge.sol @@ -148,7 +148,23 @@ contract TheBadge is string memory tokenURI, bytes memory data ) external payable onlyBadgeModelMintable(badgeModelId) nonReentrant { - mintLogic(badgeModelId, account, tokenURI, data); + mintLogic(badgeModelId, account, tokenURI, data, false); + } + + /* + * @notice Receives a badgeModel, and user account, the token data ipfsURI and the controller's data and mints the badge for the user on behalf of the minter + * @param badgeModelId id of theBadgeModel + * @param account the recipient address of the badge, if empty and it's allowed, its stored on the controller's address until its claimed + * @param tokenURI url of the data of the token stored in IPFS + * @param data metaEvidence for the controller + */ + function mintOnBehalf( + uint256 badgeModelId, + address account, + string memory tokenURI, + bytes memory data + ) external payable onlyBadgeModelMintable(badgeModelId) nonReentrant onlyRole(TP_MINTER_ROLE) { + mintLogic(badgeModelId, account, tokenURI, data, true); } function mintInBatch( @@ -173,7 +189,7 @@ contract TheBadge is bytes memory userData = data[i]; // Call the existing mint function - mintLogic(badgeModelId, recipient, tokenURI, userData); + mintLogic(badgeModelId, recipient, tokenURI, userData, false); // Update the total value totalValue += msg.value; @@ -185,7 +201,13 @@ contract TheBadge is } } - function mintLogic(uint256 badgeModelId, address account, string memory tokenURI, bytes memory data) internal { + function mintLogic( + uint256 badgeModelId, + address account, + string memory tokenURI, + bytes memory data, + bool onBehalfMint + ) internal { // Re-declaring variables reduces the stack tree and avoid compilation errors uint256 _badgeModelId = badgeModelId; address _account = account; @@ -198,7 +220,7 @@ contract TheBadge is } // Distribute fees - payProtocolFees(_badgeModelId); + payProtocolFees(_badgeModelId, onBehalfMint); TheBadgeStore.BadgeModel memory _badgeModel = _badgeStore.getBadgeModel(_badgeModelId); TheBadgeStore.BadgeModelController memory _badgeModelController = _badgeStore.getBadgeModelController( @@ -215,6 +237,12 @@ contract TheBadge is _mintingAccount = _badgeModelController.controller; } + if (onBehalfMint) { + if (!controller.isMintableOnBehalf()) { + revert LibTheBadge.TheBadge__requestBadge_badgeNotMintable(); + } + } + // save asset info uint256 badgeId = _badgeStore.getCurrentBadgeIdCounter(); @@ -367,7 +395,7 @@ contract TheBadge is emit ProtocolSettingsUpdated(); } - function payProtocolFees(uint256 _badgeModelId) internal { + function payProtocolFees(uint256 _badgeModelId, bool payFeesToSender) internal { TheBadgeStore.BadgeModel memory _badgeModel = _badgeStore.getBadgeModel(_badgeModelId); // Gas costs of the claim function sponsored by the creator on behalf of the user uint256 claimBadgeProtocolFee = _badgeStore.claimBadgeProtocolFee(); @@ -385,18 +413,20 @@ contract TheBadge is emit PaymentMade( feeCollector, _msgSender(), - theBadgeFee, + theBadgeFee, // The claimBadgeProtocolFee is not show because is not a fee, the money is still owed to the minter LibTheBadge.PaymentType.ProtocolFee, _badgeModelId, "0x" ); - (bool creatorFeeSent, ) = payable(_badgeModel.creator).call{ value: creatorPayment }(""); + address creatorFeesRecipient = payFeesToSender ? _msgSender() : _badgeModel.creator; + + (bool creatorFeeSent, ) = payable(creatorFeesRecipient).call{ value: creatorPayment }(""); if (creatorFeeSent == false) { revert LibTheBadge.TheBadge__mint_creatorFeesPaymentFailed(); } emit PaymentMade( - _badgeModel.creator, + creatorFeesRecipient, feeCollector, creatorPayment, LibTheBadge.PaymentType.CreatorMintFee, diff --git a/src/contracts/thebadge/TheBadgeRoles.sol b/src/contracts/thebadge/TheBadgeRoles.sol index 0c67d34..28316b6 100644 --- a/src/contracts/thebadge/TheBadgeRoles.sol +++ b/src/contracts/thebadge/TheBadgeRoles.sol @@ -10,4 +10,5 @@ contract TheBadgeRoles is AccessControlUpgradeable { bytes32 public constant VERIFIER_ROLE = keccak256("VERIFIER_ROLE"); bytes32 public constant USER_MANAGER_ROLE = keccak256("USER_MANAGER_ROLE"); bytes32 public constant CLAIMER_ROLE = keccak256("CLAIMER_ROLE"); + bytes32 public constant TP_MINTER_ROLE = keccak256("TP_MINTER_ROLE"); } diff --git a/src/interfaces/IBadgeModelController.sol b/src/interfaces/IBadgeModelController.sol index a1cf666..ed780ab 100644 --- a/src/interfaces/IBadgeModelController.sol +++ b/src/interfaces/IBadgeModelController.sol @@ -45,4 +45,6 @@ interface IBadgeModelController { function isBadgeModelMetadataUpdatable() external view returns (bool); function isAutomaticClaimable() external view returns (bool); + + function isMintableOnBehalf() external pure returns (bool); } diff --git a/src/interfaces/ITheBadge.sol b/src/interfaces/ITheBadge.sol index 428e041..2815dca 100644 --- a/src/interfaces/ITheBadge.sol +++ b/src/interfaces/ITheBadge.sol @@ -7,6 +7,13 @@ interface ITheBadge is IERC1155 { // Write methods function mint(uint256 badgeModelId, address account, string memory tokenURI, bytes memory data) external payable; + function mintOnBehalf( + uint256 badgeModelId, + address account, + string memory tokenURI, + bytes memory data + ) external payable; + function mintInBatch( uint256[] memory badgeModelIds, address[] memory recipients, diff --git a/test/BadgeModelControllers/KlerosBadgeModelController/Config.sol b/test/BadgeModelControllers/KlerosBadgeModelController/Config.sol index ce80ee6..f214d28 100644 --- a/test/BadgeModelControllers/KlerosBadgeModelController/Config.sol +++ b/test/BadgeModelControllers/KlerosBadgeModelController/Config.sol @@ -20,10 +20,10 @@ contract Config is Test { address public user1 = vm.addr(2); address public user2 = vm.addr(3); address public feeCollector = vm.addr(4); - // TCR Factory address in goerli - address public _tcrFactory = 0x55A3d9Bd99F286F1817CAFAAB124ddDDFCb0F314; - // Kleros arbitrator address in goerli - address public _arbitrator = 0x1128eD55ab2d796fa92D2F8E1f336d745354a77A; + // TCR Factory address in sepolia + address public _tcrFactory = 0x3FB8314C628E9afE7677946D3E23443Ce748Ac17; + // Kleros arbitrator address in sepolia + address public _arbitrator = 0x90992fb4E15ce0C59aEFfb376460Fda4Ee19C879; string public klerosControllerName = "kleros"; // Set up the contract instances before each test diff --git a/test/BadgeModelControllers/TpBadgeModelController/Config.sol b/test/BadgeModelControllers/TpBadgeModelController/Config.sol index 99f5429..06054ce 100644 --- a/test/BadgeModelControllers/TpBadgeModelController/Config.sol +++ b/test/BadgeModelControllers/TpBadgeModelController/Config.sol @@ -20,10 +20,10 @@ contract Config is Test { address public user1 = vm.addr(2); address public user2 = vm.addr(3); address public feeCollector = vm.addr(4); - // TCR Factory address in goerli - address public _tcrFactory = 0x55A3d9Bd99F286F1817CAFAAB124ddDDFCb0F314; - // Kleros arbitrator address in goerli - address public _arbitrator = 0x1128eD55ab2d796fa92D2F8E1f336d745354a77A; + // TCR Factory address in sepolia + address public _tcrFactory = 0x3FB8314C628E9afE7677946D3E23443Ce748Ac17; + // Kleros arbitrator address in sepolia + address public _arbitrator = 0x90992fb4E15ce0C59aEFfb376460Fda4Ee19C879; string public tpControllerName = "thirdParty"; // Set up the contract instances before each test diff --git a/test/TheBadge.admin.t.2sol b/test/TheBadge.admin.t.2sol deleted file mode 100644 index d221c98..0000000 --- a/test/TheBadge.admin.t.2sol +++ /dev/null @@ -1,125 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; - -import "forge-std/Test.sol"; - -import { Config, TheBadge } from "./utils/Config.sol"; - -contract TheBadgeTestAdmin is Config { - // Test updateAddresses method by calling it from an account that is not an admin and - // verifying that the call is reverted. - function test_updateAddresses_notAdmin() public { - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__onlyAdmin_senderIsNotAdmin.selector); - theBadge.updateAddresses(address(1), address(2)); - } - - // Test updateAddresses method by calling it as the admin with address zero and - // verifying that the call is reverted with a proper error. - function test_updateAddresses_invalidAddress() public { - vm.prank(admin); - vm.expectRevert(TheBadge.TheBadge__updateAddresses_paramAddressesCanNotBeZero.selector); - theBadge.updateAddresses(address(0), address(0)); - } - - // Test updateAddresses method by calling it as the admin with address different than zero and - // verifying that the addresses are updated properly - function test_updateAddresses_shouldWork() public { - vm.prank(admin); - theBadge.updateAddresses(address(1), address(2)); - - assertEq(theBadge.admin(), address(1)); - assertEq(theBadge.feeCollector(), address(2)); - } - - // Test updateFees method by calling it from an account that is not an admin and - // verifying that the call is reverted. - function test_updateFees_notAdmin() public { - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__onlyAdmin_senderIsNotAdmin.selector); - theBadge.updateValues(0, 0, 0, 0); - } - - // Test updateFees method by calling it as the admin with address different than zero and - // verifying that the addresses are updated properly - function test_updateFees_shouldWork() public { - vm.prank(admin); - theBadge.updateValues(1, 2, 3, 4); - - assertEq(theBadge.mintBadgeDefaultFee(), 1); - assertEq(theBadge.minBadgeMintValue(), 2); - assertEq(theBadge.createBadgeTypeValue(), 3); - assertEq(theBadge.registerEmitterValue(), 4); - } - - // Test setBadgeTypeController method by calling it from a non admin address and - // verifying that reverts - function test_setBadgeTypeController_notAdmin() public { - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__onlyAdmin_senderIsNotAdmin.selector); - theBadge.setBadgeTypeController("test", address(1)); - } - - // Test setBadgeTypeController method by calling it from an admin address and - // verifying that reverts if controller address is 0. - function test_setBadgeTypeController_zeroAddress() public { - vm.prank(admin); - vm.expectRevert(TheBadge.TheBadge__setBadgeTypeController_notFound.selector); - theBadge.setBadgeTypeController("test", address(0)); - } - - // Test setBadgeTypeController method by calling it from an admin address and - // verifying that reverts if controller address is 0. - function test_setBadgeTypeController_emptyName() public { - vm.prank(admin); - vm.expectRevert(TheBadge.TheBadge__setBadgeTypeController_emptyName.selector); - theBadge.setBadgeTypeController("", address(1)); - } - - // Test setBadgeTypeController method by calling it from an admin address and - // verifying that reverts if the controller name is already set - function test_setBadgeTypeController_alreadySet() public { - vm.prank(admin); - vm.expectRevert(TheBadge.TheBadge__setBadgeTypeController_alreadySet.selector); - theBadge.setBadgeTypeController("kleros", address(2)); - } - - // Test setBadgeTypeController method by calling it from an admin address and - // verifying that the controller is set - function test_setBadgeTypeController_shouldWork() public { - vm.prank(admin); - theBadge.setBadgeTypeController("test", address(5)); - - (address controller, ) = theBadge.badgeTypeController("test"); - assertEq(controller, address(5)); - } - - // Test setControllerStatus method by calling it from an non admin address and - // verifying that the call reverts - function test_setControllerStatus_notAdmin() public { - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__onlyAdmin_senderIsNotAdmin.selector); - theBadge.setControllerStatus("test", false); - } - - // Test setControllerStatus method by calling it from an admin address and - // but with an nonexisting controller should revert - function test_setControllerStatus_notFound() public { - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__onlyAdmin_senderIsNotAdmin.selector); - theBadge.setControllerStatus("test", false); - } - - // Test setControllerStatus method by calling it from an admin address should work - function test_setControllerStatus_shouldWork() public { - (, bool oldStatus) = theBadge.badgeTypeController("kleros"); - - vm.prank(admin); - theBadge.setControllerStatus("kleros", true); - - (, bool newStatus) = theBadge.badgeTypeController("kleros"); - - assertEq(oldStatus, false); - assertEq(newStatus, true); - } -} diff --git a/test/TheBadge.core.t.2sol b/test/TheBadge.core.t.2sol deleted file mode 100644 index c318a25..0000000 --- a/test/TheBadge.core.t.2sol +++ /dev/null @@ -1,409 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; - -import "forge-std/Test.sol"; -import { AddressUpgradeable } from "../lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol"; - -import { ILightGeneralizedTCR } from "../src/interfaces/ILightGeneralizedTCR.sol"; - -import { Config, TheBadge } from "./utils/Config.sol"; - -contract TheBadgeTestCore is Config { - function test_createBadgeType_notAnEmitter() public { - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__onlyEmitter_senderIsNotAnEmitter.selector); - theBadge.createBadgeType(badgeType, "0x"); - } - - // Test createBadgeType method by calling it from an emitter and - // verifying that if value is lower than createBadgeTypeValue, it should revert - function test_createBadgeType_wrongValue() public { - vm.prank(admin); - theBadge.updateProtocolValues(0, 0, 1 ether, 0); - - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__createBadgeType_wrongValue.selector); - theBadge.createBadgeType{ value: 0.9 ether }(badgeType, ""); - } - - // Test createBadgeType method by calling it from an emitter and - // verifying that if the badge mint value is lower than minBadgeMintValue, it should revert - function test_createBadgeType_lowerMintBadgeValue() public { - vm.prank(admin); - theBadge.updateProtocolValues(0, 0.5 ether, 0, 0); - - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - badgeType.mintCost = 0.4 ether; - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__createBadgeType_invalidMintCost.selector); - theBadge.createBadgeType(badgeType, ""); - } - - // Test createBadgeType method by calling it from an emitter and - // verifying that if the the badge type controller should exists, it should revert - function test_createBadgeType_invalidController() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - badgeType.controllerName = "noController"; - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__createBadgeType_invalidController.selector); - theBadge.createBadgeType(badgeType, ""); - } - - // Test createBadgeType method by calling it from an emitter and - // verifying that should revert if the controller is paused - function test_createBadgeType_controllerPaused() public { - vm.prank(admin); - theBadge.setControllerStatus("kleros", true); - - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__createBadgeType_controllerIsPaused.selector); - theBadge.createBadgeType(badgeType, ""); - } - - // Test createBadgeType method by calling it from an emitter and - // verifying that it should work - function test_createBadgeType_shouldWork() public { - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - - vm.prank(admin); - theBadge.updateProtocolValues(0, 0, 1 ether, 0); - - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - uint256 oldBalance = feeCollector.balance; - theBadge.createBadgeType{ value: 1 ether }(badgeType, ""); - uint256 newBalance = feeCollector.balance; - - ( - address emitter, - string memory controllerName, - bool paused, - uint256 mintCost, - uint256 mintFee, - uint256 validFor - ) = theBadge.badgeType(1); - - assertEq(newBalance, oldBalance + 1 ether); - assertEq(theBadge.uri(1), "ipfs/metadataForBadge.json"); - assertEq(vegeta, emitter); - assertEq(controllerName, badgeType.controllerName); - assertEq(paused, false); - assertEq(mintCost, 0); - assertEq(mintFee, theBadge.mintBadgeDefaultFee()); - assertEq(validFor, badgeType.validFor); - } - - // Test updateBadgeType method by calling it from an emitter and - // verifying that it should fail if sender is not the badge emitter - function test_updateBadgeType_notBadgeTypeOwner() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - theBadge.createBadgeType(badgeType, ""); - - vm.prank(goku); - vm.expectRevert(TheBadge.TheBadge__updateBadgeType_notBadgeTypeOwner.selector); - theBadge.updateBadgeType(1, 0.01 ether, 0, false); - } - - // Test updateBadgeType method by calling it from an emitter and - // verifying that it should fail if mintCost is lower than allowed - function test_updateBadgeType_invalidMintCost() public { - vm.prank(admin); - theBadge.updateProtocolValues(0, 0.1 ether, 0, 0); - - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - badgeType.mintCost = 0.2 ether; - theBadge.createBadgeType(badgeType, ""); - - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__updateBadgeType_invalidMintCost.selector); - theBadge.updateBadgeType(1, 0.01 ether, 0, false); - } - - // Test updateBadgeType method by calling it from an emitter and - // verifying that it should work - function test_updateBadgeType_shouldWork() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - theBadge.createBadgeType(badgeType, ""); - - (, , bool oldPaused, uint256 oldMintCost, , ) = theBadge.badgeType(1); - - vm.prank(vegeta); - theBadge.updateBadgeType(1, 0.01 ether, 0, true); - - (, , bool paused, uint256 mintCost, , ) = theBadge.badgeType(1); - - assertEq(oldPaused, false); - assertEq(oldMintCost, 0); - assertEq(paused, true); - assertEq(mintCost, 0.01 ether); - } - - // Test updateBadgeTypeFee method by calling it from an admin - // to an non-existing badge-type should revert - function test_updateBadgeTypeFee_badgeTypeNotFound() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - theBadge.createBadgeType(badgeType, ""); - - vm.prank(admin); - vm.expectRevert(TheBadge.TheBadge__updateBadgeTypeFee_badgeTypeNotFound.selector); - theBadge.updateBadgeTypeFee(777, 0); - } - - // Test updateBadgeTypeFee method by calling it from an account not admin - // verifying that it should revert - function test_updateBadgeTypeFee_notAdmin() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - theBadge.createBadgeType(badgeType, ""); - - vm.prank(vegeta); - vm.expectRevert(TheBadge.TheBadge__onlyAdmin_senderIsNotAdmin.selector); - theBadge.updateBadgeTypeFee(1, 0); - } - - // Test updateBadgeTypeFee method by calling it from an admin - // to an existing badge-type should work - function test_updateBadgeTypeFee_shouldWork() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - theBadge.createBadgeType(badgeType, ""); - - vm.prank(admin); - theBadge.updateBadgeTypeFee(1, 0.777 ether); - - (, , , , uint256 mintFee, ) = theBadge.badgeType(1); - - assertEq(mintFee, 0.777 ether); - } - - // Test getRequestBadgeValue method, it should return the correct cost - // to mint the badge, including badgeType cost and strategy cost - function test__getRequestBadgeValue_shouldWork() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - badgeType.mintCost = 1 ether; - theBadge.createBadgeType(badgeType, ""); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.badgeRequestValue.selector, 1), - abi.encode(1 ether) - ); - - assertEq(theBadge.badgeRequestValue(1), 2 ether); - } - - // Test requestBadge by trying to mint an non-existing badge-type - // It is expected to revert - function test__requestBadge_nonExistingBadgeType() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - theBadge.createBadgeType(badgeType, ""); - - vm.prank(goku); - vm.expectRevert(TheBadge.TheBadge__requestBadge_badgeTypeNotFound.selector); - theBadge.requestBadge(777, goku, ""); - } - - // Test requestBadge by trying to mint a badge sending a different value - // It is expected to revert - function test__requestBadge_wrongValue() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - badgeType.mintCost = 1 ether; - theBadge.createBadgeType(badgeType, ""); - - vm.prank(goku); - vm.expectRevert(TheBadge.TheBadge__requestBadge_wrongValue.selector); - theBadge.requestBadge(1, goku, ""); - } - - // Test requestBadge by trying to mint a badge whose controller is paused - // It is expected to revert - function test__requestBadge_controllerPaused() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - badgeType.mintCost = 1 ether; - theBadge.createBadgeType(badgeType, ""); - - vm.prank(admin); - theBadge.setControllerStatus("kleros", true); - - vm.prank(goku); - vm.expectRevert(TheBadge.TheBadge__requestBadge_controllerIsPaused.selector); - theBadge.requestBadge{ value: 1 ether }(1, goku, ""); - } - - // Test requestBadge by trying to mint a badge, it should work - function test__requestBadge_shouldWork() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - uint256 vegetaOldBalance = vegeta.balance; - uint256 feeCollectorOldBalance = feeCollector.balance; - - vm.prank(vegeta); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.createBadgeType.selector, 1, ""), - "" - ); - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - badgeType.mintCost = 1 ether; - theBadge.createBadgeType(badgeType, ""); - - vm.prank(goku); - vm.mockCall( - address(klerosController), - 0, - abi.encodeWithSelector(klerosController.requestBadge.selector, goku, 1, goku, ""), - "" - ); - theBadge.requestBadge{ value: 1 ether }(1, goku, ""); - - uint256 dueDate = theBadge.badge(1, goku); - - assertEq(vegeta.balance, vegetaOldBalance + 0.6 ether); - assertEq(feeCollector.balance, feeCollectorOldBalance + 0.4 ether); - assertEq(dueDate, block.timestamp + badgeType.validFor); - } - - function test__feeCollector_shouldWork() public { - vm.prank(goku); - uint256 feeCollectorOldBalance = feeCollector.balance; - payable(address(theBadge)).transfer(1 ether); - - uint256 prevBalance = address(theBadge).balance; - - vm.prank(goku); - theBadge.collectFees(); - - assertGt(prevBalance, 0); - assertEq(address(theBadge).balance, 0); - assertEq(feeCollector.balance, feeCollectorOldBalance + prevBalance); - } -} diff --git a/test/TheBadge/Config.sol b/test/TheBadge/Config.sol index a047e8b..5bb4f58 100644 --- a/test/TheBadge/Config.sol +++ b/test/TheBadge/Config.sol @@ -15,9 +15,12 @@ import { TpBadgeModelController } from "../../src/contracts/badgeModelController contract Config is Test { address admin = vm.addr(1); + address tpMinter = vm.addr(6); address feeCollector = vm.addr(2); address u1 = vm.addr(3); address u2 = vm.addr(4); + bytes32 tpMinterRole = keccak256("TP_MINTER_ROLE"); + bytes32 adminRole = 0x00; TheBadgeStore badgeStore; TheBadge theBadge; @@ -31,14 +34,16 @@ contract Config is Test { string public klerosControllerName = "kleros"; string public tpControllerName = "thirdParty"; - // TCR Factory address in goerli - address public _tcrFactory = 0x55A3d9Bd99F286F1817CAFAAB124ddDDFCb0F314; - // Kleros arbitrator address in goerli - address public _arbitrator = 0x1128eD55ab2d796fa92D2F8E1f336d745354a77A; + // TCR Factory address in sepolia + address public _tcrFactory = 0x3FB8314C628E9afE7677946D3E23443Ce748Ac17; + // Kleros arbitrator address in sepolia + address public _arbitrator = 0x90992fb4E15ce0C59aEFfb376460Fda4Ee19C879; function setUp() public { vm.deal(u1, 1 ether); vm.deal(u2, 1 ether); + vm.deal(admin, 1 ether); + vm.deal(tpMinter, 1 ether); vm.deal(feeCollector, 0 ether); address badgeUsersStoreProxy = Clones.clone(address(new TheBadgeUsersStore())); @@ -81,11 +86,18 @@ contract Config is Test { badgeModels.addBadgeModelController(tpControllerName, address(tpBadgeModelControllerInstance)); vm.stopPrank(); - // Finally gives the role USER_MANAGER_ROLE to the contract TheBadgeModels to allow it to call the method makeUserCreator on the contract TheBadgeUsers + // Gives the role USER_MANAGER_ROLE to the contract TheBadgeModels to allow it to call the method makeUserCreator on the contract TheBadgeUsers // Fore more details you can check the 01_deploy.ts script inside the /script folder bytes32 managerRole = keccak256("USER_MANAGER_ROLE"); vm.prank(admin); badgeUsers.grantRole(managerRole, address(badgeModels)); + + // Finally gives the role TP_MINTER_ROLE to the contract TheBadgeModels to allow it to call mintOnBehalf method for thirdParty badges + vm.prank(admin); + theBadge.grantRole(tpMinterRole, address(tpMinter)); + vm.prank(admin); + // This is for hasBadgeModelRoleTpMinter to work within the tpBadgeModelControllerInstance + tpBadgeModelControllerStoreInstance.grantRole(tpMinterRole, address(tpMinter)); } function setUpControllers() public { diff --git a/test/TheBadge/Mint.t.sol b/test/TheBadge/Mint.t.sol index 9646ac3..78e6f35 100644 --- a/test/TheBadge/Mint.t.sol +++ b/test/TheBadge/Mint.t.sol @@ -2,12 +2,12 @@ pragma solidity ^0.8.20; import { Config } from "./Config.sol"; -import { TheBadgeStore } from "../../src/contracts/thebadge/TheBadgeStore.sol"; +import { TheBadgeStore } from "contracts/thebadge/TheBadgeStore.sol"; import { IBadgeModelController } from "../../src/interfaces/IBadgeModelController.sol"; -import { KlerosBadgeModelController } from "../../../src/contracts/badgeModelControllers/KlerosBadgeModelController.sol"; -import { KlerosBadgeModelControllerStore } from "../../../src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol"; -import { TpBadgeModelControllerStore } from "../../src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol"; -import { TpBadgeModelController } from "../../src/contracts/badgeModelControllers/TpBadgeModelController.sol"; +import { KlerosBadgeModelController } from "contracts/badgeModelControllers/KlerosBadgeModelController.sol"; +import { KlerosBadgeModelControllerStore } from "contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol"; +import { TpBadgeModelControllerStore } from "contracts/badgeModelControllers/TpBadgeModelControllerStore.sol"; +import { TpBadgeModelController } from "contracts/badgeModelControllers/TpBadgeModelController.sol"; contract Mint is Config { function klerosBadgeModelSetup(uint256 mintCreatorFee) public { diff --git a/test/TheBadge/MintOnBehalf.t.sol b/test/TheBadge/MintOnBehalf.t.sol new file mode 100644 index 0000000..91be1f7 --- /dev/null +++ b/test/TheBadge/MintOnBehalf.t.sol @@ -0,0 +1,384 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.20; + +import { Config } from "./Config.sol"; +import { TheBadgeStore } from "contracts/thebadge/TheBadgeStore.sol"; +import { IBadgeModelController } from "../../src/interfaces/IBadgeModelController.sol"; +import { KlerosBadgeModelController } from "contracts/badgeModelControllers/KlerosBadgeModelController.sol"; +import { KlerosBadgeModelControllerStore } from "contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol"; +import { TpBadgeModelControllerStore } from "contracts/badgeModelControllers/TpBadgeModelControllerStore.sol"; +import { TpBadgeModelController } from "contracts/badgeModelControllers/TpBadgeModelController.sol"; +import { LibTheBadge } from "contracts/libraries/LibTheBadge.sol"; +import { IAccessControl } from "@openzeppelin/contracts/access/IAccessControl.sol"; + +contract Mint is Config { + function klerosBadgeModelSetup(uint256 mintCreatorFee) public { + TheBadgeStore.CreateBadgeModel memory args = TheBadgeStore.CreateBadgeModel({ + metadata: "metadata", + controllerName: klerosControllerName, + mintCreatorFee: mintCreatorFee, + validFor: 100 + }); + uint256[4] memory baseDeposits = [uint256(0), uint256(0), uint256(0), uint256(0)]; + uint256[3] memory stakeMultipliers = [uint256(1), uint256(1), uint256(1)]; + KlerosBadgeModelControllerStore.CreateBadgeModel memory klerosBadgeModel = KlerosBadgeModelControllerStore + .CreateBadgeModel({ + governor: vm.addr(1), + courtId: 0, + numberOfJurors: 1, + registrationMetaEvidence: "ipfs://registrationMetaEvidence.json", + clearingMetaEvidence: "ipfs://clearingMetaEvidence.json", + challengePeriodDuration: 0, + baseDeposits: baseDeposits, + stakeMultipliers: stakeMultipliers + }); + bytes memory createBadgeModelData = abi.encode(klerosBadgeModel); + + // Creates the klerosBadgeModel + vm.startPrank(u1); + badgeModels.createBadgeModel{ value: 0 }(args, createBadgeModelData); + vm.stopPrank(); + } + + function thirdPartyBadgeModelSetup(uint256 mintCreatorFee) public { + TheBadgeStore.CreateBadgeModel memory args = TheBadgeStore.CreateBadgeModel({ + metadata: "metadata", + controllerName: tpControllerName, + mintCreatorFee: mintCreatorFee, + validFor: 100 + }); + + address[] memory administrators = new address[](1); + administrators[0] = u1; + TpBadgeModelControllerStore.CreateBadgeModel memory tpBadgeModel = TpBadgeModelControllerStore + .CreateBadgeModel({ + administrators: administrators, + requirementsIPFSHash: "ipfs://requirementsIPFSHash.json" + }); + bytes memory createBadgeModelData = abi.encode(tpBadgeModel); + + // Creates the tpBadgeModel + vm.startPrank(u1); + badgeModels.createBadgeModel{ value: 0 }(args, createBadgeModelData); + vm.stopPrank(); + } + + function testKlerosCantBeMintedOnBehalfWithNormalAccount() public { + // register user + // U1 is the creator; U2 is the minter + vm.prank(u1); + badgeUsers.registerUser("user metadata", false); + + uint256 claimProtocolFee = 0.0004e18; + + // Setups the claim protocol fee + vm.prank(admin); + theBadge.updateClaimBadgeProtocolFee(claimProtocolFee); + klerosBadgeModelSetup(0.1e18); + + KlerosBadgeModelControllerStore.MintParams memory mintKlerosData = KlerosBadgeModelControllerStore.MintParams({ + evidence: "ipfs://evidence" + }); + + uint256 badgeModelId = 0; + string memory tokenURI = "ipfs://metadata"; + bytes memory mintData = abi.encode(mintKlerosData); + + uint256 mintValue = theBadge.mintValue(badgeModelId); + uint256 mintCreatorFee = 0.1e18; + + // Ensures that the controller fee is well calculated + uint256 controllerMintValue = klerosBadgeModelControllerInstance.mintValue(badgeModelId); + assertEq(mintValue, controllerMintValue + mintCreatorFee + claimProtocolFee); + + vm.expectRevert( + abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, u2, tpMinterRole) + ); + + vm.prank(u2); + // Executes the mint + theBadge.mintOnBehalf{ value: mintValue }(badgeModelId, u1, tokenURI, mintData); + } + + function testKlerosCantBeMintedOnBehalfWithAdminAccount() public { + // register user + // U1 is the creator; U2 is the minter + vm.prank(u1); + badgeUsers.registerUser("user metadata", false); + + uint256 claimProtocolFee = 0.0004e18; + + // Setups the claim protocol fee + vm.prank(admin); + theBadge.updateClaimBadgeProtocolFee(claimProtocolFee); + klerosBadgeModelSetup(0.1e18); + + KlerosBadgeModelControllerStore.MintParams memory mintKlerosData = KlerosBadgeModelControllerStore.MintParams({ + evidence: "ipfs://evidence" + }); + + uint256 badgeModelId = 0; + string memory tokenURI = "ipfs://metadata"; + bytes memory mintData = abi.encode(mintKlerosData); + + uint256 mintValue = theBadge.mintValue(badgeModelId); + uint256 mintCreatorFee = 0.1e18; + + // Ensures that the controller fee is well calculated + uint256 controllerMintValue = klerosBadgeModelControllerInstance.mintValue(badgeModelId); + assertEq(mintValue, controllerMintValue + mintCreatorFee + claimProtocolFee); + + vm.expectRevert( + abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, admin, tpMinterRole) + ); + + vm.prank(admin); + // Executes the mint + theBadge.mintOnBehalf{ value: mintValue }(badgeModelId, u1, tokenURI, mintData); + } + + function testKlerosCantBeMintedOnBehalfWithTpMinterRoleAccount() public { + // register user + // U1 is the creator; U2 is the minter + vm.prank(u1); + badgeUsers.registerUser("user metadata", false); + + uint256 claimProtocolFee = 0.0004e18; + + // Setups the claim protocol fee + vm.prank(admin); + theBadge.updateClaimBadgeProtocolFee(claimProtocolFee); + klerosBadgeModelSetup(0.1e18); + + KlerosBadgeModelControllerStore.MintParams memory mintKlerosData = KlerosBadgeModelControllerStore.MintParams({ + evidence: "ipfs://evidence" + }); + + uint256 badgeModelId = 0; + string memory tokenURI = "ipfs://metadata"; + bytes memory mintData = abi.encode(mintKlerosData); + + uint256 mintValue = theBadge.mintValue(badgeModelId); + uint256 mintCreatorFee = 0.1e18; + + // Ensures that the controller fee is well calculated + uint256 controllerMintValue = klerosBadgeModelControllerInstance.mintValue(badgeModelId); + assertEq(mintValue, controllerMintValue + mintCreatorFee + claimProtocolFee); + + vm.expectRevert(LibTheBadge.TheBadge__requestBadge_badgeNotMintable.selector); + + vm.prank(tpMinter); + // Executes the mint + theBadge.mintOnBehalf{ value: mintValue }(badgeModelId, u1, tokenURI, mintData); + } + + function testWorksWithThirdPartyWithRecipientOnBehalf() public { + // register user + // U1 is the creator; U2 is the minter; tpMinter its an special user with tpMinterRole + vm.prank(u1); + badgeUsers.registerUser("user metadata", false); + + // Register the user as third party one + vm.prank(u1); + badgeUsers.submitUserVerification(tpControllerName, "ipfs://evidenceMetadata.json"); + + // Verify the user to be a third party user + vm.prank(admin); + badgeUsers.executeUserVerification(u1, tpControllerName, true); + + uint256 claimProtocolFee = 0.0004e18; + + // Setups the claim protocol fee + vm.prank(admin); + theBadge.updateClaimBadgeProtocolFee(claimProtocolFee); + thirdPartyBadgeModelSetup(0.1e18); + + TpBadgeModelControllerStore.MintParams memory mintThirdPartyData = TpBadgeModelControllerStore.MintParams({ + badgeDataUri: "ipfs://evidence" + }); + + uint256 badgeModelId = 0; + string memory tokenURI = "ipfs://metadata"; + bytes memory mintData = abi.encode(mintThirdPartyData); + uint256 mintCreatorFee = 0.1e18; + uint256 mintValue = theBadge.mintValue(badgeModelId); + uint256 mintProtocolFeeInBps = badgeStore.mintBadgeProtocolDefaultFeeInBps(); + uint256 userCreatorInitialBalance = address(u1).balance; + uint256 feeCollectorInitialBalance = address(feeCollector).balance; + uint256 adminInitialBalance = address(tpMinter).balance; + + // Ensures that the controller fee is well calculated + uint256 controllerMintValue = tpBadgeModelControllerInstance.mintValue(badgeModelId); + assertEq(mintValue, controllerMintValue + mintCreatorFee + claimProtocolFee); + + // Executes the mint and sends the badge to the user2 + vm.prank(tpMinter); + theBadge.mintOnBehalf{ value: mintValue }(badgeModelId, u2, tokenURI, mintData); + + uint256 userCreatorFinalBalance = address(u1).balance; + uint256 feeCollectorFinalBalance = address(feeCollector).balance; + uint256 adminFinalBalance = address(tpMinter).balance; + + // Ensures that the TheBadge's fee collector receives his payment + uint256 theBadgeFees = (mintCreatorFee * mintProtocolFeeInBps) / 10_000; + assertEq(feeCollectorFinalBalance, feeCollectorInitialBalance + theBadgeFees + claimProtocolFee); + + // Ensures that the tp creator did not paid anything + assertEq(userCreatorFinalBalance, userCreatorInitialBalance); + + // Ensures that the admin did the pay and recovered the fees + assertEq(adminFinalBalance, adminInitialBalance - mintValue - theBadgeFees + mintCreatorFee); + + // Ensures that theBadgeBalance is 0 + assertEq(address(theBadge).balance, 0); + + // Ensures that the thirdPartyController balance is 0 + assertEq(address(tpBadgeModelControllerInstance).balance, 0); + + // Ensures that the's no deposit stored on the tp tcr + TpBadgeModelControllerStore.ThirdPartyBadgeModel memory _tpBadgeModel = tpBadgeModelControllerStoreInstance + .getBadgeModel(badgeModelId); + uint256 tcrBalance = address(_tpBadgeModel.tcrList).balance; + assertEq(tcrBalance, 0); + + // Ensures that the recipient has his badge + uint256 badgeId = badgeStore.getCurrentBadgeIdCounter() - 1; + assertGt(theBadge.balanceOf(u2, badgeId), 0); + + // Ensures that the badge is not claimable + assertFalse(theBadge.isClaimable(badgeId)); + + // Ensures that the badge is not expired + assertFalse(theBadge.isExpired(badgeId)); + + // Ensures that the badgeModel for the user now contains 1 badge minted + assertEq(theBadge.balanceOfBadgeModel(u2, 0), 1); + } + + function testWorksWithThirdPartyWithoutRecipientOnBehalf() public { + // register user + // U1 is the creator; U2 is the minter + vm.prank(u1); + badgeUsers.registerUser("user metadata", false); + + // Register the user as third party one + vm.prank(u1); + badgeUsers.submitUserVerification(tpControllerName, "ipfs://evidenceMetadata.json"); + + // Verify the user to be a third party user + vm.prank(admin); + badgeUsers.executeUserVerification(u1, tpControllerName, true); + + uint256 claimProtocolFee = 0.0004e18; + + // Setups the claim protocol fee + vm.prank(admin); + theBadge.updateClaimBadgeProtocolFee(claimProtocolFee); + thirdPartyBadgeModelSetup(0.1e18); + + TpBadgeModelControllerStore.MintParams memory mintThirdPartyData = TpBadgeModelControllerStore.MintParams({ + badgeDataUri: "ipfs://evidence" + }); + + uint256 badgeModelId = 0; + string memory tokenURI = "ipfs://metadata"; + bytes memory mintData = abi.encode(mintThirdPartyData); + uint256 mintCreatorFee = 0.1e18; + uint256 mintValue = theBadge.mintValue(badgeModelId); + uint256 mintProtocolFeeInBps = badgeStore.mintBadgeProtocolDefaultFeeInBps(); + uint256 userCreatorInitialBalance = address(u1).balance; + uint256 feeCollectorInitialBalance = address(feeCollector).balance; + uint256 adminInitialBalance = address(tpMinter).balance; + + // Ensures that the controller fee is well calculated + uint256 controllerMintValue = tpBadgeModelControllerInstance.mintValue(badgeModelId); + assertEq(mintValue, controllerMintValue + mintCreatorFee + claimProtocolFee); + + // Executes the mint and sends the badge to undefined recipient + vm.prank(tpMinter); + theBadge.mintOnBehalf{ value: mintValue }(badgeModelId, address(0), tokenURI, mintData); + + uint256 userCreatorFinalBalance = address(u1).balance; + uint256 feeCollectorFinalBalance = address(feeCollector).balance; + uint256 adminFinalBalance = address(tpMinter).balance; + + // Ensures that the TheBadge's fee collector receives his payment + uint256 theBadgeFees = (mintCreatorFee * mintProtocolFeeInBps) / 10_000; + assertEq(feeCollectorFinalBalance, feeCollectorInitialBalance + theBadgeFees + claimProtocolFee); + + // Ensures that the tp creator did not paid anything + assertEq(userCreatorFinalBalance, userCreatorInitialBalance); + + // Ensures that the admin did the pay and recovered the fees + assertEq(adminFinalBalance, adminInitialBalance - mintValue - theBadgeFees + mintCreatorFee); + + // Ensures that theBadgeBalance is 0 + assertEq(address(theBadge).balance, 0); + + // Ensures that the thirdPartyController balance is 0 + assertEq(address(tpBadgeModelControllerInstance).balance, 0); + + // Ensures that the's no deposit stored on the tp tcr + TpBadgeModelControllerStore.ThirdPartyBadgeModel memory _tpBadgeModel = tpBadgeModelControllerStoreInstance + .getBadgeModel(badgeModelId); + uint256 tcrBalance = address(_tpBadgeModel.tcrList).balance; + assertEq(tcrBalance, 0); + + // Ensures that the badge is stored on the tpBadgeModelControllerInstance + uint256 badgeId = badgeStore.getCurrentBadgeIdCounter() - 1; + assertGt(theBadge.balanceOf(address(tpBadgeModelControllerInstance), badgeId), 0); + + // Ensures that the badge is claimable + assertTrue(theBadge.isClaimable(badgeId)); + + // Ensures that the badge is not expired + assertFalse(theBadge.isExpired(badgeId)); + + // Ensures that the badgeModel for the badgeModel user now contains 1 badge minted + assertEq(theBadge.balanceOfBadgeModel(address(tpBadgeModelControllerInstance), 0), 1); + } + + function testNotWorksWithThirdPartyOnBehalfWithoutTpRole() public { + // register user + // U1 is the creator; U2 is the minter; tpMinter its an special user with tpMinterRole + vm.prank(u1); + badgeUsers.registerUser("user metadata", false); + + // Register the user as third party one + vm.prank(u1); + badgeUsers.submitUserVerification(tpControllerName, "ipfs://evidenceMetadata.json"); + + // Verify the user to be a third party user + vm.prank(admin); + badgeUsers.executeUserVerification(u1, tpControllerName, true); + + uint256 claimProtocolFee = 0.0004e18; + + // Setups the claim protocol fee + vm.prank(admin); + theBadge.updateClaimBadgeProtocolFee(claimProtocolFee); + thirdPartyBadgeModelSetup(0.1e18); + + TpBadgeModelControllerStore.MintParams memory mintThirdPartyData = TpBadgeModelControllerStore.MintParams({ + badgeDataUri: "ipfs://evidence" + }); + + uint256 badgeModelId = 0; + string memory tokenURI = "ipfs://metadata"; + bytes memory mintData = abi.encode(mintThirdPartyData); + uint256 mintCreatorFee = 0.1e18; + uint256 mintValue = theBadge.mintValue(badgeModelId); + + // Ensures that the controller fee is well calculated + uint256 controllerMintValue = tpBadgeModelControllerInstance.mintValue(badgeModelId); + assertEq(mintValue, controllerMintValue + mintCreatorFee + claimProtocolFee); + + vm.expectRevert( + abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, u1, tpMinterRole) + ); + + // Executes the mint and sends the badge to the user2 + vm.prank(u1); + theBadge.mintOnBehalf{ value: mintValue }(badgeModelId, u2, tokenURI, mintData); + } +} diff --git a/test/TheBadge/MintValue.t.sol b/test/TheBadge/MintValue.t.sol index 16bf2d6..3b496b4 100644 --- a/test/TheBadge/MintValue.t.sol +++ b/test/TheBadge/MintValue.t.sol @@ -2,12 +2,12 @@ pragma solidity ^0.8.20; import { Config } from "./Config.sol"; -import { TheBadgeStore } from "../../src/contracts/thebadge/TheBadgeStore.sol"; +import { TheBadgeStore } from "contracts/thebadge/TheBadgeStore.sol"; import { IBadgeModelController } from "../../src/interfaces/IBadgeModelController.sol"; -import { KlerosBadgeModelController } from "../../../src/contracts/badgeModelControllers/KlerosBadgeModelController.sol"; -import { KlerosBadgeModelControllerStore } from "../../../src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol"; -import { TpBadgeModelController } from "../../../src/contracts/badgeModelControllers/TpBadgeModelController.sol"; -import { TpBadgeModelControllerStore } from "../../../src/contracts/badgeModelControllers/TpBadgeModelControllerStore.sol"; +import { KlerosBadgeModelController } from "contracts/badgeModelControllers/KlerosBadgeModelController.sol"; +import { KlerosBadgeModelControllerStore } from "contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol"; +import { TpBadgeModelController } from "contracts/badgeModelControllers/TpBadgeModelController.sol"; +import { TpBadgeModelControllerStore } from "contracts/badgeModelControllers/TpBadgeModelControllerStore.sol"; contract MintValue is Config { function testWorksKlerosWithoutMintCreatorFee() public { diff --git a/test/TheBadgeModels/Config.sol b/test/TheBadgeModels/Config.sol index fbf33cb..2be5ee2 100644 --- a/test/TheBadgeModels/Config.sol +++ b/test/TheBadgeModels/Config.sol @@ -16,10 +16,10 @@ contract Config is Test { address feeCollector = vm.addr(2); address u1 = vm.addr(3); address u2 = vm.addr(4); - // TCR Factory address in goerli - address public _tcrFactory = 0x55A3d9Bd99F286F1817CAFAAB124ddDDFCb0F314; - // Kleros arbitrator address in goerli - address public _arbitrator = 0x1128eD55ab2d796fa92D2F8E1f336d745354a77A; + // TCR Factory address in sepolia + address public _tcrFactory = 0x3FB8314C628E9afE7677946D3E23443Ce748Ac17; + // Kleros arbitrator address in sepolia + address public _arbitrator = 0x90992fb4E15ce0C59aEFfb376460Fda4Ee19C879; string public klerosControllerName = "kleros"; string public tpControllerName = "thirdParty"; diff --git a/test/TheBadgeUsers/Config.sol b/test/TheBadgeUsers/Config.sol index ab89562..4f2caca 100644 --- a/test/TheBadgeUsers/Config.sol +++ b/test/TheBadgeUsers/Config.sol @@ -2,12 +2,12 @@ pragma solidity ^0.8.20; import { Test } from "forge-std/Test.sol"; import { Clones } from "@openzeppelin/contracts/proxy/Clones.sol"; -import { TheBadgeStore } from "../../src/contracts/thebadge/TheBadgeStore.sol"; -import { TheBadgeUsersStore } from "../../src/contracts/thebadge/TheBadgeUsersStore.sol"; -import { TheBadgeUsers } from "../../src/contracts/thebadge/TheBadgeUsers.sol"; -import { TheBadgeModels } from "../../src/contracts/thebadge/TheBadgeModels.sol"; -import { KlerosBadgeModelController } from "../../../src/contracts/badgeModelControllers/KlerosBadgeModelController.sol"; -import { KlerosBadgeModelControllerStore } from "../../../src/contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol"; +import { TheBadgeStore } from "contracts/thebadge/TheBadgeStore.sol"; +import { TheBadgeUsersStore } from "contracts/thebadge/TheBadgeUsersStore.sol"; +import { TheBadgeUsers } from "contracts/thebadge/TheBadgeUsers.sol"; +import { TheBadgeModels } from "contracts/thebadge/TheBadgeModels.sol"; +import { KlerosBadgeModelController } from "contracts/badgeModelControllers/KlerosBadgeModelController.sol"; +import { KlerosBadgeModelControllerStore } from "contracts/badgeModelControllers/KlerosBadgeModelControllerStore.sol"; import { LibTheBadgeUsers } from "../../src/contracts/libraries/LibTheBadgeUsers.sol"; import { LibTheBadge } from "../../src/contracts/libraries/LibTheBadge.sol"; @@ -27,10 +27,10 @@ contract Config is Test { TheBadgeUsersStore badgeUsersStore; KlerosBadgeModelController public klerosBadgeModelControllerInstance; KlerosBadgeModelControllerStore public klerosBadgeModelControllerStoreInstance; - // TCR Factory address in goerli - address public _tcrFactory = 0x55A3d9Bd99F286F1817CAFAAB124ddDDFCb0F314; - // Kleros arbitrator address in goerli - address public _arbitrator = 0x1128eD55ab2d796fa92D2F8E1f336d745354a77A; + // TCR Factory address in sepolia + address public _tcrFactory = 0x3FB8314C628E9afE7677946D3E23443Ce748Ac17; + // Kleros arbitrator address in sepolia + address public _arbitrator = 0x90992fb4E15ce0C59aEFfb376460Fda4Ee19C879; event UserRegistered(address indexed user, string metadata); event PaymentMade( diff --git a/test/Thebadge.t.2sol b/test/Thebadge.t.2sol deleted file mode 100644 index ff61e85..0000000 --- a/test/Thebadge.t.2sol +++ /dev/null @@ -1,76 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; - -import "forge-std/Test.sol"; - -import { Config } from "./utils/Config.sol"; -import { TheBadge, TheBadgeLogic } from "./utils/Config.sol"; - -contract ThebadgeTest is Config { - //inside config.sol, there are theBade instance, klerosController instance - // admin - // vegeta - // goku - // feeCollector - // minter - // creator - - // test pause() -- only should be call by (PAUSER_ROLE, msg.sender) - function test_pause_shouldRevert() public { - vm.prank(admin); - vm.expectRevert(); - theBadge.pause(); - } - - // test unpause() -- only should be call by (UNPAUSER_ROLE, msg.sender) - function test_unpause_shouldRevert() public { - vm.prank(admin); - vm.expectRevert(); - theBadge.unpause(); - } - - //test mint - - function test_mint_shouldRevert_badgeModelNotFound() public { - vm.prank(creator); - theBadgeLogic.registerBadgeModelCreator("newCreator"); - // create badgeModel - string memory controllerName = "controllerName"; - uint256 creatorFee = 100; - uint256 validFor = 10; - string memory metadata = "metadata"; - bytes memory data = "data"; - - TheBadgeLogic.CreateBadgeModel memory badgeModel = TheBadgeLogic.CreateBadgeModel( - metadata, - controllerName, - creatorFee, - validFor - ); - vm.prank(creator); - theBadge.createBadgeModel(badgeModel, data); - - uint256 nonExistentBadgeModelId = 999; - vm.prank(creator); - vm.expectRevert(TheBadge.TheBadge__requestBadge_badgeModelNotFound.selector); - theBadge.mint(nonExistentBadgeModelId, admin, "tokenURI", "data"); - } - - // function test_mint_shouldRevert_wrongValue() public { - // vm.prank(admin); - // vm.expectRevert(TheBadge.TheBadge__requestBadge_wrongValue.selector); - // theBadge.mint(1, admin, "tokenURI", "data"); - // } - - // function test_mint_shouldRevert_isPaused() public { - // vm.prank(admin); - // vm.expectRevert(TheBadge.TheBadge__requestBadge_isPaused.selector); - // theBadge.mint(2, admin, "tokenURI", "data"); - // } - - // function test_mint_shouldRevert_controllerIsPaused() public { - // vm.prank(admin); - // vm.expectRevert(TheBadge.TheBadge__requestBadge_controllerIsPaused.selector); - // theBadge.mint(3, admin, "tokenURI", "data"); - // } -} diff --git a/test/klerosController.t.2sol b/test/klerosController.t.2sol deleted file mode 100644 index 8c18801..0000000 --- a/test/klerosController.t.2sol +++ /dev/null @@ -1,180 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; - -import "forge-std/Test.sol"; - -import "../lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol"; -import { AddressUpgradeable } from "../lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol"; - -import { Config, TheBadge, KlerosBadgeTypeController } from "./utils/Config.sol"; -import { ILightGeneralizedTCR } from "../src/interfaces/ILightGeneralizedTCR.sol"; -import "../src/interfaces/IBadgeController.sol"; - -contract TheBadgeTest is Config { - function getKlerosBaseBadgeType() public pure returns (KlerosBadgeTypeController.CreateBadgeType memory) { - uint256[4] memory baseDeposits; - baseDeposits[0] = 1; - baseDeposits[1] = 1; - baseDeposits[2] = 1; - baseDeposits[3] = 1; - - uint256[3] memory stakeMultipliers; - stakeMultipliers[0] = 1; - stakeMultipliers[1] = 1; - stakeMultipliers[2] = 1; - - KlerosBadgeTypeController.CreateBadgeType memory strategy = KlerosBadgeTypeController.CreateBadgeType( - address(0), // governor - address(0), // admin - 1, // court - 1, // jurors - "ipfs/registrationMetaEvidence.json", - "ipfs/clearingMetaEvidence.json", - 1, // challengePeriodDuration - baseDeposits, - stakeMultipliers - ); - return strategy; - } - - function test_createKlerosBadgeType_shouldWork() public { - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - KlerosBadgeTypeController.CreateBadgeType memory klerosBadgeType = getKlerosBaseBadgeType(); - klerosBadgeType.challengePeriodDuration = 777; - uint256 createdBadgeId = theBadge.badgeIds() + 1; - - vm.prank(vegeta); - theBadge.createBadgeType(badgeType, abi.encode(klerosBadgeType)); - - (, string memory controllerName, , , , ) = theBadge.badgeType(createdBadgeId); - assertEq(controllerName, "kleros"); - - address tcrList = klerosController.klerosBadgeType(createdBadgeId); - assertFalse(tcrList == address(0)); - uint256 challengeDuration = ILightGeneralizedTCR(tcrList).challengePeriodDuration(); - assertEq(challengeDuration, 777); - } - - function test_mintKlerosBadge_shouldWork() public { - // register emitter - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - // create badge-type - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - KlerosBadgeTypeController.CreateBadgeType memory klerosBadgeType = getKlerosBaseBadgeType(); - // klerosBadgeType.mintCost = 1 ether; - klerosBadgeType.challengePeriodDuration = 10; - // klerosBadgeType.validFor = 100; - vm.prank(vegeta); - theBadge.createBadgeType(badgeType, abi.encode(klerosBadgeType)); - uint256 badgeId = theBadge.badgeIds(); - - // create badge - uint256 mintValue = theBadge.badgeRequestValue(badgeId); - string memory evidence = "ipfs://evidence.json"; - KlerosBadgeTypeController.RequestBadgeData memory badgeInfo = KlerosBadgeTypeController.RequestBadgeData( - evidence - ); - vm.prank(goku); - theBadge.requestBadge{ value: mintValue }(badgeId, goku, abi.encode(badgeInfo)); - - (bytes32 itemID, address mintCallee, uint256 deposit) = klerosController.klerosBadge(badgeId, goku); - - // badge - assertEq(itemID, keccak256(abi.encodePacked(evidence))); - assertEq(mintCallee, goku); - assertEq(deposit, mintValue - badgeType.mintCost); - assertEq(theBadge.balanceOf(goku, badgeId), 0); // balanceOf is 0 until challenge period ends and claimKlerosBadge is called - } - - function test_claimKlerosBadge_shouldWork() public { - // register emitter - vm.prank(vegeta); - theBadge.registerEmitter(vegeta, "metadata"); - - // create badge-type - TheBadge.CreateBadgeType memory badgeType = getBaseBadgeType(); - KlerosBadgeTypeController.CreateBadgeType memory klerosBadgeType = getKlerosBaseBadgeType(); - // klerosBadgeType.mintCost = 1 ether; - //klerosBadgeType.validFor = 100; - klerosBadgeType.challengePeriodDuration = 10; - vm.prank(vegeta); - theBadge.createBadgeType(badgeType, abi.encode(klerosBadgeType)); - uint256 badgeId = theBadge.badgeIds(); - - // create badge - uint256 mintValue = theBadge.badgeRequestValue(badgeId); - string memory evidence = "ipfs://evidence.json"; - KlerosBadgeTypeController.RequestBadgeData memory badgeInfo = KlerosBadgeTypeController.RequestBadgeData( - evidence - ); - vm.prank(goku); - theBadge.requestBadge{ value: mintValue }(badgeId, goku, abi.encode(badgeInfo)); - - // claim badge - uint256 prevBalance = goku.balance; - (, , uint256 prevDeposit) = klerosController.klerosBadge(badgeId, goku); - - vm.warp(101); - vm.prank(goku); - klerosController.claimBadge(badgeId, goku); - - (, , uint256 deposit) = klerosController.klerosBadge(badgeId, goku); - - assertEq(deposit, 0); - assertEq(goku.balance, prevBalance + prevDeposit); - assertEq(theBadge.balanceOf(goku, badgeId), 1); - } - - // function test_balanceOfDueBadge_shouldBeZero() public { - // // register emitter - // vm.prank(admin); - // theBadge.registerEmitter(vegeta, "ipfs://profile.json"); - - // // create strategy - // TheBadge.CreateKlerosBadgeType memory strategy = getKlerosBaseStrategy(); - // strategy.mintCost = 0.05 ether; - // strategy.validFor = 100; - // vm.prank(vegeta); - // uint256 badgeTypeId = theBadge.createKlerosBadgeType(strategy); - - // // claim badge - - // vm.warp(500); - // uint256 balance = theBadge.balanceOf(goku, badgeTypeId); - - // assertEq(balance, 0); - // } - - // function test_balanceOfBeforeClaim_shouldBeZero() public { - // // register emitter - // vm.prank(admin); - // theBadge.registerEmitter(vegeta, "ipfs://profile.json"); - - // // create strategy - // TheBadge.CreateKlerosBadgeType memory strategy = getKlerosBaseStrategy(); - // strategy.mintCost = 0.05 ether; - // strategy.validFor = 100; - // vm.warp(500); - // vm.prank(vegeta); - // uint256 badgeTypeId = theBadge.createKlerosBadgeType(strategy); - - // // create badge - // (, , , uint256 mintCost, uint256 mintFee, ) = theBadge.badgeType(badgeTypeId); - // address createdStrategyAddress = theBadge.klerosBadgeType(badgeTypeId); - - // uint256 mintValue = theBadge.getKlerosMintCost(badgeTypeId); - // vm.prank(goku); - // theBadge.mintBadgeFromKlerosStrategy{ value: mintValue }(badgeTypeId, "ipfs://evidence.json", goku); - - // vm.warp(5000); - - // uint256 balance = theBadge.balanceOf(goku, badgeTypeId); - - // assertEq(balance, 0); - // } -} diff --git a/test/soulbound.t.2sol b/test/soulbound.t.2sol deleted file mode 100644 index 1afe4c0..0000000 --- a/test/soulbound.t.2sol +++ /dev/null @@ -1,35 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; - -import "forge-std/Test.sol"; - -import "../lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol"; -import { AddressUpgradeable } from "../lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol"; - -import { Config, TheBadge } from "./utils/Config.sol"; -import { ILightGeneralizedTCR } from "../src/interfaces/ILightGeneralizedTCR.sol"; - -contract TheBadgeTestSoulbound is Config { - function test_setApprovalForAll_shouldRevert() public { - vm.prank(admin); - vm.expectRevert(TheBadge.TheBadge__ERC1155_notAllowed.selector); - theBadge.setApprovalForAll(address(0), true); - } - - function test_safeTransferFrom_shouldRevert() public { - vm.prank(admin); - vm.expectRevert(TheBadge.TheBadge__ERC1155_notAllowed.selector); - theBadge.safeTransferFrom(address(0), address(0), 1, 1, "0x"); - } - - function test_safeBatchTransferFrom_shouldRevert() public { - uint256[] memory ids = new uint256[](1); - ids[0] = 1; - uint256[] memory amounts = new uint256[](1); - amounts[0] = 1; - - vm.prank(admin); - vm.expectRevert(TheBadge.TheBadge__ERC1155_notAllowed.selector); - theBadge.safeBatchTransferFrom(address(0), address(0), ids, amounts, "0x"); - } -} diff --git a/test/utils/Config.3sol b/test/utils/Config.3sol deleted file mode 100644 index e5725e5..0000000 --- a/test/utils/Config.3sol +++ /dev/null @@ -1,103 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED -pragma solidity 0.8.17; - -import "forge-std/Test.sol"; - -import "../../lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol"; -import "../../lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol"; - -import { TheBadge } from "../../src/contracts/thebadge/TheBadge.sol"; -import { TheBadgeStore } from "../../src/contracts/thebadge/TheBadgeStore.sol"; -import { KlerosBadgeModelController } from "../../src/contracts/badgeModelControllers/KlerosBadgeModelController.sol"; -import { KlerosBadgeModelControllerStore } from "../../src/contracts/badgeModelControllers/KlerosBadgeModelController.sol"; - -contract Config is Test { - address public admin = vm.addr(1); - address public vegeta = vm.addr(2); - address public goku = vm.addr(3); - address public feeCollector = vm.addr(4); - address public minter = vm.addr(5); - address public creator = vm.addr(6); - - uint256 public offChainStrategyFee = 0 ether; - - uint256 oneYear = 60 * 60 * 24 * 365; - - TheBadge public theBadge; - KlerosBadgeModelController public klerosBadgeModelController; - KlerosBadgeModelControllerStore public klerosBadgeModelControllerStore; - - // GBC: - // address lightGTCRFactory = 0x08e58Bc26CFB0d346bABD253A1799866F269805a; - // address klerosArbitror = 0x9C1dA9A04925bDfDedf0f6421bC7EEa8305F9002; - - // Goerli - address lightGTCRFactory = 0x55A3d9Bd99F286F1817CAFAAB124ddDDFCb0F314; - address klerosArbitror = 0x1128eD55ab2d796fa92D2F8E1f336d745354a77A; - - constructor() { - vm.deal(admin, 100 ether); - vm.deal(vegeta, 100 ether); - vm.deal(goku, 100 ether); - vm.deal(minter, 100 ether); - vm.deal(feeCollector, 100 ether); - vm.deal(creator, 100 ether); - - address theBadgeImp = address(new TheBadge()); - address theBadgeProxy = ClonesUpgradeable.clone(theBadgeImp); - theBadge = TheBadge(payable(theBadgeProxy)); - theBadge.initialize(admin, feeCollector, minter); - - address klerosBadgeModelControllerImp = address(new KlerosBadgeModelController()); - address klerosBadgeModelControllerProxy = ClonesUpgradeable.clone(klerosBadgeModelControllerImp); - - klerosBadgeModelController = KlerosBadgeModelController(payable(klerosBadgeModelControllerProxy)); - klerosBadgeModelController.initialize(admin, address(theBadge), klerosArbitror, lightGTCRFactory); - - vm.prank(admin); - theBadge.addBadgeModelController("kleros", address(klerosBadgeModelController)); - } - - function getBaseBadgeModel() public view returns (TheBadge.CreateBadgeModel memory) { - TheBadge.CreateBadgeModel memory badgeModel = TheBadgeStore.CreateBadgeModel( - "ipfs/metadataForBadge.json", - "kleros", - 0, - oneYear - ); - return badgeModel; - } - - function getKlerosBaseBadgeModel() public pure returns (KlerosBadgeModelController.CreateBadgeModel memory) { - uint256[4] memory baseDeposits; - baseDeposits[0] = 0.1 ether; - baseDeposits[1] = 0.1 ether; - baseDeposits[2] = 0.1 ether; - baseDeposits[3] = 0.1 ether; - - uint256[3] memory stakeMultipliers; - stakeMultipliers[0] = 1; - stakeMultipliers[1] = 1; - stakeMultipliers[2] = 1; - - KlerosBadgeModelController.CreateBadgeModel memory badgeModel = KlerosBadgeModelControllerStore - .CreateBadgeModel( - address(0), // governor - address(0), // admin - 1, // court - 1, // jurors - "ipfs/registrationMetaEvidence.json", - "ipfs/clearingMetaEvidence.json", - 100, // challengePeriodDuration - baseDeposits, - stakeMultipliers - ); - return badgeModel; - } - - function _bytesToAddress(bytes memory bys) public pure returns (address addr) { - assembly { - addr := mload(add(bys, 32)) - } - } -}