@etherisc/gif-next 0.0.2-b44ae3c-205 → 0.0.2-b4c471d-236

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 (616) hide show
  1. package/README.md +21 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -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 +358 -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 +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +155 -340
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +152 -252
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +68 -65
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +37 -112
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -72
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +188 -47
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +91 -124
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +518 -352
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +279 -98
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +126 -48
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1191 -388
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +207 -137
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +20 -52
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +150 -286
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +137 -136
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +298 -197
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +21 -2
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +31 -2
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +95 -26
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +41 -2
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +254 -149
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +14 -56
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +135 -29
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +317 -52
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +371 -43
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +374 -72
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +697 -97
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +106 -83
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +22 -114
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +77 -82
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  188. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  189. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  190. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  192. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  201. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  204. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  206. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  208. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  210. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  211. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
  216. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
  218. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  220. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  222. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
  224. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -6
  226. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  227. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  228. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  229. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  231. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  233. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  235. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  236. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  237. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  239. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  241. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  243. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  245. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  247. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  249. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  251. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  253. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  255. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  257. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  259. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  261. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  263. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  265. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  267. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  269. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  271. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  273. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  275. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  277. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  279. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  281. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  283. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  287. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  288. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  289. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  291. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  292. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +20 -7
  293. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  295. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  297. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  299. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  301. package/contracts/authorization/AccessAdmin.sol +591 -0
  302. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  303. package/contracts/authorization/Authorization.sol +218 -0
  304. package/contracts/authorization/IAccess.sol +48 -0
  305. package/contracts/authorization/IAccessAdmin.sol +136 -0
  306. package/contracts/authorization/IAuthorization.sol +54 -0
  307. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  308. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  309. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  310. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  311. package/contracts/distribution/BasicDistribution.sol +149 -0
  312. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  313. package/contracts/{components → distribution}/Distribution.sol +152 -154
  314. package/contracts/{instance/service → distribution}/DistributionService.sol +92 -138
  315. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  316. package/contracts/distribution/IDistributionComponent.sol +48 -0
  317. package/contracts/{instance/service → distribution}/IDistributionService.sol +16 -18
  318. package/contracts/instance/BundleManager.sol +5 -5
  319. package/contracts/instance/IInstance.sol +38 -29
  320. package/contracts/instance/IInstanceService.sol +43 -24
  321. package/contracts/instance/Instance.sol +124 -99
  322. package/contracts/instance/InstanceAdmin.sol +266 -0
  323. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  324. package/contracts/instance/InstanceReader.sol +95 -58
  325. package/contracts/instance/InstanceService.sol +264 -129
  326. package/contracts/instance/InstanceServiceManager.sol +11 -21
  327. package/contracts/instance/InstanceStore.sol +137 -73
  328. package/contracts/instance/base/BalanceStore.sol +123 -0
  329. package/contracts/instance/base/Cloneable.sol +28 -0
  330. package/contracts/instance/base/ObjectCounter.sol +21 -0
  331. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  332. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +13 -16
  333. package/contracts/instance/module/IAccess.sol +4 -12
  334. package/contracts/instance/module/IBundle.sol +6 -9
  335. package/contracts/instance/module/IComponents.sol +20 -9
  336. package/contracts/instance/module/IDistribution.sol +5 -5
  337. package/contracts/instance/module/IPolicy.sol +19 -12
  338. package/contracts/instance/module/IRisk.sol +1 -1
  339. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  340. package/contracts/oracle/BasicOracle.sol +48 -0
  341. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  342. package/contracts/oracle/IOracle.sol +36 -0
  343. package/contracts/oracle/IOracleComponent.sol +32 -0
  344. package/contracts/oracle/IOracleService.sol +65 -0
  345. package/contracts/oracle/Oracle.sol +157 -0
  346. package/contracts/oracle/OracleService.sol +278 -0
  347. package/contracts/oracle/OracleServiceManager.sol +42 -0
  348. package/contracts/pool/BasicPool.sol +164 -0
  349. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  350. package/contracts/pool/BundleService.sol +296 -0
  351. package/contracts/pool/BundleServiceManager.sol +42 -0
  352. package/contracts/{instance/service → pool}/IBundleService.sol +14 -26
  353. package/contracts/pool/IPoolComponent.sol +52 -0
  354. package/contracts/{instance/service → pool}/IPoolService.sol +57 -21
  355. package/contracts/pool/Pool.sol +311 -0
  356. package/contracts/pool/PoolService.sol +452 -0
  357. package/contracts/pool/PoolServiceManager.sol +42 -0
  358. package/contracts/product/ApplicationService.sol +254 -0
  359. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  360. package/contracts/product/BasicProduct.sol +82 -0
  361. package/contracts/product/BasicProductAuthorization.sol +40 -0
  362. package/contracts/{instance/service → product}/ClaimService.sol +70 -65
  363. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  364. package/contracts/{instance/service → product}/IApplicationService.sol +9 -9
  365. package/contracts/{instance/service → product}/IClaimService.sol +23 -14
  366. package/contracts/{instance/service → product}/IPolicyService.sol +19 -21
  367. package/contracts/{instance/service → product}/IPricingService.sol +9 -7
  368. package/contracts/{components → product}/IProductComponent.sol +15 -17
  369. package/contracts/product/IProductService.sol +33 -0
  370. package/contracts/product/PolicyService.sol +475 -0
  371. package/contracts/product/PolicyServiceManager.sol +42 -0
  372. package/contracts/{instance/service → product}/PricingService.sol +99 -74
  373. package/contracts/product/PricingServiceManager.sol +42 -0
  374. package/contracts/{components → product}/Product.sol +142 -125
  375. package/contracts/product/ProductService.sol +124 -0
  376. package/contracts/product/ProductServiceManager.sol +42 -0
  377. package/contracts/registry/ChainNft.sol +8 -1
  378. package/contracts/registry/IRegistry.sol +41 -21
  379. package/contracts/registry/IRegistryService.sol +37 -34
  380. package/contracts/registry/Registry.sol +194 -83
  381. package/contracts/registry/RegistryAdmin.sol +365 -0
  382. package/contracts/registry/RegistryService.sol +71 -91
  383. package/contracts/registry/RegistryServiceManager.sol +21 -30
  384. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  385. package/contracts/registry/ReleaseManager.sol +356 -193
  386. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  387. package/contracts/registry/TokenRegistry.sol +261 -62
  388. package/contracts/shared/Component.sol +281 -0
  389. package/contracts/shared/ComponentService.sol +581 -0
  390. package/contracts/shared/ComponentServiceManager.sol +35 -0
  391. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  392. package/contracts/shared/ERC165.sol +1 -1
  393. package/contracts/{components → shared}/IComponent.sol +17 -37
  394. package/contracts/shared/IComponentService.sol +102 -0
  395. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  396. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  397. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  398. package/contracts/shared/INftOwnable.sol +2 -2
  399. package/contracts/shared/IPolicyHolder.sol +10 -5
  400. package/contracts/shared/IService.sol +9 -2
  401. package/contracts/shared/IVersionable.sol +1 -1
  402. package/contracts/shared/InitializableCustom.sol +177 -0
  403. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  404. package/contracts/shared/KeyValueStore.sol +131 -0
  405. package/contracts/shared/Lifecycle.sol +77 -0
  406. package/contracts/shared/NftIdSetManager.sol +65 -0
  407. package/contracts/shared/NftOwnable.sol +3 -14
  408. package/contracts/shared/PolicyHolder.sol +23 -15
  409. package/contracts/shared/ProxyManager.sol +34 -4
  410. package/contracts/shared/Registerable.sol +3 -3
  411. package/contracts/shared/Service.sol +32 -21
  412. package/contracts/shared/TokenHandler.sol +25 -2
  413. package/contracts/shared/Versionable.sol +1 -1
  414. package/contracts/staking/IStaking.sol +168 -0
  415. package/contracts/staking/IStakingService.sol +153 -0
  416. package/contracts/staking/StakeManagerLib.sol +231 -0
  417. package/contracts/staking/Staking.sol +513 -0
  418. package/contracts/staking/StakingLifecycle.sol +23 -0
  419. package/contracts/staking/StakingManager.sol +54 -0
  420. package/contracts/staking/StakingReader.sol +187 -0
  421. package/contracts/staking/StakingService.sol +411 -0
  422. package/contracts/staking/StakingServiceManager.sol +44 -0
  423. package/contracts/staking/StakingStore.sol +615 -0
  424. package/contracts/staking/TargetManagerLib.sol +207 -0
  425. package/contracts/{types → type}/AddressSet.sol +1 -1
  426. package/contracts/{types → type}/Amount.sol +20 -1
  427. package/contracts/{types → type}/Blocknumber.sol +20 -3
  428. package/contracts/{types → type}/Fee.sol +17 -16
  429. package/contracts/{types → type}/NftId.sol +14 -16
  430. package/contracts/{types → type}/NftIdSet.sol +2 -2
  431. package/contracts/type/ObjectType.sol +275 -0
  432. package/contracts/{types → type}/Referral.sol +1 -1
  433. package/contracts/type/RequestId.sol +75 -0
  434. package/contracts/{types → type}/RiskId.sol +1 -1
  435. package/contracts/type/RoleId.sol +174 -0
  436. package/contracts/{types → type}/Seconds.sol +27 -0
  437. package/contracts/type/Selector.sol +102 -0
  438. package/contracts/{types → type}/StateId.sol +27 -2
  439. package/contracts/type/String.sol +53 -0
  440. package/contracts/{types → type}/Timestamp.sol +6 -2
  441. package/contracts/{types → type}/UFixed.sol +6 -0
  442. package/contracts/{types → type}/Version.sol +1 -1
  443. package/package.json +6 -3
  444. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  445. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  446. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  447. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  448. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  449. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  450. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  451. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  452. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  453. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  454. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  455. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  456. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  457. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  458. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  459. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  460. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  461. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  462. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  463. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  464. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  466. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  467. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  468. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  469. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  470. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -918
  471. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  472. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -648
  473. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1288
  475. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
  477. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
  479. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
  481. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1556
  483. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  485. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  487. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  489. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  493. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1281
  495. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
  497. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
  499. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
  501. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -1004
  503. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -688
  505. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  507. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  509. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  510. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  511. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  512. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  514. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  515. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  516. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  517. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  518. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  519. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  520. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  521. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  522. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  523. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  524. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  525. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  526. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  527. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  528. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  529. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  530. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  531. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  532. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  533. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
  535. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  537. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  539. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  540. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  541. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  543. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  544. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
  545. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  546. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  547. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  548. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  549. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  550. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  551. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  552. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  553. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  555. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  557. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  559. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  561. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  562. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  563. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  564. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  565. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  566. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  568. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  569. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  570. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  571. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  572. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  573. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  574. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  575. package/contracts/components/Component.sol +0 -272
  576. package/contracts/components/IDistributionComponent.sol +0 -71
  577. package/contracts/components/IPoolComponent.sol +0 -114
  578. package/contracts/components/Pool.sol +0 -302
  579. package/contracts/instance/Cloneable.sol +0 -51
  580. package/contracts/instance/InstanceAccessManager.sol +0 -541
  581. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  582. package/contracts/instance/base/ComponentService.sol +0 -148
  583. package/contracts/instance/base/KeyValueStore.sol +0 -149
  584. package/contracts/instance/base/Lifecycle.sol +0 -120
  585. package/contracts/instance/module/ISetup.sol +0 -33
  586. package/contracts/instance/module/ITreasury.sol +0 -23
  587. package/contracts/instance/service/ApplicationService.sol +0 -186
  588. package/contracts/instance/service/BundleService.sol +0 -382
  589. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  590. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  591. package/contracts/instance/service/IProductService.sol +0 -40
  592. package/contracts/instance/service/PolicyService.sol +0 -376
  593. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  594. package/contracts/instance/service/PoolService.sol +0 -403
  595. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  596. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  597. package/contracts/instance/service/ProductService.sol +0 -210
  598. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  599. package/contracts/registry/RegistryAccessManager.sol +0 -216
  600. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  601. package/contracts/shared/ContractDeployerLib.sol +0 -72
  602. package/contracts/test/TestFee.sol +0 -25
  603. package/contracts/test/TestRegisterable.sol +0 -18
  604. package/contracts/test/TestRoleId.sol +0 -14
  605. package/contracts/test/TestService.sol +0 -25
  606. package/contracts/test/TestToken.sol +0 -26
  607. package/contracts/test/TestVersion.sol +0 -44
  608. package/contracts/test/TestVersionable.sol +0 -17
  609. package/contracts/types/ChainId.sol +0 -38
  610. package/contracts/types/NumberId.sol +0 -52
  611. package/contracts/types/ObjectType.sol +0 -161
  612. package/contracts/types/RoleId.sol +0 -97
  613. /package/contracts/{types → type}/ClaimId.sol +0 -0
  614. /package/contracts/{types → type}/DistributorType.sol +0 -0
  615. /package/contracts/{types → type}/Key32.sol +0 -0
  616. /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -0,0 +1,296 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IComponents} from "../instance/module/IComponents.sol";
6
+ import {IComponentService} from "../shared/IComponentService.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
9
+ import {InstanceStore} from "../instance/InstanceStore.sol";
10
+ import {IPolicy} from "../instance/module/IPolicy.sol";
11
+
12
+ import {IVersionable} from "../shared/IVersionable.sol";
13
+ import {INftOwnable} from "../shared/INftOwnable.sol";
14
+ import {NftId, NftIdLib} from "../type/NftId.sol";
15
+ import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
16
+ import {POOL_OWNER_ROLE, RoleId} from "../type/RoleId.sol";
17
+ import {Pool} from "./Pool.sol";
18
+
19
+ import {Amount, AmountLib} from "../type/Amount.sol";
20
+ import {Fee, FeeLib} from "../type/Fee.sol";
21
+ import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
22
+ import {Seconds} from "../type/Seconds.sol";
23
+ import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
24
+ import {Version, VersionLib} from "../type/Version.sol";
25
+ import {Versionable} from "../shared/Versionable.sol";
26
+
27
+ import {IService} from "../shared/IService.sol";
28
+ import {Service} from "../shared/Service.sol";
29
+ import {BundleManager} from "../instance/BundleManager.sol";
30
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
31
+ import {IBundleService} from "./IBundleService.sol";
32
+ import {IRegistryService} from "../registry/IRegistryService.sol";
33
+ import {InstanceService} from "../instance/InstanceService.sol";
34
+ import {InstanceReader} from "../instance/InstanceReader.sol";
35
+
36
+ string constant BUNDLE_SERVICE_NAME = "BundleService";
37
+
38
+ contract BundleService is
39
+ ComponentVerifyingService,
40
+ IBundleService
41
+ {
42
+ using NftIdLib for NftId;
43
+
44
+ string public constant NAME = "BundleService";
45
+
46
+ address private _registryAddress;
47
+ IRegistryService private _registryService;
48
+ IComponentService private _componentService;
49
+
50
+ function _initialize(
51
+ address owner,
52
+ bytes memory data
53
+ )
54
+ internal
55
+ initializer
56
+ virtual override
57
+ {
58
+ address registryAddress;
59
+ address initialOwner;
60
+ (registryAddress, initialOwner) = abi.decode(data, (address, address));
61
+ // TODO while PoolService is not deployed in PoolServiceManager constructor
62
+ // owner is PoolServiceManager deployer
63
+ initializeService(registryAddress, address(0), owner);
64
+
65
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
66
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
67
+
68
+ registerInterface(type(IBundleService).interfaceId);
69
+ }
70
+
71
+
72
+ function setFee(
73
+ NftId bundleNftId,
74
+ Fee memory fee
75
+ )
76
+ external
77
+ virtual
78
+ {
79
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
80
+ InstanceReader instanceReader = instance.getInstanceReader();
81
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
82
+ if(bundleInfo.poolNftId.eqz()) {
83
+ revert ErrorBundleServiceBundleUnknown(bundleNftId);
84
+ }
85
+
86
+ if(bundleInfo.poolNftId != poolNftId) {
87
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
88
+ }
89
+
90
+ bundleInfo.fee = fee;
91
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
92
+ }
93
+
94
+
95
+ function create(
96
+ IInstance instance,
97
+ NftId poolNftId,
98
+ address owner,
99
+ Fee memory bundleFee,
100
+ Amount stakingAmount,
101
+ Seconds lifetime,
102
+ bytes calldata filter
103
+ )
104
+ external
105
+ override
106
+ restricted
107
+ returns(NftId bundleNftId)
108
+ {
109
+ // register bundle with registry
110
+ bundleNftId = _registryService.registerBundle(
111
+ IRegistry.ObjectInfo(
112
+ NftIdLib.zero(),
113
+ poolNftId,
114
+ BUNDLE(),
115
+ false, // intercepting property for bundles is defined on pool
116
+ address(0),
117
+ owner,
118
+ "" // bundle data to be stored in registry
119
+ )
120
+ );
121
+
122
+ // create bundle info in instance
123
+ InstanceStore instanceStore = instance.getInstanceStore();
124
+ instanceStore.createBundle(
125
+ bundleNftId,
126
+ IBundle.BundleInfo(
127
+ poolNftId,
128
+ bundleFee,
129
+ filter,
130
+ lifetime,
131
+ TimestampLib.blockTimestamp().addSeconds(lifetime),
132
+ zeroTimestamp()));
133
+
134
+ // bundle book keeping
135
+ _componentService.increaseBundleBalance(
136
+ instanceStore,
137
+ bundleNftId,
138
+ stakingAmount,
139
+ AmountLib.zero()); // fee amount
140
+
141
+ // put bundle under bundle managemet
142
+ BundleManager bundleManager = instance.getBundleManager();
143
+ bundleManager.add(bundleNftId);
144
+
145
+ // TODO add logging
146
+ }
147
+
148
+
149
+ // the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
150
+ function lockCollateral(
151
+ IInstance instance,
152
+ NftId policyNftId,
153
+ NftId bundleNftId,
154
+ Amount collateralAmount // required local amount to collateralize policy
155
+ )
156
+ external
157
+ virtual
158
+ restricted()
159
+ {
160
+ InstanceReader instanceReader = instance.getInstanceReader();
161
+ StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
162
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
163
+
164
+ // ensure bundle is active and not yet expired
165
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
166
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
167
+ }
168
+
169
+ // ensure bundle capacity is sufficent to collateralize policy
170
+ InstanceStore instanceStore = instance.getInstanceStore();
171
+ (
172
+ Amount balanceAmount,
173
+ Amount lockedAmount,
174
+ Amount feeAmount
175
+ ) = instanceStore.getAmounts(bundleNftId);
176
+
177
+ Amount capacity = balanceAmount - (lockedAmount + feeAmount);
178
+ if(capacity < collateralAmount) {
179
+ revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
180
+ }
181
+
182
+ // updated locked amount
183
+ instanceStore.increaseLocked(bundleNftId, collateralAmount);
184
+
185
+ // link policy to bundle in bundle manger
186
+ _linkPolicy(instance, policyNftId);
187
+ }
188
+
189
+
190
+ function lock(NftId bundleNftId)
191
+ external
192
+ virtual
193
+ {
194
+ (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
195
+
196
+ // udpate bundle state
197
+ instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
198
+
199
+ // update set of active bundles
200
+ BundleManager bundleManager = instance.getBundleManager();
201
+ bundleManager.lock(bundleNftId);
202
+
203
+ emit LogBundleServiceBundleLocked(bundleNftId);
204
+ }
205
+
206
+
207
+ function unlock(NftId bundleNftId)
208
+ external
209
+ virtual
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
+ BundleManager bundleManager = instance.getBundleManager();
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
+ {
232
+ // udpate bundle state
233
+ instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
234
+
235
+ // ensure no open policies attached to bundle
236
+ BundleManager bundleManager = instance.getBundleManager();
237
+ uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
238
+ if(openPolicies > 0) {
239
+ revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
240
+ }
241
+
242
+ // update set of active bundles
243
+ bundleManager.lock(bundleNftId);
244
+ }
245
+
246
+
247
+ function releaseCollateral(
248
+ IInstance instance,
249
+ NftId policyNftId,
250
+ NftId bundleNftId,
251
+ Amount collateralAmount
252
+ )
253
+ external
254
+ virtual
255
+ restricted()
256
+ {
257
+ instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
258
+ }
259
+
260
+ /// @dev unlinks policy from bundle
261
+ function unlinkPolicy(
262
+ IInstance instance,
263
+ NftId policyNftId
264
+ )
265
+ external
266
+ virtual
267
+ restricted
268
+ {
269
+ // ensure policy is closeable
270
+ if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
271
+ revert ErrorBundleServicePolicyNotCloseable(policyNftId);
272
+ }
273
+
274
+ instance.getBundleManager().unlinkPolicy(policyNftId);
275
+ }
276
+
277
+ /// @dev links policy to bundle
278
+ function _linkPolicy(IInstance instance, NftId policyNftId)
279
+ internal
280
+ {
281
+ InstanceReader instanceReader = instance.getInstanceReader();
282
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
283
+
284
+ // ensure policy has not yet been activated in a previous tx already
285
+ if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
286
+ revert BundleManager.ErrorBundleManagerPolicyAlreadyActivated(policyNftId);
287
+ }
288
+
289
+ BundleManager bundleManager = instance.getBundleManager();
290
+ bundleManager.linkPolicy(policyNftId);
291
+ }
292
+
293
+ function _getDomain() internal pure override returns(ObjectType) {
294
+ return BUNDLE();
295
+ }
296
+ }
@@ -0,0 +1,42 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../shared/ProxyManager.sol";
6
+ import {BundleService} from "./BundleService.sol";
7
+ import {Registry} from "../registry/Registry.sol";
8
+ import {RegistryService} from "../registry/RegistryService.sol";
9
+ import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
10
+
11
+ contract BundleServiceManager is ProxyManager {
12
+
13
+ BundleService private _bundleService;
14
+
15
+ /// @dev initializes proxy manager with pool service implementation
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ BundleService bundleSrv = new BundleService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(bundleSrv),
27
+ data,
28
+ salt);
29
+
30
+ _bundleService = BundleService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getBundleService()
35
+ external
36
+ view
37
+ returns (BundleService)
38
+ {
39
+ return _bundleService;
40
+ }
41
+
42
+ }
@@ -1,15 +1,15 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Amount} from "../../types/Amount.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {Fee} from "../../types/Fee.sol";
7
- import {IService} from "../../shared/IService.sol";
8
- import {IBundle} from "../module/IBundle.sol";
9
- import {IInstance} from "../../instance/IInstance.sol";
10
- import {Seconds} from "../../types/Seconds.sol";
11
- import {StateId} from "../../types/StateId.sol";
12
- import {Timestamp} from "../../types/Timestamp.sol";
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {Fee} from "../type/Fee.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {IBundle} from "../instance/module/IBundle.sol";
9
+ import {IInstance} from "../instance/IInstance.sol";
10
+ import {Seconds} from "../type/Seconds.sol";
11
+ import {StateId} from "../type/StateId.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
13
13
 
14
14
  interface IBundleService is IService {
15
15
 
@@ -80,13 +80,13 @@ interface IBundleService is IService {
80
80
  /// the premium (minus bundle fee) is added to the bundle capital
81
81
  /// may only be called by pool service
82
82
  function lockCollateral(
83
- IInstance instanceNftId,
83
+ IInstance instance,
84
84
  NftId policyNftId,
85
85
  NftId bundleNftId,
86
- Amount collateralAmount,
87
- Amount premiumAmount // premium after pool fee
86
+ Amount collateralAmount
88
87
  ) external;
89
88
 
89
+
90
90
  /// @dev releases the specified collateral in the bundle
91
91
  /// may only be called by pool service
92
92
  function releaseCollateral(
@@ -103,16 +103,4 @@ interface IBundleService is IService {
103
103
  IInstance instance,
104
104
  NftId policyNftId
105
105
  ) external;
106
-
107
- /// @dev updates the bundle's fees of with the provided fee amount
108
- function updateBundleFees(
109
- IInstance instance,
110
- NftId bundleNftId,
111
- Amount feeAmount
112
- ) external;
113
-
114
- function increaseBalance(
115
- IInstance instance,
116
- NftId bundleNftId,
117
- Amount amount) external;
118
106
  }
@@ -0,0 +1,52 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
6
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
7
+ import {IComponents} from "../instance/module/IComponents.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
10
+ import {Seconds} from "../type/Seconds.sol";
11
+ import {UFixed} from "../type/UFixed.sol";
12
+
13
+ /// @dev pool components hold and manage the collateral to cover active policies
14
+ /// pools come in different flavors
15
+ interface IPoolComponent is IInstanceLinkedComponent {
16
+
17
+ error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
18
+ error ErrorPoolNotPoolService(address caller);
19
+ error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
20
+
21
+ event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
22
+
23
+ /// @dev this is a callback function that is called by the product service when underwriting a policy.
24
+ /// the pool has the option to check the details and object to underwriting by reverting.
25
+ /// the function is only called for "active" pools that ask to be involved/notified
26
+ /// by product related state changes.
27
+ function verifyApplication(
28
+ NftId applicationNftId,
29
+ bytes memory applicationData,
30
+ NftId bundleNftId,
31
+ bytes memory bundleFilter,
32
+ Amount collateralizationAmount
33
+ ) external;
34
+
35
+ /// @dev returns true iff the application matches with the bundle
36
+ /// this is a callback function that is only called if a pool declares itself as a verifying pool
37
+ /// default implementation returns true
38
+ function applicationMatchesBundle(
39
+ NftId applicationNftId,
40
+ bytes memory applicationData,
41
+ NftId bundleNftId,
42
+ bytes memory bundleFilter,
43
+ Amount collateralizationAmount
44
+ )
45
+ external
46
+ view
47
+ returns (bool isMatching);
48
+
49
+ /// @dev returns initial pool specific infos for this pool
50
+ function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
51
+
52
+ }
@@ -1,17 +1,19 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Amount} from "../../types/Amount.sol";
5
- import {Fee} from "../../types/Fee.sol";
6
- import {NftId} from "../../types/NftId.sol";
7
- import {PayoutId} from "../../types/PayoutId.sol";
8
- import {IBundle} from "../module/IBundle.sol";
9
- import {IInstance} from "../../instance/IInstance.sol";
10
- import {IPolicy} from "../module/IPolicy.sol";
11
- import {IService} from "../../shared/IService.sol";
12
- import {RoleId} from "../../types/RoleId.sol";
13
- import {Seconds} from "../../types/Seconds.sol";
14
- import {StateId} from "../../types/StateId.sol";
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {PayoutId} from "../type/PayoutId.sol";
8
+ import {IBundle} from "../instance/module/IBundle.sol";
9
+ import {IInstance} from "../instance/IInstance.sol";
10
+ import {InstanceReader} from "../instance/InstanceReader.sol";
11
+ import {IPolicy} from "../instance/module/IPolicy.sol";
12
+ import {IService} from "../shared/IService.sol";
13
+ import {RoleId} from "../type/RoleId.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
15
+ import {StateId} from "../type/StateId.sol";
16
+ import {UFixed} from "../type/UFixed.sol";
15
17
 
16
18
  interface IPoolService is IService {
17
19
 
@@ -22,12 +24,8 @@ interface IPoolService is IService {
22
24
  event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
23
25
 
24
26
  error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
25
- error ErrorPoolServiceBundlePoolMismatch(NftId bundlePoolNftId, NftId productPoolNftId);
26
27
  error ErrorPoolServiceInvalidTransferAmount(Amount expectedAmount, Amount actualAmount);
27
28
 
28
- /// @dev registers a new pool with the registry service
29
- function register(address poolAddress) external returns(NftId);
30
-
31
29
  /// @dev defines the required role for bundle owners for the calling pool
32
30
  /// default implementation returns PUBLIC ROLE
33
31
  function setBundleOwnerRole(RoleId bundleOwnerRole) external;
@@ -50,17 +48,24 @@ interface IPoolService is IService {
50
48
  /// may only be called by the policy service for unlocked pool components
51
49
  function lockCollateral(
52
50
  IInstance instance,
51
+ address token,
53
52
  NftId productNftId,
54
53
  NftId applicationNftId,
55
- IPolicy.PolicyInfo memory applicationInfo,
56
- Amount premiumAmount
57
- ) external;
54
+ NftId bundleNftId,
55
+ Amount sumInsuredAmount // premium amount after product and distribution fees
56
+ )
57
+ external
58
+ returns (
59
+ Amount localCollateralAmount,
60
+ Amount totalCollateralAmount
61
+ );
58
62
 
59
63
 
60
64
  /// @dev releases the remaining collateral linked to the specified policy
61
65
  /// may only be called by the policy service for unlocked pool components
62
66
  function releaseCollateral(
63
67
  IInstance instance,
68
+ address token,
64
69
  NftId policyNftId,
65
70
  IPolicy.PolicyInfo memory policyInfo
66
71
  ) external;
@@ -71,6 +76,7 @@ interface IPoolService is IService {
71
76
  /// may only be called by the claim service for unlocked pool components
72
77
  function reduceCollateral(
73
78
  IInstance instance,
79
+ address token,
74
80
  NftId policyNftId,
75
81
  IPolicy.PolicyInfo memory policyInfo,
76
82
  Amount payoutAmount
@@ -98,8 +104,9 @@ interface IPoolService is IService {
98
104
  /// may only be called by registered and unlocked pool components
99
105
  function closeBundle(NftId bundleNftId) external;
100
106
 
107
+
101
108
  /// @dev processes the sale of a bundle and track the pool fee and bundle fee amounts
102
- function processSale(NftId bundleNftId, IPolicy.Premium memory premium, Amount actualAmountTransferred) external;
109
+ function processSale(NftId bundleNftId, IPolicy.Premium memory premium) external;
103
110
 
104
111
  /// @dev increase stakes for bundle
105
112
  /// staking fees will be deducted by the pool service from the staking amount
@@ -111,4 +118,33 @@ interface IPoolService is IService {
111
118
  /// performance fees will be deducted by the pool service from the staking amount
112
119
  /// may only be called by registered and unlocked pool components
113
120
  // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
121
+
122
+
123
+ /// @dev calulate required collateral for the provided parameters
124
+ function calculateRequiredCollateral(
125
+ InstanceReader instanceReader,
126
+ NftId productNftId,
127
+ Amount sumInsuredAmount
128
+ )
129
+ external
130
+ view
131
+ returns(
132
+ Amount localCollateralAmount,
133
+ Amount totalCollateralAmount
134
+ );
135
+
136
+
137
+ /// @dev calulate required collateral for the provided parameters
138
+ function calculateRequiredCollateral(
139
+ UFixed collateralizationLevel,
140
+ UFixed retentionLevel,
141
+ Amount sumInsuredAmount
142
+ )
143
+ external
144
+ pure
145
+ returns(
146
+ Amount localCollateralAmount,
147
+ Amount totalCollateralAmount
148
+ );
149
+
114
150
  }