@etherisc/gif-next 0.0.2-e0ff180-567 → 0.0.2-e1d3823-191

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 (675) hide show
  1. package/README.md +83 -22
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +260 -571
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -310
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +221 -327
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +313 -2006
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +180 -111
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +353 -2789
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1078 -314
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +255 -423
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -151
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +233 -287
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +281 -231
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +982 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +746 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +325 -447
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1469 -0
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +850 -0
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → pool/IBundleService.sol/IBundleService.json} +423 -303
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +389 -424
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +786 -0
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +787 -0
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +734 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +416 -435
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +91 -167
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +931 -0
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  148. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +201 -229
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1005 -0
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1316 -0
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +802 -0
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  162. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -245
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  192. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +292 -204
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1843 -0
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +834 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +124 -125
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  202. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +146 -131
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  219. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IService.sol/IService.json +46 -6
  221. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  223. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  224. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +225 -268
  225. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  227. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  229. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  231. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  233. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  235. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  237. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  239. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
  241. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  307. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  320. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  326. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  327. package/contracts/authorization/AccessAdmin.sol +596 -0
  328. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  329. package/contracts/authorization/Authorization.sol +289 -0
  330. package/contracts/authorization/IAccess.sol +49 -0
  331. package/contracts/authorization/IAccessAdmin.sol +137 -0
  332. package/contracts/authorization/IAuthorization.sol +60 -0
  333. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  334. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  335. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  336. package/contracts/distribution/BasicDistribution.sol +139 -0
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  338. package/contracts/{components → distribution}/Distribution.sol +166 -162
  339. package/contracts/distribution/DistributionService.sol +354 -0
  340. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  341. package/contracts/distribution/IDistributionComponent.sol +52 -0
  342. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  343. package/contracts/examples/fire/DamageLevel.sol +59 -0
  344. package/contracts/examples/fire/FirePool.sol +86 -0
  345. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  346. package/contracts/examples/fire/FireProduct.sol +431 -0
  347. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  348. package/contracts/examples/fire/FireUSD.sol +26 -0
  349. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  350. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  351. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  352. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  353. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  354. package/contracts/instance/IInstance.sol +41 -73
  355. package/contracts/instance/IInstanceService.sol +37 -38
  356. package/contracts/instance/Instance.sol +153 -248
  357. package/contracts/instance/InstanceAdmin.sol +277 -0
  358. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  359. package/contracts/instance/InstanceReader.sol +264 -60
  360. package/contracts/instance/InstanceService.sol +263 -344
  361. package/contracts/instance/InstanceServiceManager.sol +14 -29
  362. package/contracts/instance/InstanceStore.sol +287 -0
  363. package/contracts/instance/base/BalanceStore.sol +123 -0
  364. package/contracts/instance/base/Cloneable.sol +28 -0
  365. package/contracts/instance/base/ObjectCounter.sol +21 -0
  366. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  367. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  368. package/contracts/instance/module/IAccess.sol +4 -12
  369. package/contracts/instance/module/IBundle.sol +6 -9
  370. package/contracts/instance/module/IComponents.sol +27 -18
  371. package/contracts/instance/module/IDistribution.sol +6 -6
  372. package/contracts/instance/module/IPolicy.sol +48 -35
  373. package/contracts/instance/module/IRisk.sol +1 -1
  374. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  375. package/contracts/oracle/BasicOracle.sol +47 -0
  376. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  377. package/contracts/oracle/IOracle.sol +36 -0
  378. package/contracts/oracle/IOracleComponent.sol +33 -0
  379. package/contracts/oracle/IOracleService.sol +66 -0
  380. package/contracts/oracle/Oracle.sol +156 -0
  381. package/contracts/oracle/OracleService.sol +292 -0
  382. package/contracts/oracle/OracleServiceManager.sol +39 -0
  383. package/contracts/pool/BasicPool.sol +175 -0
  384. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  385. package/contracts/pool/BundleService.sol +485 -0
  386. package/contracts/pool/BundleServiceManager.sol +39 -0
  387. package/contracts/pool/IBundleService.sol +140 -0
  388. package/contracts/pool/IPoolComponent.sol +62 -0
  389. package/contracts/pool/IPoolService.sol +172 -0
  390. package/contracts/pool/Pool.sol +345 -0
  391. package/contracts/pool/PoolService.sol +620 -0
  392. package/contracts/pool/PoolServiceManager.sol +39 -0
  393. package/contracts/product/ApplicationService.sol +259 -0
  394. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  395. package/contracts/product/BasicProduct.sol +49 -0
  396. package/contracts/product/BasicProductAuthorization.sol +42 -0
  397. package/contracts/product/ClaimService.sol +614 -0
  398. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  399. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  400. package/contracts/product/IClaimService.sol +123 -0
  401. package/contracts/product/IPolicyService.sol +82 -0
  402. package/contracts/product/IPricingService.sol +39 -0
  403. package/contracts/product/IProductComponent.sol +59 -0
  404. package/contracts/product/IRiskService.sol +33 -0
  405. package/contracts/product/PolicyService.sol +695 -0
  406. package/contracts/product/PolicyServiceManager.sol +39 -0
  407. package/contracts/product/PricingService.sol +300 -0
  408. package/contracts/product/PricingServiceManager.sol +39 -0
  409. package/contracts/product/Product.sol +432 -0
  410. package/contracts/product/RiskService.sol +96 -0
  411. package/contracts/product/RiskServiceManager.sol +39 -0
  412. package/contracts/registry/ChainNft.sol +75 -38
  413. package/contracts/registry/IRegistry.sol +98 -26
  414. package/contracts/registry/IRegistryService.sol +34 -40
  415. package/contracts/registry/ITransferInterceptor.sol +1 -2
  416. package/contracts/registry/Registry.sol +453 -195
  417. package/contracts/registry/RegistryAdmin.sol +462 -0
  418. package/contracts/registry/RegistryService.sol +87 -128
  419. package/contracts/registry/RegistryServiceManager.sol +23 -32
  420. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  421. package/contracts/registry/ReleaseRegistry.sol +485 -0
  422. package/contracts/registry/ServiceAuthorizationV3.sol +203 -0
  423. package/contracts/registry/TokenRegistry.sol +261 -62
  424. package/contracts/shared/Component.sol +229 -0
  425. package/contracts/shared/ComponentService.sol +779 -0
  426. package/contracts/shared/ComponentServiceManager.sol +38 -0
  427. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  428. package/contracts/shared/ContractLib.sol +54 -0
  429. package/contracts/shared/IComponent.sol +67 -0
  430. package/contracts/shared/IComponentService.sol +130 -0
  431. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  432. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  433. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  434. package/contracts/shared/INftOwnable.sol +4 -2
  435. package/contracts/shared/IPolicyHolder.sol +23 -14
  436. package/contracts/shared/IRegisterable.sol +11 -0
  437. package/contracts/shared/IRegistryLinked.sol +0 -1
  438. package/contracts/shared/IService.sol +12 -3
  439. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  440. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  441. package/contracts/shared/KeyValueStore.sol +131 -0
  442. package/contracts/shared/Lifecycle.sol +88 -0
  443. package/contracts/shared/NftIdSet.sol +65 -0
  444. package/contracts/shared/NftOwnable.sol +32 -25
  445. package/contracts/shared/PolicyHolder.sol +22 -41
  446. package/contracts/shared/Registerable.sol +32 -23
  447. package/contracts/shared/RegistryLinked.sol +9 -19
  448. package/contracts/shared/Service.sol +48 -36
  449. package/contracts/shared/TokenHandler.sol +376 -12
  450. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  451. package/contracts/staking/IStaking.sol +173 -0
  452. package/contracts/staking/IStakingService.sol +157 -0
  453. package/contracts/staking/StakeManagerLib.sol +224 -0
  454. package/contracts/staking/Staking.sol +505 -0
  455. package/contracts/staking/StakingLifecycle.sol +23 -0
  456. package/contracts/staking/StakingManager.sol +52 -0
  457. package/contracts/staking/StakingReader.sol +190 -0
  458. package/contracts/staking/StakingService.sol +453 -0
  459. package/contracts/staking/StakingServiceManager.sol +44 -0
  460. package/contracts/staking/StakingStore.sol +605 -0
  461. package/contracts/staking/TargetManagerLib.sol +211 -0
  462. package/contracts/{types → type}/AddressSet.sol +1 -1
  463. package/contracts/type/Amount.sol +150 -0
  464. package/contracts/{types → type}/Blocknumber.sol +26 -3
  465. package/contracts/{types → type}/ClaimId.sol +31 -3
  466. package/contracts/{types → type}/Fee.sol +24 -22
  467. package/contracts/{types → type}/NftId.sol +15 -16
  468. package/contracts/{types → type}/NftIdSet.sol +2 -2
  469. package/contracts/type/ObjectType.sol +276 -0
  470. package/contracts/type/PayoutId.sol +82 -0
  471. package/contracts/{types → type}/Referral.sol +2 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +17 -3
  474. package/contracts/type/RoleId.sol +162 -0
  475. package/contracts/type/Seconds.sol +101 -0
  476. package/contracts/type/Selector.sol +102 -0
  477. package/contracts/{types → type}/StateId.sol +47 -4
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +21 -2
  480. package/contracts/{types → type}/UFixed.sol +38 -9
  481. package/contracts/{types → type}/Version.sol +4 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  483. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  486. package/package.json +11 -7
  487. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  494. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  495. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  496. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  497. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  499. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  500. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  501. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  502. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  503. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  504. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  505. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  509. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  510. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  511. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  513. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  514. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  516. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  518. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  520. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  522. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  524. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  526. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  528. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  530. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  539. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  541. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  543. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  545. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  547. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  549. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  550. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  551. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  552. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  553. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  554. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  555. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  556. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  557. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  559. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  560. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  561. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  562. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  563. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  565. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  566. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  567. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  568. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  569. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  571. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  572. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  573. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  574. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  575. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  576. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  577. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  578. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  579. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  580. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  581. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  582. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  583. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  584. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  585. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  587. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  589. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  590. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  591. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  592. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  593. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  594. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  595. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  596. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  597. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  598. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  599. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  600. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  601. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  603. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  605. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  607. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  608. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  609. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  610. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  611. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  612. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  613. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  615. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  617. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  619. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  621. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  623. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  625. package/contracts/components/Component.sol +0 -253
  626. package/contracts/components/IComponent.sol +0 -76
  627. package/contracts/components/IDistributionComponent.sol +0 -71
  628. package/contracts/components/IPoolComponent.sol +0 -113
  629. package/contracts/components/IProductComponent.sol +0 -40
  630. package/contracts/components/Pool.sol +0 -303
  631. package/contracts/components/Product.sol +0 -293
  632. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  633. package/contracts/instance/Cloneable.sol +0 -51
  634. package/contracts/instance/InstanceAccessManager.sol +0 -527
  635. package/contracts/instance/base/ComponentService.sol +0 -121
  636. package/contracts/instance/base/KeyValueStore.sol +0 -180
  637. package/contracts/instance/base/Lifecycle.sol +0 -109
  638. package/contracts/instance/module/ISetup.sol +0 -33
  639. package/contracts/instance/module/ITreasury.sol +0 -23
  640. package/contracts/instance/service/ApplicationService.sol +0 -350
  641. package/contracts/instance/service/BundleService.sol +0 -431
  642. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  643. package/contracts/instance/service/ClaimService.sol +0 -151
  644. package/contracts/instance/service/DistributionService.sol +0 -435
  645. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  646. package/contracts/instance/service/IBundleService.sol +0 -93
  647. package/contracts/instance/service/IClaimService.sol +0 -61
  648. package/contracts/instance/service/IPolicyService.sol +0 -72
  649. package/contracts/instance/service/IPoolService.sol +0 -99
  650. package/contracts/instance/service/IProductService.sol +0 -40
  651. package/contracts/instance/service/PolicyService.sol +0 -362
  652. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  653. package/contracts/instance/service/PoolService.sol +0 -303
  654. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  655. package/contracts/instance/service/ProductService.sol +0 -210
  656. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  657. package/contracts/registry/RegistryAccessManager.sol +0 -216
  658. package/contracts/registry/ReleaseManager.sol +0 -324
  659. package/contracts/shared/ContractDeployerLib.sol +0 -72
  660. package/contracts/test/TestFee.sol +0 -25
  661. package/contracts/test/TestRegisterable.sol +0 -18
  662. package/contracts/test/TestRoleId.sol +0 -14
  663. package/contracts/test/TestService.sol +0 -25
  664. package/contracts/test/TestToken.sol +0 -26
  665. package/contracts/test/TestVersion.sol +0 -44
  666. package/contracts/test/TestVersionable.sol +0 -17
  667. package/contracts/types/Amount.sol +0 -60
  668. package/contracts/types/ChainId.sol +0 -38
  669. package/contracts/types/NumberId.sol +0 -52
  670. package/contracts/types/ObjectType.sol +0 -157
  671. package/contracts/types/PayoutId.sol +0 -54
  672. package/contracts/types/RoleId.sol +0 -97
  673. package/contracts/types/Seconds.sol +0 -54
  674. /package/contracts/{types → type}/DistributorType.sol +0 -0
  675. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,68 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicPool} from "./BasicPool.sol";
6
+ import {IAccess} from "../authorization/IAccess.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IPoolComponent} from "./IPoolComponent.sol";
9
+ import {POOL} from "../type/ObjectType.sol";
10
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
11
+ import {RoleId} from "../type/RoleId.sol";
12
+
13
+
14
+ contract BasicPoolAuthorization
15
+ is Authorization
16
+ {
17
+
18
+ constructor(string memory poolName)
19
+ Authorization(poolName)
20
+ {}
21
+
22
+ function _setupServiceTargets()
23
+ internal
24
+ virtual override
25
+ {
26
+ _addServiceTargetWithRole(POOL());
27
+ }
28
+
29
+ function _setupTargets()
30
+ internal
31
+ virtual override
32
+ {
33
+ _addComponentTargetWithRole(POOL()); // basic pool target
34
+ }
35
+
36
+
37
+ function _setupTargetAuthorizations()
38
+ internal
39
+ virtual override
40
+ {
41
+ IAccess.FunctionInfo[] storage functions;
42
+
43
+ // authorize public role (open access to any account, only allows to lock target)
44
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
45
+ _authorize(functions, BasicPool.stake.selector, "stake");
46
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
47
+ _authorize(functions, BasicPool.extend.selector, "extend");
48
+ _authorize(functions, BasicPool.lockBundle.selector, "lockBundle");
49
+ _authorize(functions, BasicPool.unlockBundle.selector, "unlockBundle");
50
+ _authorize(functions, BasicPool.closeBundle.selector, "closeBundle");
51
+ _authorize(functions, BasicPool.setBundleFee.selector, "setBundleFee");
52
+
53
+ _authorize(functions, BasicPool.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
54
+ _authorize(functions, BasicPool.setFees.selector, "setFees");
55
+ _authorize(functions, BasicPool.stake.selector, "stake");
56
+ _authorize(functions, BasicPool.unstake.selector, "unstake");
57
+ _authorize(functions, BasicPool.extend.selector, "extend");
58
+
59
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
60
+
61
+ _authorize(functions, BasicPool.withdrawBundleFees.selector, "withdrawBundleFees");
62
+
63
+ // authorize pool service
64
+ functions = _authorizeForTarget(getTargetName(), getServiceRole(POOL()));
65
+ _authorize(functions, IPoolComponent.verifyApplication.selector, "verifyApplication");
66
+ }
67
+ }
68
+
@@ -0,0 +1,485 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IBundleService} from "./IBundleService.sol";
6
+ import {IComponents} from "../instance/module/IComponents.sol";
7
+ import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryService} from "../registry/IRegistryService.sol";
10
+ import {IInstance} from "../instance/IInstance.sol";
11
+ import {InstanceStore} from "../instance/InstanceStore.sol";
12
+ import {IPolicy} from "../instance/module/IPolicy.sol";
13
+
14
+ import {Amount, AmountLib} from "../type/Amount.sol";
15
+ import {BundleSet} from "../instance/BundleSet.sol";
16
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
17
+ import {Fee} from "../type/Fee.sol";
18
+ import {InstanceReader} from "../instance/InstanceReader.sol";
19
+ import {NftId, NftIdLib} from "../type/NftId.sol";
20
+ import {ObjectType, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
21
+ import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
22
+ import {Seconds} from "../type/Seconds.sol";
23
+ import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
24
+
25
+ string constant BUNDLE_SERVICE_NAME = "BundleService";
26
+
27
+ contract BundleService is
28
+ ComponentVerifyingService,
29
+ IBundleService
30
+ {
31
+
32
+ string public constant NAME = "BundleService";
33
+
34
+ address private _registryAddress;
35
+ IRegistryService private _registryService;
36
+ IComponentService private _componentService;
37
+
38
+ function _initialize(
39
+ address owner,
40
+ bytes memory data
41
+ )
42
+ internal
43
+ virtual override
44
+ initializer()
45
+ {
46
+ (
47
+ address registryAddress,
48
+ address authority
49
+ ) = abi.decode(data, (address, address));
50
+
51
+ _initializeService(registryAddress, authority, owner);
52
+
53
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
54
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
55
+
56
+ _registerInterface(type(IBundleService).interfaceId);
57
+ }
58
+
59
+
60
+ function setFee(
61
+ NftId bundleNftId,
62
+ Fee memory fee
63
+ )
64
+ external
65
+ virtual
66
+ restricted()
67
+ {
68
+ _checkNftType(bundleNftId, BUNDLE());
69
+
70
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
71
+ InstanceReader instanceReader = instance.getInstanceReader();
72
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
73
+ if(bundleInfo.poolNftId.eqz()) {
74
+ revert ErrorBundleServiceBundleUnknown(bundleNftId);
75
+ }
76
+
77
+ if(bundleInfo.poolNftId != poolNftId) {
78
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
79
+ }
80
+
81
+ bundleInfo.fee = fee;
82
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
83
+ }
84
+
85
+
86
+ function create(
87
+ address owner,
88
+ Fee memory bundleFee,
89
+ Seconds lifetime,
90
+ bytes calldata filter
91
+ )
92
+ external
93
+ virtual
94
+ restricted()
95
+ returns(NftId bundleNftId)
96
+ {
97
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
98
+
99
+ // register bundle with registry
100
+ bundleNftId = _registryService.registerBundle(
101
+ IRegistry.ObjectInfo(
102
+ NftIdLib.zero(),
103
+ poolNftId,
104
+ BUNDLE(),
105
+ false, // intercepting property for bundles is defined on pool
106
+ address(0),
107
+ owner,
108
+ "" // bundle data to be stored in registry
109
+ )
110
+ );
111
+
112
+ // create bundle info in instance
113
+ InstanceStore instanceStore = instance.getInstanceStore();
114
+ instanceStore.createBundle(
115
+ bundleNftId,
116
+ IBundle.BundleInfo({
117
+ poolNftId: poolNftId,
118
+ fee: bundleFee,
119
+ filter: filter,
120
+ activatedAt: TimestampLib.blockTimestamp(),
121
+ expiredAt: TimestampLib.blockTimestamp().addSeconds(lifetime),
122
+ closedAt: zeroTimestamp()
123
+ })
124
+ );
125
+
126
+ // put bundle under bundle managemet
127
+ BundleSet bundleManager = instance.getBundleSet();
128
+ bundleManager.add(bundleNftId);
129
+
130
+ emit LogBundleServiceBundleCreated(bundleNftId, poolNftId);
131
+ }
132
+
133
+
134
+ // the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
135
+ function lockCollateral(
136
+ IInstance instance,
137
+ NftId policyNftId,
138
+ NftId bundleNftId,
139
+ Amount collateralAmount // required local amount to collateralize policy
140
+ )
141
+ external
142
+ virtual
143
+ restricted()
144
+ {
145
+ _checkNftType(policyNftId, POLICY());
146
+ _checkNftType(bundleNftId, BUNDLE());
147
+
148
+ InstanceReader instanceReader = instance.getInstanceReader();
149
+
150
+ {
151
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
152
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
153
+
154
+ // ensure bundle is active and not yet expired
155
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
156
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
157
+ }
158
+ }
159
+
160
+ InstanceStore instanceStore = instance.getInstanceStore();
161
+
162
+ {
163
+ // ensure bundle capacity is sufficent to collateralize policy
164
+ (
165
+ Amount balanceAmount,
166
+ Amount lockedAmount,
167
+ Amount feeAmount
168
+ ) = instanceStore.getAmounts(bundleNftId);
169
+
170
+ Amount capacity = balanceAmount - (lockedAmount + feeAmount);
171
+ if(capacity < collateralAmount) {
172
+ revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
173
+ }
174
+ }
175
+
176
+ // updated locked amount
177
+ instanceStore.increaseLocked(bundleNftId, collateralAmount);
178
+
179
+ // link policy to bundle in bundle manger
180
+ _linkPolicy(instance, policyNftId);
181
+ }
182
+
183
+
184
+ function lock(NftId bundleNftId)
185
+ external
186
+ virtual
187
+ restricted()
188
+ {
189
+ _checkNftType(bundleNftId, BUNDLE());
190
+
191
+ (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
192
+
193
+ // udpate bundle state
194
+ instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
195
+
196
+ // update set of active bundles
197
+ BundleSet bundleManager = instance.getBundleSet();
198
+ bundleManager.lock(bundleNftId);
199
+
200
+ emit LogBundleServiceBundleLocked(bundleNftId);
201
+ }
202
+
203
+
204
+ function unlock(NftId bundleNftId)
205
+ external
206
+ virtual
207
+ restricted()
208
+ {
209
+ _checkNftType(bundleNftId, BUNDLE());
210
+
211
+ (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
212
+
213
+ // udpate bundle state
214
+ instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
215
+
216
+ // update set of active bundles
217
+ BundleSet bundleManager = instance.getBundleSet();
218
+ bundleManager.unlock(bundleNftId);
219
+
220
+ emit LogBundleServiceBundleActivated(bundleNftId);
221
+ }
222
+
223
+
224
+ function close(
225
+ IInstance instance,
226
+ NftId bundleNftId
227
+ )
228
+ external
229
+ virtual
230
+ restricted()
231
+ returns (Amount unstakedAmount, Amount feeAmount)
232
+ {
233
+ _checkNftType(bundleNftId, BUNDLE());
234
+
235
+ InstanceReader instanceReader = instance.getInstanceReader();
236
+
237
+ // ensure no open policies attached to bundle
238
+ BundleSet bundleManager = instance.getBundleSet();
239
+ uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
240
+ if(openPolicies > 0) {
241
+ revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
242
+ }
243
+
244
+ {
245
+ // update bundle state
246
+ InstanceStore instanceStore = instance.getInstanceStore();
247
+ instanceStore.updateBundleState(bundleNftId, CLOSED());
248
+ bundleManager.lock(bundleNftId);
249
+
250
+ // decrease bundle counters
251
+ Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
252
+ feeAmount = instanceReader.getFeeAmount(bundleNftId);
253
+ unstakedAmount = balanceAmountWithFees - feeAmount;
254
+ _componentService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
255
+ }
256
+ }
257
+
258
+ /// @inheritdoc IBundleService
259
+ function stake(
260
+ IInstance instance,
261
+ NftId bundleNftId,
262
+ Amount amount
263
+ )
264
+ external
265
+ virtual
266
+ restricted()
267
+ {
268
+ _checkNftType(bundleNftId, BUNDLE());
269
+
270
+ IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
271
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
272
+
273
+ if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
274
+ || bundleInfo.expiredAt < TimestampLib.blockTimestamp()
275
+ || bundleInfo.closedAt.gtz()) {
276
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
277
+ }
278
+
279
+ _componentService.increaseBundleBalance(
280
+ instance.getInstanceStore(),
281
+ bundleNftId,
282
+ amount,
283
+ AmountLib.zero());
284
+ }
285
+
286
+ /// @inheritdoc IBundleService
287
+ function unstake(
288
+ IInstance instance,
289
+ NftId bundleNftId,
290
+ Amount amount
291
+ )
292
+ external
293
+ virtual
294
+ restricted()
295
+ returns (Amount unstakedAmount)
296
+ {
297
+ _checkNftType(bundleNftId, BUNDLE());
298
+
299
+ InstanceStore instanceStore = instance.getInstanceStore();
300
+ (
301
+ Amount balanceAmount,
302
+ Amount lockedAmount,
303
+ Amount feeAmount
304
+ ) = instanceStore.getAmounts(bundleNftId);
305
+
306
+ unstakedAmount = amount;
307
+ Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
308
+
309
+ // if amount is max, then unstake all available
310
+ if (amount.gte(AmountLib.max())) {
311
+ unstakedAmount = availableAmount;
312
+ }
313
+
314
+ // ensure unstaked amount does not exceed available amount
315
+ if (unstakedAmount > availableAmount) {
316
+ revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
317
+ }
318
+
319
+ _componentService.decreaseBundleBalance(
320
+ instanceStore,
321
+ bundleNftId,
322
+ unstakedAmount,
323
+ AmountLib.zero());
324
+ }
325
+
326
+ /// @inheritdoc IBundleService
327
+ function extend(NftId bundleNftId, Seconds lifetimeExtension)
328
+ external
329
+ virtual
330
+ restricted()
331
+ returns (Timestamp extendedExpiredAt)
332
+ {
333
+ _checkNftType(bundleNftId, BUNDLE());
334
+
335
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
336
+ IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
337
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
338
+
339
+ // ensure bundle belongs to the pool
340
+ if (bundleInfo.poolNftId != poolNftId) {
341
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
342
+ }
343
+
344
+ // ensure bundle is active and not yet expired
345
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
346
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
347
+ }
348
+
349
+ if (lifetimeExtension.eqz()) {
350
+ revert ErrorBundleServiceExtensionLifetimeIsZero();
351
+ }
352
+
353
+ bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
354
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
355
+
356
+ emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, bundleInfo.expiredAt);
357
+
358
+ return bundleInfo.expiredAt;
359
+ }
360
+
361
+
362
+ function releaseCollateral(
363
+ IInstance instance,
364
+ NftId policyNftId,
365
+ NftId bundleNftId,
366
+ Amount collateralAmount
367
+ )
368
+ external
369
+ virtual
370
+ restricted()
371
+ {
372
+ _checkNftType(policyNftId, POLICY());
373
+ _checkNftType(bundleNftId, BUNDLE());
374
+
375
+ instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
376
+ }
377
+
378
+ /// @dev unlinks policy from bundle
379
+ function unlinkPolicy(
380
+ IInstance instance,
381
+ NftId policyNftId
382
+ )
383
+ external
384
+ virtual
385
+ restricted
386
+ {
387
+ _checkNftType(policyNftId, POLICY());
388
+
389
+ // ensure policy is closeable
390
+ if (!policyIsCloseable(instance, policyNftId)) {
391
+ revert ErrorBundleServicePolicyNotCloseable(policyNftId);
392
+ }
393
+
394
+ instance.getBundleSet().unlinkPolicy(policyNftId);
395
+ }
396
+
397
+ /// @inheritdoc IBundleService
398
+ function withdrawBundleFees(NftId bundleNftId, Amount amount)
399
+ public
400
+ virtual
401
+ restricted()
402
+ returns (Amount withdrawnAmount)
403
+ {
404
+ _checkNftType(bundleNftId, BUNDLE());
405
+
406
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
407
+ InstanceReader reader = instance.getInstanceReader();
408
+
409
+ IComponents.ComponentInfo memory poolInfo = reader.getComponentInfo(poolNftId);
410
+ address poolWallet = poolInfo.tokenHandler.getWallet();
411
+
412
+ // IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
413
+
414
+ // determine withdrawn amount
415
+ withdrawnAmount = amount;
416
+ if (withdrawnAmount.gte(AmountLib.max())) {
417
+ withdrawnAmount = reader.getFeeAmount(bundleNftId);
418
+ } else {
419
+ if (withdrawnAmount.gt(reader.getFeeAmount(bundleNftId))) {
420
+ revert ErrorBundleServiceFeesWithdrawAmountExceedsLimit(withdrawnAmount, reader.getFeeAmount(bundleNftId));
421
+ }
422
+ }
423
+
424
+ // decrease fee counters by withdrawnAmount
425
+ {
426
+ InstanceStore store = instance.getInstanceStore();
427
+ // decrease fee amount of the bundle
428
+ _componentService.decreaseBundleBalance(store, bundleNftId, AmountLib.zero(), withdrawnAmount);
429
+ // decrease pool balance
430
+ _componentService.decreasePoolBalance(store, poolNftId, withdrawnAmount, AmountLib.zero());
431
+ }
432
+
433
+ // transfer amount to bundle owner
434
+ {
435
+ address owner = getRegistry().ownerOf(bundleNftId);
436
+ emit LogBundleServiceFeesWithdrawn(bundleNftId, owner, address(poolInfo.token), withdrawnAmount);
437
+ poolInfo.tokenHandler.distributeTokens(poolWallet, owner, withdrawnAmount);
438
+ }
439
+ }
440
+
441
+ /// @inheritdoc IBundleService
442
+ function policyIsCloseable(IInstance instance, NftId policyNftId)
443
+ public
444
+ view
445
+ returns (bool isCloseable)
446
+ {
447
+ _checkNftType(policyNftId, POLICY());
448
+
449
+ IPolicy.PolicyInfo memory info = instance.getInstanceReader().getPolicyInfo(policyNftId);
450
+
451
+ if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
452
+ if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
453
+ if (info.closedAt.gtz()) { return false; } // not closeable: already closed
454
+ if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
455
+
456
+ // closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
457
+ if (info.claimAmount == info.sumInsuredAmount) { return true; }
458
+
459
+ // not closeable: not yet expired
460
+ if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
461
+
462
+ // all conditionsl to close the policy are met
463
+ return true;
464
+ }
465
+
466
+ /// @dev links policy to bundle
467
+ function _linkPolicy(IInstance instance, NftId policyNftId)
468
+ internal
469
+ {
470
+ InstanceReader instanceReader = instance.getInstanceReader();
471
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
472
+
473
+ // ensure policy has not yet been activated in a previous tx already
474
+ if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
475
+ revert BundleSet.ErrorBundleSetPolicyAlreadyActivated(policyNftId);
476
+ }
477
+
478
+ BundleSet bundleManager = instance.getBundleSet();
479
+ bundleManager.linkPolicy(policyNftId);
480
+ }
481
+
482
+ function _getDomain() internal pure override returns(ObjectType) {
483
+ return BUNDLE();
484
+ }
485
+ }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {BundleService} from "./BundleService.sol";
7
+
8
+ contract BundleServiceManager is ProxyManager {
9
+
10
+ BundleService private _bundleService;
11
+
12
+ /// @dev initializes proxy manager with pool service implementation
13
+ constructor(
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
18
+ {
19
+ BundleService svc = new BundleService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
26
+
27
+ _bundleService = BundleService(address(versionable));
28
+ }
29
+
30
+ //--- view functions ----------------------------------------------------//
31
+ function getBundleService()
32
+ external
33
+ view
34
+ returns (BundleService)
35
+ {
36
+ return _bundleService;
37
+ }
38
+
39
+ }