@etherisc/gif-next 0.0.2-e38b7e6-931 → 0.0.2-e3f92e5-870

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 (781) hide show
  1. package/README.md +85 -23
  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/distribution/Distribution.sol/Distribution.json +930 -0
  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/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1071 -0
  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 +380 -1332
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +422 -184
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +469 -2441
  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 +1666 -630
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +477 -386
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +367 -93
  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 -49
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +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 +4 -0
  104. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  108. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  109. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  118. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  126. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +444 -284
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  137. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +385 -352
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  140. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  141. package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
  142. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +202 -334
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +623 -0
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  169. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +517 -306
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +142 -198
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  174. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +911 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  183. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +601 -35
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +289 -222
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  198. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/Registry.sol/Registry.json +1020 -71
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2018 -0
  202. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +348 -274
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +362 -78
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +361 -97
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  219. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +260 -260
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1556 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  225. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +152 -160
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +239 -250
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IService.sol/IService.json +124 -146
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  273. package/artifacts/contracts/shared/Service.sol/Service.json +144 -159
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1491 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  360. package/contracts/accounting/AccountingService.sol +262 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +45 -0
  363. package/contracts/authorization/AccessAdmin.sol +704 -0
  364. package/contracts/authorization/AccessAdminLib.sol +183 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +365 -0
  367. package/contracts/authorization/IAccess.sol +49 -0
  368. package/contracts/authorization/IAccessAdmin.sol +170 -0
  369. package/contracts/authorization/IAuthorization.sol +80 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  372. package/contracts/distribution/BasicDistribution.sol +141 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  374. package/contracts/distribution/Distribution.sol +244 -0
  375. package/contracts/distribution/DistributionService.sol +385 -0
  376. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  377. package/contracts/distribution/IDistributionComponent.sol +43 -0
  378. package/contracts/distribution/IDistributionService.sol +103 -0
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +86 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +433 -0
  383. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  384. package/contracts/examples/fire/FireUSD.sol +26 -0
  385. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BundleSet.sol +130 -0
  393. package/contracts/instance/IInstance.sol +98 -52
  394. package/contracts/instance/IInstanceService.sol +70 -22
  395. package/contracts/instance/Instance.sol +221 -179
  396. package/contracts/instance/InstanceAdmin.sol +450 -0
  397. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  398. package/contracts/instance/InstanceReader.sol +415 -80
  399. package/contracts/instance/InstanceService.sol +371 -257
  400. package/contracts/instance/InstanceServiceManager.sol +14 -29
  401. package/contracts/instance/InstanceStore.sol +298 -0
  402. package/contracts/instance/RiskSet.sol +118 -0
  403. package/contracts/instance/base/BalanceStore.sol +123 -0
  404. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  405. package/contracts/instance/base/ObjectCounter.sol +20 -0
  406. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  407. package/contracts/instance/base/ObjectSet.sol +77 -0
  408. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  409. package/contracts/instance/module/IBundle.sol +9 -9
  410. package/contracts/instance/module/IComponents.sol +50 -0
  411. package/contracts/instance/module/IDistribution.sol +12 -8
  412. package/contracts/instance/module/IPolicy.sol +59 -19
  413. package/contracts/instance/module/IRisk.sol +4 -1
  414. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  415. package/contracts/oracle/BasicOracle.sol +45 -0
  416. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  417. package/contracts/oracle/IOracle.sol +36 -0
  418. package/contracts/oracle/IOracleComponent.sol +33 -0
  419. package/contracts/oracle/IOracleService.sol +66 -0
  420. package/contracts/oracle/Oracle.sol +154 -0
  421. package/contracts/oracle/OracleService.sol +310 -0
  422. package/contracts/oracle/OracleServiceManager.sol +39 -0
  423. package/contracts/pool/BasicPool.sol +173 -0
  424. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  425. package/contracts/pool/BundleService.sol +395 -0
  426. package/contracts/pool/BundleServiceManager.sol +39 -0
  427. package/contracts/pool/IBundleService.sol +115 -0
  428. package/contracts/pool/IPoolComponent.sol +62 -0
  429. package/contracts/pool/IPoolService.sol +165 -0
  430. package/contracts/pool/Pool.sol +343 -0
  431. package/contracts/pool/PoolLib.sol +216 -0
  432. package/contracts/pool/PoolService.sol +755 -0
  433. package/contracts/pool/PoolServiceManager.sol +39 -0
  434. package/contracts/product/ApplicationService.sol +274 -0
  435. package/contracts/product/ApplicationServiceManager.sol +38 -0
  436. package/contracts/product/BasicProduct.sol +49 -0
  437. package/contracts/product/BasicProductAuthorization.sol +56 -0
  438. package/contracts/product/ClaimService.sol +632 -0
  439. package/contracts/product/ClaimServiceManager.sol +38 -0
  440. package/contracts/product/IApplicationService.sol +69 -0
  441. package/contracts/product/IClaimService.sol +135 -0
  442. package/contracts/product/IPolicyService.sol +95 -0
  443. package/contracts/product/IPricingService.sol +40 -0
  444. package/contracts/product/IProductComponent.sol +62 -0
  445. package/contracts/product/IRiskService.sol +33 -0
  446. package/contracts/product/PolicyService.sol +664 -0
  447. package/contracts/product/PolicyServiceLib.sol +65 -0
  448. package/contracts/product/PolicyServiceManager.sol +39 -0
  449. package/contracts/product/PricingService.sol +309 -0
  450. package/contracts/product/PricingServiceManager.sol +39 -0
  451. package/contracts/product/Product.sol +467 -0
  452. package/contracts/product/RiskService.sol +154 -0
  453. package/contracts/product/RiskServiceManager.sol +39 -0
  454. package/contracts/registry/ChainNft.sol +83 -36
  455. package/contracts/registry/IRegistry.sol +105 -30
  456. package/contracts/registry/IRegistryService.sol +38 -34
  457. package/contracts/registry/IRelease.sol +26 -0
  458. package/contracts/registry/ITransferInterceptor.sol +1 -1
  459. package/contracts/registry/Registry.sol +544 -210
  460. package/contracts/registry/RegistryAdmin.sol +258 -0
  461. package/contracts/registry/RegistryAuthorization.sol +267 -0
  462. package/contracts/registry/RegistryService.sol +119 -198
  463. package/contracts/registry/RegistryServiceManager.sol +24 -33
  464. package/contracts/registry/ReleaseAdmin.sol +253 -0
  465. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  466. package/contracts/registry/ReleaseRegistry.sol +517 -0
  467. package/contracts/registry/ServiceAuthorizationV3.sol +331 -0
  468. package/contracts/registry/TokenRegistry.sol +263 -60
  469. package/contracts/shared/Component.sol +210 -0
  470. package/contracts/shared/ComponentService.sol +708 -0
  471. package/contracts/shared/ComponentServiceManager.sol +38 -0
  472. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  473. package/contracts/shared/ContractLib.sol +281 -0
  474. package/contracts/shared/IComponent.sol +58 -0
  475. package/contracts/shared/IComponentService.sol +112 -0
  476. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  477. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  478. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  479. package/contracts/shared/INftOwnable.sol +15 -12
  480. package/contracts/shared/IPolicyHolder.sol +35 -0
  481. package/contracts/shared/IRegisterable.sol +25 -3
  482. package/contracts/shared/IRegistryLinked.sol +11 -0
  483. package/contracts/shared/IService.sol +12 -5
  484. package/contracts/shared/InitializableERC165.sol +35 -0
  485. package/contracts/shared/InstanceLinkedComponent.sol +195 -0
  486. package/contracts/shared/KeyValueStore.sol +131 -0
  487. package/contracts/shared/Lifecycle.sol +88 -0
  488. package/contracts/shared/NftIdSet.sol +65 -0
  489. package/contracts/shared/NftOwnable.sol +75 -82
  490. package/contracts/shared/PolicyHolder.sol +62 -0
  491. package/contracts/shared/Registerable.sol +54 -38
  492. package/contracts/shared/RegistryLinked.sol +38 -0
  493. package/contracts/shared/Service.sol +42 -35
  494. package/contracts/shared/TokenHandler.sol +327 -12
  495. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  496. package/contracts/staking/IStaking.sol +175 -0
  497. package/contracts/staking/IStakingService.sol +172 -0
  498. package/contracts/staking/Staking.sol +546 -0
  499. package/contracts/staking/StakingLib.sol +281 -0
  500. package/contracts/staking/StakingLifecycle.sol +23 -0
  501. package/contracts/staking/StakingManager.sol +52 -0
  502. package/contracts/staking/StakingReader.sol +180 -0
  503. package/contracts/staking/StakingService.sol +464 -0
  504. package/contracts/staking/StakingServiceManager.sol +45 -0
  505. package/contracts/staking/StakingStore.sol +606 -0
  506. package/contracts/staking/TargetManagerLib.sol +211 -0
  507. package/contracts/{types → type}/AddressSet.sol +1 -1
  508. package/contracts/type/Amount.sol +150 -0
  509. package/contracts/{types → type}/Blocknumber.sol +27 -3
  510. package/contracts/type/ClaimId.sol +80 -0
  511. package/contracts/{types → type}/DistributorType.sol +2 -2
  512. package/contracts/type/Fee.sol +65 -0
  513. package/contracts/{types → type}/Key32.sol +2 -2
  514. package/contracts/type/Key32Set.sol +62 -0
  515. package/contracts/{types → type}/NftId.sol +28 -15
  516. package/contracts/{types → type}/NftIdSet.sol +2 -2
  517. package/contracts/type/ObjectType.sol +294 -0
  518. package/contracts/type/PayoutId.sol +82 -0
  519. package/contracts/{types → type}/Referral.sol +6 -1
  520. package/contracts/type/RequestId.sol +75 -0
  521. package/contracts/type/RiskId.sol +75 -0
  522. package/contracts/type/RoleId.sol +182 -0
  523. package/contracts/type/Seconds.sol +101 -0
  524. package/contracts/type/Selector.sol +107 -0
  525. package/contracts/{types → type}/StateId.sol +48 -4
  526. package/contracts/type/String.sol +53 -0
  527. package/contracts/{types → type}/Timestamp.sol +33 -19
  528. package/contracts/type/UFixed.sol +262 -0
  529. package/contracts/{types → type}/Version.sol +59 -7
  530. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  531. package/contracts/upgradeability/ProxyManager.sol +232 -0
  532. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  533. package/contracts/upgradeability/Versionable.sol +59 -0
  534. package/package.json +12 -8
  535. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  537. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -408
  539. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  540. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  541. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  543. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  545. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  546. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  549. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  551. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  553. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  555. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  557. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  559. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  561. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  563. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  565. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  567. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  570. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  572. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  574. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  576. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  578. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  580. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  581. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  582. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  583. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  584. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  585. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  586. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  587. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  588. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  589. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  590. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  591. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  592. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  594. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  595. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  596. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  598. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  600. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  601. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  602. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  603. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  604. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  605. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  606. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  607. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  608. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  609. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  610. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1121
  613. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  615. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -791
  617. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
  619. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  621. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  622. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
  625. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  627. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1246
  628. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  629. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  630. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  631. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -825
  632. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  633. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
  634. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  635. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -875
  636. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  637. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
  638. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  639. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  640. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  641. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -530
  642. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  643. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  644. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  645. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  646. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  647. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  648. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  649. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  650. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  651. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  652. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  653. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  654. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  655. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  656. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  657. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  658. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  659. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  660. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  661. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  662. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  663. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  664. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  665. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  666. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  667. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  668. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  669. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  670. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  671. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  672. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  673. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  674. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  675. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  676. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  677. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  678. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  680. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  681. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  682. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  683. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  684. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  685. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  686. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  687. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  688. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  689. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  690. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  691. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  692. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  693. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  694. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  695. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  696. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  697. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  698. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  699. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  700. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  701. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  702. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  703. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  704. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  705. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  706. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  707. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  708. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  709. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  710. package/contracts/components/BaseComponent.sol +0 -168
  711. package/contracts/components/Distribution.sol +0 -154
  712. package/contracts/components/IBaseComponent.sol +0 -35
  713. package/contracts/components/IDistributionComponent.sol +0 -44
  714. package/contracts/components/IPoolComponent.sol +0 -66
  715. package/contracts/components/IProductComponent.sol +0 -35
  716. package/contracts/components/Pool.sol +0 -258
  717. package/contracts/components/Product.sol +0 -295
  718. package/contracts/experiment/cloning/Cloner.sol +0 -47
  719. package/contracts/experiment/errors/Require.sol +0 -38
  720. package/contracts/experiment/errors/Revert.sol +0 -44
  721. package/contracts/experiment/inheritance/A.sol +0 -53
  722. package/contracts/experiment/inheritance/B.sol +0 -28
  723. package/contracts/experiment/inheritance/C.sol +0 -34
  724. package/contracts/experiment/inheritance/IA.sol +0 -13
  725. package/contracts/experiment/inheritance/IB.sol +0 -10
  726. package/contracts/experiment/inheritance/IC.sol +0 -12
  727. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  728. package/contracts/experiment/statemachine/ISM.sol +0 -25
  729. package/contracts/experiment/statemachine/SM.sol +0 -57
  730. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  731. package/contracts/experiment/types/TypeA.sol +0 -47
  732. package/contracts/experiment/types/TypeB.sol +0 -29
  733. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  734. package/contracts/instance/BundleManager.sol +0 -129
  735. package/contracts/instance/IInstanceBase.sol +0 -25
  736. package/contracts/instance/InstanceAccessManager.sol +0 -303
  737. package/contracts/instance/InstanceBase.sol +0 -39
  738. package/contracts/instance/ObjectManager.sol +0 -101
  739. package/contracts/instance/base/ComponentServiceBase.sol +0 -138
  740. package/contracts/instance/base/IInstanceBase.sol +0 -21
  741. package/contracts/instance/base/KeyValueStore.sol +0 -172
  742. package/contracts/instance/base/Lifecycle.sol +0 -100
  743. package/contracts/instance/module/IAccess.sol +0 -48
  744. package/contracts/instance/module/ISetup.sol +0 -46
  745. package/contracts/instance/module/ITreasury.sol +0 -23
  746. package/contracts/instance/service/BundleService.sol +0 -294
  747. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  748. package/contracts/instance/service/DistributionService.sol +0 -115
  749. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  750. package/contracts/instance/service/IBundleService.sol +0 -44
  751. package/contracts/instance/service/IDistributionService.sol +0 -12
  752. package/contracts/instance/service/IPolicyService.sol +0 -94
  753. package/contracts/instance/service/IPoolService.sol +0 -20
  754. package/contracts/instance/service/IProductService.sol +0 -40
  755. package/contracts/instance/service/PolicyService.sol +0 -539
  756. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  757. package/contracts/instance/service/PoolService.sol +0 -142
  758. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  759. package/contracts/instance/service/ProductService.sol +0 -209
  760. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  761. package/contracts/registry/RegistryAccessManager.sol +0 -210
  762. package/contracts/registry/ReleaseManager.sol +0 -342
  763. package/contracts/shared/ContractDeployerLib.sol +0 -72
  764. package/contracts/shared/ERC165.sol +0 -25
  765. package/contracts/shared/ProxyManager.sol +0 -94
  766. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  767. package/contracts/shared/Versionable.sol +0 -147
  768. package/contracts/test/TestFee.sol +0 -25
  769. package/contracts/test/TestRegisterable.sol +0 -18
  770. package/contracts/test/TestRoleId.sol +0 -14
  771. package/contracts/test/TestService.sol +0 -25
  772. package/contracts/test/TestToken.sol +0 -26
  773. package/contracts/test/TestVersion.sol +0 -44
  774. package/contracts/test/TestVersionable.sol +0 -17
  775. package/contracts/types/ChainId.sol +0 -38
  776. package/contracts/types/Fee.sol +0 -56
  777. package/contracts/types/NumberId.sol +0 -52
  778. package/contracts/types/ObjectType.sol +0 -152
  779. package/contracts/types/RiskId.sol +0 -43
  780. package/contracts/types/RoleId.sol +0 -90
  781. package/contracts/types/UFixed.sol +0 -325
@@ -0,0 +1,755 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
5
+ import {IBundle} from "../instance/module/IBundle.sol";
6
+ import {IBundleService} from "./IBundleService.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {IComponentService} from "../shared/IComponentService.sol";
9
+ import {IInstance} from "../instance/IInstance.sol";
10
+ import {IPolicy} from "../instance/module/IPolicy.sol";
11
+ import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
12
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
13
+ import {IPoolService} from "./IPoolService.sol";
14
+ import {IProductComponent} from "../product/IProductComponent.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
16
+ import {IStaking} from "../staking/IStaking.sol";
17
+
18
+ import {Amount, AmountLib} from "../type/Amount.sol";
19
+ import {ClaimId} from "../type/ClaimId.sol";
20
+ import {ContractLib} from "../shared/ContractLib.sol";
21
+ import {InstanceReader} from "../instance/InstanceReader.sol";
22
+ import {InstanceStore} from "../instance/InstanceStore.sol";
23
+ import {KEEP_STATE} from "../type/StateId.sol";
24
+ import {NftId} from "../type/NftId.sol";
25
+ import {ObjectType, ACCOUNTING, POOL, BUNDLE, PRODUCT, POLICY, COMPONENT} from "../type/ObjectType.sol";
26
+ import {PayoutId} from "../type/PayoutId.sol";
27
+ import {PoolLib} from "./PoolLib.sol";
28
+ import {Service} from "../shared/Service.sol";
29
+ import {TokenHandler} from "../shared/TokenHandler.sol";
30
+ import {UFixed} from "../type/UFixed.sol";
31
+
32
+ string constant POOL_SERVICE_NAME = "PoolService";
33
+
34
+
35
+ contract PoolService is
36
+ Service,
37
+ IPoolService
38
+ {
39
+ IAccountingService private _accountingService;
40
+ IBundleService internal _bundleService;
41
+ IComponentService internal _componentService;
42
+ IStaking private _staking;
43
+
44
+ function _initialize(
45
+ address owner,
46
+ bytes memory data
47
+ )
48
+ internal
49
+ virtual override
50
+ initializer()
51
+ {
52
+ (
53
+ address authority,
54
+ address registry
55
+ ) = abi.decode(data, (address, address));
56
+
57
+ __Service_init(authority, registry, owner);
58
+
59
+ _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
60
+ _bundleService = IBundleService(_getServiceAddress(BUNDLE()));
61
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
62
+ _staking = IStaking(getRegistry().getStakingAddress());
63
+
64
+ _registerInterface(type(IPoolService).interfaceId);
65
+ }
66
+
67
+
68
+ /// @inheritdoc IPoolService
69
+ function setMaxBalanceAmount(Amount maxBalanceAmount)
70
+ external
71
+ virtual
72
+ {
73
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
74
+ InstanceReader instanceReader = instance.getInstanceReader();
75
+ IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
76
+
77
+ Amount previousMaxBalanceAmount = poolInfo.maxBalanceAmount;
78
+ poolInfo.maxBalanceAmount = maxBalanceAmount;
79
+ instance.getInstanceStore().updatePool(poolNftId, poolInfo, KEEP_STATE());
80
+
81
+ emit LogPoolServiceMaxBalanceAmountUpdated(poolNftId, previousMaxBalanceAmount, maxBalanceAmount);
82
+ }
83
+
84
+
85
+ function closeBundle(NftId bundleNftId)
86
+ external
87
+ virtual
88
+ {
89
+ _checkNftType(bundleNftId, BUNDLE());
90
+
91
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
92
+
93
+ // TODO get performance fee for pool (#477)
94
+
95
+ // releasing collateral in bundle
96
+ (Amount unstakedAmount, Amount feeAmount) = _bundleService.close(instance, bundleNftId);
97
+
98
+ _accountingService.decreasePoolBalance(
99
+ instance.getInstanceStore(),
100
+ poolNftId,
101
+ unstakedAmount + feeAmount,
102
+ AmountLib.zero());
103
+
104
+ emit LogPoolServiceBundleClosed(instance.getNftId(), poolNftId, bundleNftId);
105
+
106
+ if ((unstakedAmount + feeAmount).gtz()){
107
+ IComponents.ComponentInfo memory poolComponentInfo = instance.getInstanceReader().getComponentInfo(poolNftId);
108
+ poolComponentInfo.tokenHandler.pushToken(
109
+ getRegistry().ownerOf(bundleNftId),
110
+ unstakedAmount + feeAmount);
111
+ }
112
+ }
113
+
114
+
115
+ /// @inheritdoc IPoolService
116
+ function processFundedClaim(
117
+ NftId policyNftId,
118
+ ClaimId claimId,
119
+ Amount availableAmount
120
+ )
121
+ external
122
+ virtual
123
+ {
124
+ _checkNftType(policyNftId, POLICY());
125
+
126
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
127
+ InstanceReader instanceReader = instance.getInstanceReader();
128
+ NftId productNftId = getRegistry().getParentNftId(poolNftId);
129
+
130
+ // check policy matches with calling pool
131
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
132
+ if(policyInfo.productNftId != productNftId) {
133
+ revert ErrorPoolServicePolicyPoolMismatch(
134
+ policyNftId,
135
+ policyInfo.productNftId,
136
+ productNftId);
137
+ }
138
+
139
+ emit LogPoolServiceProcessFundedClaim(policyNftId, claimId, availableAmount);
140
+
141
+ // callback to product component if applicable
142
+ if (instanceReader.getProductInfo(productNftId).isProcessingFundedClaims) {
143
+ address productAddress = getRegistry().getObjectAddress(productNftId);
144
+ IProductComponent(productAddress).processFundedClaim(policyNftId, claimId, availableAmount);
145
+ }
146
+ }
147
+
148
+
149
+ // function _checkAndGetPoolInfo(NftId bundleNftId)
150
+ // internal
151
+ // view
152
+ // returns (
153
+ // InstanceReader instanceReader,
154
+ // InstanceStore instanceStore,
155
+ // NftId instanceNftId,
156
+ // NftId poolNftId,
157
+ // IComponents.PoolInfo memory poolInfo
158
+ // )
159
+ // {
160
+ // _checkNftType(bundleNftId, BUNDLE());
161
+
162
+ // (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
163
+ // instanceReader = instance.getInstanceReader();
164
+ // instanceStore = instance.getInstanceStore();
165
+ // instanceNftId = instance.getNftId();
166
+ // poolInfo = instanceReader.getPoolInfo(poolNftId);
167
+
168
+ // if (getRegistry().getParentNftId(bundleNftId) != poolNftId) {
169
+ // revert ErrorPoolServiceBundlePoolMismatch(bundleNftId, poolNftId);
170
+ // }
171
+ // }
172
+
173
+
174
+ /// @inheritdoc IPoolService
175
+ function stake(NftId bundleNftId, Amount amount)
176
+ external
177
+ virtual
178
+ // TODO: restricted() (once #462 is done)
179
+ returns(
180
+ Amount netAmount
181
+ )
182
+ {
183
+ (
184
+ InstanceReader instanceReader,
185
+ InstanceStore instanceStore,
186
+ NftId instanceNftId,
187
+ NftId poolNftId,
188
+ IComponents.PoolInfo memory poolInfo
189
+ ) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
190
+
191
+ {
192
+ Amount currentPoolBalance = instanceReader.getBalanceAmount(poolNftId);
193
+ if (currentPoolBalance + amount > poolInfo.maxBalanceAmount) {
194
+ revert ErrorPoolServiceMaxBalanceAmountExceeded(poolNftId, poolInfo.maxBalanceAmount, currentPoolBalance, amount);
195
+ }
196
+ }
197
+
198
+ // calculate fees
199
+ Amount feeAmount;
200
+ (
201
+ feeAmount,
202
+ netAmount
203
+ ) = PoolLib.calculateStakingAmounts(
204
+ getRegistry(),
205
+ instanceReader,
206
+ poolNftId,
207
+ amount);
208
+
209
+ // do all the book keeping
210
+ _accountingService.increasePoolBalance(
211
+ instanceStore,
212
+ poolNftId,
213
+ netAmount,
214
+ feeAmount);
215
+
216
+ _bundleService.stake(instanceReader, instanceStore, bundleNftId, netAmount);
217
+
218
+ emit LogPoolServiceBundleStaked(instanceNftId, poolNftId, bundleNftId, amount, netAmount);
219
+
220
+ // only collect staking amount when pool is not externally managed
221
+ if (!poolInfo.isExternallyManaged) {
222
+
223
+ // collect tokens from bundle owner
224
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
225
+ _pullStakingAmount(
226
+ instanceReader,
227
+ poolNftId,
228
+ bundleOwner,
229
+ amount);
230
+ }
231
+ }
232
+
233
+
234
+ /// @inheritdoc IPoolService
235
+ function unstake(NftId bundleNftId, Amount amount)
236
+ external
237
+ virtual
238
+ // TODO: restricted() (once #462 is done)
239
+ returns(Amount netAmount)
240
+ {
241
+ (
242
+ InstanceReader instanceReader,
243
+ InstanceStore instanceStore,
244
+ NftId instanceNftId,
245
+ NftId poolNftId,
246
+ ) = PoolLib.checkAndGetPoolInfo(getRegistry(), msg.sender, bundleNftId);
247
+
248
+ // call bundle service for bookkeeping and additional checks
249
+ Amount unstakedAmount = _bundleService.unstake(instanceStore, bundleNftId, amount);
250
+
251
+ // Important: from now on work only with unstakedAmount as it is the only reliable amount.
252
+ // if amount was max, this was set to the available amount
253
+
254
+ // TODO: handle performance fees (issue #477)
255
+ netAmount = unstakedAmount;
256
+
257
+ // update pool bookkeeping - performance fees stay in the pool, but as fees
258
+ _accountingService.decreasePoolBalance(
259
+ instanceStore,
260
+ poolNftId,
261
+ unstakedAmount,
262
+ AmountLib.zero());
263
+
264
+
265
+ emit LogPoolServiceBundleUnstaked(instanceNftId, poolNftId, bundleNftId, unstakedAmount, netAmount);
266
+
267
+ // only distribute staking amount when pool is not externally managed
268
+ if (!instanceReader.getPoolInfo(poolNftId).isExternallyManaged) {
269
+
270
+ // transfer amount to bundle owner
271
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
272
+ _pushUnstakingAmount(
273
+ instanceReader,
274
+ poolNftId,
275
+ bundleOwner,
276
+ netAmount);
277
+ }
278
+ }
279
+
280
+
281
+ function fundPoolWallet(Amount amount)
282
+ external
283
+ virtual
284
+ // restricted()
285
+ {
286
+ (
287
+ NftId poolNftId,
288
+ IInstance instance
289
+ ) = _getAndVerifyActivePool();
290
+
291
+ // check that pool is externally managed
292
+ InstanceReader reader = instance.getInstanceReader();
293
+ if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
294
+ revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
295
+ }
296
+
297
+ address poolOwner = getRegistry().ownerOf(poolNftId);
298
+ emit LogPoolServiceWalletFunded(poolNftId, poolOwner, amount);
299
+
300
+ _pullStakingAmount(
301
+ reader,
302
+ poolNftId,
303
+ poolOwner,
304
+ amount);
305
+ }
306
+
307
+
308
+ function defundPoolWallet(Amount amount)
309
+ external
310
+ virtual
311
+ // restricted()
312
+ {
313
+ (
314
+ NftId poolNftId,
315
+ IInstance instance
316
+ ) = _getAndVerifyActivePool();
317
+
318
+ // check that pool is externally managed
319
+ InstanceReader reader = instance.getInstanceReader();
320
+ if (!reader.getPoolInfo(poolNftId).isExternallyManaged) {
321
+ revert ErrorPoolServicePoolNotExternallyManaged(poolNftId);
322
+ }
323
+
324
+ address poolOwner = getRegistry().ownerOf(poolNftId);
325
+ emit LogPoolServiceWalletDefunded(poolNftId, poolOwner, amount);
326
+
327
+ _pushUnstakingAmount(
328
+ reader,
329
+ poolNftId,
330
+ poolOwner,
331
+ amount);
332
+ }
333
+
334
+
335
+ function processSale(
336
+ NftId bundleNftId,
337
+ IPolicy.PremiumInfo memory premium
338
+ )
339
+ external
340
+ virtual
341
+ restricted()
342
+ {
343
+ _checkNftType(bundleNftId, BUNDLE());
344
+
345
+ IRegistry registry = getRegistry();
346
+ NftId poolNftId = registry.getParentNftId(bundleNftId);
347
+ (, address instanceAddress) = ContractLib.getInfoAndInstance(registry, poolNftId, true);
348
+ IInstance instance = IInstance(instanceAddress);
349
+
350
+ Amount poolFeeAmount = premium.poolFeeFixAmount + premium.poolFeeVarAmount;
351
+ Amount bundleFeeAmount = premium.bundleFeeFixAmount + premium.bundleFeeVarAmount;
352
+ Amount bundleNetAmount = premium.netPremiumAmount;
353
+
354
+ InstanceStore instanceStore = instance.getInstanceStore();
355
+ _accountingService.increasePoolBalance(
356
+ instanceStore,
357
+ poolNftId,
358
+ bundleNetAmount + bundleFeeAmount,
359
+ poolFeeAmount);
360
+
361
+ _accountingService.increaseBundleBalanceForPool(
362
+ instanceStore,
363
+ bundleNftId,
364
+ bundleNetAmount,
365
+ bundleFeeAmount);
366
+ }
367
+
368
+
369
+ function lockCollateral(
370
+ IInstance instance,
371
+ address token,
372
+ NftId productNftId,
373
+ NftId applicationNftId,
374
+ NftId bundleNftId,
375
+ Amount sumInsuredAmount // premium amount after product and distribution fees
376
+ )
377
+ external
378
+ virtual
379
+ restricted()
380
+ returns (
381
+ Amount totalCollateralAmount,
382
+ Amount localCollateralAmount
383
+ )
384
+ {
385
+ _checkNftType(productNftId, PRODUCT());
386
+ _checkNftType(applicationNftId, POLICY());
387
+ _checkNftType(bundleNftId, BUNDLE());
388
+
389
+ NftId poolNftId;
390
+ bool poolIsVerifyingApplications;
391
+ (
392
+ poolNftId,
393
+ totalCollateralAmount,
394
+ localCollateralAmount,
395
+ poolIsVerifyingApplications
396
+ ) = PoolLib.calculateRequiredCollateral(
397
+ instance.getInstanceReader(),
398
+ productNftId,
399
+ sumInsuredAmount);
400
+
401
+ // lock collateral amount from involved bundle
402
+ _bundleService.lockCollateral(
403
+ instance,
404
+ applicationNftId,
405
+ bundleNftId,
406
+ localCollateralAmount);
407
+
408
+ // update value locked with staking service
409
+ _staking.increaseTotalValueLocked(
410
+ instance.getNftId(),
411
+ token,
412
+ totalCollateralAmount);
413
+
414
+ // pool callback when required
415
+ if (poolIsVerifyingApplications) {
416
+ IPoolComponent pool = IPoolComponent(
417
+ getRegistry().getObjectAddress(poolNftId));
418
+
419
+ pool.verifyApplication(
420
+ applicationNftId,
421
+ bundleNftId,
422
+ totalCollateralAmount);
423
+
424
+ // TODO add logging
425
+ }
426
+
427
+ // TODO add logging
428
+ }
429
+
430
+ function processPayout(
431
+ InstanceReader instanceReader,
432
+ InstanceStore instanceStore,
433
+ NftId productNftId,
434
+ NftId policyNftId,
435
+ NftId bundleNftId,
436
+ PayoutId payoutId,
437
+ Amount payoutAmount,
438
+ address payoutBeneficiary
439
+ )
440
+ external
441
+ virtual
442
+ restricted()
443
+ {
444
+ // checks
445
+ _checkNftType(policyNftId, POLICY());
446
+
447
+ // effects
448
+ NftId poolNftId = getRegistry().getParentNftId(bundleNftId);
449
+
450
+ _accountingService.decreasePoolBalance(
451
+ instanceStore,
452
+ poolNftId,
453
+ payoutAmount,
454
+ AmountLib.zero());
455
+
456
+ _accountingService.decreaseBundleBalanceForPool(
457
+ instanceStore,
458
+ bundleNftId,
459
+ payoutAmount,
460
+ AmountLib.zero());
461
+
462
+ _bundleService.releaseCollateral(
463
+ instanceStore,
464
+ policyNftId,
465
+ bundleNftId,
466
+ payoutAmount);
467
+
468
+ // update value locked with staking service
469
+ TokenHandler poolTokenHandler = instanceReader.getTokenHandler(poolNftId);
470
+
471
+ _staking.decreaseTotalValueLocked(
472
+ instanceReader.getInstanceNftId(),
473
+ address(poolTokenHandler.TOKEN()),
474
+ payoutAmount);
475
+
476
+ // interactions
477
+ _transferTokenAndNotifyPolicyHolder(
478
+ instanceReader,
479
+ poolTokenHandler,
480
+ productNftId,
481
+ policyNftId,
482
+ payoutId,
483
+ payoutAmount,
484
+ payoutBeneficiary);
485
+ }
486
+
487
+ function _transferTokenAndNotifyPolicyHolder(
488
+ InstanceReader instanceReader,
489
+ TokenHandler poolTokenHandler,
490
+ NftId productNftId,
491
+ NftId policyNftId,
492
+ PayoutId payoutId,
493
+ Amount payoutAmount,
494
+ address payoutBeneficiary
495
+ )
496
+ internal
497
+ {
498
+ (
499
+ Amount netPayoutAmount,
500
+ Amount processingFeeAmount,
501
+ address beneficiary
502
+ ) = PoolLib.calculatePayoutAmounts(
503
+ getRegistry(),
504
+ instanceReader,
505
+ productNftId,
506
+ policyNftId,
507
+ payoutAmount,
508
+ payoutBeneficiary);
509
+
510
+ // 1st token tx to payout to beneficiary
511
+ poolTokenHandler.pushToken(
512
+ beneficiary,
513
+ netPayoutAmount);
514
+
515
+ // 2nd token tx to transfer processing fees to product wallet
516
+ // if processingFeeAmount > 0
517
+ if (processingFeeAmount.gtz()) {
518
+ poolTokenHandler.pushToken(
519
+ instanceReader.getWallet(productNftId),
520
+ processingFeeAmount);
521
+ }
522
+
523
+ // callback to policy holder if applicable
524
+ _policyHolderPayoutExecuted(
525
+ policyNftId,
526
+ payoutId,
527
+ beneficiary,
528
+ netPayoutAmount);
529
+ }
530
+
531
+
532
+ /// @inheritdoc IPoolService
533
+ function withdrawBundleFees(
534
+ NftId bundleNftId,
535
+ Amount amount
536
+ )
537
+ public
538
+ virtual
539
+ restricted()
540
+ returns (Amount withdrawnAmount)
541
+ {
542
+ // checks
543
+ _checkNftType(bundleNftId, BUNDLE());
544
+
545
+ (NftId poolNftId, IInstance instance) = _getAndVerifyActivePool();
546
+ InstanceReader reader = instance.getInstanceReader();
547
+
548
+ // determine withdrawn amount
549
+ withdrawnAmount = amount;
550
+ if (withdrawnAmount.gte(AmountLib.max())) {
551
+ withdrawnAmount = reader.getFeeAmount(bundleNftId);
552
+ } else {
553
+ if (withdrawnAmount > reader.getFeeAmount(bundleNftId)) {
554
+ revert ErrorPoolServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
555
+ }
556
+ }
557
+
558
+ // effects
559
+ // decrease fee counters by withdrawnAmount
560
+ {
561
+ InstanceStore store = instance.getInstanceStore();
562
+ // decrease fee amount of the bundle
563
+ _accountingService.decreaseBundleBalanceForPool(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
564
+ // decrease pool balance
565
+ _accountingService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
566
+ }
567
+
568
+ // interactions
569
+ // transfer amount to bundle owner
570
+ {
571
+ address bundleOwner = getRegistry().ownerOf(bundleNftId);
572
+ TokenHandler tokenHandler = reader.getTokenHandler(poolNftId);
573
+ address token = address(tokenHandler.TOKEN());
574
+ emit LogPoolServiceFeesWithdrawn(bundleNftId, bundleOwner, token, withdrawnAmount);
575
+
576
+ tokenHandler.pushToken(bundleOwner, withdrawnAmount);
577
+ }
578
+ }
579
+
580
+
581
+ /// @dev releases the remaining collateral linked to the specified policy
582
+ /// may only be called by the policy service for unlocked pool components
583
+ function releaseCollateral(
584
+ IInstance instance,
585
+ NftId policyNftId,
586
+ IPolicy.PolicyInfo memory policyInfo
587
+ )
588
+ external
589
+ virtual
590
+ restricted()
591
+ {
592
+ _checkNftType(policyNftId, POLICY());
593
+
594
+ Amount remainingCollateralAmount = policyInfo.sumInsuredAmount - policyInfo.claimAmount;
595
+
596
+ _bundleService.releaseCollateral(
597
+ instance.getInstanceStore(),
598
+ policyNftId,
599
+ policyInfo.bundleNftId,
600
+ remainingCollateralAmount);
601
+
602
+ // update value locked with staking service
603
+ InstanceReader instanceReader = instance.getInstanceReader();
604
+ _staking.decreaseTotalValueLocked(
605
+ instanceReader.getInstanceNftId(),
606
+ address(instanceReader.getToken(policyInfo.productNftId)),
607
+ remainingCollateralAmount);
608
+ }
609
+
610
+
611
+ // function calculateRequiredCollateral(
612
+ // InstanceReader instanceReader,
613
+ // NftId productNftId,
614
+ // Amount sumInsuredAmount
615
+ // )
616
+ // public
617
+ // view
618
+ // returns(
619
+ // NftId poolNftId,
620
+ // Amount totalCollateralAmount,
621
+ // Amount localCollateralAmount,
622
+ // bool poolIsVerifyingApplications
623
+ // )
624
+ // {
625
+ // return CollateralLib.calculateRequiredCollateral(
626
+ // instanceReader,
627
+ // productNftId,
628
+ // sumInsuredAmount);
629
+ // }
630
+
631
+ // _checkNftType(productNftId, PRODUCT());
632
+
633
+ // poolNftId = instanceReader.getProductInfo(productNftId).poolNftId;
634
+ // IComponents.PoolInfo memory poolInfo = instanceReader.getPoolInfo(poolNftId);
635
+ // poolIsVerifyingApplications = poolInfo.isVerifyingApplications;
636
+
637
+ // (
638
+ // totalCollateralAmount,
639
+ // localCollateralAmount
640
+ // ) = calculateRequiredCollateral(
641
+ // poolInfo.collateralizationLevel,
642
+ // poolInfo.retentionLevel,
643
+ // sumInsuredAmount);
644
+ // }
645
+
646
+
647
+ // function calculateRequiredCollateral(
648
+ // UFixed collateralizationLevel,
649
+ // UFixed retentionLevel,
650
+ // Amount sumInsuredAmount
651
+ // )
652
+ // public
653
+ // pure
654
+ // returns(
655
+ // Amount totalCollateralAmount,
656
+ // Amount localCollateralAmount
657
+ // )
658
+ // {
659
+ // // collateralization is applied to sum insured
660
+ // UFixed totalUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
661
+ // totalCollateralAmount = AmountLib.toAmount(totalUFixed.toInt());
662
+
663
+ // // retention level defines how much capital is required locally
664
+ // localCollateralAmount = AmountLib.toAmount(
665
+ // (retentionLevel * totalUFixed).toInt());
666
+ // }
667
+
668
+
669
+
670
+
671
+ function _policyHolderPayoutExecuted(
672
+ NftId policyNftId,
673
+ PayoutId payoutId,
674
+ address beneficiary,
675
+ Amount payoutAmount
676
+ )
677
+ internal
678
+ {
679
+ IPolicyHolder policyHolder = PoolLib.getPolicyHolder(getRegistry(), policyNftId);
680
+ if(address(policyHolder) != address(0)) {
681
+ policyHolder.payoutExecuted(policyNftId, payoutId, payoutAmount, beneficiary);
682
+ }
683
+ }
684
+
685
+
686
+ /// @dev Transfers the specified amount from the "from account" to the pool's wallet
687
+ function _pullStakingAmount(
688
+ InstanceReader reader,
689
+ NftId poolNftId,
690
+ address from,
691
+ Amount amount
692
+ )
693
+ internal
694
+ {
695
+ IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
696
+ info.tokenHandler.pullToken(
697
+ from,
698
+ amount);
699
+ }
700
+
701
+ /// @dev Transfers the specified amount from the pool's wallet to the "to account"
702
+ function _pushUnstakingAmount(
703
+ InstanceReader reader,
704
+ NftId poolNftId,
705
+ address to,
706
+ Amount amount
707
+ )
708
+ internal
709
+ {
710
+ IComponents.ComponentInfo memory info = reader.getComponentInfo(poolNftId);
711
+ info.tokenHandler.pushToken(
712
+ to,
713
+ amount);
714
+ }
715
+
716
+
717
+ function _getAndVerifyActivePool()
718
+ internal
719
+ virtual
720
+ view
721
+ returns (
722
+ NftId poolNftId,
723
+ IInstance instance
724
+ )
725
+ {
726
+ return PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
727
+ }
728
+
729
+ // function _getAndVerifyActivePool()
730
+ // internal
731
+ // virtual
732
+ // view
733
+ // returns (
734
+ // NftId poolNftId,
735
+ // IInstance instance
736
+ // )
737
+ // {
738
+ // (
739
+ // IRegistry.ObjectInfo memory info,
740
+ // address instanceAddress
741
+ // ) = ContractLib.getAndVerifyComponent(
742
+ // getRegistry(),
743
+ // msg.sender,
744
+ // POOL(),
745
+ // true); // only active pools
746
+
747
+ // poolNftId = info.nftId;
748
+ // instance = IInstance(instanceAddress);
749
+ // }
750
+
751
+
752
+ function _getDomain() internal pure override returns(ObjectType) {
753
+ return POOL();
754
+ }
755
+ }