@etherisc/gif-next 0.0.2-a714036-117 → 0.0.2-a755cba-731

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 (486) hide show
  1. package/README.md +32 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  22. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +156 -412
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +96 -344
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +229 -292
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -117
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -142
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +101 -62
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1441 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2329 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +116 -48
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -101
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +141 -141
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -139
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +746 -134
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -260
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +99 -87
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +339 -140
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  97. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +109 -365
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +72 -130
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +85 -333
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -191
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +119 -83
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +108 -356
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +160 -334
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -131
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +60 -65
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +94 -163
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +277 -205
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +105 -364
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +385 -418
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +120 -100
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +124 -181
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +89 -89
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +147 -349
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +433 -193
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +141 -105
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +68 -7
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +292 -6
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +281 -142
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +131 -143
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  162. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +351 -338
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +126 -98
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.json +215 -309
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +117 -117
  171. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  172. package/artifacts/contracts/product/Product.sol/Product.json +145 -347
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +310 -34
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  185. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.json +516 -95
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +296 -143
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -284
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +91 -75
  193. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  195. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +131 -223
  197. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  199. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  201. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  202. package/artifacts/contracts/shared/Component.sol/Component.json +69 -288
  203. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +471 -593
  205. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -127
  207. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
  209. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  211. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  215. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +61 -90
  217. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +425 -261
  219. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +72 -130
  221. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  223. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  225. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  227. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  231. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  234. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  236. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +84 -332
  238. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  252. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +106 -127
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  264. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  265. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +64 -94
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +190 -379
  268. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  269. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +118 -99
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -165
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +95 -79
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +170 -129
  280. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  281. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  282. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  283. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  285. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  288. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  290. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  292. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  294. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  295. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  296. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  298. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  299. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  300. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  302. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  304. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  306. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  308. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
  310. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  312. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  314. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  318. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  321. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  323. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  325. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  326. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  327. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  328. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  329. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  330. package/contracts/accounting/AccountingService.sol +263 -0
  331. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  332. package/contracts/accounting/IAccountingService.sol +45 -0
  333. package/contracts/authorization/AccessAdmin.sol +83 -59
  334. package/contracts/authorization/Authorization.sol +111 -40
  335. package/contracts/authorization/IAccess.sol +1 -0
  336. package/contracts/authorization/IAccessAdmin.sol +4 -3
  337. package/contracts/authorization/IAuthorization.sol +13 -7
  338. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  339. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  340. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  341. package/contracts/distribution/BasicDistribution.sol +8 -7
  342. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  343. package/contracts/distribution/Distribution.sol +33 -41
  344. package/contracts/distribution/DistributionService.sol +109 -89
  345. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  346. package/contracts/distribution/IDistributionComponent.sol +1 -1
  347. package/contracts/distribution/IDistributionService.sol +14 -11
  348. package/contracts/examples/fire/DamageLevel.sol +59 -0
  349. package/contracts/examples/fire/FirePool.sol +90 -0
  350. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  351. package/contracts/examples/fire/FireProduct.sol +436 -0
  352. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  353. package/contracts/examples/fire/FireUSD.sol +26 -0
  354. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  355. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  356. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  357. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  358. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  359. package/contracts/examples/unpermissioned/SimpleProduct.sol +366 -0
  360. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  361. package/contracts/instance/BundleSet.sol +38 -34
  362. package/contracts/instance/IInstance.sol +16 -31
  363. package/contracts/instance/IInstanceService.sol +7 -29
  364. package/contracts/instance/Instance.sol +44 -59
  365. package/contracts/instance/InstanceAdmin.sol +76 -54
  366. package/contracts/instance/InstanceAuthorizationV3.sol +53 -34
  367. package/contracts/instance/InstanceReader.sol +203 -27
  368. package/contracts/instance/InstanceService.sol +97 -148
  369. package/contracts/instance/InstanceServiceManager.sol +6 -7
  370. package/contracts/instance/InstanceStore.sol +11 -1
  371. package/contracts/instance/RiskSet.sol +119 -0
  372. package/contracts/instance/base/ObjectCounter.sol +1 -2
  373. package/contracts/instance/base/ObjectLifecycle.sol +10 -4
  374. package/contracts/instance/base/ObjectSet.sol +24 -25
  375. package/contracts/instance/module/IComponents.sol +11 -8
  376. package/contracts/instance/module/IPolicy.sol +26 -25
  377. package/contracts/instance/module/IRisk.sol +1 -0
  378. package/contracts/oracle/BasicOracle.sol +0 -1
  379. package/contracts/oracle/IOracleService.sol +2 -1
  380. package/contracts/oracle/Oracle.sol +6 -16
  381. package/contracts/oracle/OracleService.sol +112 -81
  382. package/contracts/oracle/OracleServiceManager.sol +6 -6
  383. package/contracts/pool/BasicPool.sol +35 -26
  384. package/contracts/pool/BasicPoolAuthorization.sol +14 -4
  385. package/contracts/pool/BundleService.sol +105 -118
  386. package/contracts/pool/BundleServiceManager.sol +6 -6
  387. package/contracts/pool/IBundleService.sol +8 -20
  388. package/contracts/pool/IPoolComponent.sol +19 -15
  389. package/contracts/pool/IPoolService.sol +52 -48
  390. package/contracts/pool/Pool.sol +145 -128
  391. package/contracts/pool/PoolService.sol +295 -208
  392. package/contracts/pool/PoolServiceManager.sol +4 -4
  393. package/contracts/product/ApplicationService.sol +71 -42
  394. package/contracts/product/ApplicationServiceManager.sol +4 -4
  395. package/contracts/product/BasicProduct.sol +9 -12
  396. package/contracts/product/BasicProductAuthorization.sol +1 -3
  397. package/contracts/product/ClaimService.sol +393 -127
  398. package/contracts/product/ClaimServiceManager.sol +4 -4
  399. package/contracts/product/IApplicationService.sol +6 -2
  400. package/contracts/product/IClaimService.sol +44 -7
  401. package/contracts/product/IPolicyService.sol +44 -38
  402. package/contracts/product/IPricingService.sol +10 -10
  403. package/contracts/product/IProductComponent.sol +23 -4
  404. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  405. package/contracts/product/PolicyService.sol +501 -294
  406. package/contracts/product/PolicyServiceManager.sol +4 -4
  407. package/contracts/product/PricingService.sol +54 -54
  408. package/contracts/product/PricingServiceManager.sol +3 -3
  409. package/contracts/product/Product.sol +133 -93
  410. package/contracts/product/{ProductService.sol → RiskService.sol} +21 -13
  411. package/contracts/product/RiskServiceManager.sol +39 -0
  412. package/contracts/registry/ChainNft.sol +72 -40
  413. package/contracts/registry/IRegistry.sol +57 -18
  414. package/contracts/registry/IRegistryService.sol +5 -12
  415. package/contracts/registry/ITransferInterceptor.sol +1 -2
  416. package/contracts/registry/Registry.sol +350 -201
  417. package/contracts/registry/RegistryAdmin.sol +147 -55
  418. package/contracts/registry/RegistryService.sol +35 -46
  419. package/contracts/registry/RegistryServiceManager.sol +2 -2
  420. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  421. package/contracts/registry/ReleaseRegistry.sol +207 -206
  422. package/contracts/registry/ServiceAuthorizationV3.sol +59 -52
  423. package/contracts/shared/Component.sol +60 -121
  424. package/contracts/shared/ComponentService.sol +390 -345
  425. package/contracts/shared/ComponentServiceManager.sol +8 -5
  426. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  427. package/contracts/shared/ContractLib.sol +224 -0
  428. package/contracts/shared/IComponent.sol +6 -14
  429. package/contracts/shared/IComponentService.sol +45 -37
  430. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  431. package/contracts/shared/ILifecycle.sol +3 -1
  432. package/contracts/shared/INftOwnable.sol +2 -0
  433. package/contracts/shared/IPolicyHolder.sol +12 -22
  434. package/contracts/shared/IRegisterable.sol +11 -0
  435. package/contracts/shared/InitializableERC165.sol +2 -2
  436. package/contracts/shared/InstanceLinkedComponent.sol +72 -47
  437. package/contracts/shared/KeyValueStore.sol +1 -1
  438. package/contracts/shared/Lifecycle.sol +15 -4
  439. package/contracts/shared/NftOwnable.sol +27 -7
  440. package/contracts/shared/PolicyHolder.sol +15 -52
  441. package/contracts/shared/Registerable.sol +19 -11
  442. package/contracts/shared/RegistryLinked.sol +9 -14
  443. package/contracts/shared/Service.sol +20 -18
  444. package/contracts/shared/TokenHandler.sol +358 -27
  445. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  446. package/contracts/staking/IStaking.sol +11 -5
  447. package/contracts/staking/IStakingService.sol +0 -3
  448. package/contracts/staking/StakeManagerLib.sol +18 -25
  449. package/contracts/staking/Staking.sol +49 -50
  450. package/contracts/staking/StakingManager.sol +8 -6
  451. package/contracts/staking/StakingReader.sol +12 -5
  452. package/contracts/staking/StakingService.sol +65 -36
  453. package/contracts/staking/StakingServiceManager.sol +2 -2
  454. package/contracts/staking/TargetManagerLib.sol +7 -3
  455. package/contracts/type/Amount.sol +15 -0
  456. package/contracts/type/ClaimId.sol +6 -1
  457. package/contracts/type/Key32.sol +2 -2
  458. package/contracts/type/Key32Set.sol +62 -0
  459. package/contracts/type/NftId.sol +7 -0
  460. package/contracts/type/ObjectType.sol +26 -11
  461. package/contracts/type/PayoutId.sol +10 -10
  462. package/contracts/type/RiskId.sol +30 -4
  463. package/contracts/type/RoleId.sol +0 -12
  464. package/contracts/type/Seconds.sol +8 -0
  465. package/contracts/type/StateId.sol +15 -1
  466. package/contracts/type/UFixed.sol +13 -119
  467. package/contracts/upgradeability/ProxyManager.sol +68 -34
  468. package/contracts/upgradeability/Versionable.sol +2 -2
  469. package/package.json +4 -3
  470. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  471. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  472. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  473. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  474. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  475. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  476. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  477. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  478. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  479. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  480. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  481. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  482. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  483. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  484. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  485. package/contracts/product/ProductServiceManager.sol +0 -39
  486. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -7,11 +7,12 @@ import {IRegistry} from "./IRegistry.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
8
  import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
9
  import {IStaking} from "../staking/IStaking.sol";
10
- import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
10
+ import {ObjectType, ObjectTypeLib, ALL, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
11
11
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
12
12
  import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
13
+ import {Staking} from "../staking/Staking.sol";
13
14
  import {StakingStore} from "../staking/StakingStore.sol";
14
- import {STAKING} from "../type/ObjectType.sol";
15
+ import {TokenHandler} from "../shared/TokenHandler.sol";
15
16
  import {TokenRegistry} from "./TokenRegistry.sol";
16
17
  import {VersionPart} from "../type/Version.sol";
17
18
 
@@ -26,37 +27,34 @@ import {VersionPart} from "../type/Version.sol";
26
27
  - MUST have 1 member at any time
27
28
  - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
28
29
  - responsible for creation and activation of releases
29
-
30
- createServiceTarget(type, release)
31
- createServiceRole(type,release)
32
- getServiceRole(type, release)
33
30
  */
34
31
  contract RegistryAdmin is
35
32
  AccessAdmin
36
33
  {
37
- error ErrorRegistryAdminIsAlreadySetUp();
38
-
39
34
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
40
35
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
36
  string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
42
37
  string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
38
+ string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
43
39
  string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
44
40
  string public constant STAKING_ROLE_NAME = "StakingRole";
45
41
 
42
+ string public constant REGISTRY_TARGET_NAME = "Registry";
46
43
  string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
47
44
  string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
48
45
  string public constant STAKING_TARGET_NAME = "Staking";
46
+ string public constant STAKING_TH_TARGET_NAME = "StakingTH";
49
47
  string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
50
48
 
51
49
  uint8 public constant MAX_NUM_RELEASES = 99;
52
-
50
+ // TODO consider deleting this
53
51
  mapping(address service => VersionPart majorVersion) private _ServiceRelease;
54
52
 
53
+ address internal _registry;
55
54
  address private _releaseRegistry;
56
55
  address private _tokenRegistry;
57
56
  address private _staking;
58
57
  address private _stakingStore;
59
- bool private _setupCompleted;
60
58
 
61
59
  constructor() AccessAdmin() { }
62
60
 
@@ -66,11 +64,10 @@ contract RegistryAdmin is
66
64
  address gifManager
67
65
  )
68
66
  external
67
+ initializer()
69
68
  onlyDeployer()
70
69
  {
71
- if (_setupCompleted) { revert ErrorRegistryAdminIsAlreadySetUp(); }
72
- else { _setupCompleted = true; }
73
-
70
+ _registry = address(registry);
74
71
  _releaseRegistry = registry.getReleaseRegistryAddress();
75
72
  _tokenRegistry = registry.getTokenRegistryAddress();
76
73
  _staking = registry.getStakingAddress();
@@ -84,6 +81,7 @@ contract RegistryAdmin is
84
81
  _setupGifManagerRole(gifManager);
85
82
 
86
83
  _setupReleaseRegistry();
84
+ _setupRegistry();
87
85
  _setupStaking();
88
86
  }
89
87
 
@@ -93,15 +91,31 @@ contract RegistryAdmin is
93
91
  /// Permissioned function: Access is restricted to release manager.
94
92
  function authorizeService(
95
93
  IServiceAuthorization serviceAuthorization,
96
- IService service
94
+ IService service,
95
+ ObjectType serviceDomain,
96
+ VersionPart releaseVersion
97
97
  )
98
98
  external
99
99
  restricted()
100
100
  {
101
- _createServiceTargetAndRole(service);
102
- _authorizeServiceFunctions(serviceAuthorization, service);
101
+ _createServiceTargetAndRole(service, serviceDomain, releaseVersion);
102
+ _authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, releaseVersion);
103
103
  }
104
104
 
105
+ function grantServiceRole(
106
+ IService service,
107
+ ObjectType domain,
108
+ VersionPart version
109
+ )
110
+ external
111
+ restricted()
112
+ {
113
+ _grantRoleToAccount(
114
+ RoleIdLib.roleForTypeAndVersion(
115
+ domain,
116
+ version),
117
+ address(service));
118
+ }
105
119
 
106
120
  function grantServiceRoleForAllVersions(IService service, ObjectType domain)
107
121
  external
@@ -112,14 +126,42 @@ contract RegistryAdmin is
112
126
  address(service));
113
127
  }
114
128
 
129
+ function setServiceLocked(IService service, bool locked)
130
+ external
131
+ restricted()
132
+ {
133
+ _setTargetClosed(address(service), locked);
134
+ }
135
+
136
+ /*function transferAdmin(address to)
137
+ external
138
+ restricted // only with GIF_ADMIN_ROLE or nft owner
139
+ {
140
+ _accessManager.revoke(GIF_ADMIN_ROLE, );
141
+ _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
142
+ }*/
115
143
 
116
- function _createServiceTargetAndRole(IService service)
144
+ //--- view functions ----------------------------------------------------//
145
+
146
+ function getGifAdminRole() external view returns (RoleId) {
147
+ return GIF_ADMIN_ROLE();
148
+ }
149
+
150
+ function getGifManagerRole() external view returns (RoleId) {
151
+ return GIF_MANAGER_ROLE();
152
+ }
153
+
154
+ //--- private functions -------------------------------------------------//
155
+
156
+ function _createServiceTargetAndRole(
157
+ IService service,
158
+ ObjectType serviceDomain,
159
+ VersionPart releaseVersion
160
+ )
117
161
  private
118
162
  {
119
- ObjectType serviceDomain = service.getDomain();
120
163
  string memory baseName = ObjectTypeLib.toName(serviceDomain);
121
- VersionPart version = service.getVersion().toMajorPart();
122
- uint256 versionInt = version.toInt();
164
+ uint256 versionInt = releaseVersion.toInt();
123
165
 
124
166
  // create service target
125
167
  string memory serviceTargetName = ObjectTypeLib.toVersionedName(
@@ -131,10 +173,12 @@ contract RegistryAdmin is
131
173
  true,
132
174
  false);
133
175
 
176
+ _setTargetClosed(address(service), true);
177
+
134
178
  // create service role
135
179
  RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
136
180
  serviceDomain,
137
- version);
181
+ releaseVersion);
138
182
 
139
183
  _createRole(
140
184
  serviceRoleId,
@@ -155,15 +199,15 @@ contract RegistryAdmin is
155
199
 
156
200
  function _authorizeServiceFunctions(
157
201
  IServiceAuthorization serviceAuthorization,
158
- IService service
202
+ IService service,
203
+ ObjectType serviceDomain,
204
+ VersionPart releaseVersion
159
205
  )
160
206
  private
161
207
  {
162
- ObjectType serviceDomain = service.getDomain();
163
208
  ObjectType authorizedDomain;
164
209
  RoleId authorizedRoleId;
165
210
 
166
- VersionPart release = service.getVersion().toMajorPart();
167
211
  ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
168
212
 
169
213
  for (uint256 i = 0; i < authorizedDomains.length; i++) {
@@ -175,7 +219,7 @@ contract RegistryAdmin is
175
219
  } else {
176
220
  authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
177
221
  authorizedDomain,
178
- release);
222
+ releaseVersion);
179
223
  }
180
224
 
181
225
  // get authorized functions for authorized domain
@@ -190,27 +234,12 @@ contract RegistryAdmin is
190
234
  }
191
235
  }
192
236
 
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
- }*/
237
+ //--- private initialization functions -------------------------------------------//
200
238
 
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 {
239
+ function _setupGifAdminRole(address gifAdmin)
240
+ private
241
+ onlyInitializing()
242
+ {
214
243
 
215
244
  _createRole(
216
245
  GIF_ADMIN_ROLE(),
@@ -220,8 +249,13 @@ contract RegistryAdmin is
220
249
  maxMemberCount: 2, // TODO decide on max member count
221
250
  name: GIF_ADMIN_ROLE_NAME}));
222
251
 
223
- // for ReleaseRegistry
252
+ // for Registry
224
253
  FunctionInfo[] memory functions;
254
+ functions = new FunctionInfo[](1);
255
+ functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
256
+ _authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
257
+
258
+ // for ReleaseRegistry
225
259
  functions = new FunctionInfo[](4);
226
260
  functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
227
261
  functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
@@ -232,7 +266,10 @@ contract RegistryAdmin is
232
266
  _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
233
267
  }
234
268
 
235
- function _setupGifManagerRole(address gifManager) private {
269
+ function _setupGifManagerRole(address gifManager)
270
+ private
271
+ onlyInitializing()
272
+ {
236
273
 
237
274
  _createRole(
238
275
  GIF_MANAGER_ROLE(),
@@ -263,7 +300,10 @@ contract RegistryAdmin is
263
300
  }
264
301
 
265
302
 
266
- function _setupReleaseRegistry() private {
303
+ function _setupReleaseRegistry()
304
+ private
305
+ onlyInitializing()
306
+ {
267
307
 
268
308
  _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
269
309
 
@@ -277,19 +317,63 @@ contract RegistryAdmin is
277
317
  name: RELEASE_REGISTRY_ROLE_NAME}));
278
318
 
279
319
  FunctionInfo[] memory functions;
280
- functions = new FunctionInfo[](2);
320
+ functions = new FunctionInfo[](4);
281
321
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
282
322
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
323
+ functions[2] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
324
+ functions[3] = toFunction(RegistryAdmin.setServiceLocked.selector, "setServiceLocked");
283
325
  _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
284
326
 
285
327
  _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
286
328
  }
287
329
 
288
330
 
289
- function _setupStaking() private {
331
+ function _setupRegistry()
332
+ internal
333
+ virtual
334
+ onlyInitializing()
335
+ {
336
+ _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
337
+
338
+ // registry function authorization for registry service
339
+ RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
340
+ _createRole(
341
+ registryServiceRoleId,
342
+ toRole({
343
+ adminRoleId: ADMIN_ROLE(),
344
+ roleType: RoleType.Contract,
345
+ maxMemberCount: MAX_NUM_RELEASES,
346
+ name: REGISTRY_SERVICE_ROLE_NAME}));
347
+
348
+ // authorize registry service
349
+ FunctionInfo[] memory functions;
350
+ functions = new FunctionInfo[](2);
351
+ functions[0] = toFunction(IRegistry.register.selector, "register");
352
+ functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
353
+ _authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
354
+
355
+ // authorize release registry
356
+ RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
357
+ functions = new FunctionInfo[](1);
358
+ functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
359
+ _authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
360
+ }
361
+
362
+
363
+ function _setupStaking()
364
+ private
365
+ onlyInitializing()
366
+ {
290
367
  _createTarget(_staking, STAKING_TARGET_NAME, true, false);
368
+ _createTarget(address(IStaking(_staking).getTokenHandler()), STAKING_TH_TARGET_NAME, true, false);
291
369
  _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
292
370
 
371
+ // staking function authorization for public role
372
+ FunctionInfo[] memory functions;
373
+ functions = new FunctionInfo[](1);
374
+ functions[0] = toFunction(Staking.approveTokenHandler.selector, "approveTokenHandler");
375
+ _authorizeTargetFunctions(_staking, PUBLIC_ROLE(), functions); // only owner protected
376
+
293
377
  // staking function authorization for staking service
294
378
  RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
295
379
  _createRole(
@@ -300,8 +384,7 @@ contract RegistryAdmin is
300
384
  maxMemberCount: MAX_NUM_RELEASES,
301
385
  name: STAKING_SERVICE_ROLE_NAME}));
302
386
 
303
- FunctionInfo[] memory functions;
304
- functions = new FunctionInfo[](13);
387
+ functions = new FunctionInfo[](12);
305
388
  functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
306
389
  functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
307
390
  functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
@@ -313,9 +396,18 @@ contract RegistryAdmin is
313
396
  functions[8] = toFunction(IStaking.restake.selector, "restake");
314
397
  functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
315
398
  functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
316
- functions[11] = toFunction(IStaking.collectDipAmount.selector, "collectDipAmount");
317
- functions[12] = toFunction(IStaking.transferDipAmount.selector, "transferDipAmount");
318
399
  _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
400
+
401
+ // grant token handler authorizations
402
+ IStaking staking = IStaking(_staking);
403
+ functions = new FunctionInfo[](2);
404
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
405
+ functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
406
+
407
+ _authorizeTargetFunctions(
408
+ address(staking.getTokenHandler()),
409
+ stakingServiceRoleId,
410
+ functions);
319
411
 
320
412
  // staking function authorization for pool service
321
413
  RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
@@ -359,7 +451,7 @@ contract RegistryAdmin is
359
451
  functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
360
452
  functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
361
453
  _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
362
-
454
+
363
455
  _grantRoleToAccount(stakingRoleId, _staking);
364
456
  }
365
457
  }
@@ -18,8 +18,6 @@ contract RegistryService is
18
18
  Service,
19
19
  IRegistryService
20
20
  {
21
- using NftIdLib for NftId;
22
-
23
21
  // TODO update to real hash when registry is stable
24
22
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
25
23
 
@@ -39,8 +37,8 @@ contract RegistryService is
39
37
  address initialAuthority
40
38
  ) = abi.decode(data, (address, address));
41
39
 
42
- initializeService(registryAddress, initialAuthority, owner);
43
- registerInterface(type(IRegistryService).interfaceId);
40
+ _initializeService(registryAddress, initialAuthority, owner);
41
+ _registerInterface(type(IRegistryService).interfaceId);
44
42
  }
45
43
 
46
44
 
@@ -60,7 +58,7 @@ contract RegistryService is
60
58
  function registerInstance(IRegisterable instance, address owner)
61
59
  external
62
60
  virtual
63
- restricted
61
+ restricted()
64
62
  returns(
65
63
  IRegistry.ObjectInfo memory info
66
64
  )
@@ -75,29 +73,33 @@ contract RegistryService is
75
73
  instance.linkToRegisteredNftId(); // asume safe
76
74
  }
77
75
 
78
- function registerProduct(IComponent product, address owner)
76
+ function registerProduct(
77
+ IComponent product,
78
+ address initialOwner
79
+ )
79
80
  external
80
- restricted
81
+ virtual
82
+ restricted()
81
83
  returns(
82
84
  IRegistry.ObjectInfo memory info
83
85
  )
84
86
  {
85
- // CAN revert if no ERC165 support -> will revert with empty message
86
87
  if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
87
88
  revert ErrorRegistryServiceNotProduct(address(product));
88
89
  }
89
90
 
90
- info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
91
+ info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
91
92
  info.nftId = getRegistry().register(info);
92
93
  }
93
94
 
94
- function registerComponent(
95
+ function registerProductLinkedComponent(
95
96
  IComponent component,
96
97
  ObjectType objectType,
97
98
  address initialOwner
98
99
  )
99
100
  external
100
- restricted
101
+ virtual
102
+ restricted()
101
103
  returns(
102
104
  IRegistry.ObjectInfo memory info
103
105
  )
@@ -107,43 +109,18 @@ contract RegistryService is
107
109
  revert ErrorRegistryServiceNotComponent(address(component));
108
110
  }
109
111
 
110
- info = _getAndVerifyContractInfo(component, objectType, initialOwner);
111
- info.nftId = getRegistry().register(info);
112
- }
113
-
114
- function registerPool(IComponent pool, address owner)
115
- external
116
- restricted
117
- returns(
118
- IRegistry.ObjectInfo memory info
119
- )
120
- {
121
- if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
122
- revert ErrorRegistryServiceNotPool(address(pool));
123
- }
124
-
125
- info = _getAndVerifyContractInfo(pool, POOL(), owner);
126
- info.nftId = getRegistry().register(info);
127
- }
128
-
129
- function registerDistribution(IComponent distribution, address owner)
130
- external
131
- restricted
132
- returns(
133
- IRegistry.ObjectInfo memory info
134
- )
135
- {
136
- if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
137
- revert ErrorRegistryServiceNotDistribution(address(distribution));
112
+ if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
113
+ revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
138
114
  }
139
115
 
140
- info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
116
+ info = _getAndVerifyContractInfo(component, objectType, initialOwner);
141
117
  info.nftId = getRegistry().register(info);
142
118
  }
143
119
 
144
120
  function registerDistributor(IRegistry.ObjectInfo memory info)
145
121
  external
146
- restricted
122
+ virtual
123
+ restricted()
147
124
  returns(NftId nftId)
148
125
  {
149
126
  _verifyObjectInfo(info, DISTRIBUTOR());
@@ -152,7 +129,8 @@ contract RegistryService is
152
129
 
153
130
  function registerPolicy(IRegistry.ObjectInfo memory info)
154
131
  external
155
- restricted
132
+ virtual
133
+ restricted()
156
134
  returns(NftId nftId)
157
135
  {
158
136
  _verifyObjectInfo(info, POLICY());
@@ -161,7 +139,8 @@ contract RegistryService is
161
139
 
162
140
  function registerBundle(IRegistry.ObjectInfo memory info)
163
141
  external
164
- restricted
142
+ virtual
143
+ restricted()
165
144
  returns(NftId nftId)
166
145
  {
167
146
  _verifyObjectInfo(info, BUNDLE());
@@ -170,7 +149,8 @@ contract RegistryService is
170
149
 
171
150
  function registerStake(IRegistry.ObjectInfo memory info)
172
151
  external
173
- restricted
152
+ virtual
153
+ restricted()
174
154
  returns(NftId nftId)
175
155
  {
176
156
  _verifyObjectInfo(info, STAKE());
@@ -185,6 +165,7 @@ contract RegistryService is
185
165
  address expectedOwner // assume can be 0 when given by other service
186
166
  )
187
167
  internal
168
+ virtual
188
169
  view
189
170
  returns(
190
171
  IRegistry.ObjectInfo memory info
@@ -224,6 +205,7 @@ contract RegistryService is
224
205
  ObjectType expectedType
225
206
  )
226
207
  internal
208
+ virtual
227
209
  view
228
210
  {
229
211
  if(info.objectAddress > address(0)) {
@@ -240,8 +222,15 @@ contract RegistryService is
240
222
  revert ErrorRegistryServiceObjectOwnerZero(info.objectType);
241
223
  }
242
224
 
243
- if(getRegistry().isRegistered(owner)) {
244
- revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
225
+ if(owner == msg.sender) {
226
+ revert ErrorRegistryServiceInvalidInitialOwner(owner);
227
+ }
228
+
229
+ if(getRegistry().isRegistered(owner)) {
230
+ ObjectType ownerType = getRegistry().getObjectInfo(owner).objectType;
231
+ if(ownerType == REGISTRY() || ownerType == STAKING() || ownerType == SERVICE() || ownerType == INSTANCE()) {
232
+ revert ErrorRegistryServiceObjectOwnerRegistered(info.objectType, owner);
233
+ }
245
234
  }
246
235
  }
247
236
 
@@ -21,7 +21,6 @@ contract RegistryServiceManager is
21
21
  address registry, // used by implementation
22
22
  bytes32 salt
23
23
  )
24
- ProxyManager(registry)
25
24
  {
26
25
  if(authority == address(0)) {
27
26
  revert ErrorRegistryAccessManagerAuthorityZero();
@@ -33,7 +32,8 @@ contract RegistryServiceManager is
33
32
 
34
33
  RegistryService srv = new RegistryService{ salt: salt }();
35
34
  bytes memory data = abi.encode(registry, authority);
36
- IVersionable versionable = deployDetermenistic(
35
+ IVersionable versionable = initialize(
36
+ registry,
37
37
  address(srv),
38
38
  data,
39
39
  salt);
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {RELEASE} from "../type/ObjectType.sol";
5
- import {SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED/*, FREE*/} from "../type/StateId.sol";
5
+ import {SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
6
6
  import {Lifecycle} from "../shared/Lifecycle.sol";
7
7
 
8
8
  contract ReleaseLifecycle is
@@ -18,9 +18,12 @@ contract ReleaseLifecycle is
18
18
  {
19
19
  setInitialState(RELEASE(), SCHEDULED());
20
20
 
21
+ setStateTransition(RELEASE(), SCHEDULED(), SKIPPED());
21
22
  setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
22
- setStateTransition(RELEASE(), DEPLOYING(), DEPLOYING());
23
- setStateTransition(RELEASE(), DEPLOYING(), ACTIVE());
23
+ setStateTransition(RELEASE(), DEPLOYING(), SKIPPED());
24
+ setStateTransition(RELEASE(), DEPLOYING(), DEPLOYED());
25
+ setStateTransition(RELEASE(), DEPLOYED(), SKIPPED());
26
+ setStateTransition(RELEASE(), DEPLOYED(), ACTIVE());
24
27
  setStateTransition(RELEASE(), ACTIVE(), PAUSED());
25
28
  setStateTransition(RELEASE(), PAUSED(), ACTIVE());
26
29
  }