@etherisc/gif-next 0.0.2-9addcc0-107 → 0.0.2-9b58b75-869

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