@etherisc/gif-next 0.0.2-7bdebe2-893 → 0.0.2-7bf391b-976

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 (626) hide show
  1. package/README.md +48 -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 +1518 -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 +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +181 -361
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +181 -238
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +160 -297
  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 +247 -2323
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +203 -46
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +427 -2916
  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 +499 -375
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -207
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -102
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
  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 +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  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 +1155 -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/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +160 -219
  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 +1055 -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/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +265 -240
  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 +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1521 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +253 -45
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +190 -339
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +332 -196
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1700 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +798 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1280 -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 +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1339 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +47 -2
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +255 -90
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +66 -136
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +14 -56
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1335 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +794 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/{components → product}/Product.sol/Product.json +354 -314
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.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 +443 -43
  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 +374 -72
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
  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 +316 -140
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +105 -120
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +22 -114
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  181. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +77 -82
  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 +737 -0
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  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 +977 -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 +15 -9
  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 +23 -9
  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 +107 -6
  223. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  225. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  227. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
  229. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  230. package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
  231. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  233. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
  235. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  237. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  239. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  241. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  243. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
  245. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  247. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  255. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  257. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
  277. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  281. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  282. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  283. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  285. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  286. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  287. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  289. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  291. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  293. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  295. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  296. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  297. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  298. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  299. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  300. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  301. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  302. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  303. package/contracts/authorization/AccessAdmin.sol +591 -0
  304. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  305. package/contracts/authorization/Authorization.sol +218 -0
  306. package/contracts/authorization/IAccess.sol +48 -0
  307. package/contracts/authorization/IAccessAdmin.sol +136 -0
  308. package/contracts/authorization/IAuthorization.sol +54 -0
  309. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  310. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  311. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  312. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  313. package/contracts/distribution/BasicDistribution.sol +138 -0
  314. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  315. package/contracts/{components → distribution}/Distribution.sol +172 -161
  316. package/contracts/distribution/DistributionService.sol +336 -0
  317. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  318. package/contracts/distribution/IDistributionComponent.sol +52 -0
  319. package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -38
  320. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  321. package/contracts/instance/IInstance.sol +54 -72
  322. package/contracts/instance/IInstanceService.sol +50 -21
  323. package/contracts/instance/Instance.sol +150 -214
  324. package/contracts/instance/InstanceAdmin.sol +266 -0
  325. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  326. package/contracts/instance/InstanceReader.sol +109 -67
  327. package/contracts/instance/InstanceService.sol +267 -308
  328. package/contracts/instance/InstanceServiceManager.sol +12 -26
  329. package/contracts/instance/InstanceStore.sol +277 -0
  330. package/contracts/instance/base/BalanceStore.sol +123 -0
  331. package/contracts/instance/base/Cloneable.sol +28 -0
  332. package/contracts/instance/base/ObjectCounter.sol +21 -0
  333. package/contracts/instance/base/ObjectLifecycle.sol +104 -0
  334. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  335. package/contracts/instance/module/IAccess.sol +4 -12
  336. package/contracts/instance/module/IBundle.sol +6 -9
  337. package/contracts/instance/module/IComponents.sol +20 -15
  338. package/contracts/instance/module/IDistribution.sol +6 -6
  339. package/contracts/instance/module/IPolicy.sol +21 -14
  340. package/contracts/instance/module/IRisk.sol +1 -1
  341. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  342. package/contracts/oracle/BasicOracle.sol +48 -0
  343. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  344. package/contracts/oracle/IOracle.sol +36 -0
  345. package/contracts/oracle/IOracleComponent.sol +33 -0
  346. package/contracts/oracle/IOracleService.sol +65 -0
  347. package/contracts/oracle/Oracle.sol +166 -0
  348. package/contracts/oracle/OracleService.sol +278 -0
  349. package/contracts/oracle/OracleServiceManager.sol +39 -0
  350. package/contracts/pool/BasicPool.sol +166 -0
  351. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  352. package/contracts/pool/BundleService.sol +450 -0
  353. package/contracts/pool/BundleServiceManager.sol +39 -0
  354. package/contracts/{instance/service → pool}/IBundleService.sol +50 -30
  355. package/contracts/pool/IPoolComponent.sol +58 -0
  356. package/contracts/{instance/service → pool}/IPoolService.sol +70 -44
  357. package/contracts/pool/Pool.sol +328 -0
  358. package/contracts/pool/PoolService.sol +559 -0
  359. package/contracts/pool/PoolServiceManager.sol +39 -0
  360. package/contracts/product/ApplicationService.sol +230 -0
  361. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  362. package/contracts/product/BasicProduct.sol +52 -0
  363. package/contracts/product/BasicProductAuthorization.sol +43 -0
  364. package/contracts/{instance/service → product}/ClaimService.sol +81 -101
  365. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  366. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  367. package/contracts/{instance/service → product}/IClaimService.sol +24 -14
  368. package/contracts/product/IPolicyService.sol +85 -0
  369. package/contracts/product/IPricingService.sol +39 -0
  370. package/contracts/product/IProductComponent.sol +40 -0
  371. package/contracts/product/IProductService.sol +33 -0
  372. package/contracts/product/PolicyService.sol +556 -0
  373. package/contracts/product/PolicyServiceManager.sol +39 -0
  374. package/contracts/product/PricingService.sol +300 -0
  375. package/contracts/product/PricingServiceManager.sol +39 -0
  376. package/contracts/{components → product}/Product.sol +165 -125
  377. package/contracts/product/ProductService.sol +99 -0
  378. package/contracts/product/ProductServiceManager.sol +39 -0
  379. package/contracts/registry/ChainNft.sol +8 -1
  380. package/contracts/registry/IRegistry.sol +59 -26
  381. package/contracts/registry/IRegistryService.sol +42 -39
  382. package/contracts/registry/Registry.sol +234 -125
  383. package/contracts/registry/RegistryAdmin.sol +365 -0
  384. package/contracts/registry/RegistryService.sol +69 -99
  385. package/contracts/registry/RegistryServiceManager.sol +23 -32
  386. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  387. package/contracts/registry/ReleaseRegistry.sol +485 -0
  388. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  389. package/contracts/registry/TokenRegistry.sol +261 -62
  390. package/contracts/shared/Component.sol +281 -0
  391. package/contracts/shared/ComponentService.sol +650 -0
  392. package/contracts/shared/ComponentServiceManager.sol +35 -0
  393. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  394. package/contracts/{components → shared}/IComponent.sol +21 -40
  395. package/contracts/shared/IComponentService.sol +108 -0
  396. package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
  397. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  398. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  399. package/contracts/shared/INftOwnable.sol +2 -2
  400. package/contracts/shared/IPolicyHolder.sol +10 -5
  401. package/contracts/shared/IService.sol +10 -3
  402. package/contracts/shared/InitializableCustom.sol +177 -0
  403. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
  404. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  405. package/contracts/shared/KeyValueStore.sol +131 -0
  406. package/contracts/shared/Lifecycle.sol +77 -0
  407. package/contracts/shared/NftIdSet.sol +65 -0
  408. package/contracts/shared/NftOwnable.sol +5 -16
  409. package/contracts/shared/PolicyHolder.sol +24 -19
  410. package/contracts/shared/Registerable.sol +3 -3
  411. package/contracts/shared/Service.sol +32 -22
  412. package/contracts/shared/TokenHandler.sol +31 -2
  413. package/contracts/staking/IStaking.sol +167 -0
  414. package/contracts/staking/IStakingService.sol +160 -0
  415. package/contracts/staking/StakeManagerLib.sol +231 -0
  416. package/contracts/staking/Staking.sol +516 -0
  417. package/contracts/staking/StakingLifecycle.sol +23 -0
  418. package/contracts/staking/StakingManager.sol +50 -0
  419. package/contracts/staking/StakingReader.sol +183 -0
  420. package/contracts/staking/StakingService.sol +407 -0
  421. package/contracts/staking/StakingServiceManager.sol +44 -0
  422. package/contracts/staking/StakingStore.sol +605 -0
  423. package/contracts/staking/TargetManagerLib.sol +207 -0
  424. package/contracts/{types → type}/AddressSet.sol +1 -1
  425. package/contracts/{types → type}/Amount.sol +56 -1
  426. package/contracts/{types → type}/Blocknumber.sol +26 -3
  427. package/contracts/{types → type}/Fee.sol +24 -22
  428. package/contracts/{types → type}/NftId.sol +14 -16
  429. package/contracts/{types → type}/NftIdSet.sol +2 -2
  430. package/contracts/type/ObjectType.sol +271 -0
  431. package/contracts/{types → type}/Referral.sol +2 -1
  432. package/contracts/type/RequestId.sol +75 -0
  433. package/contracts/{types → type}/RiskId.sol +1 -1
  434. package/contracts/type/RoleId.sol +174 -0
  435. package/contracts/{types → type}/Seconds.sol +40 -1
  436. package/contracts/type/Selector.sol +102 -0
  437. package/contracts/{types → type}/StateId.sol +27 -2
  438. package/contracts/type/String.sol +53 -0
  439. package/contracts/{types → type}/Timestamp.sol +17 -3
  440. package/contracts/{types → type}/UFixed.sol +34 -9
  441. package/contracts/{types → type}/Version.sol +4 -2
  442. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  443. package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
  444. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  445. package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
  446. package/package.json +8 -5
  447. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  448. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  449. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  450. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  451. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  452. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  453. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  454. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  455. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  456. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  457. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  458. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  459. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  460. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  461. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  462. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  463. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  464. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  469. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  471. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  473. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  474. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  476. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  478. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1291
  480. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -700
  482. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  483. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1400
  484. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -760
  486. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  488. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  490. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  497. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  499. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  501. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1670
  503. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -732
  505. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  507. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  509. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  510. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  511. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  512. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  514. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  515. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  516. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  517. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  518. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  519. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  520. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  521. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  522. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  523. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  525. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  527. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  529. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  530. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  531. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  532. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  533. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  534. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  535. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  536. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  537. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  538. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  539. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  540. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  541. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  543. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  545. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  546. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  547. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  549. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  550. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  551. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  553. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  554. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  555. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  557. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  558. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  559. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  561. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  563. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  565. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  567. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  569. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  571. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  573. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  576. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  577. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  578. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  579. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  580. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  581. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  583. package/contracts/components/Component.sol +0 -272
  584. package/contracts/components/IDistributionComponent.sol +0 -71
  585. package/contracts/components/IPoolComponent.sol +0 -113
  586. package/contracts/components/IProductComponent.sol +0 -40
  587. package/contracts/components/Pool.sol +0 -302
  588. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  589. package/contracts/instance/Cloneable.sol +0 -51
  590. package/contracts/instance/InstanceAccessManager.sol +0 -527
  591. package/contracts/instance/base/ComponentService.sol +0 -130
  592. package/contracts/instance/base/KeyValueStore.sol +0 -149
  593. package/contracts/instance/base/Lifecycle.sol +0 -120
  594. package/contracts/instance/module/ISetup.sol +0 -33
  595. package/contracts/instance/module/ITreasury.sol +0 -23
  596. package/contracts/instance/service/ApplicationService.sol +0 -356
  597. package/contracts/instance/service/BundleService.sol +0 -385
  598. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  599. package/contracts/instance/service/DistributionService.sol +0 -431
  600. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  601. package/contracts/instance/service/IPolicyService.sol +0 -80
  602. package/contracts/instance/service/IProductService.sol +0 -40
  603. package/contracts/instance/service/PolicyService.sol +0 -358
  604. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  605. package/contracts/instance/service/PoolService.sol +0 -403
  606. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  607. package/contracts/instance/service/ProductService.sol +0 -210
  608. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  609. package/contracts/registry/RegistryAccessManager.sol +0 -216
  610. package/contracts/registry/ReleaseManager.sol +0 -324
  611. package/contracts/shared/ContractDeployerLib.sol +0 -72
  612. package/contracts/test/TestFee.sol +0 -25
  613. package/contracts/test/TestRegisterable.sol +0 -18
  614. package/contracts/test/TestRoleId.sol +0 -14
  615. package/contracts/test/TestService.sol +0 -25
  616. package/contracts/test/TestToken.sol +0 -26
  617. package/contracts/test/TestVersion.sol +0 -44
  618. package/contracts/test/TestVersionable.sol +0 -17
  619. package/contracts/types/ChainId.sol +0 -38
  620. package/contracts/types/NumberId.sol +0 -52
  621. package/contracts/types/ObjectType.sol +0 -157
  622. package/contracts/types/RoleId.sol +0 -97
  623. /package/contracts/{types → type}/ClaimId.sol +0 -0
  624. /package/contracts/{types → type}/DistributorType.sol +0 -0
  625. /package/contracts/{types → type}/Key32.sol +0 -0
  626. /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -0,0 +1,365 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {IAccess} from "../authorization/IAccess.sol";
6
+ import {IRegistry} from "./IRegistry.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
+ import {IStaking} from "../staking/IStaking.sol";
10
+ import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
11
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
12
+ import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
13
+ import {StakingStore} from "../staking/StakingStore.sol";
14
+ import {STAKING} from "../type/ObjectType.sol";
15
+ import {TokenRegistry} from "./TokenRegistry.sol";
16
+ import {VersionPart} from "../type/Version.sol";
17
+
18
+ /*
19
+ 1) GIF_MANAGER_ROLE
20
+ - can have arbitrary number of members
21
+ - responsible for services registrations
22
+ - responsible for token registration and activation
23
+
24
+ 2) GIF_ADMIN_ROLE
25
+ - admin of GIF_MANAGER_ROLE
26
+ - MUST have 1 member at any time
27
+ - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
28
+ - responsible for creation and activation of releases
29
+
30
+ createServiceTarget(type, release)
31
+ createServiceRole(type,release)
32
+ getServiceRole(type, release)
33
+ */
34
+ contract RegistryAdmin is
35
+ AccessAdmin
36
+ {
37
+ error ErrorRegistryAdminIsAlreadySetUp();
38
+
39
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
40
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
42
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
43
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
44
+ string public constant STAKING_ROLE_NAME = "StakingRole";
45
+
46
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
47
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
48
+ string public constant STAKING_TARGET_NAME = "Staking";
49
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
50
+
51
+ uint8 public constant MAX_NUM_RELEASES = 99;
52
+
53
+ mapping(address service => VersionPart majorVersion) private _ServiceRelease;
54
+
55
+ address private _releaseRegistry;
56
+ address private _tokenRegistry;
57
+ address private _staking;
58
+ address private _stakingStore;
59
+ bool private _setupCompleted;
60
+
61
+ constructor() AccessAdmin() { }
62
+
63
+ function completeSetup(
64
+ IRegistry registry,
65
+ address gifAdmin,
66
+ address gifManager
67
+ )
68
+ external
69
+ onlyDeployer()
70
+ {
71
+ if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
72
+ else { _setupCompleted = true; }
73
+
74
+ _releaseRegistry = registry.getReleaseRegistryAddress();
75
+ _tokenRegistry = registry.getTokenRegistryAddress();
76
+ _staking = registry.getStakingAddress();
77
+ _stakingStore = address(
78
+ IStaking(_staking).getStakingStore());
79
+
80
+ // at this moment all registry contracts are deployed and fully intialized
81
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
82
+
83
+ _setupGifAdminRole(gifAdmin);
84
+ _setupGifManagerRole(gifManager);
85
+
86
+ _setupReleaseRegistry();
87
+ _setupStaking();
88
+ }
89
+
90
+
91
+ /// @dev Sets up authorizaion for specified service.
92
+ /// For all authorized services its authorized functions are enabled.
93
+ /// Permissioned function: Access is restricted to release manager.
94
+ function authorizeService(
95
+ IServiceAuthorization serviceAuthorization,
96
+ IService service
97
+ )
98
+ external
99
+ restricted()
100
+ {
101
+ _createServiceTargetAndRole(service);
102
+ _authorizeServiceFunctions(serviceAuthorization, service);
103
+ }
104
+
105
+
106
+ function grantServiceRoleForAllVersions(IService service, ObjectType domain)
107
+ external
108
+ restricted()
109
+ {
110
+ _grantRoleToAccount(
111
+ RoleIdLib.roleForTypeAndAllVersions(domain),
112
+ address(service));
113
+ }
114
+
115
+
116
+ function _createServiceTargetAndRole(IService service)
117
+ private
118
+ {
119
+ ObjectType serviceDomain = service.getDomain();
120
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
121
+ VersionPart version = service.getVersion().toMajorPart();
122
+ uint256 versionInt = version.toInt();
123
+
124
+ // create service target
125
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
126
+ baseName, "Service", versionInt);
127
+
128
+ _createTarget(
129
+ address(service),
130
+ serviceTargetName,
131
+ true,
132
+ false);
133
+
134
+ // create service role
135
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
136
+ serviceDomain,
137
+ version);
138
+
139
+ _createRole(
140
+ serviceRoleId,
141
+ toRole({
142
+ adminRoleId: ADMIN_ROLE(),
143
+ roleType: RoleType.Contract,
144
+ maxMemberCount: 1,
145
+ name: ObjectTypeLib.toVersionedName(
146
+ baseName,
147
+ "ServiceRole",
148
+ versionInt)}));
149
+
150
+ _grantRoleToAccount(
151
+ serviceRoleId,
152
+ address(service));
153
+ }
154
+
155
+
156
+ function _authorizeServiceFunctions(
157
+ IServiceAuthorization serviceAuthorization,
158
+ IService service
159
+ )
160
+ private
161
+ {
162
+ ObjectType serviceDomain = service.getDomain();
163
+ ObjectType authorizedDomain;
164
+ RoleId authorizedRoleId;
165
+
166
+ VersionPart release = service.getVersion().toMajorPart();
167
+ ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
168
+
169
+ for (uint256 i = 0; i < authorizedDomains.length; i++) {
170
+ authorizedDomain = authorizedDomains[i];
171
+
172
+ // derive authorized role from authorized domain
173
+ if (authorizedDomain == ALL()) {
174
+ authorizedRoleId = PUBLIC_ROLE();
175
+ } else {
176
+ authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
177
+ authorizedDomain,
178
+ release);
179
+ }
180
+
181
+ // get authorized functions for authorized domain
182
+ IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
183
+ serviceDomain,
184
+ authorizedDomain);
185
+
186
+ _authorizeTargetFunctions(
187
+ address(service),
188
+ authorizedRoleId,
189
+ authorizatedFunctions);
190
+ }
191
+ }
192
+
193
+ /*function transferAdmin(address to)
194
+ external
195
+ restricted // only with GIF_ADMIN_ROLE or nft owner
196
+ {
197
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
198
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
199
+ }*/
200
+
201
+ //--- view functions ----------------------------------------------------//
202
+
203
+ function getGifAdminRole() external view returns (RoleId) {
204
+ return GIF_ADMIN_ROLE();
205
+ }
206
+
207
+ function getGifManagerRole() external view returns (RoleId) {
208
+ return GIF_MANAGER_ROLE();
209
+ }
210
+
211
+ //--- private functions -------------------------------------------------//
212
+
213
+ function _setupGifAdminRole(address gifAdmin) private {
214
+
215
+ _createRole(
216
+ GIF_ADMIN_ROLE(),
217
+ toRole({
218
+ adminRoleId: ADMIN_ROLE(),
219
+ roleType: RoleType.Gif,
220
+ maxMemberCount: 2, // TODO decide on max member count
221
+ name: GIF_ADMIN_ROLE_NAME}));
222
+
223
+ // for ReleaseRegistry
224
+ FunctionInfo[] memory functions;
225
+ functions = new FunctionInfo[](4);
226
+ functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
227
+ functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
228
+ functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
229
+ functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
230
+ _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
231
+
232
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
233
+ }
234
+
235
+ function _setupGifManagerRole(address gifManager) private {
236
+
237
+ _createRole(
238
+ GIF_MANAGER_ROLE(),
239
+ toRole({
240
+ adminRoleId: ADMIN_ROLE(),
241
+ roleType: RoleType.Gif,
242
+ maxMemberCount: 1,
243
+ name: GIF_MANAGER_ROLE_NAME}));
244
+
245
+ // for TokenRegistry
246
+ FunctionInfo[] memory functions;
247
+ functions = new FunctionInfo[](5);
248
+ functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
249
+ functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
250
+ functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
251
+ functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
252
+ // TODO find a better way (only needed for testing)
253
+ functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
254
+ _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
255
+
256
+ // for ReleaseRegistry
257
+ functions = new FunctionInfo[](2);
258
+ functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
259
+ functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
260
+ _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
261
+
262
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
263
+ }
264
+
265
+
266
+ function _setupReleaseRegistry() private {
267
+
268
+ _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
269
+
270
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
271
+ _createRole(
272
+ releaseRegistryRoleId,
273
+ toRole({
274
+ adminRoleId: ADMIN_ROLE(),
275
+ roleType: RoleType.Contract,
276
+ maxMemberCount: 1,
277
+ name: RELEASE_REGISTRY_ROLE_NAME}));
278
+
279
+ FunctionInfo[] memory functions;
280
+ functions = new FunctionInfo[](2);
281
+ functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
282
+ functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
283
+ _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
284
+
285
+ _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
286
+ }
287
+
288
+
289
+ function _setupStaking() private {
290
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
291
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
292
+
293
+ // staking function authorization for staking service
294
+ RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
295
+ _createRole(
296
+ stakingServiceRoleId,
297
+ toRole({
298
+ adminRoleId: ADMIN_ROLE(),
299
+ roleType: RoleType.Contract,
300
+ maxMemberCount: MAX_NUM_RELEASES,
301
+ name: STAKING_SERVICE_ROLE_NAME}));
302
+
303
+ FunctionInfo[] memory functions;
304
+ functions = new FunctionInfo[](13);
305
+ functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
306
+ functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
307
+ functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
308
+ functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
309
+ functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
310
+ functions[5] = toFunction(IStaking.createStake.selector, "createStake");
311
+ functions[6] = toFunction(IStaking.stake.selector, "stake");
312
+ functions[7] = toFunction(IStaking.unstake.selector, "unstake");
313
+ functions[8] = toFunction(IStaking.restake.selector, "restake");
314
+ functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
315
+ functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
316
+ functions[11] = toFunction(IStaking.collectDipAmount.selector, "collectDipAmount");
317
+ functions[12] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
318
+ _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
319
+
320
+ // staking function authorization for pool service
321
+ RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
322
+ _createRole(
323
+ poolServiceRoleId,
324
+ toRole({
325
+ adminRoleId: ADMIN_ROLE(),
326
+ roleType: RoleType.Contract,
327
+ maxMemberCount: MAX_NUM_RELEASES,
328
+ name: POOL_SERVICE_ROLE_NAME}));
329
+
330
+ // staking function authorizations
331
+ functions = new FunctionInfo[](2);
332
+ functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
333
+ functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
334
+ _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
335
+
336
+ // staking store function authorizations
337
+ RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
338
+ _createRole(
339
+ stakingRoleId,
340
+ toRole({
341
+ adminRoleId: ADMIN_ROLE(),
342
+ roleType: RoleType.Contract,
343
+ maxMemberCount: 1,
344
+ name: STAKING_ROLE_NAME}));
345
+
346
+ functions = new FunctionInfo[](14);
347
+ functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
348
+ functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
349
+ functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
350
+ functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
351
+ functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
352
+ functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
353
+ functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
354
+ functions[7] = toFunction(StakingStore.create.selector, "create");
355
+ functions[8] = toFunction(StakingStore.update.selector, "update");
356
+ functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
357
+ functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
358
+ functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
359
+ functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
360
+ functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
361
+ _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
362
+
363
+ _grantRoleToAccount(stakingRoleId, _staking);
364
+ }
365
+ }
@@ -1,34 +1,18 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
5
- // import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
-
7
- import {IRegistry} from "./IRegistry.sol";
4
+ import {IComponent} from "../../contracts/shared/IComponent.sol";
5
+ import {IDistributionComponent} from "../../contracts/distribution/IDistributionComponent.sol";
8
6
  import {IInstance} from "../instance/IInstance.sol";
9
-
10
- import {ContractDeployerLib} from "../shared/ContractDeployerLib.sol";
11
- import {IComponent} from "../../contracts/components/IComponent.sol";
12
- import {IPoolComponent} from "../../contracts/components/IPoolComponent.sol";
13
- import {IProductComponent} from "../../contracts/components/IProductComponent.sol";
14
- import {IDistributionComponent} from "../../contracts/components/IDistributionComponent.sol";
15
-
16
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
17
- import {Versionable} from "../../contracts/shared/Versionable.sol";
7
+ import {IPoolComponent} from "../../contracts/pool/IPoolComponent.sol";
8
+ import {IProductComponent} from "../../contracts/product/IProductComponent.sol";
18
9
  import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
19
- import {Registerable} from "../../contracts/shared/Registerable.sol";
20
-
21
- import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
22
- import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
23
- import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
24
- import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
25
- import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
26
- import {Version, VersionPart, VersionLib} from "../../contracts/types/Version.sol";
10
+ import {IRegistry} from "./IRegistry.sol";
11
+ import {IRegistryService} from "./IRegistryService.sol";
27
12
 
13
+ import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE} from "../../contracts/type/ObjectType.sol";
14
+ import {NftId, NftIdLib} from "../../contracts/type/NftId.sol";
28
15
  import {Service} from "../shared/Service.sol";
29
- import {IService} from "../shared/IService.sol";
30
- import {IRegistryService} from "./IRegistryService.sol";
31
- import {Registry} from "./Registry.sol";
32
16
 
33
17
  contract RegistryService is
34
18
  Service,
@@ -39,11 +23,6 @@ contract RegistryService is
39
23
  // TODO update to real hash when registry is stable
40
24
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
41
25
 
42
- // From IService
43
- function getDomain() public pure override returns(ObjectType serviceDomain) {
44
- return REGISTRY();
45
- }
46
-
47
26
  // from Versionable
48
27
 
49
28
  /// @dev top level initializer
@@ -61,19 +40,33 @@ contract RegistryService is
61
40
  ) = abi.decode(data, (address, address));
62
41
 
63
42
  initializeService(registryAddress, initialAuthority, owner);
64
-
65
43
  registerInterface(type(IRegistryService).interfaceId);
66
44
  }
67
45
 
46
+
47
+ function registerStaking(IRegisterable staking, address owner)
48
+ external
49
+ virtual
50
+ restricted()
51
+ returns(
52
+ IRegistry.ObjectInfo memory info
53
+ )
54
+ {
55
+ info = _getAndVerifyContractInfo(staking, STAKING(), owner);
56
+ info.nftId = getRegistry().register(info);
57
+ }
58
+
59
+
68
60
  function registerInstance(IRegisterable instance, address owner)
69
61
  external
62
+ virtual
70
63
  restricted
71
64
  returns(
72
65
  IRegistry.ObjectInfo memory info
73
66
  )
74
67
  {
75
68
  if(!instance.supportsInterface(type(IInstance).interfaceId)) {
76
- revert NotInstance();
69
+ revert ErrorRegistryServiceNotInstance(address(instance));
77
70
  }
78
71
 
79
72
  info = _getAndVerifyContractInfo(instance, INSTANCE(), owner);
@@ -91,13 +84,33 @@ contract RegistryService is
91
84
  {
92
85
  // CAN revert if no ERC165 support -> will revert with empty message
93
86
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
94
- revert NotProduct();
87
+ revert ErrorRegistryServiceNotProduct(address(product));
95
88
  }
96
89
 
97
90
  info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
98
91
  info.nftId = getRegistry().register(info);
99
92
  }
100
93
 
94
+ function registerComponent(
95
+ IComponent component,
96
+ ObjectType objectType,
97
+ address initialOwner
98
+ )
99
+ external
100
+ restricted
101
+ returns(
102
+ IRegistry.ObjectInfo memory info
103
+ )
104
+ {
105
+ // CAN revert if no ERC165 support -> will revert with empty message
106
+ if(!component.supportsInterface(type(IComponent).interfaceId)) {
107
+ revert ErrorRegistryServiceNotComponent(address(component));
108
+ }
109
+
110
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
111
+ info.nftId = getRegistry().register(info);
112
+ }
113
+
101
114
  function registerPool(IComponent pool, address owner)
102
115
  external
103
116
  restricted
@@ -106,7 +119,7 @@ contract RegistryService is
106
119
  )
107
120
  {
108
121
  if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
109
- revert NotPool();
122
+ revert ErrorRegistryServiceNotPool(address(pool));
110
123
  }
111
124
 
112
125
  info = _getAndVerifyContractInfo(pool, POOL(), owner);
@@ -121,7 +134,7 @@ contract RegistryService is
121
134
  )
122
135
  {
123
136
  if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
124
- revert NotDistribution();
137
+ revert ErrorRegistryServiceNotDistribution(address(distribution));
125
138
  }
126
139
 
127
140
  info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
@@ -143,7 +156,6 @@ contract RegistryService is
143
156
  returns(NftId nftId)
144
157
  {
145
158
  _verifyObjectInfo(info, POLICY());
146
-
147
159
  nftId = getRegistry().register(info);
148
160
  }
149
161
 
@@ -153,7 +165,6 @@ contract RegistryService is
153
165
  returns(NftId nftId)
154
166
  {
155
167
  _verifyObjectInfo(info, BUNDLE());
156
-
157
168
  nftId = getRegistry().register(info);
158
169
  }
159
170
 
@@ -163,59 +174,9 @@ contract RegistryService is
163
174
  returns(NftId nftId)
164
175
  {
165
176
  _verifyObjectInfo(info, STAKE());
166
-
167
177
  nftId = getRegistry().register(info);
168
178
  }
169
179
 
170
- // from IRegisterable
171
-
172
- function getFunctionConfigs()
173
- external
174
- pure
175
- returns(
176
- FunctionConfig[] memory config
177
- )
178
- {
179
- config = new FunctionConfig[](8);
180
-
181
- // order of service registrations MUST be reverse to this array
182
- /*config[-1].serviceDomain = STAKE();
183
- config[-1].selector = RegistryService.registerStake.selector;*/
184
-
185
- config[0].serviceDomain = POLICY();
186
- config[0].selectors = new bytes4[](0);
187
-
188
- config[1].serviceDomain = APPLICATION();
189
- config[1].selectors = new bytes4[](1);
190
- config[1].selectors[0] = RegistryService.registerPolicy.selector;
191
-
192
- config[2].serviceDomain = CLAIM();
193
- config[2].selectors = new bytes4[](0);
194
-
195
- config[3].serviceDomain = PRODUCT();
196
- config[3].selectors = new bytes4[](1);
197
- config[3].selectors[0] = RegistryService.registerProduct.selector;
198
-
199
- config[4].serviceDomain = POOL();
200
- config[4].selectors = new bytes4[](1);
201
- config[4].selectors[0] = RegistryService.registerPool.selector;
202
-
203
- // registration of bundle service must preceed registration of pool service
204
- config[5].serviceDomain = BUNDLE();
205
- config[5].selectors = new bytes4[](1);
206
- config[5].selectors[0] = RegistryService.registerBundle.selector;
207
-
208
- config[6].serviceDomain = DISTRIBUTION();
209
- config[6].selectors = new bytes4[](2);
210
- config[6].selectors[0] = RegistryService.registerDistribution.selector;
211
- config[6].selectors[1] = RegistryService.registerDistributor.selector;
212
-
213
- // registerInstance() have no restriction
214
- config[7].serviceDomain = INSTANCE();
215
- config[7].selectors = new bytes4[](1);
216
- config[7].selectors[0] = RegistryService.registerInstance.selector;
217
- }
218
-
219
180
  // Internal
220
181
 
221
182
  function _getAndVerifyContractInfo(
@@ -224,34 +185,37 @@ contract RegistryService is
224
185
  address expectedOwner // assume can be 0 when given by other service
225
186
  )
226
187
  internal
227
- // view
188
+ view
228
189
  returns(
229
190
  IRegistry.ObjectInfo memory info
230
191
  )
231
192
  {
232
193
  info = registerable.getInitialInfo();
233
- info.objectAddress = address(registerable);
194
+
195
+ if(info.objectAddress != address(registerable)) {
196
+ revert ErrorRegistryServiceRegisterableAddressInvalid(registerable, info.objectAddress);
197
+ }
234
198
 
235
199
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
236
- revert UnexpectedRegisterableType(expectedType, info.objectType);
200
+ revert ErrorRegistryServiceRegisterableTypeInvalid(registerable, expectedType, info.objectType);
237
201
  }
238
202
 
239
203
  address owner = info.initialOwner;
240
204
 
241
205
  if(owner != expectedOwner) { // registerable owner protection
242
- revert NotRegisterableOwner(expectedOwner);
206
+ revert ErrorRegistryServiceRegisterableOwnerInvalid(registerable, expectedOwner, owner);
243
207
  }
244
208
 
245
209
  if(owner == address(registerable)) {
246
- revert SelfRegistration();
210
+ revert ErrorRegistryServiceRegisterableSelfRegistration(registerable);
247
211
  }
248
212
 
249
213
  if(owner == address(0)) {
250
- revert RegisterableOwnerIsZero();
214
+ revert ErrorRegistryServiceRegisterableOwnerZero(registerable);
251
215
  }
252
216
 
253
217
  if(getRegistry().isRegistered(owner)) {
254
- revert RegisterableOwnerIsRegistered();
218
+ revert ErrorRegistryServiceRegisterableOwnerRegistered(registerable, owner);
255
219
  }
256
220
  }
257
221
 
@@ -262,21 +226,27 @@ contract RegistryService is
262
226
  internal
263
227
  view
264
228
  {
265
- // enforce instead of check
266
- info.objectAddress = address(0);
229
+ if(info.objectAddress > address(0)) {
230
+ revert ErrorRegistryServiceObjectAddressNotZero(info.objectType);
231
+ }
267
232
 
268
233
  if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
269
- revert UnexpectedRegisterableType(expectedType, info.objectType);
234
+ revert ErrorRegistryServiceObjectTypeInvalid(expectedType, info.objectType);
270
235
  }
271
236
 
272
237
  address owner = info.initialOwner;
273
238
 
274
239
  if(owner == address(0)) {
275
- revert RegisterableOwnerIsZero();
240
+ revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
276
241
  }
277
242
 
278
243
  if(getRegistry().isRegistered(owner)) {
279
- revert RegisterableOwnerIsRegistered();
244
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
280
245
  }
281
246
  }
282
- }
247
+
248
+ // From IService
249
+ function _getDomain() internal override pure returns(ObjectType serviceDomain) {
250
+ return REGISTRY();
251
+ }
252
+ }