@etherisc/gif-next 0.0.2-8ce6c0b-352 → 0.0.2-8d69bcd-543

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 (515) hide show
  1. package/README.md +46 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
  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/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +166 -16
  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 +97 -37
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +81 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +166 -376
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +144 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +245 -315
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -123
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +128 -76
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1487 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +555 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2048 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +527 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1495 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +527 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1211 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1663 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +555 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2416 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +527 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +194 -154
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +372 -136
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +120 -90
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +919 -315
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +619 -492
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  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/mock/Dip.sol/Dip.json +2 -2
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +116 -326
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +146 -29
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +143 -387
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +172 -27
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +434 -201
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -195
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -370
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +243 -400
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +143 -26
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  163. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +486 -333
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +149 -99
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +241 -398
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +334 -34
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +540 -95
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  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 +76 -265
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +508 -551
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -125
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +454 -210
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +589 -15
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +140 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +212 -360
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +125 -94
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +99 -85
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +153 -107
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  292. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  322. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  326. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  331. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  335. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  338. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  340. package/contracts/accounting/AccountingService.sol +262 -0
  341. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  342. package/contracts/accounting/IAccountingService.sol +45 -0
  343. package/contracts/authorization/AccessAdmin.sol +189 -124
  344. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  345. package/contracts/authorization/Authorization.sol +300 -202
  346. package/contracts/authorization/IAccess.sol +1 -0
  347. package/contracts/authorization/IAccessAdmin.sol +10 -6
  348. package/contracts/authorization/IAuthorization.sol +19 -7
  349. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  350. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  351. package/contracts/distribution/BasicDistribution.sol +12 -22
  352. package/contracts/distribution/BasicDistributionAuthorization.sol +3 -11
  353. package/contracts/distribution/Distribution.sol +36 -50
  354. package/contracts/distribution/DistributionService.sol +122 -117
  355. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  356. package/contracts/distribution/IDistributionComponent.sol +2 -2
  357. package/contracts/distribution/IDistributionService.sol +16 -14
  358. package/contracts/examples/fire/DamageLevel.sol +59 -0
  359. package/contracts/examples/fire/FirePool.sol +90 -0
  360. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  361. package/contracts/examples/fire/FireProduct.sol +438 -0
  362. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  363. package/contracts/examples/fire/FireUSD.sol +26 -0
  364. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  365. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  366. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  367. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  368. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  369. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  370. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  371. package/contracts/instance/BundleSet.sol +42 -38
  372. package/contracts/instance/IInstance.sol +21 -37
  373. package/contracts/instance/IInstanceService.sol +9 -29
  374. package/contracts/instance/Instance.sol +59 -66
  375. package/contracts/instance/InstanceAdmin.sol +254 -84
  376. package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
  377. package/contracts/instance/InstanceReader.sol +218 -27
  378. package/contracts/instance/InstanceService.sol +125 -164
  379. package/contracts/instance/InstanceServiceManager.sol +6 -7
  380. package/contracts/instance/InstanceStore.sol +24 -2
  381. package/contracts/instance/RiskSet.sol +118 -0
  382. package/contracts/instance/base/ObjectCounter.sol +1 -2
  383. package/contracts/instance/base/ObjectLifecycle.sol +11 -4
  384. package/contracts/instance/base/ObjectSet.sol +31 -33
  385. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  386. package/contracts/instance/module/IBundle.sol +1 -1
  387. package/contracts/instance/module/IComponents.sol +14 -14
  388. package/contracts/instance/module/IDistribution.sol +0 -1
  389. package/contracts/instance/module/IPolicy.sol +26 -25
  390. package/contracts/instance/module/IRisk.sol +3 -0
  391. package/contracts/mock/Dip.sol +1 -1
  392. package/contracts/oracle/BasicOracle.sol +0 -1
  393. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  394. package/contracts/oracle/IOracleService.sol +2 -1
  395. package/contracts/oracle/Oracle.sol +9 -23
  396. package/contracts/oracle/OracleService.sol +113 -81
  397. package/contracts/oracle/OracleServiceManager.sol +6 -6
  398. package/contracts/pool/BasicPool.sol +38 -27
  399. package/contracts/pool/BasicPoolAuthorization.sol +15 -8
  400. package/contracts/pool/BundleService.sol +221 -80
  401. package/contracts/pool/BundleServiceManager.sol +6 -6
  402. package/contracts/pool/IBundleService.sol +33 -18
  403. package/contracts/pool/IPoolComponent.sol +21 -10
  404. package/contracts/pool/IPoolService.sol +53 -50
  405. package/contracts/pool/Pool.sol +150 -116
  406. package/contracts/pool/PoolService.sol +337 -160
  407. package/contracts/pool/PoolServiceManager.sol +4 -4
  408. package/contracts/product/ApplicationService.sol +72 -43
  409. package/contracts/product/ApplicationServiceManager.sol +4 -4
  410. package/contracts/product/BasicProduct.sol +13 -44
  411. package/contracts/product/BasicProductAuthorization.sol +3 -14
  412. package/contracts/product/ClaimService.sol +428 -136
  413. package/contracts/product/ClaimServiceManager.sol +4 -4
  414. package/contracts/product/IApplicationService.sol +6 -2
  415. package/contracts/product/IClaimService.sol +44 -7
  416. package/contracts/product/IPolicyService.sol +46 -34
  417. package/contracts/product/IPricingService.sol +10 -10
  418. package/contracts/product/IProductComponent.sol +27 -5
  419. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  420. package/contracts/product/PolicyService.sol +501 -258
  421. package/contracts/product/PolicyServiceManager.sol +4 -4
  422. package/contracts/product/PricingService.sol +66 -62
  423. package/contracts/product/PricingServiceManager.sol +4 -4
  424. package/contracts/product/Product.sol +160 -89
  425. package/contracts/product/RiskService.sol +145 -0
  426. package/contracts/product/RiskServiceManager.sol +39 -0
  427. package/contracts/registry/ChainNft.sol +72 -40
  428. package/contracts/registry/IRegistry.sol +60 -28
  429. package/contracts/registry/IRegistryService.sol +5 -12
  430. package/contracts/registry/IRelease.sol +26 -0
  431. package/contracts/registry/ITransferInterceptor.sol +1 -2
  432. package/contracts/registry/Registry.sol +357 -203
  433. package/contracts/registry/RegistryAdmin.sol +161 -182
  434. package/contracts/registry/RegistryService.sol +37 -48
  435. package/contracts/registry/RegistryServiceManager.sol +3 -3
  436. package/contracts/registry/ReleaseAdmin.sol +245 -0
  437. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  438. package/contracts/registry/ReleaseRegistry.sol +258 -234
  439. package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
  440. package/contracts/registry/TokenRegistry.sol +6 -8
  441. package/contracts/shared/Component.sol +82 -121
  442. package/contracts/shared/ComponentService.sol +419 -349
  443. package/contracts/shared/ComponentServiceManager.sol +8 -5
  444. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  445. package/contracts/shared/ContractLib.sol +253 -0
  446. package/contracts/shared/IComponent.sol +8 -17
  447. package/contracts/shared/IComponentService.sol +43 -39
  448. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  449. package/contracts/shared/ILifecycle.sol +3 -1
  450. package/contracts/shared/INftOwnable.sol +2 -0
  451. package/contracts/shared/IPolicyHolder.sol +12 -22
  452. package/contracts/shared/IRegisterable.sol +23 -1
  453. package/contracts/shared/IService.sol +3 -5
  454. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  455. package/contracts/shared/InstanceLinkedComponent.sol +73 -48
  456. package/contracts/shared/KeyValueStore.sol +1 -1
  457. package/contracts/shared/Lifecycle.sol +15 -4
  458. package/contracts/shared/NftOwnable.sol +31 -11
  459. package/contracts/shared/PolicyHolder.sol +17 -57
  460. package/contracts/shared/Registerable.sol +55 -21
  461. package/contracts/shared/RegistryLinked.sol +9 -14
  462. package/contracts/shared/Service.sol +15 -32
  463. package/contracts/shared/TokenHandler.sol +281 -27
  464. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  465. package/contracts/staking/IStaking.sol +7 -9
  466. package/contracts/staking/IStakingService.sol +0 -3
  467. package/contracts/staking/StakeManagerLib.sol +19 -26
  468. package/contracts/staking/Staking.sol +71 -59
  469. package/contracts/staking/StakingManager.sol +8 -6
  470. package/contracts/staking/StakingReader.sol +13 -6
  471. package/contracts/staking/StakingService.sol +37 -40
  472. package/contracts/staking/StakingServiceManager.sol +6 -5
  473. package/contracts/staking/TargetManagerLib.sol +7 -3
  474. package/contracts/type/Amount.sol +27 -5
  475. package/contracts/type/Blocknumber.sol +7 -1
  476. package/contracts/type/ClaimId.sol +6 -1
  477. package/contracts/type/Key32.sol +2 -2
  478. package/contracts/type/Key32Set.sol +62 -0
  479. package/contracts/type/NftId.sol +7 -0
  480. package/contracts/type/ObjectType.sol +52 -20
  481. package/contracts/type/PayoutId.sol +10 -10
  482. package/contracts/type/Referral.sol +1 -0
  483. package/contracts/type/RiskId.sol +35 -4
  484. package/contracts/type/RoleId.sol +23 -15
  485. package/contracts/type/Seconds.sol +21 -1
  486. package/contracts/type/StateId.sol +15 -1
  487. package/contracts/type/Timestamp.sol +10 -5
  488. package/contracts/type/UFixed.sol +35 -122
  489. package/contracts/type/Version.sol +15 -5
  490. package/contracts/upgradeability/ProxyManager.sol +68 -34
  491. package/contracts/upgradeability/Versionable.sol +2 -2
  492. package/package.json +4 -3
  493. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  494. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  495. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  496. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  497. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  498. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  499. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  500. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  501. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  502. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  503. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  504. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  505. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  506. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  507. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  508. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  509. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  510. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  511. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  512. package/contracts/instance/module/IAccess.sol +0 -46
  513. package/contracts/product/ProductService.sol +0 -99
  514. package/contracts/product/ProductServiceManager.sol +0 -39
  515. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -12,14 +12,14 @@ contract PoolServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with pool service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
19
  PoolService poolSrv = new PoolService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
23
  address(poolSrv),
24
24
  data,
25
25
  salt);
@@ -13,7 +13,7 @@ import {IRegistryService} from "../registry/IRegistryService.sol";
13
13
  import {AmountLib} from "../type/Amount.sol";
14
14
  import {Seconds} from "../type/Seconds.sol";
15
15
  import {zeroTimestamp} from "../type/Timestamp.sol";
16
- import {ObjectType, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
16
+ import {ObjectType, BUNDLE, DISTRIBUTION, PRODUCT, REGISTRY, APPLICATION, POLICY, PRICE} from "../type/ObjectType.sol";
17
17
  import {REVOKED} from "../type/StateId.sol";
18
18
  import {NftId, NftIdLib} from "../type/NftId.sol";
19
19
  import {ReferralId} from "../type/Referral.sol";
@@ -41,25 +41,24 @@ contract ApplicationService is
41
41
  initializer()
42
42
  {
43
43
  (
44
- address registryAddress,,
45
- //address managerAddress
46
- address authority
47
- ) = abi.decode(data, (address, address, address));
44
+ address authority,
45
+ address registry
46
+ ) = abi.decode(data, (address, address));
48
47
 
49
- initializeService(registryAddress, address(0), owner);
48
+ __Service_init(authority, registry, owner);
50
49
 
51
50
  _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
52
51
  _pricingService = IPricingService(_getServiceAddress(PRICE()));
53
52
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
54
53
 
55
- registerInterface(type(IApplicationService).interfaceId);
54
+ _registerInterface(type(IApplicationService).interfaceId);
56
55
  }
57
56
 
58
57
 
59
- function _checkLinkedpplicationParameters(
58
+ function _checkLinkedApplicationParameters(
60
59
  InstanceReader instanceReader,
61
60
  NftId productNftId,
62
- RiskId rirskId,
61
+ RiskId riskId,
63
62
  ReferralId referralId,
64
63
  NftId bundleNftId
65
64
  )
@@ -67,18 +66,18 @@ contract ApplicationService is
67
66
  virtual
68
67
  view
69
68
  {
70
- IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
69
+ // check risk with product
70
+ (bool exists, bool active) = instanceReader.getRiskSet().checkRisk(productNftId, riskId);
71
+ if (!exists) { revert ErrorApplicationServiceRiskUnknown(riskId, productNftId); }
72
+ if (!active) { revert ErrorApplicationServiceRiskPaused(riskId, productNftId); }
71
73
 
72
- // TODO check riskId with product
74
+ // check bundle with pool
75
+ NftId poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
76
+ (exists, active) = instanceReader.getBundleSet().checkBundle(poolNftId, bundleNftId);
77
+ if (!exists) { revert ErrorApplicationServiceBundleUnknown(bundleNftId, poolNftId); }
78
+ if (!active) { revert ErrorApplicationServiceBundleLocked(bundleNftId, poolNftId); }
73
79
 
74
80
  // TODO check referral with distribution
75
-
76
- // check bundle with pool
77
- NftId productPoolNftId = productInfo.poolNftId;
78
- NftId bundlePoolNftId = instanceReader.getBundleInfo(bundleNftId).poolNftId;
79
- if(bundlePoolNftId != productPoolNftId) {
80
- revert ErrorApplicationServiceBundlePoolMismatch(bundleNftId, productPoolNftId, bundlePoolNftId);
81
- }
82
81
  }
83
82
 
84
83
 
@@ -111,8 +110,7 @@ contract ApplicationService is
111
110
  view
112
111
  returns (Amount premiumAmount)
113
112
  {
114
- return AmountLib.toAmount(
115
- _pricingService.calculatePremium(
113
+ return _pricingService.calculatePremium(
116
114
  info.productNftId,
117
115
  info.riskId,
118
116
  info.sumInsuredAmount,
@@ -120,7 +118,7 @@ contract ApplicationService is
120
118
  info.applicationData,
121
119
  info.bundleNftId,
122
120
  info.referralId
123
- ).premiumAmount);
121
+ ).premiumAmount;
124
122
  }
125
123
 
126
124
 
@@ -128,6 +126,7 @@ contract ApplicationService is
128
126
  address applicationOwner,
129
127
  RiskId riskId,
130
128
  Amount sumInsuredAmount,
129
+ Amount premiumAmount,
131
130
  Seconds lifetime,
132
131
  NftId bundleNftId,
133
132
  ReferralId referralId,
@@ -135,13 +134,16 @@ contract ApplicationService is
135
134
  )
136
135
  external
137
136
  virtual
137
+ nonReentrant()
138
138
  returns (NftId applicationNftId)
139
139
  {
140
+ _checkNftType(bundleNftId, BUNDLE());
141
+
140
142
  (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
141
143
 
142
144
  // check if provided references are valid and linked to calling product contract
143
145
  InstanceReader instanceReader = instance.getInstanceReader();
144
- _checkLinkedpplicationParameters(
146
+ _checkLinkedApplicationParameters(
145
147
  instanceReader,
146
148
  productNftId,
147
149
  riskId,
@@ -152,14 +154,45 @@ contract ApplicationService is
152
154
  applicationNftId = _registerApplication(productNftId, applicationOwner);
153
155
 
154
156
  // create policy info for application
155
- IPolicy.PolicyInfo memory applicationInfo = IPolicy.PolicyInfo({
157
+ IPolicy.PolicyInfo memory applicationInfo = _createApplicationInfo(
158
+ productNftId,
159
+ riskId,
160
+ sumInsuredAmount,
161
+ premiumAmount,
162
+ lifetime,
163
+ bundleNftId,
164
+ referralId,
165
+ applicationData);
166
+
167
+ // register application with instance
168
+ instance.getInstanceStore().createApplication(
169
+ applicationNftId,
170
+ applicationInfo);
171
+
172
+ // TODO: add logging
173
+ }
174
+
175
+ function _createApplicationInfo(
176
+ NftId productNftId,
177
+ RiskId riskId,
178
+ Amount sumInsuredAmount,
179
+ Amount premiumAmount,
180
+ Seconds lifetime,
181
+ NftId bundleNftId,
182
+ ReferralId referralId,
183
+ bytes memory applicationData
184
+ )
185
+ internal
186
+ virtual
187
+ returns (IPolicy.PolicyInfo memory applicationInfo)
188
+ {
189
+ return IPolicy.PolicyInfo({
156
190
  productNftId: productNftId,
157
191
  bundleNftId: bundleNftId,
158
192
  referralId: referralId,
159
193
  riskId: riskId,
160
194
  sumInsuredAmount: sumInsuredAmount,
161
- premiumAmount: AmountLib.zero(),
162
- premiumPaidAmount: AmountLib.zero(),
195
+ premiumAmount: premiumAmount,
163
196
  lifetime: lifetime,
164
197
  applicationData: applicationData,
165
198
  processData: "",
@@ -171,30 +204,20 @@ contract ApplicationService is
171
204
  expiredAt: zeroTimestamp(),
172
205
  closedAt: zeroTimestamp()
173
206
  });
174
-
175
- // TODO consider to provide this amount externally
176
- // actual calculation is done 2nd time anyway for premium collection
177
- // calculate premium amount
178
- applicationInfo.premiumAmount = _calculatePremiumAmount(applicationInfo);
179
-
180
- // register application with instance
181
- instance.getInstanceStore().createApplication(
182
- applicationNftId,
183
- applicationInfo);
184
-
185
- // TODO: add logging
186
207
  }
187
208
 
188
-
189
209
  function renew(
190
210
  NftId policyNftId, // policy to be renewd (renewal inherits policy attributes)
191
211
  NftId bundleNftId // will likely need a newer bundle for underwriting
192
212
  )
193
213
  external
194
- virtual override
214
+ virtual
215
+ nonReentrant()
195
216
  returns (NftId applicationNftId)
196
217
  {
197
-
218
+ _checkNftType(policyNftId, POLICY());
219
+ _checkNftType(bundleNftId, BUNDLE());
220
+ // TODO implement
198
221
  }
199
222
 
200
223
 
@@ -208,15 +231,21 @@ contract ApplicationService is
208
231
  bytes memory applicationData
209
232
  )
210
233
  external
211
- virtual override
234
+ virtual
235
+ nonReentrant()
212
236
  {
213
-
237
+ _checkNftType(applicationNftId, POLICY());
238
+ _checkNftType(bundleNftId, BUNDLE());
239
+ // TODO implement
214
240
  }
215
241
 
216
242
  function revoke(NftId applicationNftId)
217
243
  external
218
- virtual override
244
+ virtual
245
+ nonReentrant()
219
246
  {
247
+ _checkNftType(applicationNftId, POLICY());
248
+
220
249
  (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
221
250
  instance.getInstanceStore().updateApplicationState(applicationNftId, REVOKED());
222
251
  }
@@ -12,14 +12,14 @@ contract ApplicationServiceManager is ProxyManager {
12
12
  /// @dev initializes proxy manager with service implementation
13
13
  constructor(
14
14
  address authority,
15
- address registryAddress,
15
+ address registry,
16
16
  bytes32 salt
17
17
  )
18
- ProxyManager(registryAddress)
19
18
  {
20
19
  ApplicationService svc = new ApplicationService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
23
  address(svc),
24
24
  data,
25
25
  salt);
@@ -1,43 +1,16 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {Amount, AmountLib} from "../type/Amount.sol";
7
- import {ClaimId} from "../type/ClaimId.sol";
8
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
- import {Fee, FeeLib} from "../type/Fee.sol";
10
- import {IRisk} from "../instance/module/IRisk.sol";
11
- import {IApplicationService} from "./IApplicationService.sol";
4
+ import {Fee} from "../type/Fee.sol";
12
5
  import {IAuthorization} from "../authorization/IAuthorization.sol";
13
- import {IComponentService} from "../shared/IComponentService.sol";
14
- import {IPolicyService} from "./IPolicyService.sol";
15
- import {IProductService} from "./IProductService.sol";
16
- import {IClaimService} from "./IClaimService.sol";
17
- import {IPricingService} from "./IPricingService.sol";
18
- import {IProductComponent} from "./IProductComponent.sol";
19
- import {NftId, NftIdLib} from "../type/NftId.sol";
20
- import {Product} from "../product/Product.sol";
21
- import {PayoutId} from "../type/PayoutId.sol";
22
- import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
23
- import {ReferralId} from "../type/Referral.sol";
24
- import {RiskId, RiskIdLib} from "../type/RiskId.sol";
25
- import {Seconds} from "../type/Seconds.sol";
26
- import {StateId} from "../type/StateId.sol";
27
- import {Timestamp} from "../type/Timestamp.sol";
28
-
29
- import {TokenHandler} from "../shared/TokenHandler.sol";
30
-
31
- import {InstanceReader} from "../instance/InstanceReader.sol";
32
- import {IPolicy} from "../instance/module/IPolicy.sol";
33
6
  import {IComponents} from "../instance/module/IComponents.sol";
34
- import {Pool} from "../pool/Pool.sol";
35
- import {Distribution} from "../distribution/Distribution.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {Product} from "../product/Product.sol";
36
9
 
37
10
  abstract contract BasicProduct is
38
11
  Product
39
12
  {
40
-
13
+
41
14
  function setFees(
42
15
  Fee memory productFee,
43
16
  Fee memory processingFee
@@ -50,17 +23,15 @@ abstract contract BasicProduct is
50
23
  _setFees(productFee, processingFee);
51
24
  }
52
25
 
53
-
54
26
  function _initializeBasicProduct(
55
27
  address registry,
56
28
  NftId instanceNftId,
57
- IAuthorization authorization,
58
- address initialOwner,
59
29
  string memory name,
60
30
  address token,
61
- bool isInterceptor,
62
- address pool,
63
- address distribution
31
+ IComponents.ProductInfo memory productInfo,
32
+ IComponents.FeeInfo memory feeInfo,
33
+ IAuthorization authorization,
34
+ address initialOwner
64
35
  )
65
36
  internal
66
37
  virtual
@@ -69,14 +40,12 @@ abstract contract BasicProduct is
69
40
  _initializeProduct(
70
41
  registry,
71
42
  instanceNftId,
72
- authorization,
73
- initialOwner,
74
43
  name,
75
44
  token,
76
- isInterceptor,
77
- pool,
78
- distribution,
79
- "", //registryData,
80
- ""); // componentData
45
+ productInfo,
46
+ feeInfo,
47
+ authorization,
48
+ initialOwner,
49
+ ""); // component data
81
50
  }
82
51
  }
@@ -6,8 +6,7 @@ import {BasicProduct} from "./BasicProduct.sol";
6
6
  import {PRODUCT} from "../type/ObjectType.sol";
7
7
  import {IAccess} from "../authorization/IAccess.sol";
8
8
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
- import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
- import {RoleId} from "../type/RoleId.sol";
9
+ import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
11
10
 
12
11
 
13
12
  contract BasicProductAuthorization
@@ -15,18 +14,9 @@ contract BasicProductAuthorization
15
14
  {
16
15
 
17
16
  constructor(string memory componentName)
18
- Authorization(componentName)
17
+ Authorization(componentName, PRODUCT())
19
18
  {}
20
19
 
21
- function _setupTargets()
22
- internal
23
- virtual override
24
- {
25
- // basic component target
26
- _addComponentTargetWithRole(PRODUCT());
27
- }
28
-
29
-
30
20
  function _setupTargetAuthorizations()
31
21
  internal
32
22
  virtual override
@@ -34,9 +24,8 @@ contract BasicProductAuthorization
34
24
  IAccess.FunctionInfo[] storage functions;
35
25
 
36
26
  // authorize public role (open access to any account, only allows to lock target)
37
- functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
27
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
38
28
  _authorize(functions, BasicProduct.setFees.selector, "setFees");
39
-
40
29
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
41
30
  }
42
31
  }