@etherisc/gif-next 0.0.2-c6d46bb-892 → 0.0.2-c778291-689

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. package/README.md +51 -5
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1489 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +178 -395
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +280 -324
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +130 -72
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +169 -263
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +186 -94
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +77 -78
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +193 -52
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +93 -126
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +583 -326
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +282 -101
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +120 -42
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1230 -365
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1018 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +399 -213
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +176 -50
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +204 -32
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  102. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +180 -366
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +340 -209
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +226 -452
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +399 -430
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +105 -67
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +92 -158
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +111 -37
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +132 -187
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +129 -55
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +25 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +36 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +217 -73
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +83 -44
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -183
  133. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  134. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +15 -57
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +235 -290
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +117 -91
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +188 -220
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +135 -57
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  144. package/artifacts/contracts/product/Product.sol/Product.json +344 -341
  145. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  146. package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
  147. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +182 -28
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +439 -39
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -68
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -35
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  167. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  173. package/artifacts/contracts/shared/Component.sol/Component.json +104 -145
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1252 -203
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -107
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  183. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  190. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  192. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  194. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  196. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  199. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  200. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  201. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  202. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
  203. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +940 -0
  205. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  207. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  209. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  211. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
  213. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  215. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  219. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +362 -7
  223. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  224. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1412 -0
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  230. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +387 -0
  231. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  232. package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -0
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +661 -85
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  248. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  249. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.json +97 -4
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
  253. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  255. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  257. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Fee.sol/FeeLib.json +39 -34
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -4
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  264. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  277. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +100 -2
  279. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  283. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  285. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  287. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  289. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  291. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
  293. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  295. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  297. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  298. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  299. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  300. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  301. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  302. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  303. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  304. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  305. package/contracts/authorization/AccessAdmin.sol +591 -0
  306. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  307. package/contracts/authorization/Authorization.sol +217 -0
  308. package/contracts/authorization/IAccess.sol +48 -0
  309. package/contracts/authorization/IAccessAdmin.sol +136 -0
  310. package/contracts/authorization/IAuthorization.sol +54 -0
  311. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  312. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  313. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  314. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  315. package/contracts/distribution/BasicDistribution.sol +138 -0
  316. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  317. package/contracts/distribution/Distribution.sol +162 -152
  318. package/contracts/distribution/DistributionService.sol +124 -137
  319. package/contracts/distribution/DistributionServiceManager.sol +11 -23
  320. package/contracts/distribution/IDistributionComponent.sol +28 -47
  321. package/contracts/distribution/IDistributionService.sol +24 -10
  322. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  323. package/contracts/instance/IInstance.sol +29 -43
  324. package/contracts/instance/IInstanceService.sol +46 -27
  325. package/contracts/instance/Instance.sol +116 -116
  326. package/contracts/instance/InstanceAdmin.sol +285 -0
  327. package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
  328. package/contracts/instance/InstanceReader.sol +106 -52
  329. package/contracts/instance/InstanceService.sol +291 -132
  330. package/contracts/instance/InstanceServiceManager.sol +12 -26
  331. package/contracts/instance/InstanceStore.sol +146 -66
  332. package/contracts/instance/base/BalanceStore.sol +123 -0
  333. package/contracts/instance/base/Cloneable.sol +2 -25
  334. package/contracts/instance/base/ObjectCounter.sol +21 -0
  335. package/contracts/instance/base/ObjectLifecycle.sol +110 -0
  336. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  337. package/contracts/instance/module/IAccess.sol +2 -10
  338. package/contracts/instance/module/IBundle.sol +1 -4
  339. package/contracts/instance/module/IComponents.sol +15 -10
  340. package/contracts/instance/module/IDistribution.sol +0 -1
  341. package/contracts/instance/module/IPolicy.sol +25 -19
  342. package/contracts/mock/Dip.sol +26 -0
  343. package/contracts/oracle/BasicOracle.sol +48 -0
  344. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  345. package/contracts/oracle/IOracle.sol +36 -0
  346. package/contracts/oracle/IOracleComponent.sol +33 -0
  347. package/contracts/oracle/IOracleService.sol +65 -0
  348. package/contracts/oracle/Oracle.sol +167 -0
  349. package/contracts/oracle/OracleService.sol +279 -0
  350. package/contracts/oracle/OracleServiceManager.sol +39 -0
  351. package/contracts/pool/BasicPool.sol +166 -0
  352. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  353. package/contracts/pool/BundleService.sol +252 -196
  354. package/contracts/pool/BundleServiceManager.sol +11 -23
  355. package/contracts/pool/IBundleService.sol +35 -19
  356. package/contracts/pool/IPoolComponent.sol +10 -66
  357. package/contracts/pool/IPoolService.sol +79 -33
  358. package/contracts/pool/Pool.sol +168 -144
  359. package/contracts/pool/PoolService.sol +322 -216
  360. package/contracts/pool/PoolServiceManager.sol +11 -23
  361. package/contracts/product/ApplicationService.sol +143 -80
  362. package/contracts/product/ApplicationServiceManager.sol +11 -8
  363. package/contracts/product/BasicProduct.sol +53 -0
  364. package/contracts/product/BasicProductAuthorization.sol +43 -0
  365. package/contracts/product/ClaimService.sol +36 -62
  366. package/contracts/product/ClaimServiceManager.sol +11 -8
  367. package/contracts/product/IApplicationService.sol +2 -1
  368. package/contracts/product/IClaimService.sol +8 -1
  369. package/contracts/product/IPolicyService.sol +29 -36
  370. package/contracts/product/IPricingService.sol +10 -8
  371. package/contracts/product/IProductComponent.sol +10 -12
  372. package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -9
  373. package/contracts/product/PolicyService.sol +390 -192
  374. package/contracts/product/PolicyServiceManager.sol +11 -26
  375. package/contracts/product/PricingService.sol +103 -77
  376. package/contracts/product/PricingServiceManager.sol +11 -23
  377. package/contracts/product/Product.sol +156 -128
  378. package/contracts/product/RiskService.sol +97 -0
  379. package/contracts/product/RiskServiceManager.sol +39 -0
  380. package/contracts/registry/ChainNft.sol +8 -1
  381. package/contracts/registry/IRegistry.sol +54 -21
  382. package/contracts/registry/IRegistryService.sol +38 -35
  383. package/contracts/registry/Registry.sol +233 -124
  384. package/contracts/registry/RegistryAdmin.sol +374 -0
  385. package/contracts/registry/RegistryService.sol +67 -100
  386. package/contracts/registry/RegistryServiceManager.sol +23 -30
  387. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  388. package/contracts/registry/ReleaseRegistry.sol +485 -0
  389. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  390. package/contracts/registry/TokenRegistry.sol +261 -62
  391. package/contracts/shared/Component.sol +141 -144
  392. package/contracts/shared/ComponentService.sol +587 -96
  393. package/contracts/shared/ComponentServiceManager.sol +35 -0
  394. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  395. package/contracts/shared/IComponent.sol +21 -41
  396. package/contracts/shared/IComponentService.sol +108 -0
  397. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  398. package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
  399. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  400. package/contracts/shared/INftOwnable.sol +1 -1
  401. package/contracts/shared/IPolicyHolder.sol +6 -1
  402. package/contracts/shared/IService.sol +9 -2
  403. package/contracts/shared/InitializableCustom.sol +177 -0
  404. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  405. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  406. package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -74
  407. package/contracts/shared/Lifecycle.sol +77 -0
  408. package/contracts/shared/NftIdSet.sol +65 -0
  409. package/contracts/shared/NftOwnable.sol +4 -15
  410. package/contracts/shared/PolicyHolder.sol +22 -17
  411. package/contracts/shared/Registerable.sol +2 -2
  412. package/contracts/shared/Service.sol +32 -22
  413. package/contracts/shared/TokenHandler.sol +112 -8
  414. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  415. package/contracts/staking/IStaking.sol +167 -0
  416. package/contracts/staking/IStakingService.sol +105 -47
  417. package/contracts/staking/StakeManagerLib.sol +206 -0
  418. package/contracts/staking/Staking.sol +497 -0
  419. package/contracts/staking/StakingLifecycle.sol +23 -0
  420. package/contracts/staking/StakingManager.sol +50 -0
  421. package/contracts/staking/StakingReader.sol +183 -0
  422. package/contracts/staking/StakingService.sol +288 -47
  423. package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +13 -6
  424. package/contracts/staking/StakingStore.sol +605 -0
  425. package/contracts/staking/TargetManagerLib.sol +207 -0
  426. package/contracts/type/AddressSet.sol +1 -1
  427. package/contracts/type/Amount.sol +29 -3
  428. package/contracts/type/Blocknumber.sol +26 -3
  429. package/contracts/type/Fee.sol +17 -16
  430. package/contracts/type/NftId.sol +14 -16
  431. package/contracts/type/NftIdSet.sol +1 -1
  432. package/contracts/type/ObjectType.sol +175 -62
  433. package/contracts/type/Referral.sol +2 -1
  434. package/contracts/type/RequestId.sol +75 -0
  435. package/contracts/type/RiskId.sol +1 -1
  436. package/contracts/type/RoleId.sol +104 -62
  437. package/contracts/type/Seconds.sol +40 -1
  438. package/contracts/type/Selector.sol +102 -0
  439. package/contracts/type/StateId.sol +27 -2
  440. package/contracts/type/String.sol +53 -0
  441. package/contracts/type/Timestamp.sol +17 -3
  442. package/contracts/type/UFixed.sol +34 -9
  443. package/contracts/type/Version.sol +4 -2
  444. package/contracts/{shared → upgradeability}/ProxyManager.sol +33 -4
  445. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  446. package/package.json +8 -5
  447. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  448. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  449. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  450. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  451. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  452. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  453. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  454. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  455. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  456. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
  457. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  458. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  459. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  460. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  461. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  462. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  463. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  464. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  465. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  466. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -864
  467. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  468. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  469. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  470. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  471. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  472. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  473. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  474. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  475. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  476. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  477. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  478. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  479. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  480. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  481. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  482. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  483. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
  485. package/contracts/instance/InstanceAccessManager.sol +0 -543
  486. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  487. package/contracts/instance/base/Lifecycle.sol +0 -121
  488. package/contracts/instance/module/ISetup.sol +0 -33
  489. package/contracts/instance/module/ITreasury.sol +0 -23
  490. package/contracts/product/ProductService.sol +0 -210
  491. package/contracts/product/ProductServiceManager.sol +0 -54
  492. package/contracts/registry/RegistryAccessManager.sol +0 -216
  493. package/contracts/registry/ReleaseManager.sol +0 -328
  494. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  495. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  496. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -12,134 +12,142 @@ using {
12
12
  ObjectTypeLib.gtz
13
13
  } for ObjectType global;
14
14
 
15
- // general pure free functions
15
+
16
+ //--- GIF object types/domains (rage: 1 - 99) -------------------------------//
16
17
 
17
18
  function PROTOCOL() pure returns (ObjectType) {
18
- return toObjectType(10);
19
+ return ObjectType.wrap(1);
19
20
  }
20
21
 
21
- function ROLE() pure returns (ObjectType) {
22
- return toObjectType(20);
22
+ function REGISTRY() pure returns (ObjectType) {
23
+ return ObjectType.wrap(2);
23
24
  }
24
25
 
25
- function TARGET() pure returns (ObjectType) {
26
- return toObjectType(30);
26
+ function STAKING() pure returns (ObjectType) {
27
+ return ObjectType.wrap(3);
27
28
  }
28
29
 
29
- function REGISTRY() pure returns (ObjectType) {
30
- return toObjectType(40);
30
+ function RELEASE() pure returns (ObjectType) {
31
+ return ObjectType.wrap(6);
31
32
  }
32
33
 
33
- function TOKEN() pure returns (ObjectType) {
34
- return toObjectType(50);
34
+ function ROLE() pure returns (ObjectType) {
35
+ return ObjectType.wrap(7);
35
36
  }
36
37
 
37
38
  function SERVICE() pure returns (ObjectType) {
38
- return toObjectType(60);
39
+ return ObjectType.wrap(8);
39
40
  }
40
41
 
41
42
  function INSTANCE() pure returns (ObjectType) {
42
- return toObjectType(70);
43
+ return ObjectType.wrap(10);
43
44
  }
44
45
 
45
- function STAKE() pure returns (ObjectType) {
46
- return toObjectType(80);
46
+ function COMPONENT() pure returns (ObjectType) {
47
+ return ObjectType.wrap(11);
47
48
  }
48
49
 
49
- function COMPONENT() pure returns (ObjectType) {
50
- return toObjectType(100);
50
+ function PRODUCT() pure returns (ObjectType) {
51
+ return ObjectType.wrap(12);
51
52
  }
52
53
 
53
- // TODO replace by PRODUCT_SETUP
54
- function TREASURY() pure returns (ObjectType) {
55
- return toObjectType(101);
54
+ function ORACLE() pure returns (ObjectType) {
55
+ return ObjectType.wrap(13);
56
56
  }
57
57
 
58
- function PRODUCT_SETUP() pure returns (ObjectType) {
59
- return toObjectType(101);
58
+ function DISTRIBUTION() pure returns (ObjectType) {
59
+ return ObjectType.wrap(14);
60
60
  }
61
61
 
62
- function PRODUCT() pure returns (ObjectType) {
63
- return toObjectType(110);
62
+ function POOL() pure returns (ObjectType) {
63
+ return ObjectType.wrap(15);
64
64
  }
65
65
 
66
- function DISTRIBUTION() pure returns (ObjectType) {
67
- return toObjectType(120);
66
+ function APPLICATION() pure returns (ObjectType) {
67
+ return ObjectType.wrap(20);
68
68
  }
69
69
 
70
- function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
71
- return toObjectType(121);
70
+ function POLICY() pure returns (ObjectType) {
71
+ return ObjectType.wrap(21);
72
72
  }
73
73
 
74
- function DISTRIBUTOR() pure returns (ObjectType) {
75
- return toObjectType(122);
74
+ function PREMIUM() pure returns (ObjectType) {
75
+ return ObjectType.wrap(22);
76
76
  }
77
77
 
78
- function REFERRAL() pure returns (ObjectType) {
79
- return toObjectType(123);
78
+ function CLAIM() pure returns (ObjectType) {
79
+ return ObjectType.wrap(23);
80
80
  }
81
81
 
82
- function ORACLE() pure returns (ObjectType) {
83
- return toObjectType(130);
82
+ function PAYOUT() pure returns (ObjectType) {
83
+ return ObjectType.wrap(24);
84
84
  }
85
85
 
86
- function POOL() pure returns (ObjectType) {
87
- return toObjectType(140);
86
+ function RISK() pure returns (ObjectType) {
87
+ return ObjectType.wrap(25);
88
88
  }
89
89
 
90
- function BUNDLE() pure returns (ObjectType) {
91
- return toObjectType(220);
90
+ function PRICE() pure returns (ObjectType) {
91
+ return ObjectType.wrap(26);
92
92
  }
93
93
 
94
- function RISK() pure returns (ObjectType) {
95
- return toObjectType(200);
94
+ function REQUEST() pure returns (ObjectType) {
95
+ return ObjectType.wrap(27);
96
96
  }
97
97
 
98
- function APPLICATION() pure returns (ObjectType) {
99
- return toObjectType(210);
98
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
99
+ return ObjectType.wrap(28);
100
100
  }
101
101
 
102
- function POLICY() pure returns (ObjectType) {
103
- return toObjectType(211);
102
+ function DISTRIBUTOR() pure returns (ObjectType) {
103
+ return ObjectType.wrap(29);
104
104
  }
105
105
 
106
- function CLAIM() pure returns (ObjectType) {
107
- return toObjectType(212);
106
+ function REFERRAL() pure returns (ObjectType) {
107
+ return ObjectType.wrap(30);
108
108
  }
109
109
 
110
- function PAYOUT() pure returns (ObjectType) {
111
- return toObjectType(213);
110
+ function BUNDLE() pure returns (ObjectType) {
111
+ return ObjectType.wrap(31);
112
112
  }
113
113
 
114
- function PRICE() pure returns (ObjectType) {
115
- return toObjectType(230);
114
+ function TARGET() pure returns (ObjectType) {
115
+ return ObjectType.wrap(32);
116
116
  }
117
117
 
118
- /// @dev Converts the uint8 to a ObjectType.
119
- function toObjectType(uint256 objectType) pure returns (ObjectType) {
120
- return ObjectType.wrap(uint8(objectType));
118
+ function STAKE() pure returns (ObjectType) {
119
+ return ObjectType.wrap(33);
121
120
  }
122
121
 
123
- // TODO move to ObjecTypeLib and rename to zero()
124
- /// @dev Return the ObjectType zero (0)
125
- function zeroObjectType() pure returns (ObjectType) {
126
- return ObjectType.wrap(0);
122
+ /// @dev Object type that includes any other object type.
123
+ /// Note that eq()/'==' does not take this property into account.
124
+ function ALL() pure returns (ObjectType) {
125
+ return ObjectType.wrap(99);
127
126
  }
128
127
 
129
- // pure free functions for operators
128
+ // other pure free functions for operators
130
129
  function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
131
130
  return ObjectType.unwrap(a) == ObjectType.unwrap(b);
132
131
  }
133
132
 
134
- function neObjectType(
135
- ObjectType a,
136
- ObjectType b
137
- ) pure returns (bool isDifferent) {
133
+ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
138
134
  return ObjectType.unwrap(a) != ObjectType.unwrap(b);
139
135
  }
140
136
 
141
137
  // library functions that operate on user defined type
142
138
  library ObjectTypeLib {
139
+
140
+ error ErrorVersionTooBig(uint256 version);
141
+
142
+ function zero() public pure returns (ObjectType) {
143
+ return ObjectType.wrap(0);
144
+ }
145
+
146
+ /// @dev Converts the uint256 into ObjectType.
147
+ function toObjectType(uint256 objectType) public pure returns (ObjectType) {
148
+ return ObjectType.wrap(uint8(objectType));
149
+ }
150
+
143
151
  /// @dev Converts the NftId to a uint256.
144
152
  function toInt(ObjectType objectType) public pure returns (uint96) {
145
153
  return uint96(ObjectType.unwrap(objectType));
@@ -157,6 +165,111 @@ library ObjectTypeLib {
157
165
 
158
166
  /// @dev Returns true if the values are equal (==).
159
167
  function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
160
- return eqObjectType(a, b);
168
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
169
+ }
170
+
171
+ /// @dev Returns true if the values are not equal (!=).
172
+ function ne(ObjectType a, ObjectType b) public pure returns (bool isSame) {
173
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
174
+ }
175
+
176
+ /// @dev Returns the type/domain name for the provided object type
177
+ function toName(ObjectType objectType) public pure returns (string memory name) {
178
+ if (objectType == REGISTRY()) {
179
+ return "Registry";
180
+ } else if (objectType == STAKING()) {
181
+ return "Staking";
182
+ } else if (objectType == INSTANCE()) {
183
+ return "Instance";
184
+ } else if (objectType == COMPONENT()) {
185
+ return "Component";
186
+ } else if (objectType == PRODUCT()) {
187
+ return "Product";
188
+ } else if (objectType == ORACLE()) {
189
+ return "Oracle";
190
+ } else if (objectType == DISTRIBUTION()) {
191
+ return "Distribution";
192
+ } else if (objectType == POOL()) {
193
+ return "Pool";
194
+ } else if (objectType == APPLICATION()) {
195
+ return "Application";
196
+ } else if (objectType == POLICY()) {
197
+ return "Policy";
198
+ } else if (objectType == CLAIM()) {
199
+ return "Claim";
200
+ } else if (objectType == PRICE()) {
201
+ return "Price";
202
+ } else if (objectType == BUNDLE()) {
203
+ return "Bundle";
204
+ }
205
+
206
+ // fallback: ObjectType<obect-type-int>
207
+ return string(
208
+ abi.encodePacked(
209
+ "ObjectType",
210
+ toString(
211
+ toInt(objectType))));
212
+ }
213
+
214
+ function toVersionedName(
215
+ string memory name,
216
+ string memory suffix,
217
+ uint256 version
218
+ )
219
+ external
220
+ pure
221
+ returns (string memory versionedName)
222
+ {
223
+ if (version > maxNumReleases()) {
224
+ revert ErrorVersionTooBig(version);
225
+ }
226
+
227
+ string memory versionName = "_v0";
228
+
229
+ if (version >= 10) {
230
+ versionName = "_v";
231
+ }
232
+
233
+ versionedName = string(
234
+ abi.encodePacked(
235
+ name,
236
+ suffix,
237
+ versionName,
238
+ toString(version)));
239
+ }
240
+
241
+ /// @dev returns the max number of releases (major versions) this gif setup can handle.
242
+ function maxNumReleases() public pure returns (uint8) {
243
+ return 99;
244
+ }
245
+
246
+ /// @dev returns the provied int as a string
247
+ function toString(uint256 value) public pure returns (string memory name) {
248
+
249
+ if (value == 0) {
250
+ return "0";
251
+ }
252
+
253
+ uint256 temp = value;
254
+ uint256 digits = 0;
255
+ while (temp != 0) {
256
+ digits++;
257
+ temp /= 10;
258
+ }
259
+
260
+ bytes memory buffer = new bytes(digits);
261
+ uint index = digits - 1;
262
+
263
+ temp = value;
264
+ while (temp != 0) {
265
+ buffer[index] = bytes1(uint8(48 + temp % 10));
266
+ temp /= 10;
267
+
268
+ if (index > 0) {
269
+ index--;
270
+ }
271
+ }
272
+
273
+ return string(buffer);
161
274
  }
162
275
  }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {NftId} from "./NftId.sol";
@@ -12,6 +12,7 @@ type ReferralStatus is uint8;
12
12
  using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
+ ReferralLib.eqz,
15
16
  ReferralLib.toKey32
16
17
  } for ReferralId global;
17
18
 
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {REQUEST} from "./ObjectType.sol";
6
+
7
+ type RequestId is uint64;
8
+
9
+ // type bindings
10
+ using {
11
+ eqRequestId as ==,
12
+ neRequestId as !=,
13
+ RequestIdLib.eqz,
14
+ RequestIdLib.gtz,
15
+ RequestIdLib.toInt,
16
+ RequestIdLib.toKey32
17
+ } for RequestId global;
18
+
19
+ // general pure free functions
20
+
21
+ function eqRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
22
+ return RequestIdLib.eq(a, b);
23
+ }
24
+
25
+ function neRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
26
+ return RequestIdLib.ne(a, b);
27
+ }
28
+
29
+ library RequestIdLib {
30
+
31
+ // @dev zero element to refer to a non existing/initialized request
32
+ function zero() public pure returns (RequestId) {
33
+ return RequestId.wrap(0);
34
+ }
35
+
36
+ // @dev Converts an int id into a request id.
37
+ function toRequestId(uint256 id) public pure returns (RequestId) {
38
+ return RequestId.wrap(uint64(id));
39
+ }
40
+
41
+ // @dev Converts a request id back to an int value.
42
+ function toInt(RequestId requestId) public pure returns (uint256) {
43
+ return RequestId.unwrap(requestId);
44
+ }
45
+
46
+ // @dev Returns true iff request id a == 0
47
+ function eqz(RequestId a) public pure returns (bool) {
48
+ return RequestId.unwrap(a) == 0;
49
+ }
50
+
51
+ // @dev Returns true iff request id a > 0
52
+ function gtz(RequestId a) public pure returns (bool) {
53
+ return RequestId.unwrap(a) > 0;
54
+ }
55
+
56
+ // @dev Returns true iff risk ids a and b are identical
57
+ function eq(RequestId a, RequestId b) public pure returns (bool isSame) {
58
+ return RequestId.unwrap(a) == RequestId.unwrap(b);
59
+ }
60
+
61
+ // @dev Returns true iff risk ids a and b are different
62
+ function ne(RequestId a, RequestId b) public pure returns (bool isSame) {
63
+ return RequestId.unwrap(a) != RequestId.unwrap(b);
64
+ }
65
+
66
+ /// @dev Returns the key32 value for the specified nft id and object type.
67
+ function toKey32(RequestId id) public pure returns (Key32 key) {
68
+ return Key32Lib.toKey32(REQUEST(), toKeyId(id));
69
+ }
70
+
71
+ /// @dev Returns the key id value for the specified nft id
72
+ function toKeyId(RequestId id) public pure returns (KeyId keyId) {
73
+ return KeyId.wrap(bytes31(uint248(RequestId.unwrap(id))));
74
+ }
75
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {RISK} from "./ObjectType.sol";
@@ -1,8 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
- import {ROLE} from "./ObjectType.sol";
5
+ import {ObjectType, ROLE} from "./ObjectType.sol";
6
+ import {VersionPart} from "./Version.sol";
6
7
 
7
8
  type RoleId is uint64;
8
9
 
@@ -12,102 +13,143 @@ using {
12
13
  neRoleId as !=,
13
14
  RoleIdLib.eqz,
14
15
  RoleIdLib.gtz,
15
- RoleIdLib.toInt,
16
- RoleIdLib.toKey32
16
+ RoleIdLib.toInt
17
+ // RoleIdLib.toKey32
17
18
  } for RoleId global;
18
19
 
20
+ // general pure free functions
19
21
 
20
- /// @dev role id needs to match with oz AccessManager.ADMIN_ROLE
22
+ // @dev Returns true iff role ids a and b are identical
23
+ function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
24
+ return RoleId.unwrap(a) == RoleId.unwrap(b);
25
+ }
26
+
27
+ // @dev Returns true iff role ids a and b are different
28
+ function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
29
+ return RoleId.unwrap(a) != RoleId.unwrap(b);
30
+ }
31
+
32
+ //--- OpenZeppelin provided roles -------------------------------------------//
33
+
34
+ /// @dev Role ID needs to match with oz AccessManager.ADMIN_ROLE
21
35
  function ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).min); }
22
36
 
23
- /// @dev role id needs to match with oz AccessManager.PUBLIC_ROLE
37
+ /// @dev Role ID needs to match with oz AccessManager.PUBLIC_ROLE
24
38
  function PUBLIC_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).max); }
25
39
 
26
- // general pure free functions
40
+ //--- GIF roles (range: 1-99) ----------------------------------------------//
27
41
 
28
42
  /// @dev cental role for gif release management.
29
43
  /// this role is necessary to call ReleaseManager.createNextRelease/activateNextRelease
30
44
  /// the actual deployment of a release requires the GIF_MANAGER_ROLE.
31
45
  /// GIF_ADMIN_ROLE is the admin of the GIF_MANAGER_ROLE.
32
46
  /// only a single holder may hold this role at any time
33
- function GIF_ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1500); }
47
+ function GIF_ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1); }
34
48
 
35
49
  /// @dev role for token whith/blacklisting, deploying and registering the services for a new major release
36
50
  /// registering services for a new major release is only possible after a new initial release has been created by the GIF_ADMIN_ROLE
37
51
  /// token white/blacklisting is possible for any active release
38
- function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1600); }
52
+ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
39
53
 
40
- /// @dev role associated with the ReleaseManager contract
41
- function RELEASE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1700); }
42
-
43
- /// @dev instance specific role to register/own a distribution component
44
- function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
45
-
46
- /// @dev instance specific role to register/own an oracle component
47
- function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
48
-
49
- /// @dev instance specific role to register/own a pool component
50
- function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
54
+ /// @dev role for registering remote staking targets and reporting remote total value locked amounts.
55
+ function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
51
56
 
52
57
  /// @dev instance specific role to register/own a product component
53
- function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(5); }
58
+ function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(11); }
54
59
 
55
- /// @dev role associated with an instance contract
56
- /// this role is the admin role for the INSTANCE_OWNER_ROLE
57
- function INSTANCE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2600); }
58
-
59
- /// @dev required role to register/own an instance
60
- /// allows instance specific target, role and access management
61
- function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1900); }
62
-
63
- /// @dev instance specific role for instance service
64
- function INSTANCE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2000); }
60
+ /// @dev instance specific role to register/own an oracle component
61
+ function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(12); }
65
62
 
66
- /// @dev instance specific role for distribution service
67
- function DISTRIBUTION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2100); }
63
+ /// @dev instance specific role to register/own a distribution component
64
+ function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(13); }
68
65
 
69
- /// @dev instance specific role for pool service
70
- function POOL_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2200); }
66
+ /// @dev instance specific role to register/own a pool component
67
+ function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(14); }
68
+
69
+ //--- GIF core contract roles (range: 200 - 9'900) --------------------------//
70
+ // created and assigned during initial deployment for registry and staking
71
+ // granting for instances and components in instance service
72
+ // object type * 100 + 0, examples:
73
+ // - registry contract role: 200
74
+ // - staking contract role: 300
75
+ // - instance contract role: 1000
76
+
77
+ //--- GIF service roles (range 201 - 9'9xx) ---------------------------------//
78
+ // created and assigned by release manager contract
79
+ // object type * 100 + 1/major version, examples:
80
+ // - registry service role (any version): 299
81
+ // - registry service role (version 3): 203
82
+ // - registry service role (any version): 399
83
+ // - staking service role: (version 3): 303
84
+ // - application service role (version 3): 2003
85
+
86
+ //--- GIF component contract roles (range 12'001 - 19'099) ------------------//
87
+ // assigned at component registration time
88
+ // object type * 1000 + instane specific component counter
89
+ // on any instance a maximum number of 999 components may be deployed
90
+ // examples:
91
+ // - 1st pool on instance: 15001
92
+ // - 1st distribution on instance: 14002
93
+ // - 1st product on instance: 12003
94
+ // - 2nd pool on instance: 15004
95
+ // - 2nd distribution on instance: 14005
96
+ // - 2nd product on instance: 12006
97
+
98
+
99
+ //--- Custom roles (range >= 1'000'000) -------------------------------------//
100
+
101
+ function CUSTOM_ROLE_MIN() pure returns (RoleId) { return RoleIdLib.toRoleId(1000000); }
71
102
 
72
- /// @dev instance specific role for product service
73
- function PRODUCT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2300); }
103
+ library RoleIdLib {
74
104
 
75
- /// @dev instance specific role for application service
76
- function APPLICATION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2400); }
105
+ uint64 public constant ALL_VERSIONS = 99;
106
+ uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
107
+ uint64 public constant COMPONENT_ROLE_FACTOR = 100;
108
+ uint64 public constant CUSTOM_ROLE_MIN = 1000000;
77
109
 
78
- /// @dev instance specific role for policy service
79
- function POLICY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2410); }
110
+ /// @dev Converts the RoleId to a uint.
111
+ function zero() public pure returns (RoleId) {
112
+ return RoleId.wrap(0);
113
+ }
80
114
 
81
- /// @dev instance specific role for claim service
82
- function CLAIM_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2420); }
115
+ /// @dev Converts an uint into a role id.
116
+ function toRoleId(uint64 a) public pure returns (RoleId) {
117
+ return RoleId.wrap(a);
118
+ }
83
119
 
84
- /// @dev instance specific role for bundle service
85
- function BUNDLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2500); }
120
+ /// @dev Converts an uint into a component role id.
121
+ function toComponentRoleId(ObjectType objectType, uint64 index) public pure returns (RoleId) {
122
+ return toRoleId(COMPONENT_ROLE_FACTOR * uint64(objectType.toInt()) + index);
123
+ }
86
124
 
87
- // @dev Returns true iff role ids a and b are identical
88
- function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
89
- return RoleId.unwrap(a) == RoleId.unwrap(b);
90
- }
125
+ /// @dev Converts an uint into a custom role id.
126
+ function toCustomRoleId(uint64 index) public pure returns (RoleId) {
127
+ return toRoleId(CUSTOM_ROLE_MIN + index);
128
+ }
91
129
 
92
- // @dev Returns true iff role ids a and b are different
93
- function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
94
- return RoleId.unwrap(a) != RoleId.unwrap(b);
95
- }
130
+ /// @dev Converts the role id to a uint.
131
+ function toInt(RoleId a) public pure returns (uint64) {
132
+ return uint64(RoleId.unwrap(a));
133
+ }
96
134
 
97
- library RoleIdLib {
98
- /// @dev Converts the RoleId to a uint.
99
- function zero() public pure returns (RoleId) {
100
- return RoleId.wrap(0);
135
+ /// @dev Converts an uint into a role id.
136
+ /// Used for GIF core contracts.
137
+ function roleForType(ObjectType objectType) public pure returns (RoleId) {
138
+ return RoleId.wrap(SERVICE_DOMAIN_ROLE_FACTOR * uint64(objectType.toInt()));
101
139
  }
102
140
 
103
141
  /// @dev Converts an uint into a RoleId.
104
- function toRoleId(uint256 a) public pure returns (RoleId) {
105
- return RoleId.wrap(uint64(a));
142
+ /// Used for GIF core contracts.
143
+ function roleForTypeAndVersion(ObjectType objectType, VersionPart majorVersion) public pure returns (RoleId) {
144
+ return RoleId.wrap(
145
+ uint64(SERVICE_DOMAIN_ROLE_FACTOR * objectType.toInt() + majorVersion.toInt()));
106
146
  }
107
147
 
108
- /// @dev Converts the RoleId to a uint.
109
- function toInt(RoleId a) public pure returns (uint64) {
110
- return uint64(RoleId.unwrap(a));
148
+ /// @dev Converts an uint into a RoleId.
149
+ /// Used for GIF core contracts.
150
+ function roleForTypeAndAllVersions(ObjectType objectType) public pure returns (RoleId) {
151
+ return RoleId.wrap(
152
+ uint64(SERVICE_DOMAIN_ROLE_FACTOR * objectType.toInt() + ALL_VERSIONS));
111
153
  }
112
154
 
113
155
  /// @dev Returns true if the value is non-zero (> 0).