@etherisc/gif-next 0.0.2-b51dcb9-674 → 0.0.2-b51e065-216

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 (732) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -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 +1244 -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/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +280 -331
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +271 -284
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionService.sol/IDistributionService.json} +615 -707
  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 +1472 -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 +2045 -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 +1423 -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 +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1639 -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 +2484 -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 +588 -95
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +516 -56
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +587 -218
  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 +1849 -772
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +535 -192
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +215 -99
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1776 -780
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -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 +957 -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/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → oracle/IOracleService.sol/IOracleService.json} +275 -256
  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} +253 -253
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/BasicPool.sol/BasicPool.json} +440 -293
  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 +1438 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  136. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +750 -378
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -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} +446 -485
  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 +1552 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +894 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IApplicationService.sol/IApplicationService.json} +305 -236
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +218 -76
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +222 -208
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -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 +854 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  180. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -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 +496 -31
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +320 -106
  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 +984 -128
  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 +391 -243
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +212 -96
  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 -141
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +281 -207
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1535 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +854 -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 +130 -136
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  232. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/IComponentService.sol/IComponentService.json} +516 -748
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -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 +42 -1
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -57
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -90
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +617 -8
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1646 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1196 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +2054 -0
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +842 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1425 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +782 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  339. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  354. package/contracts/accounting/AccountingService.sol +274 -0
  355. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  356. package/contracts/accounting/IAccountingService.sol +47 -0
  357. package/contracts/authorization/AccessAdmin.sol +780 -0
  358. package/contracts/authorization/AccessAdminLib.sol +396 -0
  359. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  360. package/contracts/authorization/Authorization.sol +169 -0
  361. package/contracts/authorization/IAccess.sol +67 -0
  362. package/contracts/authorization/IAccessAdmin.sol +144 -0
  363. package/contracts/authorization/IAuthorization.sol +27 -0
  364. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  365. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  366. package/contracts/distribution/BasicDistribution.sol +141 -0
  367. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  368. package/contracts/distribution/Distribution.sol +247 -0
  369. package/contracts/distribution/DistributionService.sol +448 -0
  370. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  371. package/contracts/distribution/IDistributionComponent.sol +45 -0
  372. package/contracts/distribution/IDistributionService.sol +115 -0
  373. package/contracts/examples/fire/DamageLevel.sol +59 -0
  374. package/contracts/examples/fire/FirePool.sol +86 -0
  375. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  376. package/contracts/examples/fire/FireProduct.sol +433 -0
  377. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  378. package/contracts/examples/fire/FireUSD.sol +26 -0
  379. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  380. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  382. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  383. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleProduct.sol +391 -0
  385. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  386. package/contracts/instance/BundleSet.sol +130 -0
  387. package/contracts/instance/IInstance.sol +117 -49
  388. package/contracts/instance/IInstanceService.sol +81 -38
  389. package/contracts/instance/Instance.sol +251 -134
  390. package/contracts/instance/InstanceAdmin.sol +383 -0
  391. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  392. package/contracts/instance/InstanceReader.sol +507 -243
  393. package/contracts/instance/InstanceService.sol +387 -196
  394. package/contracts/instance/InstanceServiceManager.sol +14 -29
  395. package/contracts/instance/InstanceStore.sol +157 -71
  396. package/contracts/instance/RiskSet.sol +126 -0
  397. package/contracts/instance/base/BalanceStore.sol +121 -0
  398. package/contracts/instance/base/Cloneable.sol +28 -0
  399. package/contracts/instance/base/ObjectCounter.sol +20 -0
  400. package/contracts/instance/base/ObjectLifecycle.sol +108 -0
  401. package/contracts/instance/base/ObjectSet.sol +77 -0
  402. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  403. package/contracts/instance/module/IBundle.sol +9 -11
  404. package/contracts/instance/module/IComponents.sol +44 -23
  405. package/contracts/instance/module/IDistribution.sol +25 -13
  406. package/contracts/instance/module/IPolicy.sol +64 -36
  407. package/contracts/instance/module/IRisk.sol +6 -1
  408. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  409. package/contracts/oracle/BasicOracle.sol +45 -0
  410. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  411. package/contracts/oracle/IOracle.sol +41 -0
  412. package/contracts/oracle/IOracleComponent.sol +33 -0
  413. package/contracts/oracle/IOracleService.sol +66 -0
  414. package/contracts/oracle/Oracle.sol +154 -0
  415. package/contracts/oracle/OracleService.sol +310 -0
  416. package/contracts/oracle/OracleServiceManager.sol +39 -0
  417. package/contracts/pool/BasicPool.sol +162 -0
  418. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  419. package/contracts/pool/BundleService.sol +386 -0
  420. package/contracts/pool/BundleServiceManager.sol +39 -0
  421. package/contracts/pool/IBundleService.sol +116 -0
  422. package/contracts/pool/IPoolComponent.sol +62 -0
  423. package/contracts/pool/IPoolService.sol +170 -0
  424. package/contracts/pool/Pool.sol +333 -0
  425. package/contracts/pool/PoolLib.sol +341 -0
  426. package/contracts/pool/PoolService.sol +614 -0
  427. package/contracts/pool/PoolServiceManager.sol +39 -0
  428. package/contracts/product/ApplicationService.sol +327 -0
  429. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  430. package/contracts/product/BasicProduct.sol +49 -0
  431. package/contracts/product/BasicProductAuthorization.sol +63 -0
  432. package/contracts/product/ClaimService.sol +641 -0
  433. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  434. package/contracts/{instance/service → product}/IApplicationService.sol +37 -11
  435. package/contracts/{instance/service → product}/IClaimService.sol +64 -19
  436. package/contracts/product/IPolicyService.sol +102 -0
  437. package/contracts/product/IPricingService.sol +40 -0
  438. package/contracts/product/IProductComponent.sol +62 -0
  439. package/contracts/product/IRiskService.sol +48 -0
  440. package/contracts/product/PolicyService.sol +645 -0
  441. package/contracts/product/PolicyServiceLib.sol +139 -0
  442. package/contracts/product/PolicyServiceManager.sol +39 -0
  443. package/contracts/product/PricingService.sol +306 -0
  444. package/contracts/product/PricingServiceManager.sol +39 -0
  445. package/contracts/product/Product.sol +483 -0
  446. package/contracts/product/RiskService.sol +190 -0
  447. package/contracts/product/RiskServiceManager.sol +39 -0
  448. package/contracts/registry/ChainNft.sol +79 -40
  449. package/contracts/registry/IRegistry.sol +104 -30
  450. package/contracts/registry/IRegistryService.sol +34 -38
  451. package/contracts/registry/IRelease.sol +29 -0
  452. package/contracts/registry/ITransferInterceptor.sol +1 -2
  453. package/contracts/registry/Registry.sol +466 -197
  454. package/contracts/registry/RegistryAdmin.sol +188 -0
  455. package/contracts/registry/RegistryAuthorization.sol +284 -0
  456. package/contracts/registry/RegistryService.sol +90 -135
  457. package/contracts/registry/RegistryServiceManager.sol +23 -32
  458. package/contracts/registry/ReleaseAdmin.sol +195 -0
  459. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  460. package/contracts/registry/ReleaseRegistry.sol +520 -0
  461. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  462. package/contracts/registry/TokenRegistry.sol +263 -65
  463. package/contracts/shared/Component.sol +210 -0
  464. package/contracts/shared/ComponentService.sol +679 -0
  465. package/contracts/shared/ComponentServiceManager.sol +38 -0
  466. package/contracts/shared/ContractLib.sol +311 -0
  467. package/contracts/shared/IComponent.sol +58 -0
  468. package/contracts/shared/IComponentService.sol +111 -0
  469. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  470. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  471. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  472. package/contracts/shared/INftOwnable.sol +6 -2
  473. package/contracts/shared/IPolicyHolder.sol +16 -21
  474. package/contracts/shared/IRegisterable.sol +22 -1
  475. package/contracts/shared/IService.sol +12 -7
  476. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  477. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  478. package/contracts/shared/KeyValueStore.sol +131 -0
  479. package/contracts/shared/Lifecycle.sol +88 -0
  480. package/contracts/shared/NftIdSet.sol +65 -0
  481. package/contracts/shared/NftOwnable.sol +36 -25
  482. package/contracts/shared/PolicyHolder.sol +21 -52
  483. package/contracts/shared/Registerable.sol +55 -24
  484. package/contracts/shared/RegistryLinked.sol +9 -14
  485. package/contracts/shared/Service.sol +36 -41
  486. package/contracts/shared/TokenHandler.sol +320 -13
  487. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  488. package/contracts/staking/IStaking.sol +195 -0
  489. package/contracts/staking/IStakingService.sol +170 -0
  490. package/contracts/staking/Staking.sol +605 -0
  491. package/contracts/staking/StakingLib.sol +281 -0
  492. package/contracts/staking/StakingLifecycle.sol +23 -0
  493. package/contracts/staking/StakingManager.sol +52 -0
  494. package/contracts/staking/StakingReader.sol +199 -0
  495. package/contracts/staking/StakingService.sol +468 -0
  496. package/contracts/staking/StakingServiceManager.sol +45 -0
  497. package/contracts/staking/StakingStore.sol +606 -0
  498. package/contracts/staking/TargetManagerLib.sol +211 -0
  499. package/contracts/{types → type}/AddressSet.sol +1 -1
  500. package/contracts/{types → type}/Amount.sol +44 -3
  501. package/contracts/{types → type}/Blocknumber.sol +26 -3
  502. package/contracts/{types → type}/ClaimId.sol +6 -1
  503. package/contracts/{types → type}/Fee.sol +22 -21
  504. package/contracts/{types → type}/Key32.sol +2 -2
  505. package/contracts/type/Key32Set.sol +62 -0
  506. package/contracts/{types → type}/NftId.sol +21 -16
  507. package/contracts/{types → type}/NftIdSet.sol +2 -2
  508. package/contracts/type/ObjectType.sol +307 -0
  509. package/contracts/{types → type}/PayoutId.sol +10 -10
  510. package/contracts/{types → type}/Referral.sol +2 -1
  511. package/contracts/type/RequestId.sol +75 -0
  512. package/contracts/type/RiskId.sol +75 -0
  513. package/contracts/type/RoleId.sol +180 -0
  514. package/contracts/type/Seconds.sol +105 -0
  515. package/contracts/type/Selector.sol +107 -0
  516. package/contracts/{types → type}/StateId.sol +41 -2
  517. package/contracts/type/String.sol +65 -0
  518. package/contracts/{types → type}/Timestamp.sol +16 -7
  519. package/contracts/type/UFixed.sol +262 -0
  520. package/contracts/{types → type}/Version.sol +58 -7
  521. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  522. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  523. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  524. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  525. package/package.json +12 -8
  526. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  527. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  528. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  533. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  536. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  539. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  540. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  541. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  543. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  548. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  550. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  552. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  555. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -918
  557. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -648
  559. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1288
  561. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
  563. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
  565. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
  567. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1556
  569. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  571. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +0 -493
  573. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -840
  577. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -442
  582. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1281
  584. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
  586. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
  588. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  589. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
  590. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -1004
  592. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -688
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  599. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  601. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  602. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  604. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  605. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  606. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  608. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  609. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  610. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  611. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  612. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  613. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  616. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  617. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  618. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  620. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  622. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  623. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  624. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  625. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  626. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  628. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  629. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  630. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  631. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  632. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
  634. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  636. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  638. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  640. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  642. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
  644. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  646. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  648. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  649. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  650. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  652. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  654. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  656. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  658. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  660. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  662. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  664. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  666. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  669. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  671. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  673. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  675. package/contracts/components/Component.sol +0 -272
  676. package/contracts/components/Distribution.sol +0 -285
  677. package/contracts/components/IComponent.sol +0 -90
  678. package/contracts/components/IDistributionComponent.sol +0 -71
  679. package/contracts/components/IPoolComponent.sol +0 -114
  680. package/contracts/components/IProductComponent.sol +0 -41
  681. package/contracts/components/Pool.sol +0 -302
  682. package/contracts/components/Product.sol +0 -375
  683. package/contracts/instance/BundleManager.sol +0 -126
  684. package/contracts/instance/Cloneable.sol +0 -51
  685. package/contracts/instance/InstanceAccessManager.sol +0 -541
  686. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  687. package/contracts/instance/ObjectManager.sol +0 -82
  688. package/contracts/instance/base/ComponentService.sol +0 -148
  689. package/contracts/instance/base/KeyValueStore.sol +0 -149
  690. package/contracts/instance/base/Lifecycle.sol +0 -120
  691. package/contracts/instance/module/IAccess.sol +0 -54
  692. package/contracts/instance/module/ISetup.sol +0 -33
  693. package/contracts/instance/module/ITreasury.sol +0 -23
  694. package/contracts/instance/service/ApplicationService.sol +0 -186
  695. package/contracts/instance/service/BundleService.sol +0 -382
  696. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  697. package/contracts/instance/service/ClaimService.sol +0 -437
  698. package/contracts/instance/service/DistributionService.sol +0 -348
  699. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  700. package/contracts/instance/service/IBundleService.sol +0 -118
  701. package/contracts/instance/service/IDistributionService.sol +0 -87
  702. package/contracts/instance/service/IPolicyService.sol +0 -80
  703. package/contracts/instance/service/IPoolService.sol +0 -114
  704. package/contracts/instance/service/IPricingService.sol +0 -37
  705. package/contracts/instance/service/IProductService.sol +0 -40
  706. package/contracts/instance/service/PolicyService.sol +0 -376
  707. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  708. package/contracts/instance/service/PoolService.sol +0 -403
  709. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  710. package/contracts/instance/service/PricingService.sol +0 -275
  711. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  712. package/contracts/instance/service/ProductService.sol +0 -210
  713. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  714. package/contracts/registry/RegistryAccessManager.sol +0 -216
  715. package/contracts/registry/ReleaseManager.sol +0 -324
  716. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  717. package/contracts/shared/ContractDeployerLib.sol +0 -72
  718. package/contracts/test/TestFee.sol +0 -25
  719. package/contracts/test/TestRegisterable.sol +0 -18
  720. package/contracts/test/TestRoleId.sol +0 -14
  721. package/contracts/test/TestService.sol +0 -25
  722. package/contracts/test/TestToken.sol +0 -26
  723. package/contracts/test/TestVersion.sol +0 -44
  724. package/contracts/test/TestVersionable.sol +0 -17
  725. package/contracts/types/ChainId.sol +0 -38
  726. package/contracts/types/NumberId.sol +0 -52
  727. package/contracts/types/ObjectType.sol +0 -161
  728. package/contracts/types/RiskId.sol +0 -43
  729. package/contracts/types/RoleId.sol +0 -97
  730. package/contracts/types/Seconds.sol +0 -54
  731. package/contracts/types/UFixed.sol +0 -326
  732. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,348 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../registry/IRegistry.sol";
5
- import {IInstance} from "../../instance/IInstance.sol";
6
- import {InstanceAccessManager} from "../InstanceAccessManager.sol";
7
- import {InstanceReader} from "../../instance/InstanceReader.sol";
8
- import {ISetup} from "../../instance/module/ISetup.sol";
9
- import {IPolicy} from "../module/IPolicy.sol";
10
-
11
- import {Amount, AmountLib} from "../../types/Amount.sol";
12
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
13
- import {Fee, FeeLib} from "../../types/Fee.sol";
14
- import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../../types/RoleId.sol";
15
- import {KEEP_STATE} from "../../types/StateId.sol";
16
- import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, PRICE} from "../../types/ObjectType.sol";
17
- import {Version, VersionLib} from "../../types/Version.sol";
18
- import {RoleId} from "../../types/RoleId.sol";
19
-
20
- import {IVersionable} from "../../shared/IVersionable.sol";
21
- import {Versionable} from "../../shared/Versionable.sol";
22
-
23
- import {IService} from "../../shared/IService.sol";
24
- import {Service} from "../../shared/Service.sol";
25
- import {ComponentService} from "../base/ComponentService.sol";
26
- import {InstanceService} from "../InstanceService.sol";
27
- import {IComponent} from "../../components/IComponent.sol";
28
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
29
- import {IDistributionService} from "./IDistributionService.sol";
30
- import {IPricingService} from "./IPricingService.sol";
31
-
32
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
33
- import {DistributorType, DistributorTypeLib} from "../../types/DistributorType.sol";
34
- import {ReferralId, ReferralStatus, ReferralLib} from "../../types/Referral.sol";
35
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
36
- import {Key32} from "../../types/Key32.sol";
37
- import {IDistribution} from "../module/IDistribution.sol";
38
- import {InstanceStore} from "../InstanceStore.sol";
39
-
40
-
41
- contract DistributionService is
42
- ComponentService,
43
- IDistributionService
44
- {
45
- using NftIdLib for NftId;
46
- using TimestampLib for Timestamp;
47
- using UFixedLib for UFixed;
48
- using FeeLib for Fee;
49
- using ReferralLib for ReferralId;
50
-
51
- address internal _registryAddress;
52
-
53
- function _initialize(
54
- address owner,
55
- bytes memory data
56
- )
57
- internal
58
- initializer
59
- virtual override
60
- {
61
- address initialOwner;
62
- address registryAddress;
63
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
64
- // TODO while DistributionService is not deployed in DistributionServiceManager constructor
65
- // owner is DistributionServiceManager deployer
66
- initializeService(registryAddress, address(0), owner);
67
- registerInterface(type(IDistributionService).interfaceId);
68
- }
69
-
70
- function getDomain() public pure override returns(ObjectType) {
71
- return DISTRIBUTION();
72
- }
73
-
74
- function register(address distributionAddress)
75
- external
76
- returns(NftId distributionNftId)
77
- {
78
- (
79
- IComponent component,
80
- address owner,
81
- IInstance instance,
82
- NftId instanceNftId
83
- ) = _checkComponentForRegistration(
84
- distributionAddress,
85
- DISTRIBUTION(),
86
- DISTRIBUTION_OWNER_ROLE());
87
-
88
- IRegistry.ObjectInfo memory distributionInfo = getRegistryService().registerDistribution(component, owner);
89
- IDistributionComponent distribution = IDistributionComponent(distributionAddress);
90
- distribution.linkToRegisteredNftId();
91
- distributionNftId = distributionInfo.nftId;
92
-
93
- instance.getInstanceStore().createDistributionSetup(distributionNftId, distribution.getSetupInfo());
94
- // TODO move to distribution?
95
- bytes4[][] memory selectors = new bytes4[][](2);
96
- selectors[0] = new bytes4[](1);
97
- selectors[1] = new bytes4[](2);
98
-
99
- selectors[0][0] = IDistributionComponent.setFees.selector;
100
- selectors[1][0] = IDistributionComponent.processRenewal.selector;
101
-
102
- RoleId[] memory roles = new RoleId[](2);
103
- roles[0] = DISTRIBUTION_OWNER_ROLE();
104
- roles[1] = PRODUCT_SERVICE_ROLE();
105
-
106
- getInstanceService().createGifTarget(
107
- instanceNftId,
108
- distributionAddress,
109
- distribution.getName(),
110
- selectors,
111
- roles);
112
- }
113
-
114
- function setFees(
115
- Fee memory minDistributionOwnerFee,
116
- Fee memory distributionFee
117
- )
118
- external
119
- override
120
- {
121
- if (minDistributionOwnerFee.fractionalFee > distributionFee.fractionalFee) {
122
- revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
123
- }
124
-
125
- (NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
126
- InstanceReader instanceReader = instance.getInstanceReader();
127
-
128
- ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
129
- distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
130
- distSetupInfo.distributionFee = distributionFee;
131
-
132
- instance.getInstanceStore().updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
133
- }
134
-
135
- function createDistributorType(
136
- string memory name,
137
- UFixed minDiscountPercentage,
138
- UFixed maxDiscountPercentage,
139
- UFixed commissionPercentage,
140
- uint32 maxReferralCount,
141
- uint32 maxReferralLifetime,
142
- bool allowSelfReferrals,
143
- bool allowRenewals,
144
- bytes memory data
145
- )
146
- external
147
- returns (DistributorType distributorType)
148
- {
149
- (NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
150
-
151
- {
152
- ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
153
- UFixed variableFeesPartsTotal = setupInfo.minDistributionOwnerFee.fractionalFee.add(commissionPercentage);
154
- UFixed maxDiscountPercentageLimit = setupInfo.distributionFee.fractionalFee.sub(variableFeesPartsTotal);
155
- if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
156
- revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
157
- }
158
- }
159
-
160
- distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
161
- IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
162
- name,
163
- minDiscountPercentage,
164
- maxDiscountPercentage,
165
- commissionPercentage,
166
- maxReferralCount,
167
- maxReferralLifetime,
168
- allowSelfReferrals,
169
- allowRenewals,
170
- data);
171
-
172
- instance.getInstanceStore().createDistributorType(distributorType, info);
173
- }
174
-
175
-
176
- function createDistributor(
177
- address distributor,
178
- DistributorType distributorType,
179
- bytes memory data
180
- )
181
- external
182
- virtual
183
- returns (NftId distributorNftId)
184
- {
185
- (NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
186
-
187
- distributorNftId = getRegistryService().registerDistributor(
188
- IRegistry.ObjectInfo(
189
- zeroNftId(),
190
- distributionNftId,
191
- DISTRIBUTOR(),
192
- true, // intercepting property for bundles is defined on pool
193
- address(0),
194
- distributor,
195
- ""
196
- ));
197
-
198
- IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
199
- distributorType,
200
- true, // active
201
- data,
202
- AmountLib.zero(),
203
- 0);
204
-
205
- instance.getInstanceStore().createDistributor(distributorNftId, info);
206
- }
207
-
208
- // function updateDistributorType(
209
- // NftId distributorNftId,
210
- // DistributorType distributorType,
211
- // bytes memory data
212
- // )
213
- // external
214
- // virtual
215
- // {
216
- // (, IInstance instance) = _getAndVerifyCallingDistribution();
217
- // InstanceReader instanceReader = instance.getInstanceReader();
218
- // IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
219
- // distributorInfo.distributorType = distributorType;
220
- // distributorInfo.data = data;
221
- // instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
222
- // }
223
-
224
-
225
- function createReferral(
226
- NftId distributorNftId,
227
- string memory code,
228
- UFixed discountPercentage,
229
- uint32 maxReferrals,
230
- Timestamp expiryAt,
231
- bytes memory data
232
- )
233
- external
234
- virtual
235
- returns (ReferralId referralId)
236
- {
237
- (NftId distributionNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(DISTRIBUTION());
238
-
239
- if (bytes(code).length == 0) {
240
- revert ErrorIDistributionServiceInvalidReferral(code);
241
- }
242
- if (expiryAt.eqz()) {
243
- revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
244
- }
245
-
246
- InstanceReader instanceReader = instance.getInstanceReader();
247
- DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
248
- IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
249
-
250
- if (distributorTypeData.maxReferralCount < maxReferrals) {
251
- revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
252
- }
253
- if (distributorTypeData.minDiscountPercentage > discountPercentage) {
254
- revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
255
- }
256
- if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
257
- revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
258
- }
259
- if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
260
- revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
261
- }
262
-
263
- referralId = ReferralLib.toReferralId(distributionNftId, code);
264
- IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
265
- distributorNftId,
266
- code,
267
- discountPercentage,
268
- maxReferrals,
269
- 0, // used referrals
270
- expiryAt,
271
- data
272
- );
273
-
274
- instance.getInstanceStore().createReferral(referralId, info);
275
- return referralId;
276
- }
277
-
278
- function processSale(
279
- NftId distributionNftId, // assume always of distribution type
280
- ReferralId referralId,
281
- IPolicy.Premium memory premium,
282
- Amount transferredDistributionFeeAmount
283
- )
284
- external
285
- virtual
286
- {
287
- bool isReferral = ! referralId.eqz();
288
- bool referralValid = referralIsValid(distributionNftId, referralId);
289
-
290
- if (isReferral && ! referralValid) {
291
- revert ErrorIDistributionServiceReferralInvalid(distributionNftId, referralId);
292
- }
293
-
294
- IInstance instance = _getInstanceForDistribution(distributionNftId);
295
- InstanceReader reader = instance.getInstanceReader();
296
- InstanceStore store = instance.getInstanceStore();
297
- IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
298
- IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
299
- ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
300
-
301
- Amount distributionOwnerFee = AmountLib.toAmount(premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount);
302
- Amount commissionAmount = AmountLib.toAmount(premium.commissionAmount);
303
-
304
- if (!(transferredDistributionFeeAmount == distributionOwnerFee + commissionAmount)) {
305
- revert ErrorDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
306
- }
307
-
308
-
309
- if (distributionOwnerFee.gtz()) {
310
- setupInfo.sumDistributionOwnerFees += distributionOwnerFee.toInt();
311
- store.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
312
- }
313
-
314
- if (isReferral) {
315
- referralInfo.usedReferrals += 1;
316
- store.updateReferral(referralId, referralInfo, KEEP_STATE());
317
-
318
- if (commissionAmount.gtz()) {
319
- distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
320
- distributorInfo.numPoliciesSold += 1;
321
- store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
322
- }
323
- }
324
- }
325
-
326
- // TODO: zero should return false
327
- function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
328
- IInstance instance = _getInstanceForDistribution(distributionNftId);
329
- IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
330
-
331
- if (info.distributorNftId.eqz()) {
332
- return false;
333
- }
334
-
335
- isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
336
- isValid = isValid && info.usedReferrals < info.maxReferrals;
337
- }
338
-
339
- function _getInstanceForDistribution(NftId distributionNftId)
340
- internal
341
- view
342
- returns(IInstance instance)
343
- {
344
- NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
345
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
346
- return IInstance(instanceAddress);
347
- }
348
- }
@@ -1,51 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {IVersionable} from "../../shared/IVersionable.sol";
5
- import {ProxyManager} from "../../shared/ProxyManager.sol";
6
- import {DistributionService} from "./DistributionService.sol";
7
- import {Registry} from "../../registry/Registry.sol";
8
- import {RegistryService} from "../../registry/RegistryService.sol";
9
- import {REGISTRY} from "../../types/ObjectType.sol";
10
-
11
- contract DistributionServiceManager is ProxyManager {
12
-
13
- DistributionService private _distributionService;
14
-
15
- /// @dev initializes proxy manager with distribution service implementation and deploys instance
16
- constructor(
17
- address registryAddress
18
- )
19
- ProxyManager(registryAddress)
20
- {
21
- DistributionService distSrv = new DistributionService();
22
- bytes memory data = abi.encode(registryAddress, address(this));
23
- IVersionable versionable = deploy(
24
- address(distSrv),
25
- data);
26
-
27
- _distributionService = DistributionService(address(versionable));
28
-
29
- // TODO `thi` must have a role or own nft to register service
30
- //Registry registry = Registry(registryAddress);
31
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _distributionService.getMajorVersion());
32
- //RegistryService registryService = RegistryService(registryServiceAddress);
33
- //registryService.registerService(_distributionService);
34
-
35
- // TODO no nft to link yet
36
- // link ownership of instance service manager ot nft owner of instance service
37
- //_linkToNftOwnable(
38
- // address(registryAddress),
39
- // address(_distributionService));
40
- }
41
-
42
- //--- view functions ----------------------------------------------------//
43
- function getDistributionService()
44
- external
45
- view
46
- returns (DistributionService distributionService)
47
- {
48
- return _distributionService;
49
- }
50
-
51
- }
@@ -1,118 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Amount} from "../../types/Amount.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {Fee} from "../../types/Fee.sol";
7
- import {IService} from "../../shared/IService.sol";
8
- import {IBundle} from "../module/IBundle.sol";
9
- import {IInstance} from "../../instance/IInstance.sol";
10
- import {Seconds} from "../../types/Seconds.sol";
11
- import {StateId} from "../../types/StateId.sol";
12
- import {Timestamp} from "../../types/Timestamp.sol";
13
-
14
- interface IBundleService is IService {
15
-
16
- event LogBundleServiceBundleActivated(NftId bundleNftId);
17
- event LogBundleServiceBundleLocked(NftId bundleNftId);
18
-
19
- error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, Amount amount);
20
- error ErrorBundleServiceBundleNotOpen(NftId bundleNftId, StateId state, Timestamp expiredAt);
21
- error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, Amount capacityAmount, Amount collateralAmount);
22
- error ErrorBundleServiceBundleWithOpenPolicies(NftId bundleNftId, uint256 openPoliciesCount);
23
-
24
- error ErrorBundleServiceBundleUnknown(NftId bundleNftId);
25
- error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
26
-
27
- error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
28
-
29
- /// @dev create a new bundle for the specified attributes
30
- /// may only be called by pool service
31
- function create(
32
- IInstance instance, // instance relevant for bundle
33
- NftId poolNftId, // the pool the bundle will be linked to
34
- address owner, // initial bundle owner
35
- Fee memory fee, // fees deducted from premium that go to bundle owner
36
- Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
37
- Seconds lifetime, // initial duration for which new policies are covered
38
- bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
39
- )
40
- external
41
- returns(NftId bundleNftId); // the nft id of the newly created bundle
42
-
43
-
44
- /// @dev increase bundle stakes by the specified amount
45
- /// may only be called by the bundle owner
46
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
47
-
48
- // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
49
-
50
- /// @dev locks the specified bundle, locked bundles are not available to collateralize new policies
51
- /// only active bundles may be locked
52
- /// may only be called by registered and unlocked pool components
53
- function lock(NftId bundleNftId) external;
54
-
55
- /// @dev activates the specified bundle
56
- /// only locked bundles may be unlocked
57
- /// may only be called by registered and unlocked pool components
58
- function unlock(NftId bundleNftId) external;
59
-
60
- /// @dev closes the specified bundle
61
- /// only open bundles (active or locked) may be closed
62
- /// to close a bundle it may not have any non-closed polices attached to it
63
- /// may only be called by registered and unlocked pool components
64
- function close(
65
- IInstance instance,
66
- NftId bundleNftId
67
- ) external;
68
-
69
- /// @dev set bundle fee to provided value
70
- /// may only be called by registered and unlocked pool components
71
- function setFee(
72
- NftId bundleNftId,
73
- Fee memory fee
74
- ) external;
75
-
76
-
77
- /// @dev locks the specified collateral in the bundle
78
- /// the locked collateral is added to the bundle locked capital
79
- /// the bundles' fees are updated with the fees for this premium
80
- /// the premium (minus bundle fee) is added to the bundle capital
81
- /// may only be called by pool service
82
- function lockCollateral(
83
- IInstance instanceNftId,
84
- NftId policyNftId,
85
- NftId bundleNftId,
86
- Amount collateralAmount,
87
- Amount premiumAmount // premium after pool fee
88
- ) external;
89
-
90
- /// @dev releases the specified collateral in the bundle
91
- /// may only be called by pool service
92
- function releaseCollateral(
93
- IInstance instance,
94
- NftId policyNftId,
95
- NftId bundleNftId,
96
- Amount collateralAmount
97
- ) external;
98
-
99
- /// @dev unlink policy from bundle
100
- /// policy may only be unlinked if policy is closeable
101
- /// may only be called by pool service
102
- function unlinkPolicy(
103
- IInstance instance,
104
- NftId policyNftId
105
- ) external;
106
-
107
- /// @dev updates the bundle's fees of with the provided fee amount
108
- function updateBundleFees(
109
- IInstance instance,
110
- NftId bundleNftId,
111
- Amount feeAmount
112
- ) external;
113
-
114
- function increaseBalance(
115
- IInstance instance,
116
- NftId bundleNftId,
117
- Amount amount) external;
118
- }
@@ -1,87 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Amount} from "../../types/Amount.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {Fee} from "../../types/Fee.sol";
7
- import {IPolicy} from "../module/IPolicy.sol";
8
- import {IService} from "../../shared/IService.sol";
9
- import {UFixed} from "../../types/UFixed.sol";
10
- import {DistributorType} from "../../types/DistributorType.sol";
11
- import {ReferralId} from "../../types/Referral.sol";
12
- import {Timestamp} from "../../types/Timestamp.sol";
13
-
14
-
15
- interface IDistributionService is IService {
16
- error ErrorDistributionServiceCallerNotRegistered(address caller);
17
- error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
18
- error ErrorIDistributionServiceCallerNotDistributor(address caller);
19
- error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
20
- error ErrorIDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
21
- error ErrorIDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
22
- error ErrorIDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
23
- error ErrorIDistributionServiceExpiryTooLong(uint256 maxReferralLifetime, uint256 expiryAt);
24
- error ErrorIDistributionServiceInvalidReferral(string code);
25
- error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
26
- error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
27
- error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
28
- error ErrorIDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
29
- error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
30
- error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
31
-
32
- function setFees(
33
- Fee memory minDistributionOwnerFee,
34
- Fee memory distributionFee
35
- ) external;
36
-
37
- function createDistributorType(
38
- string memory name,
39
- UFixed minDiscountPercentage,
40
- UFixed maxDiscountPercentage,
41
- UFixed commissionPercentage,
42
- uint32 maxReferralCount,
43
- uint32 maxReferralLifetime,
44
- bool allowSelfReferrals,
45
- bool allowRenewals,
46
- bytes memory data
47
- )
48
- external
49
- returns (DistributorType distributorType);
50
-
51
- function createDistributor(
52
- address distributor,
53
- DistributorType distributorType,
54
- bytes memory data
55
- ) external returns (NftId distributorNftId);
56
-
57
- // TODO re-enable and reorganize (service contract too large)
58
- // function updateDistributorType(
59
- // NftId distributorNftId,
60
- // DistributorType distributorType,
61
- // bytes memory data
62
- // ) external;
63
-
64
- function createReferral(
65
- NftId distributorNftId,
66
- string memory code,
67
- UFixed discountPercentage,
68
- uint32 maxReferrals,
69
- Timestamp expiryAt,
70
- bytes memory data
71
- )
72
- external
73
- returns (ReferralId referralId);
74
-
75
- /// @dev callback from product service when selling a policy for a specific referralId
76
- function processSale(
77
- NftId distributionNftId,
78
- ReferralId referralId,
79
- IPolicy.Premium memory premium,
80
- Amount transferredDistributionFeeAmount
81
- ) external;
82
-
83
- function referralIsValid(
84
- NftId distributorNftId,
85
- ReferralId referralId
86
- ) external view returns (bool isValid);
87
- }
@@ -1,80 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRisk} from "../module/IRisk.sol";
5
- import {IService} from "../../shared/IService.sol";
6
-
7
- import {Amount} from "../../types/Amount.sol";
8
- import {ClaimId} from "../../types/ClaimId.sol";
9
- import {NftId} from "../../types/NftId.sol";
10
- import {PayoutId} from "../../types/PayoutId.sol";
11
- import {ReferralId} from "../../types/Referral.sol";
12
- import {RiskId} from "../../types/RiskId.sol";
13
- import {Seconds} from "../../types/Seconds.sol";
14
- import {StateId} from "../../types/StateId.sol";
15
- import {Timestamp} from "../../types/Timestamp.sol";
16
- import {UFixed} from "../../types/UFixed.sol";
17
- import {Fee} from "../../types/Fee.sol";
18
-
19
- interface IPolicyService is IService {
20
-
21
- error ErrorPolicyServicePolicyProductMismatch(NftId applicationNftId, NftId expectedProductNftId, NftId actualProductNftId);
22
- error ErrorPolicyServicePolicyStateNotApplied(NftId applicationNftId);
23
-
24
- error ErrorIPolicyServiceInsufficientAllowance(address customer, address tokenHandlerAddress, uint256 amount);
25
- error ErrorPolicyServicePremiumAlreadyPaid(NftId policyNftId, Amount premiumPaidAmount);
26
- error ErrorIPolicyServicePolicyNotActivated(NftId policyNftId);
27
- error ErrorIPolicyServicePolicyAlreadyClosed(NftId policyNftId);
28
- error ErrorIPolicyServicePolicyNotActive(NftId policyNftId, StateId state);
29
- error ErrorPolicyServicePremiumNotFullyPaid(NftId policyNftId, Amount premiumAmount, Amount premiumPaidAmount);
30
- error ErrorIPolicyServiceOpenClaims(NftId policyNftId, uint16 openClaimsCount);
31
- error ErrorIPolicyServicePolicyHasNotExpired(NftId policyNftId, Timestamp expiredAt);
32
-
33
- error ErrorPolicyServicePremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount recalculatedPremiumAmount);
34
- error ErrorPolicyServiceTransferredPremiumMismatch(NftId policyNftId, Amount expectedPremiumAmount, Amount transferredPremiumAmount);
35
-
36
- /// @dev collateralizes the policy represented by {policyNftId}
37
- /// sets the policy state to collateralized
38
- /// may set the policy state to activated and set the activation date
39
- /// optionally collects premiums and activates the policy.
40
- /// - premium payment is only attempted if requirePremiumPayment is set to true
41
- /// - activation is only done if activateAt is a non-zero timestamp
42
- /// an application can only be collateralized in applied state
43
- /// only the related product may collateralize an application
44
- function collateralize(
45
- NftId policyNftId,
46
- bool requirePremiumPayment,
47
- Timestamp activateAt
48
- ) external;
49
-
50
- /// @dev declines an application represented by {policyNftId}
51
- /// an application can only be declined in applied state
52
- /// only the related product may decline an application
53
- function decline(NftId policyNftId) external;
54
-
55
- /// @dev collects the premium token for the specified policy
56
- function collectPremium(NftId policyNftId, Timestamp activateAt) external;
57
-
58
- /// @dev activates the specified policy and sets the activation date in the policy metadata
59
- /// to activate a policy it needs to be in underwritten state
60
- function activate(NftId policyNftId, Timestamp activateAt) external;
61
-
62
- /// @dev expires the specified policy and sets the expiry date in the policy metadata
63
- /// 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
64
- /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
65
- /// this function can only be called by a product. the policy needs to match with the calling product
66
- function expire(NftId policyNftId) external;
67
-
68
- /// @dev closes the specified policy and sets the closed data in the policy metadata
69
- /// a policy can only be closed when it has been expired. in addition, it must not have any open claims
70
- /// this function can only be called by a product. the policy needs to match with the calling product
71
- function close(NftId policyNftId) external;
72
-
73
-
74
- // TODO move function to pool service
75
- function calculateRequiredCollateral(
76
- UFixed collateralizationLevel,
77
- Amount sumInsuredAmount
78
- ) external pure returns(Amount collateralAmount);
79
-
80
- }