@etherisc/gif-next 0.0.2-e802d97-251 → 0.0.2-e83e4a5-207

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 (398) hide show
  1. package/README.md +18 -2
  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/authorization/IAccess.sol/IAccess.json +10 -0
  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 +1505 -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 +17 -242
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +65 -57
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -108
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +58 -78
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +147 -40
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -140
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  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 +110 -76
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +210 -103
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -49
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +84 -135
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  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 +1 -1
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -78
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +66 -29
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +44 -32
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +78 -49
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -42
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +13 -0
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -41
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -37
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -36
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -69
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -52
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +84 -47
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +53 -41
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +92 -63
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -49
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  150. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
  152. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -0
  154. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  155. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.json +24 -68
  157. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1505 -166
  159. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  161. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
  163. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  165. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  166. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +185 -318
  167. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  169. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  171. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  172. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +82 -85
  174. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +52 -60
  176. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  178. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  179. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +13 -0
  183. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  185. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  187. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  189. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  195. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  197. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  198. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  199. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  200. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  201. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  202. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  203. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  204. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +22 -22
  205. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  206. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  207. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  208. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  209. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -14
  211. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  213. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  214. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  215. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  217. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  218. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  219. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  220. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  221. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  222. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  223. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  224. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
  225. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +44 -28
  227. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  228. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -84
  229. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  230. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  231. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -56
  233. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  235. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
  237. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -47
  239. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +197 -149
  241. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  242. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  243. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  244. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  245. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
  247. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  249. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  251. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  253. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  255. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  257. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  259. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  260. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  261. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
  263. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  265. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  267. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  269. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  271. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  273. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  275. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  277. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  279. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  281. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  282. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  283. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
  285. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  287. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  289. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  291. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  293. package/contracts/authorization/AccessAdmin.sol +591 -0
  294. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  295. package/contracts/authorization/Authorization.sol +218 -0
  296. package/contracts/authorization/IAccess.sol +48 -0
  297. package/contracts/authorization/IAccessAdmin.sol +136 -0
  298. package/contracts/authorization/IAuthorization.sol +54 -0
  299. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  300. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  301. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  302. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  303. package/contracts/distribution/BasicDistribution.sol +149 -0
  304. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  305. package/contracts/distribution/Distribution.sol +126 -104
  306. package/contracts/distribution/DistributionService.sol +13 -9
  307. package/contracts/distribution/IDistributionComponent.sol +17 -35
  308. package/contracts/distribution/IDistributionService.sol +5 -1
  309. package/contracts/instance/IInstance.sol +11 -7
  310. package/contracts/instance/IInstanceService.sol +29 -18
  311. package/contracts/instance/Instance.sol +103 -85
  312. package/contracts/instance/InstanceAdmin.sol +202 -267
  313. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  314. package/contracts/instance/InstanceReader.sol +24 -9
  315. package/contracts/instance/InstanceService.sol +151 -70
  316. package/contracts/instance/InstanceStore.sol +15 -20
  317. package/contracts/instance/base/BalanceStore.sol +11 -6
  318. package/contracts/instance/base/Cloneable.sol +2 -25
  319. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  320. package/contracts/instance/base/ObjectManager.sol +7 -10
  321. package/contracts/oracle/BasicOracle.sol +48 -0
  322. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  323. package/contracts/oracle/IOracle.sol +16 -0
  324. package/contracts/oracle/Oracle.sol +61 -49
  325. package/contracts/oracle/OracleService.sol +5 -4
  326. package/contracts/pool/BasicPool.sol +164 -0
  327. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  328. package/contracts/pool/BundleService.sol +19 -19
  329. package/contracts/pool/IPoolComponent.sol +0 -60
  330. package/contracts/pool/Pool.sol +143 -131
  331. package/contracts/pool/PoolService.sol +7 -8
  332. package/contracts/product/ApplicationService.sol +5 -5
  333. package/contracts/product/BasicProduct.sol +82 -0
  334. package/contracts/product/BasicProductAuthorization.sol +40 -0
  335. package/contracts/product/ClaimService.sol +5 -5
  336. package/contracts/product/IProductComponent.sol +6 -9
  337. package/contracts/product/PolicyService.sol +5 -5
  338. package/contracts/product/PricingService.sol +4 -5
  339. package/contracts/product/Product.sol +103 -88
  340. package/contracts/product/ProductService.sol +5 -5
  341. package/contracts/registry/IRegistry.sol +5 -8
  342. package/contracts/registry/Registry.sol +6 -4
  343. package/contracts/registry/RegistryAdmin.sol +276 -148
  344. package/contracts/registry/RegistryService.sol +5 -5
  345. package/contracts/registry/RegistryServiceManager.sol +0 -5
  346. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  347. package/contracts/registry/ReleaseManager.sol +161 -274
  348. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  349. package/contracts/shared/ComponentService.sol +24 -61
  350. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  351. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  352. package/contracts/shared/IKeyValueStore.sol +1 -0
  353. package/contracts/shared/ILifecycle.sol +1 -2
  354. package/contracts/shared/IService.sol +7 -0
  355. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  356. package/contracts/shared/KeyValueStore.sol +6 -2
  357. package/contracts/shared/Lifecycle.sol +16 -69
  358. package/contracts/shared/Service.sol +27 -21
  359. package/contracts/staking/IStakingService.sol +11 -7
  360. package/contracts/staking/StakeManagerLib.sol +52 -0
  361. package/contracts/staking/Staking.sol +58 -96
  362. package/contracts/staking/StakingLifecycle.sol +23 -0
  363. package/contracts/staking/StakingService.sol +61 -56
  364. package/contracts/staking/StakingServiceManager.sol +0 -1
  365. package/contracts/staking/StakingStore.sol +82 -39
  366. package/contracts/type/ObjectType.sol +169 -62
  367. package/contracts/type/RoleId.sol +103 -75
  368. package/contracts/type/Selector.sol +102 -0
  369. package/contracts/type/String.sol +53 -0
  370. package/contracts/type/UFixed.sol +6 -0
  371. package/package.json +4 -1
  372. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  373. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  374. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  375. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  376. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  377. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  378. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  379. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  380. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  381. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  382. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  383. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  384. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  385. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  386. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  387. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  388. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  389. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  390. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  391. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  392. package/contracts/shared/AccessManagerCustom.sol +0 -736
  393. package/contracts/shared/AccessManagerExtended.sol +0 -470
  394. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  395. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  396. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  397. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  398. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -12,140 +12,142 @@ using {
12
12
  ObjectTypeLib.gtz
13
13
  } for ObjectType global;
14
14
 
15
- // general pure free functions
16
15
 
17
- function RELEASE() pure returns (ObjectType) {
18
- return toObjectType(1);
19
- }
16
+ //--- GIF object types/domains (rage: 1 - 99) -------------------------------//
20
17
 
21
18
  function PROTOCOL() pure returns (ObjectType) {
22
- return toObjectType(10);
19
+ return ObjectType.wrap(1);
23
20
  }
24
21
 
25
- function ROLE() pure returns (ObjectType) {
26
- return toObjectType(20);
22
+ function REGISTRY() pure returns (ObjectType) {
23
+ return ObjectType.wrap(2);
27
24
  }
28
25
 
29
- function TARGET() pure returns (ObjectType) {
30
- return toObjectType(30);
26
+ function STAKING() pure returns (ObjectType) {
27
+ return ObjectType.wrap(3);
31
28
  }
32
29
 
33
- function REGISTRY() pure returns (ObjectType) {
34
- return toObjectType(40);
30
+ function TOKEN() pure returns (ObjectType) {
31
+ return ObjectType.wrap(6);
35
32
  }
36
33
 
37
- function STAKING() pure returns (ObjectType) {
38
- return toObjectType(45);
34
+ function RELEASE() pure returns (ObjectType) {
35
+ return ObjectType.wrap(7);
39
36
  }
40
37
 
41
- function TOKEN() pure returns (ObjectType) {
42
- return toObjectType(50);
38
+ function ROLE() pure returns (ObjectType) {
39
+ return ObjectType.wrap(8);
43
40
  }
44
41
 
45
42
  function SERVICE() pure returns (ObjectType) {
46
- return toObjectType(60);
43
+ return ObjectType.wrap(9);
47
44
  }
48
45
 
49
46
  function INSTANCE() pure returns (ObjectType) {
50
- return toObjectType(70);
47
+ return ObjectType.wrap(10);
51
48
  }
52
49
 
53
- function STAKE() pure returns (ObjectType) {
54
- return toObjectType(80);
50
+ function COMPONENT() pure returns (ObjectType) {
51
+ return ObjectType.wrap(11);
55
52
  }
56
53
 
57
- function COMPONENT() pure returns (ObjectType) {
58
- return toObjectType(100);
54
+ function PRODUCT() pure returns (ObjectType) {
55
+ return ObjectType.wrap(12);
59
56
  }
60
57
 
61
- function PRODUCT_SETUP() pure returns (ObjectType) {
62
- return toObjectType(101);
58
+ function ORACLE() pure returns (ObjectType) {
59
+ return ObjectType.wrap(13);
63
60
  }
64
61
 
65
- function REQUEST() pure returns (ObjectType) {
66
- return toObjectType(105);
62
+ function DISTRIBUTION() pure returns (ObjectType) {
63
+ return ObjectType.wrap(14);
67
64
  }
68
65
 
69
- function PRODUCT() pure returns (ObjectType) {
70
- return toObjectType(110);
66
+ function POOL() pure returns (ObjectType) {
67
+ return ObjectType.wrap(15);
71
68
  }
72
69
 
73
- function DISTRIBUTION() pure returns (ObjectType) {
74
- return toObjectType(120);
70
+ function APPLICATION() pure returns (ObjectType) {
71
+ return ObjectType.wrap(20);
75
72
  }
76
73
 
77
- function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
78
- return toObjectType(121);
74
+ function POLICY() pure returns (ObjectType) {
75
+ return ObjectType.wrap(21);
79
76
  }
80
77
 
81
- function DISTRIBUTOR() pure returns (ObjectType) {
82
- return toObjectType(122);
78
+ function CLAIM() pure returns (ObjectType) {
79
+ return ObjectType.wrap(22);
83
80
  }
84
81
 
85
- function REFERRAL() pure returns (ObjectType) {
86
- return toObjectType(123);
82
+ function PAYOUT() pure returns (ObjectType) {
83
+ return ObjectType.wrap(23);
87
84
  }
88
85
 
89
- function ORACLE() pure returns (ObjectType) {
90
- return toObjectType(130);
86
+ function RISK() pure returns (ObjectType) {
87
+ return ObjectType.wrap(24);
91
88
  }
92
89
 
93
- function POOL() pure returns (ObjectType) {
94
- return toObjectType(140);
90
+ function PRICE() pure returns (ObjectType) {
91
+ return ObjectType.wrap(25);
95
92
  }
96
93
 
97
- function BUNDLE() pure returns (ObjectType) {
98
- return toObjectType(220);
94
+ function REQUEST() pure returns (ObjectType) {
95
+ return ObjectType.wrap(26);
99
96
  }
100
97
 
101
- function RISK() pure returns (ObjectType) {
102
- return toObjectType(200);
98
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
99
+ return ObjectType.wrap(27);
103
100
  }
104
101
 
105
- function APPLICATION() pure returns (ObjectType) {
106
- return toObjectType(210);
102
+ function DISTRIBUTOR() pure returns (ObjectType) {
103
+ return ObjectType.wrap(28);
107
104
  }
108
105
 
109
- function POLICY() pure returns (ObjectType) {
110
- return toObjectType(211);
106
+ function REFERRAL() pure returns (ObjectType) {
107
+ return ObjectType.wrap(29);
111
108
  }
112
109
 
113
- function CLAIM() pure returns (ObjectType) {
114
- return toObjectType(212);
110
+ function BUNDLE() pure returns (ObjectType) {
111
+ return ObjectType.wrap(30);
115
112
  }
116
113
 
117
- function PAYOUT() pure returns (ObjectType) {
118
- return toObjectType(213);
114
+ function TARGET() pure returns (ObjectType) {
115
+ return ObjectType.wrap(31);
119
116
  }
120
117
 
121
- function PRICE() pure returns (ObjectType) {
122
- return toObjectType(230);
118
+ function STAKE() pure returns (ObjectType) {
119
+ return ObjectType.wrap(32);
123
120
  }
124
121
 
125
- /// @dev Converts the uint8 to a ObjectType.
126
- function toObjectType(uint256 objectType) pure returns (ObjectType) {
127
- return ObjectType.wrap(uint8(objectType));
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);
128
126
  }
129
127
 
130
- // pure free functions for operators
128
+ // other pure free functions for operators
131
129
  function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
132
130
  return ObjectType.unwrap(a) == ObjectType.unwrap(b);
133
131
  }
134
132
 
135
- function neObjectType(
136
- ObjectType a,
137
- ObjectType b
138
- ) pure returns (bool isDifferent) {
133
+ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
139
134
  return ObjectType.unwrap(a) != ObjectType.unwrap(b);
140
135
  }
141
136
 
142
137
  // library functions that operate on user defined type
143
138
  library ObjectTypeLib {
144
139
 
140
+ error ErrorVersionTooBig(uint256 version);
141
+
145
142
  function zero() public pure returns (ObjectType) {
146
143
  return ObjectType.wrap(0);
147
144
  }
148
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
+
149
151
  /// @dev Converts the NftId to a uint256.
150
152
  function toInt(ObjectType objectType) public pure returns (uint96) {
151
153
  return uint96(ObjectType.unwrap(objectType));
@@ -163,6 +165,111 @@ library ObjectTypeLib {
163
165
 
164
166
  /// @dev Returns true if the values are equal (==).
165
167
  function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
166
- 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);
167
274
  }
168
275
  }
@@ -2,7 +2,8 @@
2
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,116 +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
21
+
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
+ }
19
31
 
20
- /// @dev role id needs to match with oz AccessManager.ADMIN_ROLE
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); }
39
-
40
- /// @dev instance specific role to register/own a distribution component
41
- function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
42
-
43
- /// @dev instance specific role to register/own an oracle component
44
- function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
52
+ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
45
53
 
46
- /// @dev instance specific role to register/own a pool component
47
- 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); }
48
56
 
49
57
  /// @dev instance specific role to register/own a product component
50
- function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(5); }
51
-
52
- /// @dev role associated with an instance contract
53
- /// this role is the admin role for the INSTANCE_OWNER_ROLE
54
- function INSTANCE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2600); }
55
-
56
- /// @dev required role to register/own an instance
57
- /// allows instance specific target, role and access management
58
- function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1900); }
59
-
60
- function REGISTRY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1800); }
58
+ function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(11); }
61
59
 
62
- /// @dev instance specific role for instance service
63
- function INSTANCE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2000); }
64
-
65
- /// @dev role for creating gif target on instance service
66
- function CAN_CREATE_GIF_TARGET__ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1700); }
67
-
68
- /// @dev role for registering gif components
69
- function COMPONENT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2001); }
70
-
71
- /// @dev instance specific role for distribution service
72
- function DISTRIBUTION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2100); }
73
-
74
- /// @dev instance specific role for oracle service
75
- function ORACLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2150); }
76
-
77
- /// @dev instance specific role for pool service
78
- function POOL_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2200); }
60
+ /// @dev instance specific role to register/own an oracle component
61
+ function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(12); }
79
62
 
80
- /// @dev instance specific role for product service
81
- function PRODUCT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2300); }
63
+ /// @dev instance specific role to register/own a distribution component
64
+ function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(13); }
82
65
 
83
- /// @dev instance specific role for application service
84
- function APPLICATION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2400); }
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); }
85
102
 
86
- /// @dev instance specific role for policy service
87
- function POLICY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2410); }
103
+ library RoleIdLib {
88
104
 
89
- /// @dev instance specific role for claim service
90
- function CLAIM_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2420); }
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;
91
109
 
92
- /// @dev instance specific role for bundle service
93
- function BUNDLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2500); }
110
+ /// @dev Converts the RoleId to a uint.
111
+ function zero() public pure returns (RoleId) {
112
+ return RoleId.wrap(0);
113
+ }
94
114
 
95
- /// @dev instance specific role for pricing service
96
- function PRICING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2800); }
115
+ /// @dev Converts an uint into a role id.
116
+ function toRoleId(uint64 a) public pure returns (RoleId) {
117
+ return RoleId.wrap(a);
118
+ }
97
119
 
98
- /// @dev instance specific role for staking service
99
- function STAKING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2900); }
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
+ }
100
124
 
101
- // @dev Returns true iff role ids a and b are identical
102
- function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
103
- return RoleId.unwrap(a) == RoleId.unwrap(b);
104
- }
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
+ }
105
129
 
106
- // @dev Returns true iff role ids a and b are different
107
- function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
108
- return RoleId.unwrap(a) != RoleId.unwrap(b);
109
- }
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
+ }
110
134
 
111
- library RoleIdLib {
112
- /// @dev Converts the RoleId to a uint.
113
- function zero() public pure returns (RoleId) {
114
- 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()));
115
139
  }
116
140
 
117
141
  /// @dev Converts an uint into a RoleId.
118
- function toRoleId(uint256 a) public pure returns (RoleId) {
119
- 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()));
120
146
  }
121
147
 
122
- /// @dev Converts the RoleId to a uint.
123
- function toInt(RoleId a) public pure returns (uint64) {
124
- 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));
125
153
  }
126
154
 
127
155
  /// @dev Returns true if the value is non-zero (> 0).
@@ -0,0 +1,102 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Selector is bytes4;
5
+
6
+ // type bindings
7
+ using {
8
+ eqSelector as ==,
9
+ neSelector as !=,
10
+ SelectorLib.toBytes4,
11
+ SelectorLib.eqz
12
+ } for Selector global;
13
+
14
+ // pure free functions for operators
15
+ function eqSelector(Selector s1, Selector s2) pure returns (bool isSame) {
16
+ return SelectorLib.eq(s1, s2);
17
+ }
18
+
19
+ function neSelector(Selector s1, Selector s2) pure returns (bool isDifferent) {
20
+ return SelectorLib.ne(s1, s2);
21
+ }
22
+
23
+ // library functions that operate on user defined type
24
+ library SelectorLib {
25
+
26
+ function zero() public pure returns (Selector) {
27
+ return Selector.wrap("");
28
+ }
29
+
30
+ function eqz(Selector s) public pure returns (bool) {
31
+ return Selector.unwrap(s) == "";
32
+ }
33
+
34
+ function eq(Selector s1, Selector s2) public pure returns (bool isSame) {
35
+ return Selector.unwrap(s1) == Selector.unwrap(s2);
36
+ }
37
+
38
+ function ne(Selector s1, Selector s2) public pure returns (bool isDifferent) {
39
+ return Selector.unwrap(s1) != Selector.unwrap(s2);
40
+ }
41
+
42
+ function toSelector(bytes4 selector) public pure returns (Selector) {
43
+ return Selector.wrap(selector);
44
+ }
45
+
46
+ function toBytes4(Selector s) public pure returns (bytes4) {
47
+ return Selector.unwrap(s);
48
+ }
49
+ }
50
+
51
+ // selector specific set library
52
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
53
+ library SelectorSetLib {
54
+
55
+ struct Set {
56
+ Selector[] selectors;
57
+ mapping(Selector selector => uint256 index) at;
58
+ }
59
+
60
+ function add(Set storage set, Selector selector) external {
61
+ // selector already in set
62
+ if (set.at[selector] > 0) { return; }
63
+
64
+ set.selectors.push(selector);
65
+ set.at[selector] = set.selectors.length;
66
+ }
67
+
68
+ function remove(Set storage set, Selector selector) external {
69
+ uint256 selectorIndex = set.at[selector];
70
+
71
+ // selector not in set
72
+ if (selectorIndex == 0) {return; }
73
+
74
+ uint256 toDeleteIndex = selectorIndex - 1;
75
+ uint256 lastIndex = set.selectors.length - 1;
76
+
77
+ if (lastIndex != toDeleteIndex) {
78
+ Selector lastSelector = set.selectors[lastIndex];
79
+ set.selectors[toDeleteIndex] = lastSelector;
80
+ set.at[lastSelector] = selectorIndex; // Replace lastValue's index to valueIndex
81
+ }
82
+
83
+ set.selectors.pop();
84
+ delete set.at[selector];
85
+ }
86
+
87
+ function isEmpty(Set storage set) external view returns(bool empty) {
88
+ return set.selectors.length == 0;
89
+ }
90
+
91
+ function contains(Set storage set, Selector selector) external view returns(bool inSet) {
92
+ return set.at[selector] > 0;
93
+ }
94
+
95
+ function size(Set storage set) external view returns(uint256 length) {
96
+ return set.selectors.length;
97
+ }
98
+
99
+ function at(Set storage set, uint256 index) external view returns(Selector selector) {
100
+ return set.selectors[index];
101
+ }
102
+ }