@etherisc/gif-next 0.0.2-be8b3db-650 → 0.0.2-bf51045-496

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 (700) hide show
  1. package/README.md +83 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  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 +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1292 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +246 -561
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +308 -274
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +306 -335
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1441 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2293 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -1919
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +280 -80
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +383 -2670
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1312 -310
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +351 -379
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +159 -106
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +929 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +269 -237
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +336 -167
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -231
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +322 -438
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +922 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +291 -350
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +997 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +397 -420
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +185 -168
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +944 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +234 -286
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +973 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +110 -65
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1074 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +473 -24
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -134
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +958 -118
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -264
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  207. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  208. package/artifacts/contracts/shared/Component.sol/Component.json +677 -0
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1574 -0
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +818 -0
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  214. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +119 -197
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  222. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +203 -88
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1197 -0
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +679 -0
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  228. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  230. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  237. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +125 -19
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +767 -0
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +127 -110
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1417 -0
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  290. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  293. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  295. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  297. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  299. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  301. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  303. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  304. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  305. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  307. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  308. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  309. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  311. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  313. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  315. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  317. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  319. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  321. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  323. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  325. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  327. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  329. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  331. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  333. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  335. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  337. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  339. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  340. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  341. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  342. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  343. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  344. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  345. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  347. package/contracts/accounting/AccountingService.sol +263 -0
  348. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  349. package/contracts/accounting/IAccountingService.sol +45 -0
  350. package/contracts/authorization/AccessAdmin.sol +615 -0
  351. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  352. package/contracts/authorization/Authorization.sol +289 -0
  353. package/contracts/authorization/IAccess.sol +49 -0
  354. package/contracts/authorization/IAccessAdmin.sol +137 -0
  355. package/contracts/authorization/IAuthorization.sol +60 -0
  356. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  357. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  358. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  359. package/contracts/distribution/BasicDistribution.sol +139 -0
  360. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  361. package/contracts/{components → distribution}/Distribution.sol +170 -163
  362. package/contracts/distribution/DistributionService.sol +357 -0
  363. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  364. package/contracts/distribution/IDistributionComponent.sol +52 -0
  365. package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -34
  366. package/contracts/examples/fire/DamageLevel.sol +59 -0
  367. package/contracts/examples/fire/FirePool.sol +90 -0
  368. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  369. package/contracts/examples/fire/FireProduct.sol +436 -0
  370. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  371. package/contracts/examples/fire/FireUSD.sol +26 -0
  372. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  373. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  374. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  375. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  376. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleProduct.sol +352 -0
  378. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  379. package/contracts/instance/BundleSet.sol +130 -0
  380. package/contracts/instance/IInstance.sol +50 -72
  381. package/contracts/instance/IInstanceService.sol +37 -27
  382. package/contracts/instance/Instance.sol +171 -227
  383. package/contracts/instance/InstanceAdmin.sol +288 -0
  384. package/contracts/instance/InstanceAuthorizationV3.sol +222 -0
  385. package/contracts/instance/InstanceReader.sol +350 -63
  386. package/contracts/instance/InstanceService.sol +267 -364
  387. package/contracts/instance/InstanceServiceManager.sol +14 -29
  388. package/contracts/instance/InstanceStore.sol +287 -0
  389. package/contracts/instance/RiskSet.sol +119 -0
  390. package/contracts/instance/base/BalanceStore.sol +123 -0
  391. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  392. package/contracts/instance/base/ObjectCounter.sol +20 -0
  393. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  394. package/contracts/instance/base/ObjectSet.sol +78 -0
  395. package/contracts/instance/module/IAccess.sol +19 -20
  396. package/contracts/instance/module/IBundle.sol +8 -9
  397. package/contracts/instance/module/IComponents.sol +27 -12
  398. package/contracts/instance/module/IDistribution.sol +6 -6
  399. package/contracts/instance/module/IPolicy.sol +48 -35
  400. package/contracts/instance/module/IRisk.sol +2 -1
  401. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  402. package/contracts/oracle/BasicOracle.sol +47 -0
  403. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  404. package/contracts/oracle/IOracle.sol +36 -0
  405. package/contracts/oracle/IOracleComponent.sol +33 -0
  406. package/contracts/oracle/IOracleService.sol +66 -0
  407. package/contracts/oracle/Oracle.sol +156 -0
  408. package/contracts/oracle/OracleService.sol +309 -0
  409. package/contracts/oracle/OracleServiceManager.sol +39 -0
  410. package/contracts/pool/BasicPool.sol +175 -0
  411. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  412. package/contracts/pool/BundleService.sol +425 -0
  413. package/contracts/pool/BundleServiceManager.sol +39 -0
  414. package/contracts/pool/IBundleService.sol +121 -0
  415. package/contracts/pool/IPoolComponent.sol +62 -0
  416. package/contracts/pool/IPoolService.sol +153 -0
  417. package/contracts/pool/Pool.sol +345 -0
  418. package/contracts/pool/PoolService.sol +615 -0
  419. package/contracts/pool/PoolServiceManager.sol +39 -0
  420. package/contracts/product/ApplicationService.sol +259 -0
  421. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  422. package/contracts/product/BasicProduct.sol +49 -0
  423. package/contracts/product/BasicProductAuthorization.sol +41 -0
  424. package/contracts/product/ClaimService.sol +614 -0
  425. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  426. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  427. package/contracts/product/IClaimService.sol +123 -0
  428. package/contracts/product/IPolicyService.sol +90 -0
  429. package/contracts/product/IPricingService.sol +39 -0
  430. package/contracts/product/IProductComponent.sol +59 -0
  431. package/contracts/product/IRiskService.sol +33 -0
  432. package/contracts/product/PolicyService.sol +736 -0
  433. package/contracts/product/PolicyServiceManager.sol +39 -0
  434. package/contracts/product/PricingService.sol +300 -0
  435. package/contracts/product/PricingServiceManager.sol +39 -0
  436. package/contracts/product/Product.sol +427 -0
  437. package/contracts/product/RiskService.sol +107 -0
  438. package/contracts/product/RiskServiceManager.sol +39 -0
  439. package/contracts/registry/ChainNft.sol +79 -36
  440. package/contracts/registry/IRegistry.sol +100 -26
  441. package/contracts/registry/IRegistryService.sol +36 -41
  442. package/contracts/registry/ITransferInterceptor.sol +1 -1
  443. package/contracts/registry/Registry.sol +464 -201
  444. package/contracts/registry/RegistryAdmin.sol +457 -0
  445. package/contracts/registry/RegistryService.sol +87 -129
  446. package/contracts/registry/RegistryServiceManager.sol +23 -32
  447. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  448. package/contracts/registry/ReleaseRegistry.sol +486 -0
  449. package/contracts/registry/ServiceAuthorizationV3.sol +207 -0
  450. package/contracts/registry/TokenRegistry.sol +261 -62
  451. package/contracts/shared/Component.sol +219 -0
  452. package/contracts/shared/ComponentService.sol +696 -0
  453. package/contracts/shared/ComponentServiceManager.sol +38 -0
  454. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  455. package/contracts/shared/ContractLib.sol +224 -0
  456. package/contracts/shared/IComponent.sol +62 -0
  457. package/contracts/shared/IComponentService.sol +116 -0
  458. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  459. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  460. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  461. package/contracts/shared/INftOwnable.sol +4 -2
  462. package/contracts/shared/IPolicyHolder.sol +23 -14
  463. package/contracts/shared/IRegisterable.sol +11 -0
  464. package/contracts/shared/IRegistryLinked.sol +0 -1
  465. package/contracts/shared/IService.sol +15 -8
  466. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  467. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  468. package/contracts/shared/KeyValueStore.sol +131 -0
  469. package/contracts/shared/Lifecycle.sol +88 -0
  470. package/contracts/shared/NftIdSet.sol +65 -0
  471. package/contracts/shared/NftOwnable.sol +32 -25
  472. package/contracts/shared/PolicyHolder.sol +22 -41
  473. package/contracts/shared/Registerable.sol +32 -23
  474. package/contracts/shared/RegistryLinked.sol +9 -19
  475. package/contracts/shared/Service.sol +55 -29
  476. package/contracts/shared/TokenHandler.sol +368 -12
  477. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  478. package/contracts/staking/IStaking.sol +173 -0
  479. package/contracts/staking/IStakingService.sol +157 -0
  480. package/contracts/staking/StakeManagerLib.sol +224 -0
  481. package/contracts/staking/Staking.sol +515 -0
  482. package/contracts/staking/StakingLifecycle.sol +23 -0
  483. package/contracts/staking/StakingManager.sol +52 -0
  484. package/contracts/staking/StakingReader.sol +190 -0
  485. package/contracts/staking/StakingService.sol +440 -0
  486. package/contracts/staking/StakingServiceManager.sol +44 -0
  487. package/contracts/staking/StakingStore.sol +605 -0
  488. package/contracts/staking/TargetManagerLib.sol +211 -0
  489. package/contracts/{types → type}/AddressSet.sol +1 -1
  490. package/contracts/type/Amount.sol +150 -0
  491. package/contracts/{types → type}/Blocknumber.sol +26 -3
  492. package/contracts/{types → type}/ClaimId.sol +31 -3
  493. package/contracts/{types → type}/Fee.sol +33 -24
  494. package/contracts/{types → type}/Key32.sol +2 -2
  495. package/contracts/type/Key32Set.sol +62 -0
  496. package/contracts/{types → type}/NftId.sol +21 -16
  497. package/contracts/{types → type}/NftIdSet.sol +2 -2
  498. package/contracts/type/ObjectType.sol +286 -0
  499. package/contracts/type/PayoutId.sol +82 -0
  500. package/contracts/{types → type}/Referral.sol +2 -1
  501. package/contracts/type/RequestId.sol +75 -0
  502. package/contracts/{types → type}/RiskId.sol +31 -5
  503. package/contracts/type/RoleId.sol +162 -0
  504. package/contracts/type/Seconds.sol +101 -0
  505. package/contracts/type/Selector.sol +102 -0
  506. package/contracts/{types → type}/StateId.sol +47 -4
  507. package/contracts/type/String.sol +53 -0
  508. package/contracts/{types → type}/Timestamp.sol +21 -2
  509. package/contracts/{types → type}/UFixed.sol +40 -121
  510. package/contracts/{types → type}/Version.sol +4 -2
  511. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  512. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  513. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  514. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  515. package/package.json +11 -7
  516. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  517. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  518. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  519. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  520. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  521. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  522. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  523. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  524. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
  526. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  527. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  528. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  529. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  530. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  531. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  533. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  534. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  535. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  536. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  538. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  539. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  541. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  543. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  545. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  547. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  549. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  551. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  553. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1724
  555. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
  557. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  561. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  565. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  568. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  570. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -816
  572. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  574. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  576. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  578. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  579. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  580. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  581. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  582. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  583. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  584. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  585. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  586. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  587. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  588. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  589. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  590. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  591. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  592. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  593. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  594. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  595. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  596. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  597. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  598. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  600. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  602. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  604. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  606. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  607. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  608. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  609. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  610. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  612. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  614. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  616. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  618. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  620. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  622. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  624. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  625. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  626. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  628. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  630. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  632. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  634. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  636. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  638. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  640. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  642. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  644. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  646. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  648. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  650. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  652. package/contracts/components/Component.sol +0 -241
  653. package/contracts/components/IComponent.sol +0 -74
  654. package/contracts/components/IDistributionComponent.sol +0 -71
  655. package/contracts/components/IPoolComponent.sol +0 -113
  656. package/contracts/components/IProductComponent.sol +0 -40
  657. package/contracts/components/Pool.sol +0 -299
  658. package/contracts/components/Product.sol +0 -293
  659. package/contracts/instance/BundleManager.sol +0 -127
  660. package/contracts/instance/InstanceAccessManager.sol +0 -297
  661. package/contracts/instance/ObjectManager.sol +0 -84
  662. package/contracts/instance/base/ComponentService.sol +0 -134
  663. package/contracts/instance/base/KeyValueStore.sol +0 -175
  664. package/contracts/instance/base/Lifecycle.sol +0 -109
  665. package/contracts/instance/module/ISetup.sol +0 -33
  666. package/contracts/instance/module/ITreasury.sol +0 -23
  667. package/contracts/instance/service/ApplicationService.sol +0 -350
  668. package/contracts/instance/service/BundleService.sol +0 -336
  669. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  670. package/contracts/instance/service/ClaimService.sol +0 -151
  671. package/contracts/instance/service/DistributionService.sol +0 -450
  672. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  673. package/contracts/instance/service/IBundleService.sol +0 -62
  674. package/contracts/instance/service/IClaimService.sol +0 -61
  675. package/contracts/instance/service/IPolicyService.sol +0 -72
  676. package/contracts/instance/service/IPoolService.sol +0 -35
  677. package/contracts/instance/service/IProductService.sol +0 -40
  678. package/contracts/instance/service/PolicyService.sol +0 -403
  679. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  680. package/contracts/instance/service/PoolService.sol +0 -163
  681. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  682. package/contracts/instance/service/ProductService.sol +0 -233
  683. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  684. package/contracts/registry/RegistryAccessManager.sol +0 -216
  685. package/contracts/registry/ReleaseManager.sol +0 -322
  686. package/contracts/shared/ContractDeployerLib.sol +0 -72
  687. package/contracts/test/TestFee.sol +0 -25
  688. package/contracts/test/TestRegisterable.sol +0 -18
  689. package/contracts/test/TestRoleId.sol +0 -14
  690. package/contracts/test/TestService.sol +0 -25
  691. package/contracts/test/TestToken.sol +0 -26
  692. package/contracts/test/TestVersion.sol +0 -44
  693. package/contracts/test/TestVersionable.sol +0 -17
  694. package/contracts/types/ChainId.sol +0 -38
  695. package/contracts/types/NumberId.sol +0 -52
  696. package/contracts/types/ObjectType.sol +0 -157
  697. package/contracts/types/PayoutId.sol +0 -54
  698. package/contracts/types/RoleId.sol +0 -95
  699. package/contracts/types/Seconds.sol +0 -54
  700. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,32 +1,33 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IPolicy} from "../module/IPolicy.sol";
5
- import {IRisk} from "../module/IRisk.sol";
6
- import {IService} from "../../shared/IService.sol";
4
+ import {IPolicy} from "../instance/module/IPolicy.sol";
5
+ import {IService} from "../shared/IService.sol";
7
6
 
8
- import {NftId} from "../../types/NftId.sol";
9
- import {ReferralId} from "../../types/Referral.sol";
10
- import {RiskId} from "../../types/RiskId.sol";
11
- import {Seconds} from "../../types/Seconds.sol";
12
- import {StateId} from "../../types/StateId.sol";
13
- import {Timestamp} from "../../types/Timestamp.sol";
14
- import {UFixed} from "../../types/UFixed.sol";
15
- import {Fee} from "../../types/Fee.sol";
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
+ import {ReferralId} from "../type/Referral.sol";
11
+ import {RiskId} from "../type/RiskId.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
16
13
 
17
14
  /// @dev gif service responsible for creating applications
18
15
  /// only product components may call transaction functions
19
16
  interface IApplicationService is IService {
20
17
 
21
- error IApplicationServicePolicyNotApplied(NftId applicationNftId);
22
- error IApplicationServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
+ // _checkLinkedApplicationParameters
19
+ error ErrorApplicationServiceRiskUnknown(RiskId riskId, NftId productNftId);
20
+ error ErrorApplicationServiceRiskPaused(RiskId riskId, NftId productNftId);
21
+ error ErrorApplicationServiceBundleUnknown(NftId bundleNftId, NftId poolNftId);
22
+ error ErrorApplicationServiceBundleLocked(NftId bundleNftId, NftId poolNftId);
23
23
 
24
24
  /// @dev creates a new application based on the specified attributes
25
25
  /// may only be called by a product component
26
26
  function create(
27
27
  address applicationOwner,
28
28
  RiskId riskId,
29
- uint256 sumInsuredAmount,
29
+ Amount sumInsuredAmount,
30
+ Amount premiumAmount,
30
31
  Seconds lifetime,
31
32
  NftId bundleNftId,
32
33
  ReferralId referralId,
@@ -41,8 +42,8 @@ interface IApplicationService is IService {
41
42
  RiskId riskId,
42
43
  NftId bundleNftId,
43
44
  ReferralId referralId,
44
- uint256 sumInsuredAmount,
45
- uint256 lifetime,
45
+ Amount sumInsuredAmount,
46
+ Seconds lifetime,
46
47
  bytes memory applicationData
47
48
  ) external;
48
49
 
@@ -62,21 +63,4 @@ interface IApplicationService is IService {
62
63
  /// an application can only be revoked in applied state
63
64
  /// only the application holder may revoke an application
64
65
  function revoke(NftId policyNftId) external;
65
-
66
- /// @dev calculates the premium amount for the specified attributes
67
- /// also returns the various fee components involved with creating a policy
68
- function calculatePremium(
69
- NftId productNftId,
70
- RiskId riskId,
71
- uint256 sumInsuredAmount,
72
- Seconds lifetime,
73
- bytes memory applicationData,
74
- NftId bundleNftId,
75
- ReferralId referralId
76
- )
77
- external
78
- view
79
- returns (
80
- IPolicy.Premium memory premium
81
- );
82
- }
66
+ }
@@ -0,0 +1,123 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IInstance} from "../instance/IInstance.sol";
5
+ import {InstanceReader} from "../instance/InstanceReader.sol";
6
+ import {IService} from "../shared/IService.sol";
7
+
8
+ import {Amount} from "../type/Amount.sol";
9
+ import {ClaimId} from "../type/ClaimId.sol";
10
+ import {PayoutId} from "../type/PayoutId.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {StateId} from "../type/StateId.sol";
13
+ import {Timestamp} from "../type/Timestamp.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+ import {Fee} from "../type/Fee.sol";
16
+
17
+ /// @dev gif service responsible for creating claims and payouts
18
+ /// only product components may call transaction functions
19
+ interface IClaimService is
20
+ IService
21
+ {
22
+
23
+ event LogClaimServiceClaimSubmitted(NftId policyNftId, ClaimId claimId, Amount claimAmount);
24
+ event LogClaimServiceClaimConfirmed(NftId policyNftId, ClaimId claimId, Amount confirmedAmount);
25
+ event LogClaimServiceClaimDeclined(NftId policyNftId, ClaimId claimId);
26
+ event LogClaimServiceClaimRevoked(NftId policyNftId, ClaimId claimId);
27
+ event LogClaimServiceClaimClosed(NftId policyNftId, ClaimId claimId);
28
+
29
+ event LogClaimServicePayoutCreated(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary);
30
+ event LogClaimServicePayoutProcessed(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary, Amount netAmount, Amount processingFeeAmount);
31
+ error ErrorClaimServiceBeneficiarySet(NftId policyNftId, PayoutId payoutId, address beneficiary);
32
+
33
+ error ErrorClaimServicePolicyProductMismatch(NftId policyNftId, NftId expectedProduct, NftId actualProduct);
34
+ error ErrorClaimServicePolicyNotOpen(NftId policyNftId);
35
+ error ErrorClaimServiceClaimExceedsSumInsured(NftId policyNftId, Amount sumInsured, Amount payoutsIncludingClaimAmount);
36
+ error ErrorClaimServiceBeneficiaryIsZero(NftId policyNftId, ClaimId claimId);
37
+ error ErrorClaimsServicePayoutAmountIsZero(NftId policyNftId, PayoutId payoutId);
38
+
39
+ error ErrorClaimServiceClaimWithOpenPayouts(NftId policyNftId, ClaimId claimId, uint24 openPayouts);
40
+ error ErrorClaimServiceClaimWithMissingPayouts(NftId policyNftId, ClaimId claimId, Amount claimAmount, Amount paidAmount);
41
+ error ErrorClaimServiceClaimNotInExpectedState(NftId policyNftId, ClaimId claimId, StateId expectedState, StateId actualState);
42
+
43
+ /// @dev create a new claim for the specified policy
44
+ /// returns the id of the newly created claim
45
+ /// function can only be called by product, policy needs to match with calling product
46
+ function submit(
47
+ NftId policyNftId,
48
+ Amount claimAmount,
49
+ bytes memory claimData
50
+ ) external returns (ClaimId claimId);
51
+
52
+
53
+ /// @dev declines the specified claim
54
+ /// function can only be called by product, policy needs to match with calling product
55
+ function decline(
56
+ NftId policyNftId,
57
+ ClaimId claimId,
58
+ bytes memory data // claim processing data
59
+ ) external;
60
+
61
+
62
+ /// @dev revokes the specified claim
63
+ /// function can only be called by product, policy needs to match with calling product
64
+ function revoke(
65
+ NftId policyNftId,
66
+ ClaimId claimId
67
+ ) external;
68
+
69
+
70
+ /// @dev confirms the specified claim and specifies the payout amount
71
+ /// function can only be called by product, policy needs to match with calling product
72
+ function confirm(
73
+ NftId policyNftId,
74
+ ClaimId claimId,
75
+ Amount confirmedAmount,
76
+ bytes memory data // claim processing data
77
+ ) external;
78
+
79
+
80
+ /// @dev closes the specified claim
81
+ /// function can only be called by product, policy needs to match with calling product
82
+ function close(
83
+ NftId policyNftId,
84
+ ClaimId claimId
85
+ ) external;
86
+
87
+
88
+ /// @dev Creates a new payout for the specified claim.
89
+ /// The beneficiary is the holder of the policy NFT
90
+ /// returns the id of the newly created payout, this id is unique for the specified policy
91
+ /// function can only be called by product, policy needs to match with calling product
92
+ function createPayout(
93
+ NftId policyNftId,
94
+ ClaimId claimId,
95
+ Amount amount,
96
+ bytes memory data
97
+ )
98
+ external
99
+ returns (PayoutId payoutId);
100
+
101
+
102
+ /// @dev Creates a new payout for the specified claim and beneficiary.
103
+ /// returns the id of the newly created payout, this id is unique for the specified policy
104
+ /// function can only be called by product, policy needs to match with calling product
105
+ function createPayoutForBeneficiary(
106
+ NftId policyNftId,
107
+ ClaimId claimId,
108
+ Amount amount,
109
+ address beneficiary,
110
+ bytes memory data
111
+ )
112
+ external
113
+ returns (PayoutId payoutId);
114
+
115
+
116
+ /// @dev processes the specified payout
117
+ /// this includes moving the payout token to the beneficiary (default: policy holder)
118
+ /// function can only be called by product, policy needs to match with calling product
119
+ function processPayout(
120
+ NftId policyNftId,
121
+ PayoutId payoutId
122
+ ) external;
123
+ }
@@ -0,0 +1,90 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IService} from "../shared/IService.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {IInstance} from "../instance/IInstance.sol";
8
+ import {InstanceReader} from "../instance/InstanceReader.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {StateId} from "../type/StateId.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+
13
+ interface IPolicyService is IService {
14
+
15
+ event LogPolicyServicePolicyCreated(NftId policyNftId, Amount premiumAmount, Timestamp activatedAt);
16
+ event LogPolicyServicePolicyDeclined(NftId policyNftId);
17
+ event LogPolicyServicePolicyPremiumCollected(NftId policyNftId, Amount premiumAmount);
18
+ event LogPolicyServicePolicyActivated(NftId policyNftId, Timestamp activatedAt);
19
+ event LogPolicyServicePolicyExpirationUpdated(NftId policyNftId, Timestamp originalExpiredAt, Timestamp expiredAt);
20
+ event LogPolicyServicePolicyClosed(NftId policyNftId);
21
+
22
+ error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
23
+ error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
24
+ error ErrorPolicyServicePolicyStateNotCollateralized(NftId applicationNftId);
25
+ error ErrorPolicyServicePolicyAlreadyActivated(NftId policyNftId);
26
+
27
+ error ErrorPolicyServiceBalanceInsufficient(address policyOwner, uint256 premiumAmount, uint256 balance);
28
+ error ErrorPolicyServiceAllowanceInsufficient(address policyOwner, address tokenHandler, uint256 premiumAmount, uint256 allowance);
29
+
30
+ error ErrorPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
31
+ error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId);
32
+
33
+ error ErrorPolicyServicePolicyNotCloseable(NftId policyNftId);
34
+
35
+ error ErrorPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
36
+ error ErrorPolicyServicePremiumNotPaid(NftId policyNftId, Amount premiumAmount);
37
+ error ErrorPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
38
+ error ErrorPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
39
+ error ErrorPolicyServicePolicyExpirationTooLate(NftId policyNftId, Timestamp upperLimit, Timestamp expiredAt);
40
+ error ErrorPolicyServicePolicyExpirationTooEarly(NftId policyNftId, Timestamp lowerLimit, Timestamp expiredAt);
41
+
42
+ error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
43
+ error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
44
+
45
+ /// @dev creates the policy from {applicationNftId}.
46
+ /// After successful completion of the function the policy can be referenced using the application NftId.
47
+ /// Locks the sum insured amount in the pool, but does not transfer tokens. Call collectPremium to transfer tokens.
48
+ /// Sets the policy state to collateralized.
49
+ /// Optionally activates the policy if activateAt is a non-zero timestamp.
50
+ /// only the related product may create a policy from an application
51
+ function createPolicy(
52
+ NftId applicationNftId,
53
+ Timestamp activateAt
54
+ )
55
+ external
56
+ returns (Amount premiumAmount);
57
+
58
+ /// @dev declines an application represented by {policyNftId}
59
+ /// an application can only be declined in applied state
60
+ /// only the related product may decline an application
61
+ function decline(NftId policyNftId) external;
62
+
63
+ /// @dev collects the premium token for the specified policy (must be in COLLATERALIZED state)
64
+ function collectPremium(NftId policyNftId, Timestamp activateAt) external;
65
+
66
+ /// @dev activates the specified policy and sets the activation date in the policy metadata
67
+ /// to activate a policy it needs to be in underwritten state
68
+ function activate(NftId policyNftId, Timestamp activateAt) external;
69
+
70
+ /// @dev Expires the specified policy and sets the expiry date in the policy metadata.
71
+ /// Function consumers are products.
72
+ /// If expiry date is set to 0, then the earliest possible expiry date (current blocktime) is set
73
+ /// to expire a policy it must be in active state, policies may be expired even when the predefined expiry date is still in the future
74
+ /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
75
+ /// this function can only be called by a product. the policy needs to match with the calling product
76
+ /// @return expiredAt the effective expiry date
77
+ function expire(NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
78
+
79
+ /// @dev Closes the specified policy and sets the closed data in the policy metadata
80
+ /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
81
+ /// this function can only be called by a product. the policy needs to match with the calling product
82
+ function close(NftId policyNftId) external;
83
+
84
+ /// @dev Expires the specified policy and sets the expiry date in the policy metadata.
85
+ /// Function consumers is claim service.
86
+ function expirePolicy(IInstance instance, NftId policyNftId, Timestamp expireAt) external returns (Timestamp expiredAt);
87
+
88
+ /// @dev Returns true iff policy is closeable
89
+ function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId) external view returns (bool isCloseable);
90
+ }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Seconds} from "../type/Seconds.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {ReferralId} from "../type/Referral.sol";
7
+ import {RiskId} from "../type/RiskId.sol";
8
+ import {Amount} from "../type/Amount.sol";
9
+
10
+ import {IService} from "./IApplicationService.sol";
11
+ import {IPolicy} from "../instance/module/IPolicy.sol";
12
+
13
+ interface IPricingService is IService
14
+ {
15
+
16
+ error ErrorPricingServiceTargetWalletAmountsMismatch();
17
+ error ErrorPricingServiceBundlePoolMismatch(NftId bundleNftId, NftId bundlePoolNftId, NftId poolNftId);
18
+ error ErrorPricingServiceFeeCalculationMismatch(
19
+ Amount distributionFeeFixAmount,
20
+ Amount distributionFeeVarAmount,
21
+ Amount distributionOwnerFeeFixAmount,
22
+ Amount distributionOwnerFeeVarAmount,
23
+ Amount commissionAmount,
24
+ Amount discountAmount
25
+ );
26
+
27
+ function calculatePremium(
28
+ NftId productNftId,
29
+ RiskId riskId,
30
+ Amount sumInsuredAmount,
31
+ Seconds lifetime,
32
+ bytes memory applicationData,
33
+ NftId bundleNftId,
34
+ ReferralId referralId
35
+ )
36
+ external
37
+ view
38
+ returns (IPolicy.PremiumInfo memory premium);
39
+ }
@@ -0,0 +1,59 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {ClaimId} from "../type/ClaimId.sol";
6
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
+ import {ReferralId} from "../type/Referral.sol";
11
+ import {RiskId} from "../type/RiskId.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+
14
+ interface IProductComponent is
15
+ IInstanceLinkedComponent
16
+ {
17
+
18
+ // @dev register a new component for this product cluster.
19
+ function registerComponent(address component)
20
+ external
21
+ returns (NftId componentNftId);
22
+
23
+ /// @dev Callback function to inform product compnent about arrival of funding for a claim.
24
+ /// The callback is called by the pool service after the corresponding pool triggers this function.
25
+ /// The callback is only called when the product's property isProcessingFundedClaims is set.
26
+ function processFundedClaim(
27
+ NftId policyNftId,
28
+ ClaimId claimId,
29
+ Amount availableAmount
30
+ ) external;
31
+
32
+
33
+ /// @dev Calculates the premium amount for the provided application data.
34
+ /// The returned premium amounts takes into account potential discounts and fees.
35
+ function calculatePremium(
36
+ Amount sumInsuredAmount,
37
+ RiskId riskId,
38
+ Seconds lifetime,
39
+ bytes memory applicationData,
40
+ NftId bundleNftId,
41
+ ReferralId referralId
42
+ ) external view returns (Amount premiumAmount);
43
+
44
+
45
+ /// @dev Calculates the net premium amount for the provided application data.
46
+ /// The returned net premium amounts only covers the cost of collateralizing the application.
47
+ /// This amount purely depends on the use case specific risk and does not include any fees/commission.
48
+ function calculateNetPremium(
49
+ Amount sumInsuredAmount,
50
+ RiskId riskId,
51
+ Seconds lifetime,
52
+ bytes memory applicationData
53
+ ) external view returns (Amount netPremiumAmount);
54
+
55
+
56
+ /// @dev returns initial pool specific infos for this pool
57
+ function getInitialProductInfo() external view returns (IComponents.ProductInfo memory info);
58
+
59
+ }
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRisk} from "../instance/module/IRisk.sol";
5
+ import {IService} from "../shared/IService.sol";
6
+
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {ReferralId} from "../type/Referral.sol";
9
+ import {RiskId} from "../type/RiskId.sol";
10
+ import {StateId} from "../type/StateId.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+ import {UFixed} from "../type/UFixed.sol";
13
+ import {Fee} from "../type/Fee.sol";
14
+
15
+ interface IRiskService is IService {
16
+
17
+ function createRisk(
18
+ RiskId riskId,
19
+ bytes memory data
20
+ ) external;
21
+
22
+
23
+ function updateRisk(
24
+ RiskId riskId,
25
+ bytes memory data
26
+ ) external;
27
+
28
+
29
+ function updateRiskState(
30
+ RiskId riskId,
31
+ StateId newState
32
+ ) external;
33
+ }