@etherisc/gif-next 0.0.2-e6d2794-419 → 0.0.2-e79d227-681

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