@etherisc/gif-next 0.0.2-b8121a8-197 → 0.0.2-b8481dc-081

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