@etherisc/gif-next 0.0.2-a755cba-665 → 0.0.2-a7722ab-390

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 (458) hide show
  1. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +63 -56
  3. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +29 -31
  5. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +449 -248
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -21
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +348 -184
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +100 -13
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -146
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +207 -33
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +38 -94
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +257 -171
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -60
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +25 -81
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +155 -68
  38. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +67 -63
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +188 -46
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +221 -210
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +207 -33
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +121 -162
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +207 -33
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +75 -68
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +78 -71
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +188 -46
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +233 -173
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +207 -33
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +157 -28
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +107 -8
  68. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/Instance.sol/Instance.json +186 -53
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +672 -320
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +188 -46
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +374 -202
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +120 -84
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -38
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +422 -362
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  86. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  89. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  91. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  93. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  95. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  100. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +60 -51
  103. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +189 -35
  105. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +30 -21
  108. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  110. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +44 -35
  112. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
  114. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -36
  116. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +43 -34
  118. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +188 -46
  120. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
  122. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +42 -64
  124. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
  126. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +30 -21
  128. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
  130. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  131. package/artifacts/contracts/pool/Pool.sol/Pool.json +43 -34
  132. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  134. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
  136. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +70 -56
  138. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +123 -50
  140. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +37 -27
  142. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +149 -125
  144. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +207 -33
  146. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +119 -178
  148. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +56 -66
  150. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +69 -3
  152. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +27 -21
  154. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -68
  156. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
  158. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +136 -112
  160. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
  162. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
  164. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +54 -56
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +106 -78
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +40 -42
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +149 -125
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +131 -81
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -28
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +548 -429
  190. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  191. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -24
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +323 -53
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +43 -34
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +120 -138
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +47 -49
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +113 -4
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +30 -21
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +44 -45
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +30 -21
  226. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  227. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  232. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +43 -34
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  243. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  245. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  247. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  249. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  251. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  257. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  259. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +104 -30
  261. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +127 -3
  263. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/Staking.sol/Staking.json +159 -87
  265. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  267. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  269. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +44 -32
  271. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +30 -57
  273. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +166 -51
  275. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -29
  277. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +142 -128
  279. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  280. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +32 -22
  281. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  282. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  286. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  288. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  291. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  292. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  293. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  295. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  296. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  297. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  299. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  301. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  303. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  305. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
  307. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  309. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  312. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  314. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  318. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +4 -4
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  327. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  328. package/contracts/accounting/AccountingService.sol +3 -4
  329. package/contracts/accounting/AccountingServiceManager.sol +1 -1
  330. package/contracts/authorization/AccessAdmin.sol +293 -204
  331. package/contracts/authorization/AccessAdminLib.sol +183 -0
  332. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  333. package/contracts/authorization/Authorization.sol +307 -231
  334. package/contracts/authorization/IAccessAdmin.sol +69 -36
  335. package/contracts/authorization/IAuthorization.sol +21 -1
  336. package/contracts/distribution/BasicDistribution.sol +13 -11
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
  338. package/contracts/distribution/Distribution.sol +13 -56
  339. package/contracts/distribution/DistributionService.sol +58 -30
  340. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  341. package/contracts/distribution/IDistributionComponent.sol +0 -9
  342. package/contracts/distribution/IDistributionService.sol +18 -15
  343. package/contracts/examples/fire/FirePool.sol +0 -4
  344. package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
  345. package/contracts/examples/fire/FireProduct.sol +4 -7
  346. package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
  347. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  348. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
  349. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  350. package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
  351. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
  352. package/contracts/examples/unpermissioned/SimpleProduct.sol +15 -8
  353. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
  354. package/contracts/instance/BundleSet.sol +4 -4
  355. package/contracts/instance/IInstance.sol +51 -16
  356. package/contracts/instance/IInstanceService.sol +20 -2
  357. package/contracts/instance/Instance.sol +90 -25
  358. package/contracts/instance/InstanceAdmin.sol +261 -99
  359. package/contracts/instance/InstanceAuthorizationV3.sol +48 -36
  360. package/contracts/instance/InstanceReader.sol +103 -34
  361. package/contracts/instance/InstanceService.sol +154 -87
  362. package/contracts/instance/InstanceServiceManager.sol +1 -1
  363. package/contracts/instance/InstanceStore.sol +13 -2
  364. package/contracts/instance/RiskSet.sol +11 -12
  365. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  366. package/contracts/instance/base/ObjectSet.sol +7 -8
  367. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  368. package/contracts/instance/module/IComponents.sol +3 -3
  369. package/contracts/instance/module/IDistribution.sol +5 -2
  370. package/contracts/instance/module/IRisk.sol +2 -0
  371. package/contracts/oracle/BasicOracle.sol +1 -3
  372. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  373. package/contracts/oracle/Oracle.sol +1 -3
  374. package/contracts/oracle/OracleService.sol +16 -15
  375. package/contracts/oracle/OracleServiceManager.sol +1 -1
  376. package/contracts/pool/BasicPool.sol +0 -2
  377. package/contracts/pool/BasicPoolAuthorization.sol +21 -13
  378. package/contracts/pool/BundleService.sol +28 -58
  379. package/contracts/pool/BundleServiceManager.sol +1 -1
  380. package/contracts/pool/IBundleService.sol +13 -19
  381. package/contracts/pool/IPoolService.sol +50 -38
  382. package/contracts/pool/Pool.sol +9 -11
  383. package/contracts/pool/PoolLib.sol +216 -0
  384. package/contracts/pool/PoolService.sol +294 -154
  385. package/contracts/pool/PoolServiceManager.sol +1 -1
  386. package/contracts/product/ApplicationService.sol +24 -9
  387. package/contracts/product/ApplicationServiceManager.sol +1 -1
  388. package/contracts/product/BasicProduct.sol +2 -2
  389. package/contracts/product/BasicProductAuthorization.sol +23 -8
  390. package/contracts/product/ClaimService.sol +83 -134
  391. package/contracts/product/ClaimServiceManager.sol +1 -1
  392. package/contracts/product/IApplicationService.sol +3 -0
  393. package/contracts/product/IClaimService.sol +1 -2
  394. package/contracts/product/IPolicyService.sol +11 -6
  395. package/contracts/product/IPricingService.sol +1 -0
  396. package/contracts/product/IProductComponent.sol +4 -1
  397. package/contracts/product/IRiskService.sol +7 -7
  398. package/contracts/product/PolicyService.sol +86 -158
  399. package/contracts/product/PolicyServiceLib.sol +65 -0
  400. package/contracts/product/PolicyServiceManager.sol +1 -1
  401. package/contracts/product/PricingService.sol +28 -19
  402. package/contracts/product/PricingServiceManager.sol +3 -3
  403. package/contracts/product/Product.sol +33 -17
  404. package/contracts/product/RiskService.sol +76 -29
  405. package/contracts/product/RiskServiceManager.sol +1 -1
  406. package/contracts/registry/IRegistry.sol +8 -15
  407. package/contracts/registry/IRelease.sol +26 -0
  408. package/contracts/registry/Registry.sol +7 -2
  409. package/contracts/registry/RegistryAdmin.sol +143 -342
  410. package/contracts/registry/RegistryAuthorization.sol +267 -0
  411. package/contracts/registry/RegistryService.sol +3 -3
  412. package/contracts/registry/RegistryServiceManager.sol +1 -1
  413. package/contracts/registry/ReleaseAdmin.sol +253 -0
  414. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  415. package/contracts/registry/ReleaseRegistry.sol +146 -115
  416. package/contracts/registry/ServiceAuthorizationV3.sol +126 -2
  417. package/contracts/registry/TokenRegistry.sol +6 -8
  418. package/contracts/shared/Component.sol +17 -26
  419. package/contracts/shared/ComponentService.sol +141 -129
  420. package/contracts/shared/ComponentServiceManager.sol +1 -1
  421. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  422. package/contracts/shared/ContractLib.sol +60 -3
  423. package/contracts/shared/IComponent.sol +0 -4
  424. package/contracts/shared/IComponentService.sol +7 -11
  425. package/contracts/shared/IRegisterable.sol +15 -4
  426. package/contracts/shared/IService.sol +3 -5
  427. package/contracts/shared/InitializableERC165.sol +9 -1
  428. package/contracts/shared/InstanceLinkedComponent.sol +2 -4
  429. package/contracts/shared/NftOwnable.sol +5 -5
  430. package/contracts/shared/PolicyHolder.sol +1 -1
  431. package/contracts/shared/Registerable.sol +42 -19
  432. package/contracts/shared/RegistryLinked.sol +1 -1
  433. package/contracts/shared/Service.sol +8 -27
  434. package/contracts/shared/TokenHandler.sol +45 -92
  435. package/contracts/staking/IStaking.sol +12 -10
  436. package/contracts/staking/IStakingService.sol +16 -1
  437. package/contracts/staking/Staking.sol +59 -28
  438. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
  439. package/contracts/staking/StakingReader.sol +6 -16
  440. package/contracts/staking/StakingService.sol +68 -44
  441. package/contracts/staking/StakingServiceManager.sol +5 -4
  442. package/contracts/staking/StakingStore.sol +2 -1
  443. package/contracts/type/ObjectType.sol +47 -39
  444. package/contracts/type/RiskId.sol +9 -3
  445. package/contracts/type/RoleId.sol +24 -4
  446. package/contracts/type/Selector.sol +5 -0
  447. package/contracts/type/Timestamp.sol +0 -5
  448. package/contracts/type/Version.sol +54 -5
  449. package/contracts/upgradeability/ProxyManager.sol +1 -1
  450. package/package.json +2 -2
  451. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  452. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  453. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  454. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  455. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  456. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  457. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  458. package/contracts/instance/module/IAccess.sol +0 -46
@@ -3,21 +3,18 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount, AmountLib} from "../type/Amount.sol";
5
5
  import {ClaimId} from "../type/ClaimId.sol";
6
- import {IComponent} from "../shared/IComponent.sol";
7
- import {Fee, FeeLib} from "../type/Fee.sol";
8
- import {IRisk} from "../instance/module/IRisk.sol";
6
+ import {Fee} from "../type/Fee.sol";
9
7
  import {IApplicationService} from "./IApplicationService.sol";
10
8
  import {IAuthorization} from "../authorization/IAuthorization.sol";
11
9
  import {IComponentService} from "../shared/IComponentService.sol";
12
10
  import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
14
11
  import {IPolicyService} from "./IPolicyService.sol";
15
12
  import {IRiskService} from "./IRiskService.sol";
16
13
  import {IClaimService} from "./IClaimService.sol";
17
14
  import {IPricingService} from "./IPricingService.sol";
18
15
  import {IProductComponent} from "./IProductComponent.sol";
19
- import {NftId, NftIdLib} from "../type/NftId.sol";
20
- import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
21
18
  import {PayoutId} from "../type/PayoutId.sol";
22
19
  import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
23
20
  import {ReferralId} from "../type/Referral.sol";
@@ -28,9 +25,6 @@ import {Timestamp} from "../type/Timestamp.sol";
28
25
 
29
26
  import {IPolicy} from "../instance/module/IPolicy.sol";
30
27
  import {IComponents} from "../instance/module/IComponents.sol";
31
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
32
- import {IOracleComponent} from "../oracle/IOracleComponent.sol";
33
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
34
28
 
35
29
  abstract contract Product is
36
30
  InstanceLinkedComponent,
@@ -41,6 +35,7 @@ abstract contract Product is
41
35
 
42
36
  struct ProductStorage {
43
37
  IComponents.ProductInfo _productInfo;
38
+ IComponents.FeeInfo _feeInfo;
44
39
  IComponentService _componentService;
45
40
  IRiskService _riskService;
46
41
  IApplicationService _applicationService;
@@ -126,13 +121,22 @@ abstract contract Product is
126
121
  return _getProductStorage()._productInfo;
127
122
  }
128
123
 
124
+ function getInitialFeeInfo()
125
+ public
126
+ virtual
127
+ view
128
+ returns (IComponents.FeeInfo memory feeInfo)
129
+ {
130
+ return _getProductStorage()._feeInfo;
131
+ }
132
+
129
133
 
130
134
  function _initializeProduct(
131
135
  address registry,
132
136
  NftId instanceNftId,
133
137
  string memory name,
134
- address token,
135
138
  IComponents.ProductInfo memory productInfo,
139
+ IComponents.FeeInfo memory feeInfo,
136
140
  IAuthorization authorization,
137
141
  address initialOwner,
138
142
  bytes memory componentData // writeonly data that will saved in the object info record of the registry
@@ -145,7 +149,6 @@ abstract contract Product is
145
149
  registry,
146
150
  instanceNftId,
147
151
  name,
148
- token,
149
152
  PRODUCT(),
150
153
  authorization,
151
154
  productInfo.isInterceptingPolicyTransfers,
@@ -154,6 +157,7 @@ abstract contract Product is
154
157
 
155
158
  ProductStorage storage $ = _getProductStorage();
156
159
  $._productInfo = productInfo;
160
+ $._feeInfo = feeInfo;
157
161
  $._riskService = IRiskService(_getServiceAddress(RISK()));
158
162
  $._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
159
163
  $._policyService = IPolicyService(_getServiceAddress(POLICY()));
@@ -177,13 +181,14 @@ abstract contract Product is
177
181
 
178
182
 
179
183
  function _createRisk(
180
- RiskId id,
184
+ bytes32 id,
181
185
  bytes memory data
182
186
  )
183
187
  internal
184
188
  virtual
189
+ returns (RiskId riskId)
185
190
  {
186
- _getProductStorage()._riskService.createRisk(
191
+ return _getProductStorage()._riskService.createRisk(
187
192
  id,
188
193
  data
189
194
  );
@@ -276,6 +281,21 @@ abstract contract Product is
276
281
  expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
277
282
  }
278
283
 
284
+ /// @dev adjust the activation date of the policy.
285
+ /// The policy must already have an activation date set.
286
+ /// Allowed values are from the current blocktime to the expiration date of the policy.
287
+ function _adjustActivation(
288
+ NftId policyNftId,
289
+ Timestamp activateAt
290
+ )
291
+ internal
292
+ virtual
293
+ {
294
+ _getProductStorage()._policyService.adjustActivation(
295
+ policyNftId,
296
+ activateAt);
297
+ }
298
+
279
299
  function _collectPremium(
280
300
  NftId policyNftId,
281
301
  Timestamp activateAt
@@ -439,10 +459,6 @@ abstract contract Product is
439
459
  payoutId);
440
460
  }
441
461
 
442
- function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
443
- return RiskIdLib.toRiskId(riskName);
444
- }
445
-
446
462
  function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
447
463
  assembly {
448
464
  $.slot := PRODUCT_STORAGE_LOCATION_V1
@@ -2,28 +2,25 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {IInstance} from "../instance/IInstance.sol";
5
- import {IInstanceService} from "../instance/IInstanceService.sol";
6
- import {IPoolService} from "../pool/PoolService.sol";
7
- import {IRiskService} from "./IRiskService.sol";
8
- import {IRegistryService} from "../registry/IRegistryService.sol";
5
+ import {IRegistry} from "../registry/IRegistry.sol";
9
6
  import {IRisk} from "../instance/module/IRisk.sol";
7
+ import {IRiskService} from "./IRiskService.sol";
10
8
 
9
+ import {ContractLib} from "../shared/ContractLib.sol";
11
10
  import {InstanceReader} from "../instance/InstanceReader.sol";
12
- import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY, RISK} from "../type/ObjectType.sol";
11
+ import {ObjectType, COMPONENT, PRODUCT, RISK} from "../type/ObjectType.sol";
13
12
  import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
14
13
  import {NftId} from "../type/NftId.sol";
15
- import {RiskId} from "../type/RiskId.sol";
14
+ import {RiskId, RiskIdLib} from "../type/RiskId.sol";
16
15
  import {StateId} from "../type/StateId.sol";
17
16
  import {RiskSet} from "../instance/RiskSet.sol";
18
- import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
17
+ import {Service} from "../shared/Service.sol";
18
+ import {TimestampLib} from "../type/Timestamp.sol";
19
19
 
20
20
  contract RiskService is
21
- ComponentVerifyingService,
21
+ Service,
22
22
  IRiskService
23
23
  {
24
- IInstanceService private _instanceService;
25
- IPoolService internal _poolService;
26
- IRegistryService private _registryService;
27
24
 
28
25
  function _initialize(
29
26
  address owner,
@@ -34,29 +31,32 @@ contract RiskService is
34
31
  virtual override
35
32
  {
36
33
  (
37
- address registryAddress,
38
- address authority
34
+ address authority,
35
+ address registry
39
36
  ) = abi.decode(data, (address, address));
40
37
 
41
- _initializeService(registryAddress, authority, owner);
42
-
43
- _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
44
- _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
45
- _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
46
-
38
+ __Service_init(authority, registry, owner);
47
39
  _registerInterface(type(IRiskService).interfaceId);
48
40
  }
49
41
 
50
-
42
+ /// @inheritdoc IRiskService
51
43
  function createRisk(
52
- RiskId riskId,
44
+ bytes32 id,
53
45
  bytes memory data
54
46
  )
55
47
  external
56
- override
48
+ restricted()
49
+ returns (RiskId riskId)
57
50
  {
58
- (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
59
- IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
51
+ // checks
52
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
53
+
54
+ // effects
55
+ riskId = RiskIdLib.toRiskId(productNftId, id);
56
+ IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
57
+ productNftId: productNftId,
58
+ createdAt: TimestampLib.blockTimestamp(),
59
+ data: data});
60
60
 
61
61
  instance.getInstanceStore().createRisk(
62
62
  riskId,
@@ -73,12 +73,20 @@ contract RiskService is
73
73
  RiskId riskId,
74
74
  bytes memory data
75
75
  )
76
- external
76
+ external
77
+ restricted()
77
78
  {
78
- (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
79
- InstanceReader instanceReader = instance.getInstanceReader();
79
+ // checks
80
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
80
81
 
82
+ // effects
83
+ InstanceReader instanceReader = instance.getInstanceReader();
81
84
  IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
85
+
86
+ if (riskInfo.productNftId != productNftId) {
87
+ revert ErrorRiskServiceRiskProductMismatch(riskId, riskInfo.productNftId, productNftId);
88
+ }
89
+
82
90
  riskInfo.data = data;
83
91
  instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
84
92
  }
@@ -88,9 +96,18 @@ contract RiskService is
88
96
  RiskId riskId,
89
97
  StateId state
90
98
  )
91
- external
99
+ external
100
+ restricted()
92
101
  {
93
- (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
102
+ // checks
103
+ (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
104
+
105
+ NftId riskProductNftId = instance.getInstanceReader().getRiskInfo(riskId).productNftId;
106
+ if (riskProductNftId != productNftId) {
107
+ revert ErrorRiskServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
108
+ }
109
+
110
+ // effects
94
111
  instance.getInstanceStore().updateRiskState(riskId, state);
95
112
 
96
113
  if (state == ACTIVE()) {
@@ -100,6 +117,36 @@ contract RiskService is
100
117
  }
101
118
  }
102
119
 
120
+ function _getAndVerifyActiveComponent(ObjectType expectedType)
121
+ internal
122
+ view
123
+ returns (
124
+ NftId componentNftId,
125
+ IInstance instance
126
+ )
127
+ {
128
+ IRegistry.ObjectInfo memory info;
129
+ address instanceAddress;
130
+ bool isActive = true;
131
+
132
+ if (expectedType != COMPONENT()) {
133
+ (info, instanceAddress) = ContractLib.getAndVerifyComponent(
134
+ getRegistry(),
135
+ msg.sender, // caller
136
+ expectedType,
137
+ isActive);
138
+ } else {
139
+ (info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
140
+ getRegistry(),
141
+ msg.sender,
142
+ isActive);
143
+ }
144
+
145
+ // get component nft id and instance
146
+ componentNftId = info.nftId;
147
+ instance = IInstance(instanceAddress);
148
+ }
149
+
103
150
 
104
151
  function _getDomain() internal pure override returns(ObjectType) {
105
152
  return RISK();
@@ -17,7 +17,7 @@ contract RiskServiceManager is ProxyManager {
17
17
  )
18
18
  {
19
19
  RiskService svc = new RiskService{salt: salt}();
20
- bytes memory data = abi.encode(registry, authority);
20
+ bytes memory data = abi.encode(authority, registry);
21
21
  IVersionable versionable = initialize(
22
22
  registry,
23
23
  address(svc),
@@ -3,13 +3,11 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
 
6
+ import {IRelease} from "./IRelease.sol";
7
+
6
8
  import {NftId} from "../type/NftId.sol";
7
9
  import {ObjectType} from "../type/ObjectType.sol";
8
10
  import {VersionPart} from "../type/Version.sol";
9
- import {Timestamp} from "../type/Timestamp.sol";
10
- import {StateId} from "../type/StateId.sol";
11
-
12
- import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
13
11
 
14
12
  /// @title Chain Registry interface.
15
13
  /// A chain registry holds all protocol relevant objects with basic metadata.
@@ -17,7 +15,9 @@ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol"
17
15
  /// Registered objects are represented by NFTs.
18
16
  /// When on mainnet registry is global and keeps arbitrary number of chain registries residing on different chain ids.
19
17
  /// When not on mainnet registry keeps the only object residing on different chain id (on mainnet) - global registry.
20
- interface IRegistry is IERC165 {
18
+ interface IRegistry is
19
+ IERC165
20
+ {
21
21
 
22
22
  event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
23
23
  event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
@@ -61,15 +61,6 @@ interface IRegistry is IERC165 {
61
61
  bytes data;
62
62
  }
63
63
 
64
- struct ReleaseInfo {
65
- StateId state;
66
- VersionPart version;
67
- bytes32 salt;
68
- IServiceAuthorization auth;
69
- Timestamp activatedAt;
70
- Timestamp disabledAt;
71
- }
72
-
73
64
  /// @dev Registers a registry contract for a specified chain.
74
65
  /// Only one chain registry may be registered per chain
75
66
  function registerRegistry(
@@ -104,7 +95,7 @@ interface IRegistry is IERC165 {
104
95
 
105
96
  function getLatestVersion() external view returns (VersionPart);
106
97
 
107
- function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory);
98
+ function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory);
108
99
 
109
100
  /// @dev Returns the number of supported chains.
110
101
  function chainIds() external view returns (uint256);
@@ -127,6 +118,8 @@ interface IRegistry is IERC165 {
127
118
 
128
119
  function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
129
120
 
121
+ function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
122
+
130
123
  function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
131
124
 
132
125
  function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
@@ -0,0 +1,26 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
5
+
6
+ import {StateId} from "../type/StateId.sol";
7
+ import {Timestamp} from "../type/Timestamp.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+
10
+ /// @title Marks contracts that are linked to a specific GIF release version.
11
+ interface IRelease {
12
+
13
+ struct ReleaseInfo {
14
+ StateId state;
15
+ VersionPart version;
16
+ bytes32 salt;
17
+ IServiceAuthorization auth;
18
+ address releaseAdmin;
19
+ Timestamp activatedAt;
20
+ Timestamp disabledAt;
21
+ }
22
+
23
+ /// @dev Registers a registry contract for a specified chain.
24
+ /// Only one chain registry may be registered per chain
25
+ function getRelease() external view returns (VersionPart release);
26
+ }
@@ -12,6 +12,7 @@ import {ObjectType, ObjectTypeLib, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE,
12
12
 
13
13
  import {ChainNft} from "./ChainNft.sol";
14
14
  import {IRegistry} from "./IRegistry.sol";
15
+ import {IRelease} from "./IRelease.sol";
15
16
  import {IRegisterable} from "../shared/IRegisterable.sol";
16
17
  import {IStaking} from "../staking/IStaking.sol";
17
18
  import {ReleaseRegistry} from "./ReleaseRegistry.sol";
@@ -307,8 +308,8 @@ contract Registry is
307
308
  return _releaseRegistry.getLatestVersion();
308
309
  }
309
310
 
310
- function getReleaseInfo(VersionPart version) external view returns (ReleaseInfo memory) {
311
- return _releaseRegistry.getReleaseInfo(version);
311
+ function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory) {
312
+ return _releaseRegistry.getReleaseInfo(release);
312
313
  }
313
314
 
314
315
  function chainIds() public view returns (uint256) {
@@ -355,6 +356,10 @@ contract Registry is
355
356
  return _info[nftId];
356
357
  }
357
358
 
359
+ function getParentNftId(NftId nftId) external view returns (NftId parentNftId) {
360
+ return _info[nftId].parentNftId;
361
+ }
362
+
358
363
  function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
359
364
  NftId nftId = _nftIdByAddress[contractAddress];
360
365
  return isObjectType(nftId, expectedObjectType);