@etherisc/gif-next 0.0.2-917cede-703 → 0.0.2-91b514c-961

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 +130 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1224 -0
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  33. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +285 -324
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  39. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +274 -275
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +310 -329
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +323 -2085
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +281 -106
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +585 -2824
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2036 -0
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1672 -617
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +310 -396
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -170
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3728 -0
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -241
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +320 -465
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +246 -75
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +574 -304
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +368 -426
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  152. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +455 -482
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  160. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +157 -145
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +297 -253
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IPricingService.sol/IPricingService.json} +248 -227
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  169. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +95 -65
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.json +911 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
  181. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  182. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  197. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  198. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +361 -250
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +174 -109
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  217. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  218. package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  224. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +60 -182
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +661 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  234. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +137 -131
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1127 -0
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  240. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  251. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  257. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  271. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  272. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  280. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +736 -590
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  287. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  341. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  344. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  347. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  351. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  357. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  358. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  359. package/contracts/accounting/AccountingService.sol +262 -0
  360. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  361. package/contracts/accounting/IAccountingService.sol +45 -0
  362. package/contracts/authorization/AccessAdmin.sol +704 -0
  363. package/contracts/authorization/AccessAdminLib.sol +183 -0
  364. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  365. package/contracts/authorization/Authorization.sol +365 -0
  366. package/contracts/authorization/IAccess.sol +57 -0
  367. package/contracts/authorization/IAccessAdmin.sol +170 -0
  368. package/contracts/authorization/IAuthorization.sol +80 -0
  369. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  370. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  371. package/contracts/distribution/BasicDistribution.sol +141 -0
  372. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  373. package/contracts/distribution/Distribution.sol +244 -0
  374. package/contracts/distribution/DistributionService.sol +385 -0
  375. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  376. package/contracts/distribution/IDistributionComponent.sol +43 -0
  377. package/contracts/distribution/IDistributionService.sol +103 -0
  378. package/contracts/examples/fire/DamageLevel.sol +59 -0
  379. package/contracts/examples/fire/FirePool.sol +86 -0
  380. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  381. package/contracts/examples/fire/FireProduct.sol +433 -0
  382. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  383. package/contracts/examples/fire/FireUSD.sol +26 -0
  384. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  385. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  387. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  388. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  390. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  391. package/contracts/instance/BundleSet.sol +130 -0
  392. package/contracts/instance/IInstance.sol +79 -75
  393. package/contracts/instance/IInstanceService.sol +56 -36
  394. package/contracts/instance/Instance.sol +208 -214
  395. package/contracts/instance/InstanceAdmin.sol +450 -0
  396. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  397. package/contracts/instance/InstanceReader.sol +397 -64
  398. package/contracts/instance/InstanceService.sol +326 -345
  399. package/contracts/instance/InstanceServiceManager.sol +14 -29
  400. package/contracts/instance/InstanceStore.sol +298 -0
  401. package/contracts/instance/RiskSet.sol +118 -0
  402. package/contracts/instance/base/BalanceStore.sol +123 -0
  403. package/contracts/instance/base/Cloneable.sol +28 -0
  404. package/contracts/instance/base/ObjectCounter.sol +20 -0
  405. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  406. package/contracts/instance/base/ObjectSet.sol +77 -0
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +9 -11
  409. package/contracts/instance/module/IComponents.sol +44 -23
  410. package/contracts/instance/module/IDistribution.sol +25 -12
  411. package/contracts/instance/module/IPolicy.sol +67 -39
  412. package/contracts/instance/module/IRisk.sol +6 -1
  413. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  414. package/contracts/oracle/BasicOracle.sol +45 -0
  415. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  416. package/contracts/oracle/IOracle.sol +41 -0
  417. package/contracts/oracle/IOracleComponent.sol +33 -0
  418. package/contracts/oracle/IOracleService.sol +66 -0
  419. package/contracts/oracle/Oracle.sol +154 -0
  420. package/contracts/oracle/OracleService.sol +310 -0
  421. package/contracts/oracle/OracleServiceManager.sol +39 -0
  422. package/contracts/pool/BasicPool.sol +173 -0
  423. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  424. package/contracts/pool/BundleService.sol +395 -0
  425. package/contracts/pool/BundleServiceManager.sol +39 -0
  426. package/contracts/{instance/service → pool}/IBundleService.sol +50 -37
  427. package/contracts/pool/IPoolComponent.sol +62 -0
  428. package/contracts/pool/IPoolService.sol +165 -0
  429. package/contracts/pool/Pool.sol +343 -0
  430. package/contracts/pool/PoolLib.sol +216 -0
  431. package/contracts/pool/PoolService.sol +755 -0
  432. package/contracts/pool/PoolServiceManager.sol +39 -0
  433. package/contracts/product/ApplicationService.sol +274 -0
  434. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  435. package/contracts/product/BasicProduct.sol +49 -0
  436. package/contracts/product/BasicProductAuthorization.sol +56 -0
  437. package/contracts/product/ClaimService.sol +632 -0
  438. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  439. package/contracts/{instance/service → product}/IApplicationService.sol +22 -31
  440. package/contracts/product/IClaimService.sol +135 -0
  441. package/contracts/product/IPolicyService.sol +95 -0
  442. package/contracts/product/IPricingService.sol +40 -0
  443. package/contracts/product/IProductComponent.sol +62 -0
  444. package/contracts/product/IRiskService.sol +33 -0
  445. package/contracts/product/PolicyService.sol +664 -0
  446. package/contracts/product/PolicyServiceLib.sol +65 -0
  447. package/contracts/product/PolicyServiceManager.sol +39 -0
  448. package/contracts/product/PricingService.sol +309 -0
  449. package/contracts/product/PricingServiceManager.sol +39 -0
  450. package/contracts/product/Product.sol +467 -0
  451. package/contracts/product/RiskService.sol +154 -0
  452. package/contracts/product/RiskServiceManager.sol +39 -0
  453. package/contracts/registry/ChainNft.sol +79 -40
  454. package/contracts/registry/IRegistry.sol +99 -30
  455. package/contracts/registry/IRegistryService.sol +34 -40
  456. package/contracts/registry/IRelease.sol +29 -0
  457. package/contracts/registry/ITransferInterceptor.sol +1 -2
  458. package/contracts/registry/Registry.sol +460 -197
  459. package/contracts/registry/RegistryAdmin.sol +258 -0
  460. package/contracts/registry/RegistryAuthorization.sol +267 -0
  461. package/contracts/registry/RegistryService.sol +89 -130
  462. package/contracts/registry/RegistryServiceManager.sol +23 -32
  463. package/contracts/registry/ReleaseAdmin.sol +253 -0
  464. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  465. package/contracts/registry/ReleaseRegistry.sol +517 -0
  466. package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
  467. package/contracts/registry/TokenRegistry.sol +264 -64
  468. package/contracts/shared/Component.sol +210 -0
  469. package/contracts/shared/ComponentService.sol +654 -0
  470. package/contracts/shared/ComponentServiceManager.sol +38 -0
  471. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  472. package/contracts/shared/ContractLib.sol +347 -0
  473. package/contracts/shared/IComponent.sol +58 -0
  474. package/contracts/shared/IComponentService.sol +110 -0
  475. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  476. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  477. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  478. package/contracts/shared/INftOwnable.sol +4 -2
  479. package/contracts/shared/IPolicyHolder.sol +23 -14
  480. package/contracts/shared/IRegisterable.sol +23 -1
  481. package/contracts/shared/IRegistryLinked.sol +0 -1
  482. package/contracts/shared/IService.sol +12 -5
  483. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  484. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  485. package/contracts/shared/KeyValueStore.sol +131 -0
  486. package/contracts/shared/Lifecycle.sol +88 -0
  487. package/contracts/shared/NftIdSet.sol +65 -0
  488. package/contracts/shared/NftOwnable.sol +34 -27
  489. package/contracts/shared/PolicyHolder.sol +22 -41
  490. package/contracts/shared/Registerable.sol +52 -20
  491. package/contracts/shared/RegistryLinked.sol +9 -19
  492. package/contracts/shared/Service.sol +33 -40
  493. package/contracts/shared/TokenHandler.sol +322 -13
  494. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  495. package/contracts/staking/IStaking.sol +179 -0
  496. package/contracts/staking/IStakingService.sol +172 -0
  497. package/contracts/staking/Staking.sol +546 -0
  498. package/contracts/staking/StakingLib.sol +281 -0
  499. package/contracts/staking/StakingLifecycle.sol +23 -0
  500. package/contracts/staking/StakingManager.sol +52 -0
  501. package/contracts/staking/StakingReader.sol +180 -0
  502. package/contracts/staking/StakingService.sol +464 -0
  503. package/contracts/staking/StakingServiceManager.sol +45 -0
  504. package/contracts/staking/StakingStore.sol +606 -0
  505. package/contracts/staking/TargetManagerLib.sol +211 -0
  506. package/contracts/{types → type}/AddressSet.sol +1 -1
  507. package/contracts/type/Amount.sol +150 -0
  508. package/contracts/{types → type}/Blocknumber.sol +26 -3
  509. package/contracts/{types → type}/ClaimId.sol +6 -1
  510. package/contracts/{types → type}/Fee.sol +28 -26
  511. package/contracts/{types → type}/Key32.sol +2 -2
  512. package/contracts/type/Key32Set.sol +62 -0
  513. package/contracts/{types → type}/NftId.sol +21 -16
  514. package/contracts/{types → type}/NftIdSet.sol +2 -2
  515. package/contracts/type/ObjectType.sol +294 -0
  516. package/contracts/{types → type}/PayoutId.sol +10 -10
  517. package/contracts/{types → type}/Referral.sol +2 -1
  518. package/contracts/type/RequestId.sol +75 -0
  519. package/contracts/type/RiskId.sol +75 -0
  520. package/contracts/type/RoleId.sol +182 -0
  521. package/contracts/type/Seconds.sol +101 -0
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/{types → type}/StateId.sol +41 -2
  524. package/contracts/type/String.sol +53 -0
  525. package/contracts/{types → type}/Timestamp.sol +16 -7
  526. package/contracts/type/UFixed.sol +262 -0
  527. package/contracts/{types → type}/Version.sol +58 -7
  528. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  529. package/contracts/{shared → upgradeability}/ProxyManager.sol +104 -39
  530. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  531. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  532. package/package.json +12 -8
  533. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  534. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  535. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  540. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  541. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  542. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  543. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  545. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  546. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  548. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  550. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  555. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  557. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  559. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  562. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  564. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  566. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
  568. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  570. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  572. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  574. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  576. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  578. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1519
  587. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -745
  589. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1433
  591. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -701
  593. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  595. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  597. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  599. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  601. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  603. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  604. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  605. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  608. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  609. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  610. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  613. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  615. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  617. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  619. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  621. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  623. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  625. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  626. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  627. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  628. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  629. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  631. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  633. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  635. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  637. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  639. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  641. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  643. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  645. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  646. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  647. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  649. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  651. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  653. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  655. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  657. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  659. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  661. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  663. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  666. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  668. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  670. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  672. package/contracts/components/Component.sol +0 -253
  673. package/contracts/components/Distribution.sol +0 -284
  674. package/contracts/components/IComponent.sol +0 -76
  675. package/contracts/components/IDistributionComponent.sol +0 -71
  676. package/contracts/components/IPoolComponent.sol +0 -113
  677. package/contracts/components/IProductComponent.sol +0 -40
  678. package/contracts/components/Pool.sol +0 -302
  679. package/contracts/components/Product.sol +0 -371
  680. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  681. package/contracts/instance/BundleManager.sol +0 -126
  682. package/contracts/instance/Cloneable.sol +0 -51
  683. package/contracts/instance/InstanceAccessManager.sol +0 -527
  684. package/contracts/instance/ObjectManager.sol +0 -82
  685. package/contracts/instance/base/ComponentService.sol +0 -121
  686. package/contracts/instance/base/KeyValueStore.sol +0 -180
  687. package/contracts/instance/base/Lifecycle.sol +0 -117
  688. package/contracts/instance/module/IAccess.sol +0 -54
  689. package/contracts/instance/module/ISetup.sol +0 -33
  690. package/contracts/instance/module/ITreasury.sol +0 -23
  691. package/contracts/instance/service/ApplicationService.sol +0 -355
  692. package/contracts/instance/service/BundleService.sol +0 -443
  693. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  694. package/contracts/instance/service/ClaimService.sol +0 -239
  695. package/contracts/instance/service/DistributionService.sol +0 -431
  696. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  697. package/contracts/instance/service/IClaimService.sol +0 -92
  698. package/contracts/instance/service/IDistributionService.sol +0 -99
  699. package/contracts/instance/service/IPolicyService.sol +0 -137
  700. package/contracts/instance/service/IPoolService.sol +0 -102
  701. package/contracts/instance/service/IProductService.sol +0 -40
  702. package/contracts/instance/service/PolicyService.sol +0 -545
  703. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  704. package/contracts/instance/service/PoolService.sol +0 -336
  705. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  706. package/contracts/instance/service/ProductService.sol +0 -210
  707. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  708. package/contracts/registry/RegistryAccessManager.sol +0 -216
  709. package/contracts/registry/ReleaseManager.sol +0 -324
  710. package/contracts/shared/ContractDeployerLib.sol +0 -72
  711. package/contracts/test/TestFee.sol +0 -25
  712. package/contracts/test/TestRegisterable.sol +0 -18
  713. package/contracts/test/TestRoleId.sol +0 -14
  714. package/contracts/test/TestService.sol +0 -25
  715. package/contracts/test/TestToken.sol +0 -26
  716. package/contracts/test/TestVersion.sol +0 -44
  717. package/contracts/test/TestVersionable.sol +0 -17
  718. package/contracts/types/Amount.sol +0 -70
  719. package/contracts/types/ChainId.sol +0 -38
  720. package/contracts/types/NumberId.sol +0 -52
  721. package/contracts/types/ObjectType.sol +0 -157
  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,239 +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 "./IApplicationService.sol";
6
-
7
- import {IRegistry} from "../../registry/IRegistry.sol";
8
- import {IProductComponent} from "../../components/IProductComponent.sol";
9
- import {Product} from "../../components/Product.sol";
10
- import {IPoolComponent} from "../../components/IPoolComponent.sol";
11
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
12
- import {IInstance} from "../IInstance.sol";
13
- import {IPolicy} from "../module/IPolicy.sol";
14
- import {IRisk} from "../module/IRisk.sol";
15
- import {IBundle} from "../module/IBundle.sol";
16
- import {IProductService} from "./IProductService.sol";
17
- import {ITreasury} from "../module/ITreasury.sol";
18
- import {ISetup} from "../module/ISetup.sol";
19
-
20
- import {TokenHandler} from "../../shared/TokenHandler.sol";
21
-
22
- import {IVersionable} from "../../shared/IVersionable.sol";
23
- import {Versionable} from "../../shared/Versionable.sol";
24
-
25
- import {Amount, AmountLib} from "../../types/Amount.sol";
26
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
27
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
28
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
29
- import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../../types/ObjectType.sol";
30
- import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED} from "../../types/StateId.sol";
31
- import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
32
- import {Fee, FeeLib} from "../../types/Fee.sol";
33
- import {ReferralId} from "../../types/Referral.sol";
34
- import {RiskId} from "../../types/RiskId.sol";
35
- import {StateId} from "../../types/StateId.sol";
36
- import {ClaimId, ClaimIdLib} from "../../types/ClaimId.sol";
37
- import {PayoutId, PayoutIdLib} from "../../types/PayoutId.sol";
38
- import {Version, VersionLib} from "../../types/Version.sol";
39
-
40
- import {ComponentService} from "../base/ComponentService.sol";
41
- import {InstanceReader} from "../InstanceReader.sol";
42
- import {IBundleService} from "./IBundleService.sol";
43
- import {IClaimService} from "./IClaimService.sol";
44
- import {IPoolService} from "./IPoolService.sol";
45
- import {IService} from "../../shared/IService.sol";
46
- import {Service} from "../../shared/Service.sol";
47
-
48
-
49
- contract ClaimService is
50
- ComponentService,
51
- IClaimService
52
- {
53
-
54
- IPoolService internal _poolService;
55
-
56
- function _initialize(
57
- address owner,
58
- bytes memory data
59
- )
60
- internal
61
- virtual override
62
- initializer()
63
- {
64
- // TODO check this, might no longer be the way, refactor if necessary
65
- address registryAddress;
66
- address initialOwner;
67
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
68
-
69
- initializeService(registryAddress, address(0), owner);
70
-
71
- _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
72
-
73
- registerInterface(type(IClaimService).interfaceId);
74
- }
75
-
76
-
77
- function getDomain() public pure override returns(ObjectType) {
78
- return CLAIM();
79
- }
80
-
81
-
82
- function submit(
83
- IInstance instance,
84
- NftId policyNftId,
85
- ClaimId claimId,
86
- Amount claimAmount,
87
- bytes memory claimData
88
- )
89
- external
90
- virtual
91
- // TODO add restricted and grant to policy service
92
- {
93
- instance.createClaim(
94
- policyNftId,
95
- claimId,
96
- IPolicy.ClaimInfo(
97
- claimAmount,
98
- AmountLib.zero(), // paidAmount
99
- 0, // payoutsCount
100
- 0, // openPayoutsCount
101
- claimData,
102
- TimestampLib.zero())); // closedAt
103
- }
104
-
105
-
106
- function confirm(
107
- IInstance instance,
108
- InstanceReader instanceReader,
109
- NftId policyNftId,
110
- ClaimId claimId,
111
- Amount confirmedAmount
112
- )
113
- external
114
- virtual
115
- {
116
- IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
117
- claimInfo.claimAmount = confirmedAmount;
118
- instance.updateClaim(policyNftId, claimId, claimInfo, CONFIRMED());
119
- }
120
-
121
- function decline(
122
- IInstance instance,
123
- InstanceReader instanceReader,
124
- NftId policyNftId,
125
- ClaimId claimId
126
- )
127
- external
128
- virtual
129
- {
130
- IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, SUBMITTED());
131
- claimInfo.closedAt = TimestampLib.blockTimestamp();
132
- instance.updateClaim(policyNftId, claimId, claimInfo, DECLINED());
133
- }
134
-
135
-
136
- function close(
137
- IInstance instance,
138
- InstanceReader instanceReader,
139
- NftId policyNftId,
140
- ClaimId claimId
141
- )
142
- external
143
- virtual
144
- {
145
- IPolicy.ClaimInfo memory claimInfo = _verifyClaim(instanceReader, policyNftId, claimId, CONFIRMED());
146
-
147
- // check claim has no open payouts
148
- if(claimInfo.openPayoutsCount > 0) {
149
- revert ErrorClaimServiceClaimWithOpenPayouts(
150
- policyNftId,
151
- claimId,
152
- claimInfo.openPayoutsCount);
153
- }
154
-
155
- // check claim paid amount matches with claim amount
156
- if(claimInfo.paidAmount.toInt() < claimInfo.claimAmount.toInt()) {
157
- revert ErrorClaimServiceClaimWithMissingPayouts(
158
- policyNftId,
159
- claimId,
160
- claimInfo.claimAmount,
161
- claimInfo.paidAmount);
162
- }
163
-
164
- claimInfo.closedAt = TimestampLib.blockTimestamp();
165
- instance.updateClaim(policyNftId, claimId, claimInfo, CLOSED());
166
- }
167
-
168
-
169
- function createPayout(
170
- IInstance instance,
171
- NftId policyNftId,
172
- PayoutId payoutId,
173
- Amount payoutAmount,
174
- bytes calldata payoutData
175
- )
176
- external
177
- virtual
178
- // TODO add restricted and grant to policy service
179
- {
180
- instance.createPayout(
181
- policyNftId,
182
- payoutId,
183
- IPolicy.PayoutInfo(
184
- payoutId.toClaimId(),
185
- payoutAmount,
186
- payoutData,
187
- TimestampLib.zero()));
188
- }
189
-
190
-
191
- function processPayout(
192
- IInstance instance,
193
- InstanceReader instanceReader,
194
- NftId policyNftId,
195
- PayoutId payoutId
196
- )
197
- external
198
- virtual
199
- returns (
200
- Amount amount,
201
- bool payoutIsClosingClaim
202
- )
203
- // solhint-disable-next-line no-empty-blocks
204
- {
205
-
206
- }
207
-
208
-
209
- // internal functions
210
-
211
- function _verifyClaim(
212
- InstanceReader instanceReader,
213
- NftId policyNftId,
214
- ClaimId claimId,
215
- StateId expectedState
216
- )
217
- internal
218
- view
219
- returns (
220
- IPolicy.ClaimInfo memory claimInfo
221
- )
222
- {
223
- // check claim is created state
224
- StateId claimState = instanceReader.getClaimState(policyNftId, claimId);
225
- if(claimState != expectedState) {
226
- revert ErrorClaimServiceClaimNotInExpectedState(
227
- policyNftId, claimId, expectedState, claimState);
228
- }
229
-
230
- // get claim info
231
- claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
232
- }
233
-
234
- function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
235
- IRegistry.ObjectInfo memory productInfo;
236
- (, productInfo,) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
237
- product = Product(productInfo.objectAddress);
238
- }
239
- }
@@ -1,431 +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 {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
12
- import {Fee, FeeLib} from "../../types/Fee.sol";
13
- import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../../types/RoleId.sol";
14
- import {KEEP_STATE} from "../../types/StateId.sol";
15
- import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR} from "../../types/ObjectType.sol";
16
- import {Version, VersionLib} from "../../types/Version.sol";
17
- import {RoleId} from "../../types/RoleId.sol";
18
-
19
- import {IVersionable} from "../../shared/IVersionable.sol";
20
- import {Versionable} from "../../shared/Versionable.sol";
21
-
22
- import {IService} from "../../shared/IService.sol";
23
- import {Service} from "../../shared/Service.sol";
24
- import {ComponentService} from "../base/ComponentService.sol";
25
- import {InstanceService} from "../InstanceService.sol";
26
- import {IComponent} from "../../components/IComponent.sol";
27
- import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
28
- import {IDistributionService} from "./IDistributionService.sol";
29
-
30
- import {UFixed, UFixedLib} from "../../types/UFixed.sol";
31
- import {DistributorType, DistributorTypeLib} from "../../types/DistributorType.sol";
32
- import {ReferralId, ReferralStatus, ReferralLib} from "../../types/Referral.sol";
33
- import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
34
- import {Key32} from "../../types/Key32.sol";
35
- import {IDistribution} from "../module/IDistribution.sol";
36
-
37
-
38
- contract DistributionService is
39
- ComponentService,
40
- IDistributionService
41
- {
42
- using NftIdLib for NftId;
43
- using TimestampLib for Timestamp;
44
- using UFixedLib for UFixed;
45
- using FeeLib for Fee;
46
- using ReferralLib for ReferralId;
47
-
48
- address internal _registryAddress;
49
-
50
- function _initialize(
51
- address owner,
52
- bytes memory data
53
- )
54
- internal
55
- initializer
56
- virtual override
57
- {
58
- address initialOwner;
59
- address registryAddress;
60
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
61
- // TODO while DistributionService is not deployed in DistributionServiceManager constructor
62
- // owner is DistributionServiceManager deployer
63
- initializeService(registryAddress, address(0), owner);
64
- registerInterface(type(IDistributionService).interfaceId);
65
- }
66
-
67
- function getDomain() public pure override returns(ObjectType) {
68
- return DISTRIBUTION();
69
- }
70
-
71
- function register(address distributionAddress)
72
- external
73
- returns(NftId distributionNftId)
74
- {
75
- (
76
- IComponent component,
77
- address owner,
78
- IInstance instance,
79
- NftId instanceNftId
80
- ) = _checkComponentForRegistration(
81
- distributionAddress,
82
- DISTRIBUTION(),
83
- DISTRIBUTION_OWNER_ROLE());
84
-
85
- IRegistry.ObjectInfo memory distributionInfo = getRegistryService().registerDistribution(component, owner);
86
- IDistributionComponent distribution = IDistributionComponent(distributionAddress);
87
- distribution.linkToRegisteredNftId();
88
- distributionNftId = distributionInfo.nftId;
89
-
90
- instance.createDistributionSetup(distributionNftId, distribution.getSetupInfo());
91
- // TODO move to distribution?
92
- bytes4[][] memory selectors = new bytes4[][](2);
93
- selectors[0] = new bytes4[](1);
94
- selectors[1] = new bytes4[](2);
95
-
96
- selectors[0][0] = IDistributionComponent.setFees.selector;
97
- selectors[1][0] = IDistributionComponent.processRenewal.selector;
98
-
99
- RoleId[] memory roles = new RoleId[](2);
100
- roles[0] = DISTRIBUTION_OWNER_ROLE();
101
- roles[1] = PRODUCT_SERVICE_ROLE();
102
-
103
- getInstanceService().createGifTarget(
104
- instanceNftId,
105
- distributionAddress,
106
- distribution.getName(),
107
- selectors,
108
- roles);
109
- }
110
-
111
- function setFees(
112
- Fee memory minDistributionOwnerFee,
113
- Fee memory distributionFee
114
- )
115
- external
116
- override
117
- {
118
- if (minDistributionOwnerFee.fractionalFee > distributionFee.fractionalFee) {
119
- revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
120
- }
121
-
122
- (NftId distributionNftId, IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(DISTRIBUTION());
123
- InstanceReader instanceReader = instance.getInstanceReader();
124
-
125
- ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
126
- distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
127
- distSetupInfo.distributionFee = distributionFee;
128
-
129
- instance.updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
130
- }
131
-
132
- function createDistributorType(
133
- string memory name,
134
- UFixed minDiscountPercentage,
135
- UFixed maxDiscountPercentage,
136
- UFixed commissionPercentage,
137
- uint32 maxReferralCount,
138
- uint32 maxReferralLifetime,
139
- bool allowSelfReferrals,
140
- bool allowRenewals,
141
- bytes memory data
142
- )
143
- external
144
- returns (DistributorType distributorType)
145
- {
146
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
147
-
148
- {
149
- ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
150
- UFixed variableFeesPartsTotal = setupInfo.minDistributionOwnerFee.fractionalFee.add(commissionPercentage);
151
- UFixed maxDiscountPercentageLimit = setupInfo.distributionFee.fractionalFee.sub(variableFeesPartsTotal);
152
- if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
153
- revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
154
- }
155
- }
156
-
157
- distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
158
- IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
159
- name,
160
- minDiscountPercentage,
161
- maxDiscountPercentage,
162
- commissionPercentage,
163
- maxReferralCount,
164
- maxReferralLifetime,
165
- allowSelfReferrals,
166
- allowRenewals,
167
- data);
168
-
169
- instance.createDistributorType(distributorType, info);
170
- }
171
-
172
- function createDistributor(
173
- address distributor,
174
- DistributorType distributorType,
175
- bytes memory data
176
- ) external returns (NftId distributorNftId)
177
- {
178
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
179
-
180
- distributorNftId = getRegistryService().registerDistributor(
181
- IRegistry.ObjectInfo(
182
- zeroNftId(),
183
- distributionNftId,
184
- DISTRIBUTOR(),
185
- true, // intercepting property for bundles is defined on pool
186
- address(0),
187
- distributor,
188
- ""
189
- ));
190
-
191
- IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
192
- distributorType,
193
- true, // active
194
- data,
195
- 0,
196
- 0);
197
-
198
- instance.createDistributor(distributorNftId, info);
199
- }
200
-
201
- function updateDistributorType(
202
- NftId distributorNftId,
203
- DistributorType distributorType,
204
- bytes memory data
205
- ) external virtual
206
- {
207
- (, IInstance instance) = _getAndVerifyCallingDistribution();
208
- InstanceReader instanceReader = instance.getInstanceReader();
209
- IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
210
- distributorInfo.distributorType = distributorType;
211
- distributorInfo.data = data;
212
- instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
213
- }
214
-
215
-
216
- function createReferral(
217
- NftId distributorNftId,
218
- string memory code,
219
- UFixed discountPercentage,
220
- uint32 maxReferrals,
221
- Timestamp expiryAt,
222
- bytes memory data
223
- )
224
- external
225
- virtual
226
- returns (ReferralId referralId)
227
- {
228
- (NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
229
-
230
- if (bytes(code).length == 0) {
231
- revert ErrorIDistributionServiceInvalidReferral(code);
232
- }
233
- if (expiryAt.eqz()) {
234
- revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
235
- }
236
-
237
- InstanceReader instanceReader = instance.getInstanceReader();
238
- IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
239
- DistributorType distributorType = distributorInfo.distributorType;
240
- IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
241
-
242
- if (distributorTypeData.maxReferralCount < maxReferrals) {
243
- revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
244
- }
245
- if (distributorTypeData.minDiscountPercentage > discountPercentage) {
246
- revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
247
- }
248
- if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
249
- revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
250
- }
251
- if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
252
- revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
253
- }
254
-
255
- referralId = ReferralLib.toReferralId(distributionNftId, code);
256
- IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
257
- distributorNftId,
258
- code,
259
- discountPercentage,
260
- maxReferrals,
261
- 0, // used referrals
262
- expiryAt,
263
- data
264
- );
265
-
266
- instance.createReferral(referralId, info);
267
- return referralId;
268
- }
269
-
270
- function processSale(
271
- NftId distributionNftId,
272
- ReferralId referralId,
273
- IPolicy.Premium memory premium,
274
- uint256 transferredDistributionFeeAmount
275
- )
276
- external
277
- virtual
278
- {
279
- bool isReferral = ! referralId.eqz();
280
- bool referralValid = referralIsValid(distributionNftId, referralId);
281
-
282
- if (isReferral && ! referralValid) {
283
- revert ErrorIDistributionServiceReferralInvalid(distributionNftId, referralId);
284
- }
285
-
286
- IInstance instance = _getInstanceForDistribution(distributionNftId);
287
- InstanceReader reader = instance.getInstanceReader();
288
- IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
289
- IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
290
- ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
291
-
292
- uint256 distributionOwnerFee = premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount;
293
- uint256 commissionAmount = premium.commissionAmount;
294
-
295
- if (transferredDistributionFeeAmount != distributionOwnerFee + commissionAmount) {
296
- revert ErrorIDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
297
- }
298
-
299
-
300
- if (distributionOwnerFee > 0) {
301
- setupInfo.sumDistributionOwnerFees += distributionOwnerFee;
302
- instance.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
303
- }
304
-
305
- if (isReferral) {
306
- referralInfo.usedReferrals += 1;
307
- instance.updateReferral(referralId, referralInfo, KEEP_STATE());
308
-
309
- if (commissionAmount > 0) {
310
- distributorInfo.sumCommisions += commissionAmount;
311
- distributorInfo.numPoliciesSold += 1;
312
- instance.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
313
- }
314
- }
315
- }
316
-
317
- function calculateFeeAmount(
318
- NftId distributionNftId,
319
- ReferralId referralId,
320
- IPolicy.Premium memory premium
321
- )
322
- external
323
- virtual
324
- view
325
- returns (IPolicy.Premium memory finalPremium)
326
- {
327
- IInstance instance = _getInstanceForDistribution(distributionNftId);
328
- InstanceReader reader = instance.getInstanceReader();
329
-
330
- // first calculate all fixed and variable fees for the distribution - this will defined the fullPremium
331
- ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
332
- Fee memory distributionFee = setupInfo.distributionFee;
333
- Fee memory minDistributionOwnerFee = setupInfo.minDistributionOwnerFee;
334
- uint256 distributionFeeVarAmount = (UFixedLib.toUFixed(premium.netPremiumAmount) * distributionFee.fractionalFee).toInt();
335
- premium.distributionFeeVarAmount = distributionFeeVarAmount;
336
- premium.fullPremiumAmount += distributionFeeVarAmount;
337
-
338
- // if the referral is not valid, then the distribution owner gets everything
339
- if (! referralIsValid(distributionNftId, referralId)) {
340
- premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
341
- premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
342
- premium.premiumAmount = premium.fullPremiumAmount;
343
- return premium;
344
- }
345
-
346
- // if the referral is valid, the the commission and discount are calculated based in the full premium
347
- // the remaing amount goes to the distribution owner
348
- {
349
- IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
350
- IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
351
- IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
352
-
353
- uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
354
- premium.commissionAmount = commissionAmount;
355
- premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
356
- premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
357
- premium.distributionOwnerFeeVarAmount = distributionFeeVarAmount - commissionAmount - premium.discountAmount;
358
- premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
359
- }
360
-
361
- // sanity check to validate the fee calculation
362
- if (premium.distributionOwnerFeeFixAmount < minDistributionOwnerFee.fixedFee) {
363
- revert ErrorIDistributionServiceFeeCalculationMismatch(
364
- premium.distributionFeeFixAmount,
365
- premium.distributionFeeVarAmount,
366
- premium.distributionOwnerFeeFixAmount,
367
- premium.distributionOwnerFeeVarAmount,
368
- premium.commissionAmount,
369
- premium.discountAmount
370
- );
371
- }
372
- if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
373
- revert ErrorIDistributionServiceFeeCalculationMismatch(
374
- premium.distributionFeeFixAmount,
375
- premium.distributionFeeVarAmount,
376
- premium.distributionOwnerFeeFixAmount,
377
- premium.distributionOwnerFeeVarAmount,
378
- premium.commissionAmount,
379
- premium.discountAmount
380
- );
381
- }
382
-
383
- return premium;
384
- }
385
-
386
- // TODO: zero should return false
387
- function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
388
- IInstance instance = _getInstanceForDistribution(distributionNftId);
389
- IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
390
-
391
- if (info.distributorNftId.eqz()) {
392
- return false;
393
- }
394
-
395
- isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
396
- isValid = isValid && info.usedReferrals < info.maxReferrals;
397
- }
398
-
399
- function _getAndVerifyCallingDistribution()
400
- internal
401
- view
402
- returns(
403
- NftId distributionNftId,
404
- IInstance instance
405
- )
406
- {
407
- distributionNftId = getRegistry().getNftId(msg.sender);
408
- if (distributionNftId.eqz()) {
409
- revert ErrorDistributionServiceCallerNotRegistered(msg.sender);
410
- }
411
-
412
- IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(distributionNftId);
413
- if(info.objectType != DISTRIBUTION()) {
414
- revert ErrorIDistributionServiceCallerNotDistributor(msg.sender);
415
- }
416
-
417
- address instanceAddress = getRegistry().getObjectInfo(info.parentNftId).objectAddress;
418
- instance = IInstance(instanceAddress);
419
- }
420
-
421
-
422
- function _getInstanceForDistribution(NftId distributionNftId)
423
- internal
424
- view
425
- returns(IInstance instance)
426
- {
427
- NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
428
- address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
429
- return IInstance(instanceAddress);
430
- }
431
- }