@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
@@ -1,8 +1,7 @@
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
-
4
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
6
5
  import {IBundle} from "../instance/module/IBundle.sol";
7
6
  import {IBundleService} from "./IBundleService.sol";
8
7
  import {IComponents} from "../instance/module/IComponents.sol";
@@ -11,7 +10,6 @@ import {IRegistry} from "../registry/IRegistry.sol";
11
10
  import {IRegistryService} from "../registry/IRegistryService.sol";
12
11
  import {IInstance} from "../instance/IInstance.sol";
13
12
  import {InstanceStore} from "../instance/InstanceStore.sol";
14
- import {IPolicy} from "../instance/module/IPolicy.sol";
15
13
 
16
14
  import {Amount, AmountLib} from "../type/Amount.sol";
17
15
  import {BundleSet} from "../instance/BundleSet.sol";
@@ -19,7 +17,7 @@ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol
19
17
  import {Fee} from "../type/Fee.sol";
20
18
  import {InstanceReader} from "../instance/InstanceReader.sol";
21
19
  import {NftId, NftIdLib} from "../type/NftId.sol";
22
- import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
20
+ import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
23
21
  import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
24
22
  import {Seconds} from "../type/Seconds.sol";
25
23
  import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
@@ -35,6 +33,7 @@ contract BundleService is
35
33
 
36
34
  address private _registryAddress;
37
35
  IRegistryService private _registryService;
36
+ IAccountingService private _accountingService;
38
37
  IComponentService private _componentService;
39
38
 
40
39
  function _initialize(
@@ -42,20 +41,21 @@ contract BundleService is
42
41
  bytes memory data
43
42
  )
44
43
  internal
45
- initializer
46
44
  virtual override
45
+ initializer()
47
46
  {
48
- address registryAddress;
49
- address initialOwner;
50
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
51
- // TODO while PoolService is not deployed in PoolServiceManager constructor
52
- // owner is PoolServiceManager deployer
53
- initializeService(registryAddress, address(0), owner);
47
+ (
48
+ address authority,
49
+ address registry
50
+ ) = abi.decode(data, (address, address));
51
+
52
+ __Service_init(authority, registry, owner);
54
53
 
55
54
  _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
55
+ _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
56
56
  _componentService = IComponentService(_getServiceAddress(COMPONENT()));
57
57
 
58
- registerInterface(type(IBundleService).interfaceId);
58
+ _registerInterface(type(IBundleService).interfaceId);
59
59
  }
60
60
 
61
61
 
@@ -65,7 +65,10 @@ contract BundleService is
65
65
  )
66
66
  external
67
67
  virtual
68
+ restricted()
68
69
  {
70
+ _checkNftType(bundleNftId, BUNDLE());
71
+
69
72
  (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
70
73
  InstanceReader instanceReader = instance.getInstanceReader();
71
74
  IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
@@ -83,19 +86,18 @@ contract BundleService is
83
86
 
84
87
 
85
88
  function create(
86
- IInstance instance,
87
- NftId poolNftId,
88
89
  address owner,
89
90
  Fee memory bundleFee,
90
- Amount stakingAmount,
91
91
  Seconds lifetime,
92
92
  bytes calldata filter
93
93
  )
94
94
  external
95
- override
96
- restricted
95
+ virtual
96
+ restricted()
97
97
  returns(NftId bundleNftId)
98
98
  {
99
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
100
+
99
101
  // register bundle with registry
100
102
  bundleNftId = _registryService.registerBundle(
101
103
  IRegistry.ObjectInfo(
@@ -123,17 +125,11 @@ contract BundleService is
123
125
  })
124
126
  );
125
127
 
126
- // bundle book keeping
127
- _componentService.increaseBundleBalance(
128
- instanceStore,
129
- bundleNftId,
130
- stakingAmount,
131
- AmountLib.zero()); // fee amount
132
-
133
128
  // put bundle under bundle managemet
134
129
  BundleSet bundleManager = instance.getBundleSet();
135
130
  bundleManager.add(bundleNftId);
136
- // TODO add logging
131
+
132
+ emit LogBundleServiceBundleCreated(bundleNftId, poolNftId);
137
133
  }
138
134
 
139
135
 
@@ -148,40 +144,49 @@ contract BundleService is
148
144
  virtual
149
145
  restricted()
150
146
  {
147
+ _checkNftType(policyNftId, POLICY());
148
+ _checkNftType(bundleNftId, BUNDLE());
149
+
151
150
  InstanceReader instanceReader = instance.getInstanceReader();
152
- StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
153
- IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
154
151
 
155
- // ensure bundle is active and not yet expired
156
- if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
157
- revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
152
+ {
153
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
154
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
155
+
156
+ // ensure bundle is active and not yet expired
157
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
158
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
159
+ }
158
160
  }
159
161
 
160
- // ensure bundle capacity is sufficent to collateralize policy
161
162
  InstanceStore instanceStore = instance.getInstanceStore();
162
- (
163
- Amount balanceAmount,
164
- Amount lockedAmount,
165
- Amount feeAmount
166
- ) = instanceStore.getAmounts(bundleNftId);
167
163
 
168
- Amount capacity = balanceAmount - (lockedAmount + feeAmount);
169
- if(capacity < collateralAmount) {
170
- revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
164
+ {
165
+ // ensure bundle capacity is sufficent to collateralize policy
166
+ (
167
+ Amount balanceAmount,
168
+ Amount lockedAmount,
169
+ Amount feeAmount
170
+ ) = instanceStore.getAmounts(bundleNftId);
171
+
172
+ Amount capacity = balanceAmount - (lockedAmount + feeAmount);
173
+ if(capacity < collateralAmount) {
174
+ revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
175
+ }
171
176
  }
172
177
 
173
178
  // updated locked amount
174
179
  instanceStore.increaseLocked(bundleNftId, collateralAmount);
175
-
176
- // link policy to bundle in bundle manger
177
- _linkPolicy(instance, policyNftId);
178
180
  }
179
181
 
180
182
 
181
183
  function lock(NftId bundleNftId)
182
184
  external
183
185
  virtual
186
+ restricted()
184
187
  {
188
+ _checkNftType(bundleNftId, BUNDLE());
189
+
185
190
  (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
186
191
 
187
192
  // udpate bundle state
@@ -198,7 +203,10 @@ contract BundleService is
198
203
  function unlock(NftId bundleNftId)
199
204
  external
200
205
  virtual
206
+ restricted()
201
207
  {
208
+ _checkNftType(bundleNftId, BUNDLE());
209
+
202
210
  (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
203
211
 
204
212
  // udpate bundle state
@@ -218,9 +226,11 @@ contract BundleService is
218
226
  )
219
227
  external
220
228
  virtual
221
- restricted
229
+ restricted()
222
230
  returns (Amount unstakedAmount, Amount feeAmount)
223
231
  {
232
+ _checkNftType(bundleNftId, BUNDLE());
233
+
224
234
  InstanceReader instanceReader = instance.getInstanceReader();
225
235
 
226
236
  // ensure no open policies attached to bundle
@@ -240,7 +250,7 @@ contract BundleService is
240
250
  Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
241
251
  feeAmount = instanceReader.getFeeAmount(bundleNftId);
242
252
  unstakedAmount = balanceAmountWithFees - feeAmount;
243
- _componentService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
253
+ _accountingService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
244
254
  }
245
255
  }
246
256
 
@@ -252,8 +262,10 @@ contract BundleService is
252
262
  )
253
263
  external
254
264
  virtual
255
- // TODO: restricted() (once #462 is done)
265
+ restricted()
256
266
  {
267
+ _checkNftType(bundleNftId, BUNDLE());
268
+
257
269
  IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
258
270
  StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
259
271
 
@@ -263,7 +275,7 @@ contract BundleService is
263
275
  revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
264
276
  }
265
277
 
266
- _componentService.increaseBundleBalance(
278
+ _accountingService.increaseBundleBalance(
267
279
  instance.getInstanceStore(),
268
280
  bundleNftId,
269
281
  amount,
@@ -278,9 +290,11 @@ contract BundleService is
278
290
  )
279
291
  external
280
292
  virtual
281
- // TODO: restricted() (once #462 is done)
293
+ restricted()
282
294
  returns (Amount unstakedAmount)
283
295
  {
296
+ _checkNftType(bundleNftId, BUNDLE());
297
+
284
298
  InstanceStore instanceStore = instance.getInstanceStore();
285
299
  (
286
300
  Amount balanceAmount,
@@ -288,7 +302,7 @@ contract BundleService is
288
302
  Amount feeAmount
289
303
  ) = instanceStore.getAmounts(bundleNftId);
290
304
 
291
- Amount unstakedAmount = amount;
305
+ unstakedAmount = amount;
292
306
  Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
293
307
 
294
308
  // if amount is max, then unstake all available
@@ -301,22 +315,22 @@ contract BundleService is
301
315
  revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
302
316
  }
303
317
 
304
- _componentService.decreaseBundleBalance(
318
+ _accountingService.decreaseBundleBalance(
305
319
  instanceStore,
306
320
  bundleNftId,
307
321
  unstakedAmount,
308
322
  AmountLib.zero());
309
-
310
- return unstakedAmount;
311
323
  }
312
324
 
313
325
  /// @inheritdoc IBundleService
314
326
  function extend(NftId bundleNftId, Seconds lifetimeExtension)
315
327
  external
316
328
  virtual
317
- // TODO: restricted() (once #462 is done)
329
+ restricted()
318
330
  returns (Timestamp extendedExpiredAt)
319
331
  {
332
+ _checkNftType(bundleNftId, BUNDLE());
333
+
320
334
  (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
321
335
  IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
322
336
  StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
@@ -354,40 +368,29 @@ contract BundleService is
354
368
  virtual
355
369
  restricted()
356
370
  {
371
+ _checkNftType(policyNftId, POLICY());
372
+ _checkNftType(bundleNftId, BUNDLE());
373
+
357
374
  instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
358
375
  }
359
376
 
360
- /// @dev unlinks policy from bundle
361
- function unlinkPolicy(
362
- IInstance instance,
363
- NftId policyNftId
364
- )
365
- external
366
- virtual
367
- restricted
368
- {
369
- // ensure policy is closeable
370
- if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
371
- revert ErrorBundleServicePolicyNotCloseable(policyNftId);
372
- }
373
-
374
- instance.getBundleSet().unlinkPolicy(policyNftId);
375
- }
376
377
 
377
378
  /// @inheritdoc IBundleService
378
379
  function withdrawBundleFees(NftId bundleNftId, Amount amount)
379
380
  public
380
381
  virtual
381
- // TODO: restricted() (once #462 is done)
382
+ restricted()
382
383
  returns (Amount withdrawnAmount)
383
384
  {
385
+ _checkNftType(bundleNftId, BUNDLE());
386
+
384
387
  (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
385
388
  InstanceReader reader = instance.getInstanceReader();
386
389
 
387
390
  IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
388
- address poolWallet = poolInfo.wallet;
391
+ address poolWallet = poolInfo.tokenHandler.getWallet();
389
392
 
390
- IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
393
+ // IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
391
394
 
392
395
  // determine withdrawn amount
393
396
  withdrawnAmount = amount;
@@ -399,52 +402,23 @@ contract BundleService is
399
402
  }
400
403
  }
401
404
 
402
- if (withdrawnAmount.eqz()) {
403
- revert ErrorBundleServiceFeesWithdrawAmountIsZero();
404
- }
405
-
406
- // check allowance
407
- IERC20Metadata token = IERC20Metadata(poolInfo.token);
408
- uint256 tokenAllowance = token.allowance(poolWallet, address(poolInfo.tokenHandler));
409
- if (tokenAllowance < withdrawnAmount.toInt()) {
410
- revert ErrorBundleServiceWalletAllowanceTooSmall(poolWallet, address(poolInfo.tokenHandler), tokenAllowance, withdrawnAmount.toInt());
411
- }
412
-
413
405
  // decrease fee counters by withdrawnAmount
414
406
  {
415
407
  InstanceStore store = instance.getInstanceStore();
416
408
  // decrease fee amount of the bundle
417
- _componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
409
+ _accountingService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
418
410
  // decrease pool balance
419
- _componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
411
+ _accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
420
412
  }
421
413
 
422
414
  // transfer amount to bundle owner
423
415
  {
424
- address owner = getRegistry().ownerOf(bundleNftId);
425
- // TODO: centralize token handling (issue #471)
426
- poolInfo.tokenHandler.transfer(poolWallet, owner, withdrawnAmount);
427
-
428
- emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(token), withdrawnAmount);
416
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
417
+ emit LogBundleServiceFeesWithdrawn(bundleNftId, bundleOwner, address(poolInfo.token), withdrawnAmount);
418
+ poolInfo.tokenHandler.pushToken(bundleOwner, withdrawnAmount);
429
419
  }
430
420
  }
431
421
 
432
- /// @dev links policy to bundle
433
- function _linkPolicy(IInstance instance, NftId policyNftId)
434
- internal
435
- {
436
- InstanceReader instanceReader = instance.getInstanceReader();
437
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
438
-
439
- // ensure policy has not yet been activated in a previous tx already
440
- if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
441
- revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
442
- }
443
-
444
- BundleSet bundleManager = instance.getBundleSet();
445
- bundleManager.linkPolicy(policyNftId);
446
- }
447
-
448
422
  function _getDomain() internal pure override returns(ObjectType) {
449
423
  return BUNDLE();
450
424
  }
@@ -12,15 +12,15 @@ contract BundleServiceManager 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
- BundleService bundleSrv = new BundleService{salt: salt}();
21
- bytes memory data = abi.encode(registryAddress, address(this), authority);
22
- IVersionable versionable = deployDetermenistic(
23
- address(bundleSrv),
19
+ BundleService svc = new BundleService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
24
  data,
25
25
  salt);
26
26
 
@@ -5,7 +5,6 @@ import {Amount} from "../type/Amount.sol";
5
5
  import {NftId} from "../type/NftId.sol";
6
6
  import {Fee} from "../type/Fee.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
- import {IBundle} from "../instance/module/IBundle.sol";
9
8
  import {IInstance} from "../instance/IInstance.sol";
10
9
  import {Seconds} from "../type/Seconds.sol";
11
10
  import {StateId} from "../type/StateId.sol";
@@ -13,6 +12,7 @@ import {Timestamp} from "../type/Timestamp.sol";
13
12
 
14
13
  interface IBundleService is IService {
15
14
 
15
+ event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId);
16
16
  event LogBundleServiceBundleActivated(NftId bundleNftId);
17
17
  event LogBundleServiceBundleLocked(NftId bundleNftId);
18
18
 
@@ -27,9 +27,7 @@ interface IBundleService is IService {
27
27
  error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
28
28
 
29
29
  error ErrorBundleServiceFeesWithdrawAmountExceedsLimit(Amount amount, Amount limit);
30
- error ErrorBundleServiceFeesWithdrawAmountIsZero();
31
- error ErrorBundleServiceWalletAllowanceTooSmall(address wallet, address tokenHandler, uint256 allowance, uint256 amount);
32
-
30
+
33
31
  error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
34
32
 
35
33
  error ErrorBundleServiceExtensionLifetimeIsZero();
@@ -37,14 +35,10 @@ interface IBundleService is IService {
37
35
  event LogBundleServiceFeesWithdrawn(NftId bundleNftId, address recipient, address tokenAddress, Amount amount);
38
36
  event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
39
37
 
40
- /// @dev create a new bundle for the specified attributes
41
- /// may only be called by pool service
38
+ /// @dev Create a new bundle for the specified attributes.
42
39
  function create(
43
- IInstance instance, // instance relevant for bundle
44
- NftId poolNftId, // the pool the bundle will be linked to
45
40
  address owner, // initial bundle owner
46
41
  Fee memory fee, // fees deducted from premium that go to bundle owner
47
- Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
48
42
  Seconds lifetime, // initial duration for which new policies are covered
49
43
  bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
50
44
  )
@@ -118,18 +112,10 @@ interface IBundleService is IService {
118
112
  Amount collateralAmount
119
113
  ) external;
120
114
 
121
- /// @dev unlink policy from bundle
122
- /// policy may only be unlinked if policy is closeable
123
- /// may only be called by pool service
124
- function unlinkPolicy(
125
- IInstance instance,
126
- NftId policyNftId
127
- ) external;
128
-
115
+ // FIXME: move to pool service
129
116
  /// @dev Withdraw bundle feeds for the given bundle
130
117
  /// @param bundleNftId the bundle Nft Id
131
118
  /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
132
119
  /// @return withdrawnAmount the effective withdrawn amount
133
120
  function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
134
-
135
121
  }
@@ -2,6 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount} from "../type/Amount.sol";
5
+ import {ClaimId} from "../type/ClaimId.sol";
5
6
  import {Fee} from "../type/Fee.sol";
6
7
  import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
8
  import {IComponents} from "../instance/module/IComponents.sol";
@@ -20,21 +21,19 @@ interface IPoolComponent is IInstanceLinkedComponent {
20
21
 
21
22
  event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
22
23
 
23
- /// @dev this is a callback function that is called by the product service when underwriting a policy.
24
- /// the pool has the option to check the details and object to underwriting by reverting.
25
- /// the function is only called for "active" pools that ask to be involved/notified
26
- /// by product related state changes.
24
+ /// @dev This is a callback function that is called by the product service when underwriting a policy.
25
+ /// The pool has the option to check the details and object to underwriting by reverting.
26
+ /// The function is only called for "active" pools that ask to be involved/notified.
27
+ /// The default implementation is empty.
27
28
  function verifyApplication(
28
29
  NftId applicationNftId,
29
- bytes memory applicationData,
30
30
  NftId bundleNftId,
31
- bytes memory bundleFilter,
32
31
  Amount collateralizationAmount
33
32
  ) external;
34
33
 
35
- /// @dev returns true iff the application matches with the bundle
36
- /// this is a callback function that is only called if a pool declares itself as a verifying pool
37
- /// default implementation returns true
34
+ /// @dev Returns true iff the application matches with the bundle.
35
+ /// This is a callback function that is only called if a pool declares itself as a verifying pool
36
+ /// The default implementation returns true.
38
37
  function applicationMatchesBundle(
39
38
  NftId applicationNftId,
40
39
  bytes memory applicationData,
@@ -46,13 +45,18 @@ interface IPoolComponent is IInstanceLinkedComponent {
46
45
  view
47
46
  returns (bool isMatching);
48
47
 
49
- /// @dev Withdraw bundle feeds for the given bundle
50
- /// @param bundleNftId the bundle Nft Id
51
- /// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
52
- /// @return withdrawnAmount the effective withdrawn amount
53
- function withdrawBundleFees(NftId bundleNftId, Amount amount) external returns (Amount withdrawnAmount);
54
48
 
55
- /// @dev returns initial pool specific infos for this pool
49
+ /// @dev This is a callback function that is called by the claim service when a claim is confirmed.
50
+ /// The pool has the option to implement custom behavirous such as triggering a reinsurance claim or blocking the claim confirmaation.
51
+ /// The default implementation is empty.
52
+ function processConfirmedClaim(
53
+ NftId policyNftId,
54
+ ClaimId claimId,
55
+ Amount amount
56
+ ) external;
57
+
58
+
59
+ /// @dev Returns initial pool specific infos for this pool
56
60
  function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
57
61
 
58
62
  }