@etherisc/gif-next 0.0.2-9b7f7f5-445 → 0.0.2-9badda4-428

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